cheby1: Generate a Chebyshev filter.

View source: R/cheby1.R

cheby1R Documentation

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, ...)



filter order or generic filter model


dB of pass 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 cheby1 or cheby2, overriding those given by n of class FilterOfOrder.


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:


moving average (MA) polynomial coefficients


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 Modified by Doug Stewart. Conversion to R by Tom Short.


Parks & Burrus (1987). Digital Filter Design. New York: John Wiley & Sons, Inc.

Octave Forge

See Also

Arma, filter, butter, ellip, and cheb1ord


  # 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")

signal documentation built on June 26, 2024, 9:06 a.m.

Related to cheby1 in signal...