Main Content


Bessel analog lowpass filter prototype



[z,p,k] = besselap(n) returns the poles and gain of an order-n Bessel analog lowpass filter prototype.


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

Input Arguments

collapse all

Filter order, specified as an integer scalar. n must be less than or equal to 25.

Data Types: double

Output Arguments

collapse all

Zeros of the filter prototype, returned as an empty matrix. z is empty because there are no zeros.

Poles of the filter prototype, returned as a length-n column vector.

Gain of the filter prototype, returned as a scalar.


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

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


The besselap function 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. The transfer function is expressed in terms of z, p, and k as



[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

Version History

Introduced before R2006a