How can I draw the transfer function spectra by matlab?

5 views (last 30 days)
  4 Comments
Sam Chak
Sam Chak on 27 Sep 2022
I remember that when we want to analyze the frequency content of a signal, the term "signal spectrum" is often used, and we usually plot the signal amplitude vs. its corresponding frequency. Almost similar to what is shown here:
Perhaps the question asks to show the spectrum of the signal coming out from the digital filter. Let @Anna to clarify.

Sign in to comment.

Answers (1)

Star Strider
Star Strider on 26 Sep 2022
The ‘spectrum’ is the Bode plot:
z = tf('z');
H = 5 / (1 + 2*cos(5)*z^-1 + z^-2);
H.Variable = 'z^-1'
H = 5 ---------------------- 1 + 0.5673 z^-1 + z^-2 Sample time: unspecified Discrete-time transfer function.
figure
bodeplot(H)
grid
See the documentation on bode and bodeplot for details.
.
  2 Comments
Star Strider
Star Strider on 26 Sep 2022
That selects how the variable is formatted. See the documentation section on Variable for a full explanation.
Also, I am assuming here that you are implementing a discrete control system. If instead you are coding a digital filter. the freqz function is most appropriate —
b = [5 0 0 0];
a = [1 2*cos(5) 1 0];
figure
freqz(b, a, 2^16)
% set(subplot(2,1,1), 'XScale','log') % Optional
% set(subplot(2,1,2), 'XScale','log') % Optional
.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!