Learn R Programming

signal (version 0.5)

ellip: Elliptic or Cauer filter

Description

Generate an Elliptic or Cauer filter (discrete and contnuious).

Usage

## S3 method for class 'default':
ellip(n, Rp, Rs, W, type = c("low", "high", "stop",
"pass"), plane = c("z", "s"), ...)

## S3 method for class 'FilterOfOrder':
ellip(n, Rp = n$Rp, Rs = n$Rs, W = n$Wc, type = n$type, \ldots)

Arguments

n
filter order or generic filter model
Rp
dB of pass band ripple
Rs
dB of stop band ripple
W
critical frequencies of the filter. W must be a scalar for low-pass and high-pass filters, and W must be a two-element vector c(low, high) specifying the lower and upper bands. For digital filters,
type
Filter type, one of "low" for a low-pass filter, "high" for a high-pass filter, "stop" for a stop-band (band-reject) filter, or "pass" for a pass-band filter.
plane
"z" for a digital filter or "s" for an analog filter.
...
additional arguments passed to ellip, overriding those given by n of class FilterOfOrder.

Value

  • An Arma object with list elements:
  • bmoving average (MA) polynomial coefficients
  • aautoregressive (AR) polynomial coefficients

Details

Because ellip is generic, it can be extended to accept other inputs, using "ellipord" to generate filter criteria for example.

References

Oppenheim, Alan V., Discrete Time Signal Processing, Hardcover, 1999. Parente Ribeiro, E., Notas de aula da disciplina TE498 - Processamento Digital de Sinais, UFPR, 2001/2002. http://en.wikipedia.org/wiki/Elliptic_filter Octave Forge http://octave.sf.net

See Also

Arma, filter, butter, cheby1, and ellipord

Examples

Run this code
# compare the frequency responses of 5th-order Butterworth and elliptic filters.
  bf = butter(5, 0.1)
  ef = ellip(5, 3, 40, 0.1)
  bfr = freqz(bf)
  efr = freqz(ef)
  plot(bfr$f, 20 * log10(abs(bfr$h)), type = "l", ylim = c(-50, 0),
       xlab = "Frequency, radians", ylab = c("dB"))
  lines(efr$f, 20 * log10(abs(efr$h)), col = "red")

Run the code above in your browser using DataLab