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.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License