Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Butterworth filter prototype

`[z,p,k] = buttap(n)`

`[z,p,k] = buttap(n)`

returns
the poles and gain of an order `n`

Butterworth
analog lowpass filter prototype. The function returns the poles in
the length `n`

column vector `p`

and
the gain in scalar `k`

. `z`

is an
empty matrix because there are no zeros. The transfer function is

$$H(s)=\frac{z(s)}{p(s)}=\frac{k}{\left(s-p(1)\right)\left(s-p(2)\right)\cdots \left(s-p(n)\right)}$$

Butterworth filters are characterized by a magnitude response
that is maximally flat in the passband and monotonic overall. In the
lowpass case, the first 2`n`

-1 derivatives of the
squared magnitude response are zero at ω = 0. The squared magnitude response function is

$${\left|H(\omega )\right|}^{2}=\frac{1}{1+{(\omega /{\omega}_{0})}^{2n}}$$

corresponding to a transfer function with poles equally spaced
around a circle in the left half plane. The magnitude response at
the cutoff angular frequency ω_{0} is always $$1/\sqrt{2}$$ regardless of the filter order. `buttap`

sets
ω_{0} to 1 for a normalized result.

The function `buttap`

returns zeros, poles, and gain ```
(z,
p, and k)
```

in MATLAB^{®}. However, the generated C/C++ code for `buttap`

returns only poles `p`

and gain `k`

since zeros
`z`

is always an empty matrix.

z = []; p = exp(sqrt(-1)*(pi*(1:2:2*n-1)/(2*n)+pi/2)).'; k = real(prod(-p));

[1] Parks, T. W., and C. S. Burrus. *Digital
Filter Design.* New York: John Wiley & Sons, 1987,
chap. 7.