Basic IIR Filtering


#1

Hello all,

I’ve been doing some experimentation with some very basic IIR filtering.

I am creating sinusoidal float sources with a sampling rate of 32Khz,
connecting them through the gr.iif_filter_ffd() block, and then output
the result to an audio sink and a spectrum scope. For my taps, I am
designing them in MATLAB, negating them appropriately, and entering them
into the GNURadio script.

I am finding that if I use a tap vector length of greater than 4 the
code stops working. Instead of a tone I get no noise.

Has anyone experimented with IIR filters of a longer length? The only
other IIR code I have seen is in the emph/demph filters, but that is a
low order filter.

Thanks,
~Chris Roberts~
MS Student, Case Western Reserve University


#2

I am finding that if I use a tap vector length of greater than 4 the
code stops working. Instead of a tone I get no noise.

You may be getting instabilities, which is common with high order IIR
filters. However, Just to make sure the problem isn’t the code, try
making a 2 tap filter and instantiate it as a 4 tap, setting the other
taps to 0 or 1 as appropriate.

If you find that instability is the problem, you are better off breaking
your filter into cascaded biquad sections. Matlab should be able to do
that for you.

Matt