iir digital filter
hz=iir(n,ftype,fdesign,frq,delta) [p,z,g]=iir(n,ftype,fdesign,frq,delta)
positive number witn integer value, the filter order.
string specifying the filter type, the possible values are:
'lp' for low-pass,'hp' for
high pass,'bp' for band pass and
'sb' for stop band.
string specifying the analog filter design, the
possible values are: 'butt',
'cheb1', 'cheb2' and
'ellip'
2-vector of discrete cut-off frequencies (i.e.,
0<frq<.5). For 'lp' and
'hp' filters only frq(1) is
used (in this case, frq can be a scalar).
For 'bp' and 'sb' filters
frq(1) is the upper cut-off frequency and
frq(2) is the lower cut-off frequency.
2-vector of error values for cheb1,
cheb2, and ellip filters where
only delta(1) is used for
cheb1 case, only delta(2) is
used for cheb2 case, and
delta(1) and delta(2) are both
used for ellip case.
0<delta(1),delta(2)<1
for cheb1 filters
1-delta(1)<ripple<1 in passband
for cheb2 filters
0<ripple<delta(2) in stopband
for ellip filters
1-delta(1)<ripple<1 in passband and
0<ripple<delta(2) in stopband
a single input single output discrete transfer function, the low pass filter
vector of transformed filter poles.
vector of transformed filter zeros.
a scalar: transformed filter gain.
function which designs an iir digital filter using analog filter designs and bilinear transformation .
hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]); [hzm,fr]=frmag(hz,256); plot2d(fr',hzm') xtitle('Discrete IIR filter: band pass 0.15 < fr < 0.25 ',' ',' '); q=poly(0,'q'); //to express the result in terms of the delay operator q=z^-1 hzd=horner(hz,1/q) | ![]() | ![]() |