Wiener filter
From Wikipedia, the free encyclopedia
|
In signal processing, the Wiener filter is a filter proposed by Norbert Wiener during the 1940s and published in 1949. Its purpose is to reduce the amount of noise present in a signal by comparison with an estimation of the desired noiseless signal.
DescriptionThe 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. The Wiener filter approaches filtering from a different angle. 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:
This filter is frequently used in the process of deconvolution; for this application, see Wiener deconvolution. Model/problem setupThe input to the Wiener filter is assumed to be a signal, Failed to parse (Missing texvc executable; please see math/README to configure.): s(t) , corrupted by additive noise, Failed to parse (Missing texvc executable; please see math/README to configure.): n(t) . The output, Failed to parse (Missing texvc executable; please see math/README to configure.): \hat{s}(t) , is calculated by means of a filter, Failed to parse (Missing texvc executable; please see math/README to configure.): g(t) , using the following convolution:
is the original signal (to be estimated)
is the noise
is the estimated signal (which we hope will equal Failed to parse (Missing texvc executable; please see math/README to configure.): s(t) )
is the Wiener filter The error is Failed to parse (Missing texvc executable; please see math/README to configure.): e(t) = s(t + \alpha) - \hat{s}(t)
and the squared error is Failed to parse (Missing texvc executable; please see math/README to configure.): e^2(t) = s^2(t + \alpha) - 2s(t + \alpha)\hat{s}(t) + \hat{s}^2(t)
where
is the desired output of the filter
is the error Depending on the value of α the problem name can be changed:
then the problem is that of prediction
then the problem is that of filtering
then the problem is that of smoothing Writing Failed to parse (Missing texvc executable; please see math/README to configure.): \hat{s}(t) as a convolution integral: Failed to parse (Missing texvc executable; please see math/README to configure.): \hat{s}(t) = \int_{-\infty}^{\infty}{g(\tau)\left[s(t - \tau) + n(t - \tau)\right]\,d\tau} . Taking the expected value of the squared error results in
where
is the observed signal
is the autocorrelation function of Failed to parse (Missing texvc executable; please see math/README to configure.): s(t)
is the autocorrelation function of Failed to parse (Missing texvc executable; please see math/README to configure.): x(t)
is the cross-correlation function of Failed to parse (Missing texvc executable; please see math/README to configure.): x(t) and Failed to parse (Missing texvc executable; please see math/README to configure.): s(t)
and the noise Failed to parse (Missing texvc executable; please see math/README to configure.): n(t)
are uncorrelated (i.e., the cross-correlation Failed to parse (Missing texvc executable; please see math/README to configure.): \,R_{sn}\,
is zero) then note the following
For most applications, the assumption of uncorrelated signal and noise is reasonable because the source of the noise (e.g. sensor noise or quantization noise) do not depend upon the signal itself. The goal is to then minimize Failed to parse (Missing texvc executable; please see math/README to configure.): E(e^2) by finding the optimal Failed to parse (Missing texvc executable; please see math/README to configure.): g(t) . Stationary solutionThe Wiener filter has solutions for two possible cases: the case where a causal filter is desired, and the one where a non-causal filter is acceptable. The latter is simpler but is not suited for real-time applications. Wiener's main accomplishment was solving the case where the causality requirement is in effect. Noncausal solution
is optimal then the MMSE equation reduces to Failed to parse (Missing texvc executable; please see math/README to configure.): E(e^2) = R_s(0) - \int_{-\infty}^{\infty}{g(\tau)R_{x,s}(\tau + \alpha)\,d\tau}
is the inverse two-sided Laplace transform of Failed to parse (Missing texvc executable; please see math/README to configure.): G(s) . Causal solution
consists of the causal part of Failed to parse (Missing texvc executable; please see math/README to configure.): \frac{S_{x,s}(s)e^{\alpha s}}{S_x^{-}(s)}
(that is, that part of this fraction having a positive time solution under the inverse Laplace transform)
is the causal component of Failed to parse (Missing texvc executable; please see math/README to configure.): S_x(s)
(i.e. the inverse Laplace transform of Failed to parse (Missing texvc executable; please see math/README to configure.): S_x^{+}(s)
is non-zero only for Failed to parse (Missing texvc executable; please see math/README to configure.): t\ge 0
)
is the anti-causal component of Failed to parse (Missing texvc executable; please see math/README to configure.): S_x(s)
(i.e. the inverse Laplace transform of Failed to parse (Missing texvc executable; please see math/README to configure.): S_x^{-}(s)
is non-zero only for negative t)
This general formula is complicated and deserves a more detailed explanation. To write down the solution Failed to parse (Missing texvc executable; please see math/README to configure.): G(s) in a specific case, one should follow these steps (see LLoyd R. Welch: Wiener Hopf Theory): 1. Start with the spectrum Failed to parse (Missing texvc executable; please see math/README to configure.): S_x(s) in rational form and factor it into causal and anti-causal components:
where Failed to parse (Missing texvc executable; please see math/README to configure.): S^{+}
contains all the zeros and poles in the left hand plane (LHP) and Failed to parse (Missing texvc executable; please see math/README to configure.): S^{-}
contains the zeroes and poles in the RHP.
2. Divide Failed to parse (Missing texvc executable; please see math/README to configure.): S_{x,s}(s)e^{\alpha s}
by Failed to parse (Missing texvc executable; please see math/README to configure.): {S_x^{-}(s)}
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 Failed to parse (Missing texvc executable; please see math/README to configure.): H(s) . 4. Divide Failed to parse (Missing texvc executable; please see math/README to configure.): H(s)
by Failed to parse (Missing texvc executable; please see math/README to configure.): S_x^{+}(s)
. The result is the desired filter transfer function Failed to parse (Missing texvc executable; please see math/README to configure.): G(s) FIR Wiener filter for discrete seriesImage:Wiener-block.jpg
Block diagram view of the FIR Wiener filter for discrete series. An input signal w[n] is convolved with the Wiener filter g[n] and the result is compared to a reference signal s[n] to obtain the filtering error e[n].
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 Failed to parse (Missing texvc executable; please see math/README to configure.): \{a_i\} , Failed to parse (Missing texvc executable; please see math/README to configure.): i=0,\ldots, N . The output of the filter is denoted x[n] which is given by the expression
denote the expectation operator. In the general case, the coefficients Failed to parse (Missing texvc executable; please see math/README to configure.): a_i may be complex and may be derived for the case where w[n] and s[n] are complex as well. For simplicity, we will only consider the case where all these quantities are real. The mean square error may be rewritten as:
which minimizes the expression above, let us now calculate its derivative w.r.t Failed to parse (Missing texvc executable; please see math/README to configure.): a_i
known respectively as the autocorrelation of w[n] and the cross-correlation between w[n] and s[n] defined as follows
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. See also
References
|


