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 string variable type specifies the type of filter and can be one of the following

String variable

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

expand all

Generate Filters

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')

Limitations

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

See Also

Was this topic helpful?