Description
The goal of the Wiener filter is to filter out noise that has corrupted a signal. It is based on a statistical approach.Typical filters are designed for a desired frequency response. However, the design of the Wiener filter takes a different approach. One is assumed to have knowledge of the spectral properties of the original signal and the noise, and one seeks the LTI filter whose output would come as close to the original signal as possible. Wiener filters are characterized by the following:
- Assumption: signal and (additive) noise are stationary linear stochastic processes with known spectral characteristics or known autocorrelation and cross-correlation
- Requirement: the filter must be physically realizable, i.e. causal (this requirement can be dropped, resulting in a non-causal solution)
- Performance criterion: minimum mean-square error (MMSE)
Model/problem setup
The input to the Wiener filter is assumed to be a signal, s(t), corrupted by additive noise, n(t). The output, , is calculated by means of a filter, g(t), using the following convolution:- s(t) is the original signal (to be estimated)
- n(t) is the noise
- is the estimated signal (which we hope will equal s(t))
- g(t) is the Wiener filter's impulse response
- α is the delay of the wiener filter (since it is causal)
- s(t + α) is the desired output of the filter
- e(t) is the error
- If α > 0 then the problem is that of prediction (error is reduced when is similar to a later value of s)
- If α = 0 then the problem is that of filtering (error is reduced when is similar to s(t))
- If α < 0 then the problem is that of smoothing (error is reduced when is similar to an earlier value of s)
Taking the expected value of the squared error results in
- x(t) = s(t) + n(t) is the observed signal
- is the autocorrelation function of s(t)
- is the autocorrelation function of x(t)
- is the cross-correlation function of x(t) and s(t)
The goal is to then minimize E(e2) by finding the optimal g(t).
Wiener filter solutions
The Wiener filter problem has solutions for three possible cases: one where a non-causal filter is acceptable (requiring an infinite amount of both past and future data), the case where a causal filter is desired (using an infinite amount of past data), and the FIR case where a finite amount of past data is used. The first case is simple to solve but is not suited for real-time applications. Wiener's main accomplishment was solving the case where the causality requirement is in effect, and in an appendix of Wiener's book Levinson gave the FIR solution.Noncausal solution
Causal solution
- H(s) consists of the causal part of (that is, that part of this fraction having a positive time solution under the inverse Laplace transform)
- is the causal component of Sx(s) (i.e. the inverse Laplace transform of is non-zero only for )
- is the anti-causal component of Sx(s) (i.e. the inverse Laplace transform of is non-zero only for negative t)
1. Start with the spectrum Sx(s) in rational form and factor it into causal and anti-causal components:
2. Divide Sx,s(s)eαs by and write out the result as a partial fraction expansion.
3. Select only those terms in this expansion having poles in the LHP. Call these terms H(s).
4. Divide H(s) by . The result is the desired filter transfer function G(s)
FIR Wiener filter for discrete series
In order to derive the coefficients of the Wiener filter, we consider a signal w[n] being fed to a Wiener filter of order N and with coefficients {ai}, . The output of the filter is denoted x[n] which is given by the expression- T * A = V
The FIR Wiener filter is related to the Least mean squares filter, but minimizing its error criterion does not rely on cross-correlations or auto-correlations. Its solution converges to the Wiener filter solution.
No comments:
Post a Comment