Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Announcements
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.

How to perform IIR bandpass filter?

sisyphuscafe
Beginner
484 Views
I have a digital sample signal that I would like to filter into multiple frequency bands. I've been able to implement a passable result using the FIR filters, but am struggling a bit w/the IIR filters.

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.

Thanks.
0 Kudos
1 Reply
Vladimir_Dudnik
Employee
484 Views

Hello,

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.

Regards,
Vladimir

0 Kudos
Reply