The approach I'm using is to get a block of the signal (length of block is a power of 2), perform a forward FFT, filter the block, saving the result in a file.
The IPP library provides methods to generate low-pass (ippsIIRGenLowpass) and high-pass (ippsIIRGenHighpass) filter coefficients (taps). I don't see a method for generating band-pass filter coefficients, however.
So, I've tried calling the filter method twice, first with the low-pass taps, setting the taps in the state buffer w/ippsIIRSetTaps, then passing the resulting vector to filter method again after setting the high-pass taps in the state buffer. The result is not satisfactory.
Any tips on how best to use the library would be most appreciated.
there is comment from our expert:
IIR functions work algorithmically correct and produce the same result (as they use the same approach direct form 2 delay line) as MatLab. I can guess thatcustomer doesnt re-init delay line for the second stage of IIR filtering. Also he cant use the same coefficients for frequency domain (after FFT) as for the time-domain recommend to double check ifhe use the right approach.