Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| kb:wiener_filtering [2021-05-05 01:43] – [Causal Wiener filter] jaeyoung | kb:wiener_filtering [2024-04-30 04:03] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 13: | Line 13: | ||
| $$ \hat{y}[n] = (h \ast x)[n] $$ | $$ \hat{y}[n] = (h \ast x)[n] $$ | ||
| - | This FIR filter $h[\dot]$ satisfies: | + | This FIR filter $h[\cdot]$ satisfies: |
| $$ (h \ast C_{xx})[m] = C_{yx}[m], \forall m $$ | $$ (h \ast C_{xx})[m] = C_{yx}[m], \forall m $$ | ||
| Line 19: | Line 19: | ||
| In the frequency domain, this can be rewritten as: | In the frequency domain, this can be rewritten as: | ||
| - | $$ H(e^{j\Omega}) = \frac{D_{yx}(e^{j\Omega})}{D_{xx}(e^{j\Omega}) $$ | + | $$ H(e^{j\Omega}) = \frac{D_{yx}(e^{j\Omega})}{D_{xx}(e^{j\Omega})} $$ |
| This is the frequency response of the unconstrainted Wiener filter - that is, $x[n]$ for all $n$ can be used. | This is the frequency response of the unconstrainted Wiener filter - that is, $x[n]$ for all $n$ can be used. | ||
| Line 29: | Line 29: | ||
| ===== Causal Wiener filter ===== | ===== Causal Wiener filter ===== | ||
| - | A causal Wiener filter allows us to predict future values of a random process $x[\dot]$ given past values. | + | A causal Wiener filter allows us to predict future values of a random process $y[\cdot]$ given past values |
| - | That is, given $x[n], x[n - 1], \dots $, we can estimate $x[n+1]$. | + | To do this, we can create a model for $x[\cdot]$ that states that it is a filtered version of a white random process: |
| - | + | ||
| - | To do this, we can create a model for $x[\dot]$ that states that it is a filtered version of a white random process: | + | |
| $$ x[n] = (f \ast w)[n] $$ | $$ x[n] = (f \ast w)[n] $$ | ||
| - | Here, $w[\dot]$ is a white random process with unit intensity. | + | Here, $w[\cdot]$ is a white random process with unit intensity, and $f[\cdot]$ is the unit sample response of a stable, causal system whose inverse is also stable and causal. |
| Given this model, we know that: | Given this model, we know that: | ||
| Line 51: | Line 49: | ||
| The transfer function of the causal Wiener filter is: | The transfer function of the causal Wiener filter is: | ||
| - | $$ H(z) = \frac{1}{F(z)} \left[ \frac{D_{yx}(z)}{F(z^{-1})} \right]_+ | + | $$ H(z) = \frac{1}{F(z)} \left[ \frac{D_{yx}(z)}{F(z^{-1})} \right]_+ $$ |
| where the plus sign $+$ in the subscript denotes that only the causal components of the transfer function are included. In other words, any positive powers of $z$ inside the brackets are discarded. | where the plus sign $+$ in the subscript denotes that only the causal components of the transfer function are included. In other words, any positive powers of $z$ inside the brackets are discarded. | ||
| + | In the special case of using past values of a process $x[n]$ to predict a future value $x[n+m]$: | ||
| + | |||
| + | $$ H(z) = \frac{1}{F(z)} \left[ \frac{z^m F(z) F(z^{-1})}{F(z^{-1})} \right]_+ = \frac{1}{F(z)} \left[ z^m F(z) \right]_+ $$ | ||
| ==== MMSE of causal Wiener filter ==== | ==== MMSE of causal Wiener filter ==== | ||
| $$ MMSE = \frac{1}{2\pi} \int_{-\pi}^{\pi} \left( D_{yy}(e^{j\Omega}) - H(e^{j\Omega})D_{xy}(e^{j\Omega}) - H(e^{-j\Omega})D_{yx}(e^{j\Omega}) + |H(e^{j\Omega})|^2 D_{xx}(e^{j\Omega}) \right) d\Omega $$ | $$ MMSE = \frac{1}{2\pi} \int_{-\pi}^{\pi} \left( D_{yy}(e^{j\Omega}) - H(e^{j\Omega})D_{xy}(e^{j\Omega}) - H(e^{-j\Omega})D_{yx}(e^{j\Omega}) + |H(e^{j\Omega})|^2 D_{xx}(e^{j\Omega}) \right) d\Omega $$ | ||