Main Content

mkfilter

Generate Bessel, Butterworth, Chebyshev, or RC filter

Syntax

sys = mkfilter(fc,ord,type)
sys = mkfilter(fc,ord,type,psbndr)

Description

sys = mkfilter(fc,ord,type) returns a single-input, single-output analog low pass filter sys as an ss object. The cutoff frequency (Hertz) is fc and the filter order is ord, a positive integer. The argument type specifies the type of filter and can be one of the following:

type value

Description

'butterw'

Butterworth filter

'cheby'

Chebyshev filter

'bessel'

Bessel filter

'rc'

Series of resistor/capacitor filters

The dc gain of each filter (except even-order Chebyshev) is set to unity.

sys = mkfilter(fc,ord,type,psbndr) contains the input argument psbndr that specifies the Chebyshev passband ripple (in dB). At the cutoff frequency, the magnitude is -psbndr dB. For even-order Chebyshev filters the DC gain is also -psbndr dB.

Examples

collapse all

Generate several different types of filters and compare their frequency responses.

butw = mkfilter(2,4,'butterw'); 
cheb = mkfilter(4,4,'cheby',0.5); 
rc = mkfilter(1,4,'rc'); 
bode(butw,'-',cheb,'--',rc,'-.')
legend('Butterworth','Chebyshev','RC filter')

MATLAB figure

Limitations

The Bessel filters are calculated using the recursive polynomial formula. This is poorly conditioned for high order filters (order > 8).

Version History

Introduced before R2006a

See Also