Frequency response of analog filters
freqs(___) with no output arguments plots the magnitude
and phase responses as functions of angular frequency in the current figure window. You can
use this syntax with either of the previous input syntaxes.
Frequency Response from Transfer Function
Find and graph the frequency response of the transfer function
a = [1 0.4 1]; b = [0.2 0.3 1]; w = logspace(-1,1); h = freqs(b,a,w); mag = abs(h); phase = angle(h); phasedeg = phase*180/pi; subplot(2,1,1) loglog(w,mag) grid on xlabel('Frequency (rad/s)') ylabel('Magnitude') subplot(2,1,2) semilogx(w,phasedeg) grid on xlabel('Frequency (rad/s)') ylabel('Phase (degrees)')
You can also generate the plots by calling
freqs with no output arguments.
Frequency Response of a Lowpass Analog Bessel Filter
Design a 5th-order analog lowpass Bessel filter with an approximately constant group delay up to rad/s. Plot the frequency response of the filter using
[b,a] = besself(5,10000); % Bessel analog filter design freqs(b,a) % Plot frequency response
a — Transfer function coefficients
Transfer function coefficients, specified as vectors.
[b,a] = butter(5,50,'s') specifies a fifth-order
Butterworth filter with a cutoff frequency of 50 rad/second.
w — Angular frequencies
positive real vector
Angular frequencies, specified as a positive real vector expressed in rad/second.
2*pi*logspace(6,9) specifies 50 logarithmically spaced
angular frequencies from 1 MHz (2π × 106 rad/second) and 1 GHz (2π × 109 rad/second).
n — Number of evaluation points
200 (default) | positive integer scalar
Number of evaluation points, specified as a positive integer scalar.
along the imaginary axis at the frequency points s = jω:
s = 1j*w; h = polyval(b,s)./polyval(a,s);