Learn R Programming

gsignal (version 0.3-1)

besself: Bessel analog filter design

Description

Compute the transfer function coefficients of an analog Bessel filter.

Usage

besself(n, w, type = c("low", "high", "stop", "pass"))

Arguments

n

filter order.

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 in radians/second.

type

filter type, one of "low" (default), "high", "stop", or "pass".

Value

List of class 'Zpg' containing poles and gain of the filter.

Details

Bessel filters are characterized by an almost constant group delay across the entire passband, thus preserving the wave shape of filtered signals in the passband.

Lowpass Bessel filters have a monotonically decreasing magnitude response, as do lowpass Butterworth filters. Compared to the Butterworth, Chebyshev, and elliptic filters, the Bessel filter has the slowest rolloff and requires the highest order to meet an attenuation specification.

References

[1] https://en.wikipedia.org/wiki/Bessel_filter

Examples

Run this code
# NOT RUN {
w <- seq(0, 4, length.out = 128)

## 5th order Bessel low-pass analog filter
zp <- besself(5, 1.0)
freqs(zp, w)

## 5th order Bessel high-pass analog filter
zp <- besself(5, 1.0, 'high')
freqs(zp, w)

## 5th order Bessel band-pass analog filter
zp <- besself(5, c(1, 2), 'pass')
freqs(zp, w)

## 5th order Bessel band-stop analog filter
zp <- besself(5, c(1, 2), 'stop')
freqs(zp, w)

# }

Run the code above in your browser using DataLab