ellipord function

Elliptic Filter Order

Elliptic Filter Order

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

ellipord(Wp, Ws, Rp, Rs, plane = c("z", "s"))

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. For digital filters, frequencies are normalized to [0, 1], corresponding to the range [0, fs/2]. In case of an analog filter, all frequencies are specified in radians per second.
  • Rp: allowable decibels of ripple in the pass band.
  • Rs: minimum attenuation in the stop band in dB.
  • plane: "z" for a digital filter or "s" for an analog filter.

Returns

A list of class FilterSpecs with the following list elements:

  • n: filter order
  • Wc: cutoff frequency
  • type: filter type, one of "low", "high", "stop", or "pass".
  • Rp: dB of passband ripple.
  • Rs: dB of stopband ripple.

Examples

fs <- 10000 spec <- ellipord(1000/(fs/2), 1200/(fs/2), 0.5, 29) ef <- ellip(spec) hf <- freqz(ef, fs = fs) 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") lines(hf$w, 20*log10(abs(hf$h)))

See Also

buttord, cheb1ord, cheb2ord, ellip

Author(s)

Paulo Neis, p_neis@yahoo.com.br ,

adapted by Charles Praplan.

Conversion to R by Tom Short,

adapted by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com .

  • Maintainer: Geert van Boxtel
  • License: GPL-3
  • Last published: 2024-09-11