
Last chance! 50% off unlimited learning
Sale ends in
Generate an Elliptic or Cauer filter (discrete and continuous).
# S3 method for default
ellip(n, Rp, Rs, W, type = c("low", "high", "stop",
"pass"), plane = c("z", "s"), …)# S3 method for FilterOfOrder
ellip(n, Rp = n$Rp, Rs = n$Rs, W = n$Wc, type = n$type, …)
filter order or generic filter model
dB of pass band ripple
dB of stop band ripple
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, W
must be between 0 and 1
where 1 is the Nyquist frequency.
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.
"z"
for a digital filter or "s"
for an
analog filter.
additional arguments passed to ellip
,
overriding those given by n
of class FilterOfOrder
.
An Arma
object with list elements:
moving average (MA) polynomial coefficients
autoregressive (AR) polynomial coefficients
Because ellip
is generic, it can be extended to accept other
inputs, using "ellipord"
to generate filter criteria for example.
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
# NOT RUN {
# 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