Butterworth filter prototype
[z,p,k] = buttap(n)
[z,p,k] = buttap(n) returns
the poles and gain of an order
analog lowpass filter prototype. The function returns the poles in
n column vector
the gain in scalar
z is an
empty matrix because there are no zeros. The transfer function is
Butterworth filters are characterized by a magnitude response
that is maximally flat in the passband and monotonic overall. In the
lowpass case, the first 2
n-1 derivatives of the
squared magnitude response are zero at ω = 0. The squared magnitude response function is
corresponding to a transfer function with poles equally spaced
around a circle in the left half plane. The magnitude response at
the cutoff angular frequency ω0 is always regardless of the filter order.
ω0 to 1 for a normalized result.
buttap returns zeros, poles, and gain
p, and k) in MATLAB®. However, the generated C/C++ code for
returns only poles
p and gain
k since zeros
z is always an empty matrix.
Design a 9th-order Butterworth analog lowpass filter. Display its magnitude and phase responses.
[z,p,k] = buttap(9); % Butterworth filter prototype [num,den] = zp2tf(z,p,k); % Convert to transfer function form freqs(num,den) % Frequency response of analog filter
z = ; p = exp(sqrt(-1)*(pi*(1:2:2*n-1)/(2*n)+pi/2)).'; k = real(prod(-p));
 Parks, T. W., and C. S. Burrus. Digital Filter Design. New York: John Wiley & Sons, 1987, chap. 7.