# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

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

## Limitations

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