Impulse invariance

From HandWiki

Impulse invariance is a technique for designing discrete-time infinite-impulse-response (IIR) filters from continuous-time filters in which the impulse response of the continuous-time system is sampled to produce the impulse response of the discrete-time system. The frequency response of the discrete-time system will be a sum of shifted copies of the frequency response of the continuous-time system; if the continuous-time system is approximately band-limited to a frequency less than the Nyquist frequency of the sampling, then the frequency response of the discrete-time system will be approximately equal to it for frequencies below the Nyquist frequency.


The continuous-time system's impulse response, [math]\displaystyle{ h_c(t) }[/math], is sampled with sampling period [math]\displaystyle{ T }[/math] to produce the discrete-time system's impulse response, [math]\displaystyle{ h[n] }[/math].

[math]\displaystyle{ h[n]=Th_c(nT)\, }[/math]

Thus, the frequency responses of the two systems are related by

[math]\displaystyle{ H(e^{j\omega}) = \frac{1}{T} \sum_{k=-\infty}^\infty{H_c\left(j\frac{\omega}{T} + j\frac{2{\pi}}{T}k\right)}\, }[/math]

If the continuous time filter is approximately band-limited (i.e. [math]\displaystyle{ H_c(j\Omega) \lt \delta }[/math] when [math]\displaystyle{ |\Omega| \ge \pi/T }[/math]), then the frequency response of the discrete-time system will be approximately the continuous-time system's frequency response for frequencies below π radians per sample (below the Nyquist frequency 1/(2T) Hz):

[math]\displaystyle{ H(e^{j\omega}) = H_c(j\omega/T)\, }[/math] for [math]\displaystyle{ |\omega| \le \pi\, }[/math]

Comparison to the bilinear transform

Note that aliasing will occur, including aliasing below the Nyquist frequency to the extent that the continuous-time filter's response is nonzero above that frequency. The bilinear transform is an alternative to impulse invariance that uses a different mapping that maps the continuous-time system's frequency response, out to infinite frequency, into the range of frequencies up to the Nyquist frequency in the discrete-time case, as opposed to mapping frequencies linearly with circular overlap as impulse invariance does.

Effect on poles in system function

If the continuous poles at [math]\displaystyle{ s = s_k }[/math], the system function can be written in partial fraction expansion as

[math]\displaystyle{ H_c(s) = \sum_{k=1}^N{\frac{A_k}{s-s_k}}\, }[/math]

Thus, using the inverse Laplace transform, the impulse response is

[math]\displaystyle{ h_c(t) = \begin{cases} \sum_{k=1}^N{A_ke^{s_kt}}, & t \ge 0 \\ 0, & \mbox{otherwise} \end{cases} }[/math]

The corresponding discrete-time system's impulse response is then defined as the following

[math]\displaystyle{ h[n] = Th_c(nT)\, }[/math]
[math]\displaystyle{ h[n] = T \sum_{k=1}^N{A_ke^{s_knT}u[n]}\, }[/math]

Performing a z-transform on the discrete-time impulse response produces the following discrete-time system function

[math]\displaystyle{ H(z) = T \sum_{k=1}^N{\frac{A_k}{1-e^{s_kT}z^{-1}}}\, }[/math]

Thus the poles from the continuous-time system function are translated to poles at z = eskT. The zeros, if any, are not so simply mapped.[clarification needed]

Poles and zeros

If the system function has zeros as well as poles, they can be mapped the same way, but the result is no longer an impulse invariance result: the discrete-time impulse response is not equal simply to samples of the continuous-time impulse response. This method is known as the matched Z-transform method, or pole–zero mapping.

Stability and causality

Since poles in the continuous-time system at s = sk transform to poles in the discrete-time system at z = exp(skT), poles in the left half of the s-plane map to inside the unit circle in the z-plane; so if the continuous-time filter is causal and stable, then the discrete-time filter will be causal and stable as well.

Corrected formula

When a causal continuous-time impulse response has a discontinuity at [math]\displaystyle{ t=0 }[/math], the expressions above are not consistent.[1] This is because [math]\displaystyle{ h_c (0) }[/math] has different right and left limits, and should really only contribute their average, half its right value [math]\displaystyle{ h_c (0_+) }[/math], to [math]\displaystyle{ h[0] }[/math].

Making this correction gives

[math]\displaystyle{ h[n] = T \left( h_c(nT) - \frac{1}{2} h_c(0_+)\delta [n] \right) \, }[/math]
[math]\displaystyle{ h[n] = T \sum_{k=1}^N{A_ke^{s_knT}} \left( u[n] - \frac{1}{2} \delta[n] \right) \, }[/math]

Performing a z-transform on the discrete-time impulse response produces the following discrete-time system function

[math]\displaystyle{ H(z) = T \sum_{k=1}^N{\frac{A_k}{1-e^{s_kT}z^{-1}} - \frac{T}{2} \sum_{k=1}^N A_k}. }[/math]

The second sum is zero for filters without a discontinuity, which is why ignoring it is often safe.

See also


  1. Jackson, L.B. (2000-10-01). "A correction to impulse invariance". IEEE Signal Processing Letters 7 (10): 273–275. doi:10.1109/97.870677. ISSN 1070-9908. 

Other sources

  • Oppenheim, Alan V. and Schafer, Ronald W. with Buck, John R. Discrete-Time Signal Processing. Second Edition. Upper Saddle River, New Jersey: Prentice-Hall, 1999.
  • Sahai, Anant. Course Lecture. Electrical Engineering 123: Digital Signal Processing. University of California, Berkeley. 5 April 2007.
  • Eitelberg, Ed. "Convolution Invariance and Corrected Impulse Invariance." Signal Processing, Vol. 86, Issue 5, pp. 1116–1120. 2006

External links