ellip | R Documentation |
Compute the transfer function coefficients of an elliptic filter.
ellip(n, ...)
## S3 method for class 'FilterSpecs'
ellip(n, Rp = n$Rp, Rs = n$Rs, w = n$Wc, type = n$type, plane = n$plane, ...)
## Default S3 method:
ellip(
n,
Rp,
Rs,
w,
type = c("low", "high", "stop", "pass"),
plane = c("z", "s"),
output = c("Arma", "Zpg", "Sos"),
...
)
n |
filter order. |
... |
additional arguments passed to ellip, overriding those given by
|
Rp |
dB of passband ripple. |
Rs |
dB of stopband ripple. |
w |
critical frequencies of the filter. |
type |
filter type, one of |
plane |
"z" for a digital filter or "s" for an analog filter. |
output |
Type of output, one of:
Default is |
An elliptic filter is a filter with equalized ripple (equiripple) behavior in both the passband and the stopband. The amount of ripple in each band is independently adjustable, and no other filter of equal order can have a faster transition in gain between the passband and the stopband, for the given values of ripple.
As the ripple in the stopband approaches zero, the filter becomes a type I Chebyshev filter. As the ripple in the passband approaches zero, the filter becomes a type II Chebyshev filter and finally, as both ripple values approach zero, the filter becomes a Butterworth filter.
Because ellip
is generic, it can be extended to accept other inputs,
using ellipord
to generate filter criteria for example.
Depending on the value of the output
parameter, a list of
class Arma
, Zpg
, or Sos
containing the filter coefficients
Paulo Neis, p_neis@yahoo.com.br,
adapted by Doug Stewart, dastew@sympatico.ca.
Conversion to R Tom Short,
adapted by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.
https://en.wikipedia.org/wiki/Elliptic_filter
Arma
, filter
, butter
,
cheby1
, ellipord
## 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$w, 20 * log10(abs(bfr$h)), type = "l", ylim = c(-80, 0),
xlab = "Frequency (Rad)", ylab = c("dB"), lwd = 2,
main = paste("Elliptic versus Butterworth filter",
"low-pass -3 dB cutoff at 0.1 rad", sep = "\n"))
lines(efr$w, 20 * log10(abs(efr$h)), col = "red", lwd = 2)
legend ("topright", legend = c("Butterworh", "Elliptic"),
lty = 1, lwd = 2, col = 1:2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.