# Impulse Invariant method for digital filter design

One of the known methods for discretizing analog filters is impulse response invariant. We get the impulse response in time domain, discretize it and then get the Z transform.

What I am trying to understand is why the freq response of the resulting digital filter has a freq response magnitude scaled by (1/T) T:sampling time?

Matlab, using c2d command, modifies it by multiplying by T so that the freq response is similar to the analog filter, but this is not the result of the Z transform I described earlier.

This is just as it turns out when you do the math. The discrete-time Fourier transform (DTFT) of the sampled continuous-time impulse response $$h(t)$$ is

$$H_d(e^{j\omega T})=\sum_nh(nT)e^{-jn\omega T}\tag{1}$$

With

$$h(nT)e^{-jn\omega T}=\int_{-\infty}^{\infty}h(t)e^{-j\omega t}\delta(t-nT)dt\tag{2}$$

this can be written as

\begin{align}H_d(e^{j\omega T})&=\sum_n\int_{-\infty}^{\infty}h(t)e^{-j\omega t}\delta(t-nT)dt\\&=\int_{-\infty}^{\infty}\left[h(t)\sum_n\delta(t-nT)\right]e^{-j\omega t}dt\\&=\mathcal{F}\left\{h(t)\sum_n\delta(t-nT)\right\}\\&=\frac{1}{2\pi}H(\omega)\star\frac{2\pi}{T}\sum_k\delta\left(\omega-\frac{2\pi k}{T}\right)\\&=\frac{1}{T}\sum_kH\left(\omega-\frac{2\pi k}{T}\right)\tag{3}\end{align}

where $$H(\omega)$$ is the Fourier transform of $$h(t)$$, and $$\star$$ denotes convolution. From $$(3)$$ we see that the DTFT of the sampled impulse response equals the sum of shifted spectra of $$h(t)$$, scaled by $$1/T$$.

If we assume that $$H(\omega)$$ is approximately band-limited and that $$T$$ is chosen sufficiently small such that aliasing becomes negligible, we obtain the approximation

$$H_d(e^{j\omega T})\approx\frac{1}{T}H(\omega),\qquad |\omega|<\frac{\pi}{T}\tag{4}$$

For the step-invariance method, we use samples of the step response instead of samples of the impulse response, and we obtain a relation analogous to $$(3)$$ between the DTFT $$G_d(e^{j\omega T})$$ of the step response of the discrete-time system, and the Fourier transform $$G(\omega)$$ of the continuous-time step response:

$$G_d(e^{j\omega T})=\frac{1}{T}\sum_kG\left(\omega-\frac{2\pi k}{T}\right)\tag{5}$$

In order to obtain the frequency response $$H_d(e^{j\omega T})$$ we multiply $$(5)$$ by $$1-e^{-j\omega T}$$, because the impulse response is obtained by computing a first-order difference of the step response:

$$H_d(e^{j\omega T})=\left(1-e^{-j\omega T}\right)G_d(e^{j\omega T})=\frac{1-e^{-j\omega T}}{T}\sum_kG\left(\omega-\frac{2\pi k}{T}\right)\tag{6}$$

For frequencies that are small compared to the sampling frequency, i.e., for $$|\omega T|\ll 1$$ we obtain from $$(6)$$

\begin{align}H_d(e^{j\omega T})&\approx\frac{1-(1-j\omega T)}{T}\sum_kG\left(\omega-\frac{2\pi k}{T}\right)\\&=j\omega \sum_kG\left(\omega-\frac{2\pi k}{T}\right)\tag{7}\end{align}

If we again assume that aliasing can be neglected, we arrive at

$$H_d(e^{j\omega T})\approx j\omega G(\omega)=H(\omega),\qquad |\omega|<\frac{\pi}{T}\tag{8}$$

From $$(8)$$ we see that, unlike for the impulse invariance method, the step invariance method doesn't involve a scaling of the continuous-time frequency response.

• Hi Matt L., Thanks for your answer. This what I was thinking about, sampling leads to multiplying the spectrum by 1/T. However, I couldn't apply the same approach to the step invariant method, so I though there might be other reason. In step invariant, we don't need to modify the resulting digital filter although we kind of sample the step response of the analog filter G(s)/s then we take Z transform and finally multiply by (1-Z^-1). Does multiplying by (1-Z^-1) do the trick of correcting the freq spectrum here ?
– RMS
Jul 7, 2020 at 20:22
• @R.S: Yes, that's exactly it: the multiplication in terms of $\omega$ is $(1-e^{-j\omega T})$, which compensates for the $1/T$, at least at relatively low frequencies. Jul 7, 2020 at 20:47
• @R.S: It's exactly what you mentioned in a comment: the multiplication by $1-z^{-1}$ corresponds to a first-order difference in the time domain: $h[n]=g[n]-g[n-1]$, where $h[n]$ is the impulse response, and $g[n]$ is the step response. In continuous time this corresponds to differentiation: $h(t)=g'(t)$. Jul 8, 2020 at 16:29