Main Content


Generate Bessel, Butterworth, Chebyshev, or RC filter


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


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



Butterworth filter


Chebyshev filter


Bessel filter


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.


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'); 
legend('Butterworth','Chebyshev','RC filter')


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