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) | ![]() | ![]() |