Generate a Chebyshev filter.
Generate a Chebyshev type I or type II filter coefficients with specified dB of pass band ripple.
## Default S3 method: cheby1(n, Rp, W, type = c("low", "high", "stop", "pass"), plane = c("z", "s"), ...) ## S3 method for class 'FilterOfOrder' cheby1(n, Rp = n$Rp, W = n$Wc, type = n$type, ...) ## Default S3 method: cheby2(n, Rp, W, type = c("low", "high", "stop", "pass"), plane = c("z", "s"), ...) ## S3 method for class 'FilterOfOrder' cheby2(n, ...)
n |
filter order or generic filter model |
Rp |
dB of pass band ripple |
W |
critical frequencies of the filter. |
type |
Filter type, one of |
plane |
|
... |
additional arguments passed to |
Because cheby1
and cheby2
are generic, they can be extended to accept other
inputs, using "cheb1ord"
to generate filter criteria for example.
An Arma
object with list elements:
b |
moving average (MA) polynomial coefficients |
a |
autoregressive (AR) polynomial coefficients |
For cheby1
, the ARMA model specifies a type-I Chebyshev filter,
and for cheby2
, a type-II Chebyshev filter.
Original Octave version by Paul Kienzle pkienzle@user.sf.net. Modified by Doug Stewart. Conversion to R by Tom Short.
Parks & Burrus (1987). Digital Filter Design. New York: John Wiley & Sons, Inc.
Octave Forge http://octave.sf.net
# compare the frequency responses of 5th-order Butterworth and Chebyshev filters. bf <- butter(5, 0.1) cf <- cheby1(5, 3, 0.1) bfr <- freqz(bf) cfr <- freqz(cf) plot(bfr$f/pi, 20 * log10(abs(bfr$h)), type = "l", ylim = c(-40, 0), xlim = c(0, .5), xlab = "Frequency", ylab = c("dB")) lines(cfr$f/pi, 20 * log10(abs(cfr$h)), col = "red") # compare type I and type II Chebyshev filters. c1fr <- freqz(cheby1(5, .5, 0.5)) c2fr <- freqz(cheby2(5, 20, 0.5)) plot(c1fr$f/pi, abs(c1fr$h), type = "l", ylim = c(0, 1), xlab = "Frequency", ylab = c("Magnitude")) lines(c2fr$f/pi, abs(c2fr$h), col = "red")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.