ellip

Create an Elliptic filter.

Syntax

[b,a] = ellip(n,Rp,Rs,Wp)

[b,a] = ellip(n,Rp,Rs,Wp,band)

[b,a] = ellip(n,Rp,Rs,Wp,domain)

[b,a] = ellip(n,Rp,Rs,Wp,band,domain)

Inputs

n
The filter order.
Type: integer
Dimension: scalar
Rp
The maximum attenuation in decibels in the passband, Wp.
Type: double
Dimension: scalar
Rs
The minimum attenuation in decibels in the stop band.
Type: double
Dimension: scalar
Wp
A scalar specifying the 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.
Type: double
Dimension: scalar | vector
band
The band type of the filter. Omit for low pass or bandpass. Use 'high' for high pass, and 'stop' for bandstop.
Type: string
domain
  • Use 'z' for digital filters (default).
  • Use 's' for analog filters.

Outputs

b
The numerator polynomial coefficients of the filter.
Type: vector
a
The denominator polynomial coefficients of the filter.
Type: vector

Example

Create a third order Elliptic low pass digital filter with a 300 Hz cutoff, a 1000 Hz sampling frequency, and a maximum passband attenuation of 1 dB.

[b,a] = ellip(3,1,20,300/500)
b = [Matrix] 1 x 4
0.33901  0.74185  0.74185  0.33901
a = [Matrix] 1 x 4
1.00000  0.50193  0.70451  -0.04473

Comments

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