## SPcorFilt

#### Routine

double SPcorFilt (double Ed, const float rxx[], const float r[], float h[], int N)

#### Purpose

Find filter coefficients to minimize the mean-square error

#### Description

This procedure finds the filter coefficients for a linear filter which minimizes the mean-square error. Consider a filter with N coefficients, with coefficient h(i) corresponding to lag Nd+i. The filter output is

             N-1
      y(k) = SUM h(i) x(k-i-Nd) ,
             i=0

where x(i) is the input signal. The filter error is

      e(k) = d(k) - y(k) ,

where d(k) is the desired signal. To minimize the mean-square filtering error, solve

      R h = r,

where R is a symmetric positive definite correlation matrix, h is a vector of filter coefficients and r is a vector of correlation values. The matrix R and and vector r are defined as follows

      R(i,j) = E[x(k-i-Nd) x(k-j-Nd)],  for 0 <= i,j < N,
        r(i) = E[d(k) x(k-i-Nd],        for 0 <= i < N.

For this routine, the matrix R must be symmetric and Toeplitz. Then

      R(i,j) = rxx(|i-j|).

The solution is determined using Levinson's method. The resulting mean-square filtering error can be expressed as

      ferr = Ed - 2 h'r + h'R h
           = Ed - h'r ,

where Ed is the mean-square value of the desired signal,

      Ed = E[d(k)^2] .

#### Parameters

<- double SPcorFmse
  Resultant filter mean-square error
-> double Ed
  Signal energy for the desired signal. This value is used only for the computation of the mean-square error.
-> const float rxx[]
  N element vector of autocorrelation values. Element rxx[i] is the autocorrelation at lag i.
-> const float r[]
  N element vector of cross-correlation values. Element r[i] is the cross-correlation at lag Nd+i.
<- float h[]
  N element vector of filter coefficients. Coefficient h[i] is the filter coefficient corresponding to lag Nd+i.
-> int N
  Number of elements in each of the vectors rxx, h and r.

#### Author / revision

P. Kabal / Revision 1.6 2003/05/09

#### See Also

SPcorFmse, SPcorXpc

Main Index libtsp