Wikipedia - Wiener Deconvolution shows this formula: $$ \ G(f) = \frac{H^*(f)S(f)}{ |H(f)|^2 S(f) + N(f) } $$
Could someone explain the derivation?
Specifically, where does the squaring ($|H(f)|^2$) come from?
Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. It only takes a minute to sign up.
Sign up to join this communityWikipedia - Wiener Deconvolution shows this formula: $$ \ G(f) = \frac{H^*(f)S(f)}{ |H(f)|^2 S(f) + N(f) } $$
Could someone explain the derivation?
Specifically, where does the squaring ($|H(f)|^2$) come from?
The Wiener Filter can also be derived by another (Easier) way.
Let's assume the following model:
$$ y = h \ast x + n $$
Namely the data is a result of a linear combination (Convolution) of $ x $ with Additive Noise.
If we assume the noise model is Gaussian and the input data ($\boldsymbol{x}$) is also formed by a Gaussian distribution then we should try to minimize (MAP Estimator):
$$ \hat{x} = \frac{1}{2 {\sigma}_{n}^{2}} \left\| h \ast x - y \right\|_{2}^{2} + \frac{1}{ 2 {\sigma}_{x}^{2} } \left\| x \right\|_{2}^{2} $$
Since the convolution is Linear Operation and assuming we in finite dimension then it can be rewritten as:
$$ \hat{x} = \frac{1}{2} \left\| H x - y \right\|_{2}^{2} + \frac{{\sigma}_{n}^{2}}{ 2 {\sigma}_{x}^{2} } \left\| x \right\|_{2}^{2} $$
This is just a Tikhonov Regulaized Least Squares with the solution given by:
$$ \hat{x} = \left( {H}^{T} H + \frac{{\sigma}_{n}^{2}}{{\sigma}_{x}^{2}} I \right)^{-1} {H}^{T} y $$
Now, if we use the discrete form of the circular convolution then $ H $ is a circulant matrix which means all can be solved in the Frequency Domain which results in the same equation as above with a simple change:
$$ \ G(f) = \frac{{H}^{*} \left( f \right) S \left( f \right)}{ {\left| H \left( f \right) \right|}^{2} S \left( f \right) + N \left( f \right)} = \frac{{H}^{*} \left( f \right)}{ {\left| H \left( f \right) \right|}^{2} + \frac{N \left( f \right)}{S \left( f \right)}} $$
As Jan pointed out, the wikipedia article very lucidly explains the derivation of the weiner filter. The goal of the weiner filter is to reduce the mean of the error in prediction. Hence, you would do the same. Write down the estimate of the error and then differentiate it with respect to G(f) to obtain the optimum G(f)