Generalized digital Butterworth filter design


[b,a] = maxflat(n,m,Wn)
b = maxflat(n,'sym',Wn)
[b,a,b1,b2] = maxflat(n,m,Wn)
[b,a,b1,b2,sos,g] = maxflat(n,m,Wn)
[...] = maxflat(n,m,Wn,'design_flag')


[b,a] = maxflat(n,m,Wn) is a lowpass Butterworth filter with numerator and denominator coefficients b and a of orders n and m, respectively. Wn is the normalized cutoff frequency at which the magnitude response of the filter is equal to 1/2 (approximately –3 dB). Wn must be between 0 and 1, where 1 corresponds to the Nyquist frequency.

b = maxflat(n,'sym',Wn) is a symmetric FIR Butterworth filter. n must be even, and Wn is restricted to a subinterval of [0,1]. The function raises an error if Wn is specified outside of this subinterval.

[b,a,b1,b2] = maxflat(n,m,Wn) returns two polynomials b1 and b2 whose product is equal to the numerator polynomial b (that is, b = conv(b1,b2)). b1 contains all the zeros at z = -1, and b2 contains all the other zeros.

[b,a,b1,b2,sos,g] = maxflat(n,m,Wn) returns the second-order sections representation of the filter as the filter matrix sos and the gain g.

[...] = maxflat(n,m,Wn,'design_flag') enables you to monitor the filter design, where 'design_flag' is

  • 'trace' for a textual display of the design table used in the design

  • 'plots' for plots of the filter's magnitude, group delay, and zeros and poles

  • 'both' for both the textual display and plots


collapse all

Design a generalized Butterworth filter with normalized cutoff frequency 0.2π rad/s. Specify a numerator order of 10 and a denominator order of 2. Visualize the frequency response of the filter.

n = 10;
m = 2;
Wn = 0.2;

[b,a] = maxflat(n,m,Wn);


The method consists of the use of formulae, polynomial root finding, and a transformation of polynomial roots.


[1] Selesnick, Ivan W., and C. Sidney Burrus. “Generalized Digital Butterworth Filter Design.” IEEE® Transactions on Signal Processing. Vol. 46, Number 6, 1998, pp. 1688–1694.

Extended Capabilities

See Also

| |

Introduced before R2006a