Signal Processing Toolbox | ![]() ![]() |
Impulse invariance method for analog-to-digital filter conversion
Syntax
Description
[bz,az]
creates a digital filter with numerator and denominator coefficients =
impinvar(b,a,fs)
bz
and az
, respectively, whose impulse response is equal to the impulse response of the analog filter with coefficients b
and a
, scaled by 1/fs
. If you leave out the argument fs
, or specify fs
as the empty vector []
, it takes the default value of 1 Hz.
[bz,az]
uses the tolerance specified by =
impinvar(b,a,fs,tol)
tol
to determine whether poles are repeated. A larger tolerance increases the likelihood that impinvar
interprets closely located poles as multiplicities (repeated ones). The default is 0.001, or 0.1% of a pole's magnitude. Note that the accuracy of the pole values is still limited to the accuracy obtainable by the roots
function.
Examples
Convert an analog lowpass filter to a digital filter using impinvar
with a sampling frequency of 10 Hz:
[b,a]=
butter(4,0.3,'s'); [bz,az]=
impinvar(b,a,10) bz = 1.0e-006 * -0.0000 0.1324 0.5192 0.1273 0 az = 1.0000 -3.9216 5.7679 -3.7709 0.9246
Algorithm
impinvar
performs the impulse-invariant method of analog-to-digital transfer function conversion discussed in reference [1]:
b
and a
.
p
by the poles exp(p/fs)
.
See Also
bilinear
, lp2bp
, lp2bs
, lp2hp
, lp2lp
References
[1] Parks, T.W., and C.S. Burrus, Digital Filter Design, John Wiley & Sons, 1987, pp. 206-209.
![]() | ifft2 | impz | ![]() |