besselap

Bessel analog lowpass filter prototype

Syntax

[z,p,k] = besselap(n)

Description

[z,p,k] = besselap(n) returns the poles and gain of an order-n Bessel analog lowpass filter prototype. n must be less than or equal to 25. The function returns the poles in the length n column vector p and the gain in scalar k. z is an empty matrix because there are no zeros. The transfer function is

H(s)=k(sp(1))(sp(2))(sp(n))

besselap normalizes the poles and gain so that at low frequency and high frequency the Bessel prototype is asymptotically equivalent to the Butterworth prototype of the same order [1]. The magnitude of the filter is less than 1/2 at the unity cutoff frequency Ωc = 1.

Analog Bessel filters are characterized by a group delay that is maximally flat at zero frequency and almost constant throughout the passband. The group delay at zero frequency is

((2n)!2nn!)1/n

Examples

collapse all

Design a 6th-order Bessel analog lowpass filter. Display its magnitude and phase responses.

[z,p,k] = besselap(6);        % Lowpass filter prototype
[num,den] = zp2tf(z,p,k);     % Convert to transfer function form
freqs(num,den)                % Frequency response of analog filter

Algorithms

besselap finds the filter roots from a lookup table constructed using Symbolic Math Toolbox™ software.

References

[1] Rabiner, L. R., and B. Gold. Theory and Application of Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1975, pp. 228–230.

Extended Capabilities

Introduced before R2006a