I've designed an IIR bandpass elliptic filter in Scilab with the following parameters.
- Sampling Frequency = 25000 Hz
- Lower cutoff frequency = 100 Hz
- Upper cutoff frequency = 150 Hz
- 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?