Filter löschen
Filter löschen

How to plot the magnitude and phase of a given transfer function(z-domain)?

157 Ansichten (letzte 30 Tage)
I tried approacting this by doing the LTI function:
>> z=tf('z'); >> H=0.203*[(1-z^-1)*(1-0.2743*z^-1+z^-2)]/[(1+0.2695*z^-1)*(1+0.4109*z^-1+0.6758*z^-2)]
H =
0.203 z^8 - 0.2587 z^7 + 0.2587 z^6 - 0.203 z^5
-----------------------------------------------
z^8 + 0.6804 z^7 + 0.7865 z^6 + 0.1821 z^5
I don't even know if I'm approacting this right, please I need help in doing this.
  1 Kommentar
Daniel Ramirez
Daniel Ramirez am 28 Nov. 2015
Bearbeitet: Daniel Ramirez am 28 Nov. 2015
I think I did it?
L=1000;
dw=2*pi/L;
w = -pi:dw:pi-dw;
aa=[1,0.6804,0.953486,0.182128];
bb=[0.2031,-0.2588,0.2588,-0.2031];
HH=freqz(bb,aa,w);
mag=abs(HH);title('Magnitude response')
figure
phase=angle(HH);title('Phase response')
plot(w,mag)
plot(w,phase)
The next step that they want me to do is plot the impulse response. So anyone know how to go from the freq domain to the time domain(n)? This is what I'm struggling the most, any help would be appreciated.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Aik-Siong Koh
Aik-Siong Koh am 8 Jul. 2021
Bearbeitet: Arkadiy Turevskiy am 18 Jun. 2024
The following links show how to get frequency domain plots from a transfer function.
The following links show how to get impulse response from transfer function.
The following links show how to get time domain from frequency domain.
Additional comments from Siddharth Jawahar at MathWorks on 6/18/2024
You will need to define your transfer function using the ‘tf’ function which is also suitable for discrete-time systems by setting the ‘z’ variable and specifying the sample time. Then for the magnitude and the phase plots you can use the ‘bode’ plot command.
See the MATLAB code example below:
% Numerator and Denominator coefficients
b = 0.2031 * conv([1, -1], [1, -0.2743, 1]); % Convolution of numerator parts
a = conv([1, 0.2695], [1, 0.4109, 0.6758]); % Convolution of denominator parts
% Sample time - Adjust based on your specific requirements
Ts = 1;
% Create a discrete-time transfer function model
H = tf(b, a, Ts, 'Variable', 'z^-1');
% Plot the Bode plot
figure;
bode(H);
title('Bode Plot of H(z)');
grid on;

ANNALURU R R SREENIVASA MURTHY
Bearbeitet: ANNALURU R R SREENIVASA MURTHY am 15 Nov. 2021
You can use 'imp' function to plot impulse response.

Community Treasure Hunt

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

Start Hunting!

Translated by