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

## Description

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

## Usage

 `1` ```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

 ``` 1 2 3 4 5 6 7 8 9 10 11 12``` ```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))) ```

### Example output

```Attaching package: 'signal'

The following objects are masked from 'package:stats':

filter, poly
```

signal documentation built on May 25, 2021, 9:06 a.m.