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

ans = 
  Legend (Butterworth, Chebyshev, RC filter) with properties:

         String: {'Butterworth'  'Chebyshev'  'RC filter'}
       Location: 'northeast'
    Orientation: 'vertical'
       FontSize: 8.1000
       Position: [0.7266 0.8188 0.2279 0.1278]
          Units: 'normalized'

  Use GET to show all properties

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