<< Chapter < Page | Chapter >> Page > |
The weiner-filter, ${W}_{\mathrm{opt}}=R^{(-1)}P$ , is ideal for many applications. But several issues must be addressed to use it in practice.
In practice one usually won't know exactly the statistics of ${x}_{k}$ and ${d}_{k}$ (i.e. $R$ and $P$ ) needed to compute the Weiner filter.
How do we surmount this problem?
Estimate the statistics $$({r}_{\mathrm{xx}}(l))\approx \frac{1}{N}\sum_{k=0}^{N-1} {x}_{k}{x}_{k+l}$$ $$({r}_{\mathrm{xd}}(l))\approx \frac{1}{N}\sum_{k=0}^{N-1} {d}_{k}{x}_{k-l}$$ then solve $({W}_{\mathrm{opt}})=(R^{(-1)})=(P)$
In many applications, the statistics of ${x}_{k}$ , ${d}_{k}$ vary slowly with time.
How does one develop an adaptive system which tracks these changes over time to keep the system nearoptimal at all times?
Use short-time windowed estiamtes of the correlation functions.
How can $({r}_{\mathrm{xx}}^{k}(l))$ be computed efficiently?
Recursively! $${r}_{\mathrm{xx}}^{k}(l)={r}_{\mathrm{xx}}^{k-1}(l)+{x}_{k}{x}_{k-l}-{x}_{k-N}{x}_{k-N-l}$$ This is critically stable, so people usually do $$(1-)({r}_{\mathrm{xx}}(l)^{k}={r}_{\mathrm{xx}}^{k-1}(l)+{x}_{k}{x}_{k-l})$$
how does one choose N?
Larger $N$ more accurate estimates of the correlation valuesbetter $({W}_{\mathrm{opt}})$ . However, larger $N$ leads to slower adaptation.
As presented here, an adaptive filter requires computing a matrix inverse at each sample. Actually, since the matrix $R$ is Toeplitz, the linear system of equations can be sovled with $O(M^{2})$ computations using Levinson's algorithm, where $M$ is the filter length. However, in many applications this may be too expensive, especiallysince computing the filter output itself requires $O(M)$ computations. There are two main approaches to resolving the computation problem
Notification Switch
Would you like to follow the 'Fundamentals of signal processing' conversation and receive update notifications?