balancing IIR filter (after adding extra registers)

},

m

ue

e

er

You're mixing up samples and clock cycles.

Reply to
davew
Loading thread data ...

Which is why, in my original recommendation, I suggested that the filter be something like

y{0} = A * (x{-3} + x{-4} + x{-5}) + B * y{-3}

(Actually I left out the extra delay in the forward path in the equation, but mentioned it in the text -- and you may need still more).

The feedforward path then has deep nulls right at the points where the feedback path tends to blow up, and the overall frequency response looks pretty good.

I'm still not sure that -- if you're going to have a CIC filter in there anyway -- it isn't better to just do CIC -> decimate -> filter -> reconstruct if necessary. But, the OP hasn't chimed in with much real information pertinent to my suggestions, so we're deep into hypothetical territory anyway.

--
What if there were no hypothetical questions?

Tim Wescott, Communications, Control, Circuits & Software
http://www.wescottdesign.com
Reply to
Tim Wescott

I haven't proved it to myself yet, but it seems that the idea of making the "multiple IIR filters at a lower rate," i.e. your original equation could be followed by a short FIR filter and end up with the same effect as an IIR filter with just more latency. For example the equation:

y{0} = A * x{-3} + B * y{-3}

Could be followed by a 3-term FIR filter to reconstruct the original IIR (A and B are not the original A and B, though).

The usual reason to use IIR rather than FIR filters is that you use a lot fewer storage elements (both for intermediate results and for coefficients. A FIR filter with enough terms to satisfy the required resolution could emulate an IIR filter. How many terms depends on the resolution of the data and the values of A and B. Smaller A would result in shorter FIR filters. Once you dump the IIR approach any amount of pipelining can be added, as long as you have the latency budget for it.

The last time I used an IIR filter was in a microprocessor-based LORAN receiver, and that was just a matter of not having enough storage for a FIR filter of reasonable length.

-- Gabor

Reply to
Gabor

Well, mostly, with the exception of nit-picky little details like quantization noise.

The IIR portion of the filter will have three poles, at the roots of z^3 - B = 0; one of these is the desired one, the two will generate an unwanted peak at Fs/3. Pairing that up with a FIR filter with zeros to match the unwanted poles will give you the effect -- assuming you have enough numerical precision -- of the original IIR filter you wanted.

But: the OP was just asking for a cruddy old 1st-order lowpass in the first place. That's hardly ever what you really want in a signal processing problem, so the IIR portion followed by a four-stage CIC filter would be loads easier to compute (no multiplies, just an addition, some delays, and a subtraction), that you probably wouldn't want to go beyond that.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
Reply to
Tim Wescott

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.