How can I draw the transfer function spectra by matlab?

5 views (last 30 days)
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.
See the documentation on bode and bodeplot for details.
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];
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!