In mathematics, Wiener deconvolution is an application of the Wiener filter to the noise problems inherent in deconvolution. It works in the frequency domain, attempting to minimize the impact of deconvolved noise at frequencies which have a poor signal-to-noise ratio.
The Wiener deconvolution method has widespread use in image deconvolution applications, as the frequency spectrum of most visual images is fairly well behaved and may be estimated easily.
Wiener deconvolution is named after Norbert Wiener.
Given a system:
y(t)=(h*x)(t)+n(t)
where
*
x(t)
t
h(t)
n(t)
x(t)
y(t)
Our goal is to find some
g(t)
x(t)
\hat{x}(t)=(g*y)(t)
where
\hat{x}(t)
x(t)
\epsilon(t)=E\left|x(t)-\hat{x}(t)\right|2
with
E
g(t)
G(f)=
H*(f)S(f) | |
|H(f)|2S(f)+N(f) |
where:
G(f)
H(f)
g(t)
h(t)
S(f)=E|X(f)|2
x(t)
N(f)=E|V(f)|2
n(t)
X(f)
Y(f)
V(f)
x(t)
y(t)
n(t)
{}*
The filtering operation may either be carried out in the time-domain, as above, or in the frequency domain:
\hat{X}(f)=G(f)Y(f)
and then performing an inverse Fourier transform on
\hat{X}(f)
\hat{x}(t)
Note that in the case of images, the arguments
t
f
The operation of the Wiener filter becomes apparent when the filter equation above is rewritten:
\begin{align} G(f)&=
1 | |
H(f) |
\left[
1 | |
1+1/(|H(f)|2SNR(f)) |
\right] \end{align}
Here,
1/H(f)
SNR(f)=S(f)/N(f)
|H(f)|2SNR(f)
The Wiener filter equation above requires us to know the spectral content of a typical image, and also that of the noise. Often, we do not have access to these exact quantities, but we may be in a situation where good estimates can be made. For instance, in the case of photographic images, the signal (the original image) typically has strong low frequencies and weak high frequencies, while in many cases the noise content will be relatively flat with frequency.
As mentioned above, we want to produce an estimate of the original signal that minimizes the mean square error, which may be expressed:
\epsilon(f)=E\left|X(f)-\hat{X}(f)\right|2
The equivalence to the previous definition of
\epsilon
If we substitute in the expression for
\hat{X}(f)
\begin{align} \epsilon(f)&=E\left|X(f)-G(f)Y(f)\right|2\\ &=E\left|X(f)-G(f)\left[H(f)X(f)+V(f)\right]\right|2\\ &=E|\left[1-G(f)H(f)\right]X(f)-G(f)V(f)|2 \end{align}
If we expand the quadratic, we get the following:
\begin{align}\epsilon(f)&=[1-G(f)H(f)][1-G(f)H(f)]*E|X(f)|2\\ &{}-[1-G(f)H(f)]G*(f)E\{X(f)V*(f)\}\\ &{}-G(f)[1-G(f)H(f)]*E\{V(f)X*(f)\}\\ &{}+G(f)G*(f)E|V(f)|2 \end{align}
However, we are assuming that the noise is independent of the signal, therefore:
E\{X(f)V*(f)\}=E\{V(f)X*(f)\}=0
Substituting the power spectral densities
S(f)
N(f)
\epsilon(f)=[1-G(f)H(f)][1-G(f)H(f)]*S(f)+G(f)G*(f)N(f)
To find the minimum error value, we calculate the Wirtinger derivative with respect to
G(f)
d\epsilon(f) | |
dG(f) |
=0 ⇒ G*(f)N(f)-H(f)[1-G(f)H(f)]*S(f)=0
This final equality can be rearranged to give the Wiener filter.