I have an N-tap direct form complex FIR filter with known coefficients [c0 c1 .. cn]
. I want to find the coefficients of its equalizer filter which when cascaded with the original filter gives constant magnitude response for all frequencies. How can I do that? Thanks.
1 Answer
Assuming that you also want to equalize the filter's phase response (not only its magnitude response), you need an equalizer with a transfer function $E(z)$ that is the inverse of the FIR filter's transfer function $H(z)$:
$$E(z)=\frac{1}{H(z)}=\frac{1}{c_0+c_1z^{-1}+\ldots+c_{N-1}z^{-(N-1)}}\tag{1}$$
This is an all-pole filter which can be implemented by the following recursion:
$$y[n]=\frac{1}{c_0}\left(x[n]-c_1y[n-1]-\ldots-c_{N-1}y[n-N+1]\right)\tag{2}$$
where $x[n]$ is the input sequence, and $y[n]$ is the output sequence.
The problem with implementing Eq. $(2)$ is that the corresponding filter can be unstable. This depends on the locations of the zeros of the FIR filter's transfer function $H(z)$. If $H(z)$ has zeros on or outside the unit circle of the complex plane (i.e., zeros with magnitudes equal to or greater than $1$), then $E(z)$ has poles at those locations, and poles on or outside the unit circle cause instability of the equalizer. This means that if $H(z)$ has zeros with magnitude equal to or greater than $1$ (i.e. if $H(z)$ is not strictly minimum phase), then there exists no causal and stable equalizer.
In practice you can design an approximate equalization filter by choosing the filter coefficients of the equalizer such that the error
$$\epsilon=\sum_i\left|H(e^{j\omega_i})E(e^{j\omega_i})-e^{-j\omega_i D}\right|^2$$
is minimized, where $D$ is some appropriately chosen delay, and the sum is computed on a dense frequency grid. If the equalizer $E(e^{j\omega})$ is chosen to be an FIR filter, then the resulting optimization problem can be solved by solving a set of linear equations.
-
$\begingroup$ is the solution to this equalizer design problem least-squares? $\endgroup$– panthyonCommented Nov 8, 2015 at 2:37
-
1$\begingroup$ @panthyon: Yes, minimizing $\epsilon$ results in a least squares solution, i.e. the sum of squared errors (i.e. the average squared error) is minimized, hence also "minimum mean squared error". $\endgroup$– Matt L.Commented Nov 8, 2015 at 9:54