I would like to approximate a moving average filter with an IIR filter of much lower order than the tap-length of the moving average filter. Optimality shall refer to the L2 norm of the impulse response (up to changes in the total gain). Ideally, I'd also like to constrain the impulse response to be monotonic (i.e. no ripple), but I fear that this requirement along will already fully constrain the filter. If that is the case, I might be willing to take some ripple in turn for a sharper roll-off.
Answer
I can show you some low order IIR approximations to an FIR moving average filter. In the figure below you see 3 (infinite) impulse responses that approximate a moving average of length N=600. The filter orders are 1, 2, and 5, respectively, and they all approximate the desired response in a least squares sense. I used the equation error method to design those filters. Only the filter with order 1 is monotonic, but it's also the worst filter in terms of the L2 error.
It's hard to find good solutions for higher order IIR filters because the problem is highly non-linear and you tend to get stuck in a local minimum. I haven't been able to find any useful solutions for filter orders higher than 5.
I should add that I just used the equation error method and Prony's method. With Prony's method (not shown in the plot), if you increase the order of the numerator M (and leave the denominator order small), you can make the first M+1 samples of the designed impulse response equal the first M+1 samples of the desired impulse response, after which the response decreases exponentially. But these filters have a higher L2 approximation error than the ones shown in the figure.
No comments:
Post a Comment