# ellipord: Elliptic filter order and cutoff In signal: Signal Processing

 ellipord R Documentation

## Elliptic filter order and cutoff

### Description

Compute discrete elliptic filter order and cutoff for the desired response characteristics.

### Usage

``````ellipord(Wp, Ws, Rp, Rs)
``````

### Arguments

 `Wp`, `Ws` pass-band and stop-band edges. For a low-pass or high-pass filter, `Wp` and `Ws` are scalars. For a band-pass or band-rejection filter, both are vectors of length 2. For a low-pass filter, `Wp < Ws`. For a high-pass filter, `Ws > Wp`. For a band-pass (```Ws[1] < Wp[1] < Wp[2] < Ws[2]```) or band-reject (`Wp[1] < Ws[1] < Ws[2] < Wp[2]`) filter design, `Wp` gives the edges of the pass band, and `Ws` gives the edges of the stop band. Frequencies are normalized to [0,1], corresponding to the range [0, Fs/2]. `Rp` allowable decibels of ripple in the pass band. `Rs` minimum attenuation in the stop band in dB.

### Value

An object of class `FilterOfOrder` with the following list elements:

 `n` filter order `Wc` cutoff frequency `type` filter type, one of `"low"`, `"high"`, `"stop"`, or `"pass"` `Rp` dB of pass band ripple `Rs` dB of stop band ripple

This object can be passed directly to `ellip` to compute discrete filter coefficients.

### Author(s)

Original Octave version by Paulo Neis p_neis@yahoo.com.br. Modified by Doug Stewart. Conversion to R by Tom Short.

### References

Lamar, Marcus Vinicius, Notas de aula da disciplina TE 456 - Circuitos Analogicos II, UFPR, 2001/2002.

Octave Forge https://octave.sourceforge.io/

`Arma`, `filter`, `butter`, `cheby1`, and `ellipord`

### Examples

``````Fs <- 10000
elord <- ellipord(1000/(Fs/2), 1200/(Fs/2), 0.5, 29)
plot(c(0, 1000, 1000, 0, 0), c(0, 0, -0.5, -0.5, 0),
type = "l", xlab = "Frequency (Hz)", ylab = "Attenuation (dB)")
el1 <- ellip(elord)
plot(c(0, 1000, 1000, 0, 0), c(0, 0, -0.5, -0.5, 0),
type = "l", xlab = "Frequency (Hz)", ylab = "Attenuation (dB)",
col = "red", ylim = c(-35,0), xlim = c(0,2000))
lines(c(5000, 1200, 1200, 5000, 5000), c(-1000, -1000, -29, -29, -1000),
col = "red")
hf <- freqz(el1, Fs = Fs)
lines(hf\$f, 20*log10(abs(hf\$h)))
``````

signal documentation built on June 26, 2024, 9:06 a.m.