# All pass filter design for group delay compensation

I've designed an IIR bandpass elliptic filter in Scilab with the following parameters.

1. Sampling Frequency = 25000 Hz
2. Lower cutoff frequency = 100 Hz
3. Upper cutoff frequency = 150 Hz
4. Pass band ripple = stop band ripple = 0.001 ~ 0.005 dB

The transfer function comes out to be

(-0.0006050 + 0.0024134z - 0.0030118z^2 + 1.075D-18z^3 + 0.0030118z^4 - 0.0024134z^5 + 0.0006050z^6) / (0.9600937 - 5.7967985z + 14.586174z^2 - 19.578664z^3 + 14.785532z^4 - 5.9563371z^5 + z^6)

I need to make the group delay in the pass-band, i.e. 100 Hz - 150 Hz for which I'm looking at using an IIR all pass filter. There a function in Matlab called iirgrpdelay which accepts a vector of group delays corresponding to a range of frequencies between 2 frequency values (the pass band range) & generates an all-pass filter. The vector contains the delays needed for the frequency range in order to make it linear. An example for this can be found here.

This function isn't available in Scilab or Octave & I'm not sure how to design such an all pass filter which accepts a vector of the required group delays as input. What would be the technique used for this?

• If you want linear phase, why don't you want to use an FIR filter? Commented May 27, 2018 at 19:45
• Matt, 1st of all, am I glad to see your reply! I've been going through your thesis for a while now & I must say, it's exceptional! The reason why I can't use an FIR filter is that I need low group delay (1 - 2 cycles in the pass band frequency range) but my transition bandwidth is small as well (10 Hz). I've tried Windowed Sinc filters & the group delay is just too much for this. I only need linear phase in the small pass band (with respect to the sampling frequency) & felt that IIR would be the better option. Commented May 28, 2018 at 3:42
• Here are links to my other questions, all related to the same topic - dsp.stackexchange.com/questions/49496/… ; dsp.stackexchange.com/questions/49491/iir-filter-group-delay ; dsp.stackexchange.com/questions/49303/… Commented May 28, 2018 at 3:44
• Judging from your other questions, I don't think that you will be able to filter out the desired component with low group delay if the disturbance is so close in frequency. If I understand correctly, you have a spectral estimation problem, and you should also treat is as such. Commented May 28, 2018 at 18:20