Signal Processing Toolbox | ![]() ![]() |
Chebyshev type I filter design (passband ripple).
Syntax
[b,a]=
cheby1(n,Rp,Wn) [b,a]=
cheby1(n,Rp,Wn,'ftype
') [b,a]=
cheby1(n,Rp,Wn,'s
') [b,a]=
cheby1(n,Rp,Wn,'ftype
','s
') [z,p,k]=
cheby1(...) [A,B,C,D]=
cheby1(...)
Description
cheby1
designs lowpass, bandpass, highpass, and bandstop digital and analog Chebyshev type I filters. Chebyshev type I filters are equiripple in the passband and monotonic in the stopband. Type I filters roll off faster than type II filters, but at the expense of greater deviation from unity in the passband.
Digital Domain
[b,a] = cheby1(n,Rp,Wn)
designs an order n
lowpass digital Chebyshev filter with cutoff frequency
Wn
and Rp
dB of ripple in the passband. It returns the filter coefficients in the length n+1
row vectors b
and a
, with coefficients in descending powers of z.
Cutoff frequency is the frequency at which the magnitude response of the filter is equal to -Rp
dB. For cheby1
, the cutoff frequency Wn
is a number between 0 and 1, where 1 corresponds to the Nyquist frequency, radians per sample. Smaller values of passband ripple
Rp
lead to wider transition widths (shallower rolloff characteristics).
If Wn
is a two-element vector, Wn
= [w1 w2]
, cheby1
returns an order 2*n
bandpass filter with passband w1
<
<
w2
.
[b,a] = cheby1(n,Rp,Wn,'
designs a highpass or bandstop filter, where the string ftype
')
'
ftype'
is either:
'
high'
for a highpass digital filter with cutoff frequency Wn
'stop'
for an order 2*n
bandstop digital filter if Wn
is a two-element vector, Wn
= [w1 w2]
The stopband is w1
< <
w2
.
With different numbers of output arguments, cheby1
directly obtains other realizations of the filter. To obtain zero-pole-gain form, use three output arguments as shown below.
[z,p,k] = cheby1(n,Rp,Wn,'
returns the zeros and poles in length ftype
')
n
column vectors z
and p
and the gain in the scalar k
.
To obtain state-space form, use four output arguments as shown below.
[A,B,C,D] = cheby1(n,Rp,Wn)
or
[A,B,C,D] = cheby1(n,Rp,Wn,'
where ftype
')
A
, B
, C
, and D
are
and u is the input, x is the state vector, and y is the output.
Analog Domain
designs an order [b,a]
= cheby1(n,Rp,Wn,'
s
')
n
lowpass analog Chebyshev type I filter with cutoff frequency Wn
. It returns the filter coefficients in length n+1
row vectors b
and a
, in descending powers of s, derived from the transfer function
Cutoff frequency is the frequency at which the magnitude response of the filter is -Rp
dB. For cheby1
, the cutoff frequency Wn
must be greater than 0.
If Wn
is a two-element vector Wn
= [w1 w2]
with w1
< w2
, then cheby1(n,Rp,Wn,'
s
')
returns an order 2*n
bandpass analog filter with passband w1
< <
w2
.
[b,a] = cheby1(n,Rp,Wn,'
designs a highpass or bandstop filter.ftype
','s
')
You can supply different numbers of output arguments for cheby1 to directly obtain other realizations of the analog filter. To obtain zero-pole-gain form, use three output arguments as shown below.
[z,p,k] = cheby1(n,Rp,Wn,'
ors
')
returns the zeros and poles in length [z,p,k] = cheby1(n,Rp,Wn,'ftype','
s
')
n
or 2*n
column vectors z
and p
and the gain in the scalar k
.
To obtain state-space form, use four output arguments as shown below.
[A,B,C,D] = cheby1(n,Rp,Wn,'
ors
')
[A,B,C,D] = cheby1(n,Rp,Wn,'
where ftype
','s
')
A
, B
, C
, and D
are defined as
and u is the input, x is the state vector, and y is the output.
Examples
For data sampled at 1000 Hz, design a 9th-order lowpass Chebyshev type I filter with 0.5 dB of ripple in the passband and a cutoff frequency of 300 Hz.
[b,a] =
cheby1(9,0.5,300/500);
The frequency response of the filter is
freqz(b,a,512,1000)
Design a 10th-order bandpass Chebyshev type I filter with a passband from 100 to 200 Hz and plot its impulse response.
n=
10; Rp=
0.5; Wn=
[100 200]/500; [b,a]=
cheby1(n,Rp,Wn); [y,t]=
impz(b,a,101); stem(t,y)
Limitations
For high order filters, the state-space form is the most numerically accurate, followed by the zero-pole-gain form. The transfer function form is the least accurate; numerical problems can arise for filter orders as low as 15.
Algorithm
cheby1
uses a five-step algorithm:
cheb1ap
function.
cheby1
uses bilinear
to convert the analog filter into a digital filter through a bilinear transformation with frequency prewarping. Careful frequency adjustment guarantees that the analog filters and the digital filters will have the same frequency response magnitude at Wn
or w1
and w2
.
See Also
|
Bessel analog filter design. |
|
Butterworth analog and digital filter design. |
|
Chebyshev type I analog lowpass filter prototype. |
|
Calculate the order of a Chebyshev type I filter. |
|
Chebyshev type II filter design (stopband ripple). |
|
Elliptic (Cauer) filter design. |
![]() | chebwin | cheby2 | ![]() |