Adaptive filter

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found. An adaptive filter is a system with a linear filter that has a transfer function controlled by variable parameters and a means to adjust those parameters according to an optimization algorithm. Because of the complexity of the optimization algorithms, almost all adaptive filters are digital filters. Adaptive filters are required for some applications because some parameters of the desired processing operation (for instance, the locations of reflective surfaces in a reverberant space) are not known in advance or are changing. The closed loop adaptive filter uses feedback in the form of an error signal to refine its transfer function.

Generally speaking, the closed loop adaptive process involves the use of a cost function, which is a criterion for optimum performance of the filter, to feed an algorithm, which determines how to modify filter transfer function to minimize the cost on the next iteration. The most common cost function is the mean square of the error signal.

As the power of digital signal processors has increased, adaptive filters have become much more common and are now routinely used in devices such as mobile phones and other communication devices, camcorders and digital cameras, and medical monitoring equipment.

Example application

The recording of a heart beat (an ECG), may be corrupted by noise from the AC mains. The exact frequency of the power and its harmonics may vary from moment to moment.

One way to remove the noise is to filter the signal with a notch filter at the mains frequency and its vicinity, which could excessively degrade the quality of the ECG since the heart beat would also likely have frequency components in the rejected range.

To circumvent this potential loss of information, an adaptive filter could be used. The adaptive filter would take input both from the patient and from the mains and would thus be able to track the actual frequency of the noise as it fluctuates and subtract the noise from the recording. Such an adaptive technique generally allows for a filter with a smaller rejection range, which means, in this case, that the quality of the output signal is more accurate for medical purposes.[1]

Block diagram

The idea behind a closed loop adaptive filter is that a variable filter is adjusted until the error (the difference between the filter output and the desired signal) is minimized. The Least Mean Squares (LMS) filter and the Recursive Least Squares (RLS) filter are types of adaptive filter.

File:Adaptive Filter General.png
Adaptive Filter. k = sample number, x = reference input, X = set of recent values of x, d = desired input, W = set of filter coefficients, ε = error output, f = filter impulse response, * = convolution, Σ = summation, upper box=linear filter, lower box=adaption algorithm
File:Adaptive Filter Compact.png
Adaptive Filter, compact representation. k = sample number, x = reference input, d = desired input, ε = error output, f = filter impulse response, Σ = summation, box=linear filter and adaption algorithm.

There are two input signals to the adaptive filter: dk and xk which are sometimes called the primary input and the reference input respectively.[2]

 d_k which includes the desired signal plus undesired interference and
 x_k which includes the signals that are correlated to some of the undesired interference in  d_k .
k represents the discrete sample number.

The filter is controlled by a set of L+1 coefficients or weights.

\mathbf{W}_{k}=\left[w_{0k},\,w_{1k},\, ...,\,w_{Lk} \right]^{T} represents the set or vector of weights, which control the filter at sample time k.
where  w_{lk}  refers to the l'th weight at k'th time.
\mathbf{\Delta W}_{k} represents the change in the weights that occurs as a result of adjustments computed at sample time k.
These changes will be applied after sample time k and before they are used at sample time k+1.

The output is usually  \epsilon_k but it could be  y_k or it could even be the filter coefficients.[3](Widrow)

The input signals are defined as follows:

 d_k = g_k + u_k + v_k
 x_k = g_{k}^' + u_{k}^' + v_{k}^'
where:
g = the desired signal,
g' = a signal that is correlated with the desired signal g ,
u = an undesired signal that is added to g , but not correlated with g or g'
u' = a signal that is correlated with the undesired signal u ,but not correlated with g or g' ,
v = an undesired signal (typically random noise) not correlated with g , g' , u, u' or v' ,
v' = an undesired signal (typically random noise) not correlated with g , g' , u, u' or v.

The output signals are defined as follows:

 y_k= \hat{g}_k  +  \hat{u}_k  +  \hat{v}_k
 \epsilon_k = d_k-y_k  .
where:
 \hat{g} = the output of the filter if the input was only g' ,
 \hat{u} = the output of the filter if the input was only u' ,
 \hat{v} = the output of the filter if the input was only v' .

Tapped delay line FIR filter

If the variable filter has a tapped delay line Finite Impulse Response (FIR) structure, then the impulse response is equal to the filter coefficients. The output of the filter is given by

 y_k= \sum_{l=0}^L w_{lk} \ x_{(k-l)}    = \hat{g}_k  +  \hat{u}_k  +  \hat{v}_k
where  w_{lk}  refers to the l'th weight at k'th time.

Ideal case

In the ideal case  v \equiv 0,  v^' \equiv 0,  g^' \equiv 0   . All the undesired signals in  d_k are represented by  u_k .  \ x_k consists entirely of a signal correlated with the undesired signal in  u_k .

The output of the variable filter in the ideal case is

 y_k  = \hat{u}_k .

The error signal or cost function is the difference between  d_k and  y_k

 \epsilon_k = d_k-y_k = g_k+ u_k - \hat{u}_k . The desired signal gk passes through without being changed.

The error signal  \epsilon_k is minimized in the mean square sense when  [u_k - \hat{u}_k] is minimized. In other words,  \hat{u}_k is the best mean square estimate of  u_k . In the ideal case,  u_k = \hat{u}_k and  \epsilon_k =  g_k , and all that is left after the subtraction is  g which is the unchanged desired signal with all undesired signals removed.

Signal components in the reference input

In some situations, the reference input x_k includes components of the desired signal. This means g' ≠ 0.

Perfect cancelation of the undesired interference is not possible in the case, but improvement of the signal to interference ratio is possible. The output will be

 \epsilon_k = d_k-y_k = g_k - \hat{g}_k+ u_k - \hat{u}_k . The desired signal will be modified (usually decreased).

The output signal to interference ratio has a simple formula referred to as power inversion.

  \rho_{\mathsf{out}}(z) =  \frac{1}{ \rho_{\mathsf{ref}}(z)}    .
where
  \rho_{\mathsf{out}}(z) \ = output signal to interference ratio.
  \rho_{\mathsf{ref}}(z) \ = reference signal to interference ratio.
  z \ = frequency in the z-domain.

This formula means that the output signal to interference ratio at a particular frequency is the reciprocal of the reference signal to interference ratio.[4]

Example: A fast food restaurant has a drive-up window. Before getting to the window, customers place their order by speaking into a microphone. The microphone also picks up noise from the engine and the environment. This microphone provides the primary signal. The signal power from the customer’s voice and the noise power from the engine are equal. It is difficult for the employees in the restaurant to understand the customer. To reduce the amount of interference in the primary microphone, a second microphone is located where it is intended to pick up sounds from the engine. It also picks up the customer’s voice. This microphone is the source of the reference signal. In this case, the engine noise is 50 times more powerful than the customer’s voice. Once the canceler has converged, the primary signal to interference ratio will be improved from 1:1 to 50:1.

Adaptive Linear Combiner

File:Adaptive Linear Combiner General.png
Adaptive linear combiner showing the combiner and the adaption process. k = sample number, n=input variable index, x = reference inputs, d = desired input, W = set of filter coefficients, ε = error output, Σ = summation, upper box=linear combiner, lower box=adaption algorithm.
File:Adaptive Linear Combiner Compact.png
Adaptive linear combiner, compact representation. k = sample number, n=input variable index, x = reference inputs, d = desired input, ε = error output, Σ = summation.

The adaptive linear combiner (ALC) resembles the adaptive tapped delay line FIR filter except that there is no assumed relationship between the X values. If the X values were from the outputs of a tapped delay line, then the combination of tapped delay line and ALC would comprise an adaptive filter. However, the X values could be the values of an array of pixels. Or they could be the outputs of multiple tapped delay lines. The ALC finds use as an adaptive beam former for arrays of hydrophones or antennas.

 y_k= \sum_{l=0}^L w_{lk} \ x_{lk}
where  w_{lk}  refers to the l'th weight at k'th time.

LMS algorithm

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

If the variable filter has a tapped delay line FIR structure, then the LMS update algorithm is especially simple. Typically, after each sample, the coefficients of the FIR filter are adjusted as follows:[5](Widrow)

for  l = 0 \dots L
 w_{l,k+1} = w_{lk} + 2 \mu \ \epsilon_k \ x_{k-l}
μ is called the convergence factor.

The LMS algorithm does not require that the X values have any particular relationship; therefor it can be used to adapt a linear combiner as well as an FIR filter. In this case the update formula is written as:

 w_{l,k+1} = w_{lk} + 2 \mu \ \epsilon_k \ x_{lk}

The effect of the LMS algorithm is at each time, k, to make a small change in each weight. The direction of the change is such that it would decrease the error if it had been applied at time k. The magnitude of the change in each weight depends on μ, the associated X value and the error at time k. The weights making the largest contribution to the output,  y_k , are changed the most. If the error is zero, then there should be no change in the weights. If the associated value of X is zero, then changing the weight makes no difference, so it is not changed.

Convergence

μ controls how fast and how well the algorithm converges to the optimum filter coefficients. If μ is too large, the algorithm will not converge. If μ is too small the algorithm converges slowly and may not be able to track changing conditions. If μ is large but not too large to prevent convergence, the algorithm reaches steady state rapidly but continuously overshoots the optimum weight vector. Sometimes, μ is made large at first for rapid convergence and then decreased to minimize overshoot.

Widrow and Stearns state in 1985 that they have no knowledge of a proof that the LMS algorithm will converge in all cases.[6]

However under certain assumptions about stationarity and independence it can be shown that the algorithm will converge if

 0 < \mu < \frac {1} {\sigma^2}
where
\sigma^2 = \sum_{l=0}^L \sigma_l^2  = sum of all input power
\sigma_l is the RMS value of the l 'th input

In the case of the tapped delay line filter, each input has the same RMS value because they are simply the same values delayed. In this case the total power is

 \sigma^2 = (L+1) \sigma_0^2
where
\sigma_0 is the RMS value of x_k, the input stream.[6]

This leads to a normalized LMS algorithm:

 w_{l,k+1} = w_{lk} + \left ( \frac { 2 \mu_{\sigma} } {\sigma^2} \right )  \epsilon_k \ x_{k-l}    in which case the convergence criteria becomes:  0 < \mu_{\sigma} < 1 .

Applications of adaptive filters

Filter implementations

See also

Notes

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Widrow p 304
  3. Widrow p 212
  4. Widrow p 313
  5. Widrow p 100
  6. 6.0 6.1 Widrow p 103

References

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.