There are two basic types of digital filters: FIR and IIR. FIR stands for Finite Impulse Response and IIR stands for infinite impulse response. The outputs of any discrete time filter can be described by a “difference equation”, similar to a differential equation but does not contain derivatives. The FIR is described by a moving average, or weighted sum of past inputs. IIR filter difference equations are recursive in the sense that they include both a sum of weighted values of past inputs as well as a weighted average of past outputs.
As shown, this specific IIR filter difference equation contains an output term (first time on the right hand side).
The FIR has a finite impulse response because it decays to zero in a finite length of time. In the discrete time case, this means the output response of a system to a Kronecker delta input or impulse. In the IIR case, the impulse response decays, but never reaches zero. The FIR filter has zeros with only poles at z = 0 for H(z) (system function). The IIR filter is more flexible and can contain zeroes at any location on a pole zero plot.
The following is a block diagram of a two stage FIR filter. As shown, there is no recursion but simply a weighted sum. The triangles represent the values of the impulse response at a particular time. These sort of diagrams represent the difference equations and can be expressed as the output as a function of weighted sum of the inputs. These z inverse blocks could be thought of as memory storage blocks in a computer.
In contrast, the IIR filter contains recursion or feedback, as the past inputs are added back to the input. This feedback leads to a nontrivial term in the denominator of the transfer function of the filter. This transfer function can be tested for stability of the filter by observing the pole zero plot in the z-domain.
Overall, IIR filters have several advantages over FIR filters in terms of efficiency in terms of implementation which means that lower order filters can be used to achieve the same result of an FIR filter. A lower order filter is less computationally expensive and hence more preferable. A higher order filter requires more operations. However, FIR filters have a distinct advantage in terms of ease of design. This mainly comes into play when trying to design filters with linear phase (constant group delay with frequency) which is very hard to do with an IIR filter.