# butter

Create a Butterworth filter.

## Syntax

[b,a] = butter(n,Wp)

[b,a] = butter(n,Wp,band)

[b,a] = butter(n,Wp,domain)

[b,a] = butter(n,Wp,band,domain)

## Inputs

`n`- The filter order.
`Wp`- A scalar specifying the 3dB cutoff frequency of a low or high pass filter, or a two element vector specifying the cutoff frequencies of a bandpass or bandstop filter. For a digital filter the values (in Hz) are normalized relative to the Nyquist frequency. For an analog filter the values are in radians/sec.
`band`- The band type of the filter. Omit for low pass or bandpass. Use
'
`high`' for high pass, and '`stop`' for bandstop. `domain`-
- Use 'z' for digital filters (default).
- Use 's' for analog filters.

## Outputs

- b
- The numerator polynomial coefficients of the filter.
- a
- The denominator polynomial coefficients of the filter.

## Examples

Create a fourth order Butterworth low pass digital filter with a 300 Hz cutoff frequency and a 1000 Hz sampling frequency.

`[b,a] = butter(4,300/500)`

```
b = [Matrix] 1 x 5
0.16718 0.66872 1.00308 0.66872 0.16718
a = [Matrix] 1 x 5
1.00000 0.78210 0.67998 0.18268 0.03012
```

Create a fourth order Butterworth high pass digital filter with a 300 Hz cutoff frequency and a 1000 Hz sampling frequency.

`[b,a] = butter(4,300/500,'high')`

```
b = [Matrix] 1 x 5
0.04658 -0.18633 0.27950 -0.18633 0.04658
a = [Matrix] 1 x 5
1.00000 0.78210 0.67998 0.18268 0.03012
```

Create a fourth order Butterworth bandstop digital filter with a 300 Hz low cutoff frequency, a 400 Hz high cutoff frequency and a 1000 Hz sampling frequency.

`[b,a] = butter(4,[300/500 400/500],'stop')`

```
b = [Matrix] 1 x 9
0.43285 2.14011 5.69937 9.69013 11.54347 9.69013 5.69937 2.14011 0.43285
a = [Matrix] 1 x 9
1.00000 3.93658 8.26039 11.21743 10.78363 7.39144 3.57650 1.11505 0.18738
```

Create a fourth order Butterworth bandstop analog filter with a 300 Hz low cutoff frequency, a 400 Hz high cutoff frequency and a 1000 Hz sampling frequency.

`[b,a] = butter(4,[300/500 400/500],'stop','s')`

```
b = [Matrix] 1 x 9
1.00000 0.00000 1.92000 0.00000 1.38240 0.00000 0.44237 0.00000 0.05308
a = [Matrix] 1 x 9
1.00000 0.52263 2.05657 0.77349 1.51511 0.37127 0.47383 0.05780 0.05308
```

## Comments

The attenuation at `Wp` is
20*log10(sqrt(2)), or approximately 3.0103 dB.

Filters can become unstable for high orders, and more easily so for bandpass or stopband filters.