cheby1: Generate a Chebyshev filter.

View source: R/cheby1.R

cheby1R Documentation

Generate a Chebyshev filter.

Description

Generate a Chebyshev type I or type II filter coefficients with specified dB of pass band ripple.

Usage

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

Arguments

n

filter order or generic filter model

Rp

dB of pass 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, W must be between 0 and 1 where 1 is the Nyquist frequency.

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

Details

Because cheby1 and cheby2 are generic, they can be extended to accept other inputs, using "cheb1ord" to generate filter criteria for example.

Value

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.

Author(s)

Original Octave version by Paul Kienzle pkienzle@user.sf.net. Modified by Doug Stewart. Conversion to R by Tom Short.

References

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

https://en.wikipedia.org/wiki/Chebyshev_filter

Octave Forge https://octave.sourceforge.io/

See Also

Arma, filter, butter, ellip, and cheb1ord

Examples

  # 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 Nov. 27, 2023, 5:11 p.m.

Related to cheby1 in signal...