DSPRelated.com
Forums

FIR or IIR?

Started by "kian.zarrin" December 17, 2007
Hallow, please help me about choosing FIR or IIR filters
I have a DSP/FPGA system to process signal and I want to design a
filter to filter my input signal. I need to know which one is better
for me, FIR filter or IIR filter. For my application I need to meet
all the requirements below:
1) Low ripple
2) Linear Phase response
4) Sharpness: to block noise
5) Complexity (inherent group phase delay of the filter is not
important but it is important that my DSP platform spends few time to
process the filter and find enough time to demodulate the signal)
->group delay is not so critical for me

Advantages of FIR filters:
2. Can be implemented with fast convolution
4. Relatively insensitive to quantization
5. Can have linear phase (same time delay of all frequencies)
6. Requires fixed point math.
Advantages of IIR filters
1. For a given magnitude response specification, IIR filters often
require much less computation than an equivalent FIR.

I have collected this information from several places. It is said
that IIR is better for a good magnitude response. My problem is that
I don't know the followings
1) Given the same magnitude response and 'phase' response, which
filter requires less computation?
2) Considering that "1-IIR requires floating point math" and "2-FIR
can be implemented with fast convolution", which filter requires less
process?
3) How sensitive is IIR filter to quantization noise?
4) Which one is better for me as a final conclusion?
with thanks in advance
kian zarrin
Just summarizing what I said:
1-it is said that IIR filter with the same magnitude response has much
less order than FIR. What about phase response then.(the data might be
stored in the phase of the signal so my phase response should be as
good as my magnitude response)?

2-although IIR filter has less order but it requires floating point
math so if i want to implement it on a FGPA (Xilinx spartan3 - 1000), I
fear that it would actually need more hardware than FIR to implement
the floating point math(FIR requires fixed point math)?