besself {gsignal} | R Documentation |
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. |
type |
filter type, one of |
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.
Value
List of class 'Zpg'
containing poles and gain of the
filter.
Note
As the important characteristic of a Bessel filter is its maximally-flat group delay, and not the amplitude response, it is inappropriate to use the bilinear transform to convert the analog Bessel filter into a digital form (since this preserves the amplitude response but not the group delay) [1].
Author(s)
Paul Kienzle, pkienzle@users.sf.net,
Doug Stewart, dastew@sympatico.ca,
Thomas Sailer, t.sailer@alumni.ethz.ch.
Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.
References
[1] https://en.wikipedia.org/wiki/Bessel_filter
Examples
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)