Wiener Filter¶
Context¶
Given the following system:
where
- \(x(n) \in \mathbb{C}\) is the input sample
- \(\hat{ \mathbf{h} } = \left[ \hat{h}_{-\infty}, ... , \hat{h}_{-1}, \hat{h}_0, \hat{h}_{1}, ..., \hat{h}_{\infty} \right]\) is a linear filter
- \(y(n) \in \mathbb{C}\) is the output of the unknown system
- \(v(n) \in \mathbb{C}\) is the interference added to \(y(n)\)
- \(\hat{y}(n) = \sum_{i=-\infty}^{\infty}(\hat{h_i}^*x(n-i)) \in \mathbb{C}\) is the estimated output of the unknown system
- \(\left\{\cdot\right\}^*\) is conjugate
Note that only \(x(n)\), \(\hat{y}(n)\), \(d(n)\), and \(e(n)\) are observable, while \(y(n)\), and \(v(n)\) are not directly observable.
We want to design \(\hat{ \mathbf{h} }\) so that its output, \(\hat{y}(n)\), is statistically a good estimate of \(d(n)\).
Problem¶
Assuming that
- \(x(n)\) is wide-sense stationary,
- \(d(n)\) is wide-sense stationary,
- \(x(n)\) and \(d(n)\) are jointly wide-sense stationary,
- We use the mean square error (MSE) as the cost function to evaluate whether \(\hat{y}(n)\) is a good estimate of \(d(n)\),
How do we choose \(\hat{ \mathbf{h} }\) to minimize the MSE between \(\hat{y}(n)\) and \(d(n)\)?
Solution¶
To minimize the MSE subject to \(\hat{ \mathbf{h} }\), we need to solve the following equation:
Or equivalently,
The equation above can be written as
where
- \(\phi_{xd}(i)\) is the cross-correlation of \(x(n)\) and \(d(n)\),
- \(\phi_{xx}(i)\) is the autocorrelation of \(x(n)\)
So the optimal \(\hat{ \mathbf{h} }\) should satisfy the following equation:
In the case of \(\hat{ \mathbf{h} }\) being an \(p\)-tap FIR filter, the equation can be written in the matrix form:
and the optimal \(\mathbf{ \hat{h} }\) would be