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,
[b,a] = maxflat(n,m,Wn) is a lowpass Butterworth
filter with numerator and denominator coefficients
the normalized cutoff frequency at which the magnitude response of
the filter is equal to (approximately
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,
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
product is equal to the numerator polynomial
b = conv(b1,b2)).
b1 contains all the zeros at
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
[...] = maxflat(n,m,Wn, enables
you to monitor the filter design, where
'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
Design a generalized Butterworth filter with normalized cutoff frequency 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); fvtool(b,a)
The method consists of the use of formulae, polynomial root finding, and a transformation of polynomial roots.
 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.
Usage notes and limitations:
All inputs must be constant. Expressions or variables are allowed if their values do not change.