I have a adaptive FIR filter of length 84 with magnitude response , which is close to low pass. (Please see the attached figure). I need to design filter that has a magnitude response opposite of the FIR filter(to undo its effect),as set of upto 5 buquads. If i directly design the FIR using second order sections, there will be more than 5 biquad sections. I have following approach in mind:

Smooth the magnitude response of FIR filter( Don't need the exact ripple behavior)
Inverse FFT the magnitude response and try to form cascaded sos from it ( e.g using tf2sos in Matlab)

I have following questions

  1. Is my approach outlined correct? any other suggestions?

  2. How do I smooth the magnitude response? Probably a attack release kind of filter just to track its envelope? or if i just use Welch kind of power spectral density estimate and then take its square root, would that be correct?

  3. How about decimating the spectrum after smoothing, and then converting back to time domain and splitting to cascaded sos?

Basically, what i need is a technique that allows creating variable number of cascaded sos from given Filter magnitude response. Thanks

  • $\begingroup$ Do you want to equalize to original FIR by another FIR filter or by an IIR filter? Since the original filter is adaptive, do you also need to adapt the equalization filter in real-time? $\endgroup$ – Matt L. Apr 17 '15 at 8:22
  • $\begingroup$ @MattL. It does not matter whether the equalization filter is FIR or IIR. Once the original filter has adapted, i lock onto it and so will the equalization filter, so that no real-time constraints are there, it can work offline. $\endgroup$ – user915783 Apr 17 '15 at 15:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.