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 (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,
enables
you to monitor the filter design, where 'design_flag'
)'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
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.