Professional Documents
Culture Documents
Bessel analog filter design
Syntax
[b,a] = besself(n,Wo)
[z,p,k] = besself(...)
[A,B,C,D] = besself(...)
Description
besself designs lowpass, analog Bessel filters, which are characterized by almost constant group delay across the
entire passband, thus preserving the wave shape of filtered signals in the passband. besself does not support the
design of digital Bessel filters.
[b,a] = besself(n,Wo) designs an nthorder lowpass analog Bessel filter, where Wo is the angular frequency up to
which the filter's group delay is approximately constant. Larger values of the filter order n produce a group delay that
better approximates a constant up to frequency Wo.
besself returns the filter coefficients in the length n+1 row vectors b and a, with coefficients in descending powers of
s, derived from this transfer function:
[A,B,C,D] = besself(...) returns the filter design in statespace form, where A, B, C, and D are
ẋ = A x + B u
y = C x + D u.
and u is the input, x is the state vector, and y is the output.
Examples collapse all
Frequency Response of an Analog Bessel Filter
Design a 5thorder analog lowpass Bessel filter with approximately
constant group delay up to rad/s. Plot the magnitude and phase Open Script
responses of the filter using freqs.
[b,a] = besself(5,10000);
freqs(b,a)
Frequency Response of a Digital Bessel Filter
Design an analog Bessel filter of order 5. Convert it to a digital IIR
filter using bilinear. Display its frequency response. Open Script
Fs = 100; % Sampling Frequency
[z,p,k] = besself(5,1000); % Bessel analog filter design
[zd,pd,kd] = bilinear(z,p,k,Fs); % Analog to digital mapping
sos = zp2sos(zd,pd,kd); % Convert to SOS form
fvtool(sos) % Visualize the digital filter
Limitations
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.
For high order filters, the statespace form is the most numerically accurate, followed by the zeropolegain form. The
transfer function coefficient form is the least accurate; numerical problems can arise for filter orders as low as 15.
More About collapse all
Algorithms
besself performs a fourstep algorithm:
1. It finds lowpass analog prototype poles, zeros, and gain using the besselap function.
2. It converts the poles, zeros, and gain into statespace form.
3. It transforms the lowpass prototype into a lowpass filter that meets the design specifications.
4. It converts the statespace filter back to transfer function or zeropolegain form, as required.
References
[1] Parks, Thomas W., and C. Sidney Burrus. Digital Filter Design. New York: John Wiley & Sons, 1987.
See Also
besselap | butter | cheby1 | cheby2 | ellip
Introduced before R2006a