Fir Vs Iir

## FIR

### System Response

- FIR system output can be easily computed by taking convolution of its impulse response and input signal. Ex. y[n] = h[n]*x[n]

### Advantage

**Numeric Error won't be Propagated**: because FIR doesn't has feedback, the numeric error of the computation of every sample point will be separated. On the other hand, an IIR will feed the numeric error of the current sample point back to its subsequent sample point.**Linear Phase**: FIR system can has linear phase, while IIR can not. Linear phase is a highly desirable property in filter design.**Selected Computation**: FIR system doesn't use feedback, so to compute a sample point of output, we don't need to also compute its previous sample points. That means**we can only calculate the output that we really want to use**. For example, if we are computing an**output signal which will be down-sampled**eventually, we can only compute the sample points that will still remain after down-sampling. According to the reference website, another example is, when a**input signal is up-sampled and interpolated by zeros**, we don't need to really multiply the zeros with the filter's coefficient. In contrast, since IIR filter uses feedback, every input must be calculated to construct its following output.**Easy to Implement**— On most DSP microprocessors, the FIR calculation can be done by looping a single instruction.

### Disadvantage

- FIR system sometime
**require more memory**to achieve a given filter response characteristic, and some response are not practical to implement with FIR filter.

## IIR

### System Response

### Advantage

## Feedback & FIR & IIR

- A filter(system)
**with no feedback is guaranteed to be FIR**. Ex. y[n] = x[n] + 3*x[n-1] - A filter(system)
**with feedback could still be a FIR system**. For example, a averaging filter that calculates the average of past N samples, is a system with feedback. However, it is still a FIR system. Ex. input signal is 1 2 3 4 5, then we can calculate output by y[3] = (y[2]*3 - x[0] + x[3]) / 3 = (6 - 1 + 4) / 3 = 3, and y[n] will be 0 after n = 7. Its system equation is y[n] = y[n - 1] + (x[n] - x[n - N]) / N. - IIR filters use feedback, so when you input an impulse the output theoretically rings indefinitely.

page revision: 14, last edited: 24 Apr 2010 08:39