how to simulate an impusles response of a transfer function?

79 visualizzazioni (ultimi 30 giorni)
Zidhan Ismail il 25 Nov 2018
Commentato: yousaf muzafar il 29 Ago 2022
how to simulate an impulse response of transfer function?
which is T(s)= 15/(s^2+8s+15)
simulink should be used to find the impulse response
0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Risposte (4)

Aquatris il 25 Nov 2018
An impulse signal is a signal that has a certain magnitude that is applied for a small time. So you can use transfer function block to model your T(s) and use sum of 2 step functions to create impulse signal input. Use scope or toWorkspace block to obtain the response.
Impulse magnitude = x
Impulse time = t
Step function 1: step time 1, initial value 0, final value x
Step function 2: step time 1+t, initial value x, final value 0
0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Aryan Ritwajeet Jha il 14 Ott 2019
If you are looking for a time domain response, then MATLAB has some easy to use functions:
%construction of transfer function
numerator=15;
denominator=[1,8,15];%(s^2+8*s+15)
transferFunction=tf(numerator,denominator);
impulseplot(transferFunction);
If you are looking for a Fourier Spectrum of the impulse response of a transfer function:
%construction of transfer function
numerator=15;
denominator=[1,8,15];%(s^2+8*s+15)
transferFunction=tf(numerator,denominator);
%construction of impulse signal
dt=1e-3;
t = -1:dt:1;
impulse= t==0;
%computing fourier spectrum of impulse response
impulseResponse=fftshift(fft(lsim(transferFunction,impulse,t)));
len=length(impulseResponse); %to take the frequency axis of the harmonics.
q=-(len-1)/2:(len-1)/2; %divide the frequency components
fimpulseResponse=sqrt(impulseResponse.*conj(impulseResponse));
plot(q,[fimpulseResponse]);
title(['Fourier Spectrum Plot']);
axis([-10 10 0 1]);
xlabel('Frequency');
ylabel('Amplitude');
0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Just run a stepplot, but multiply the numerator of your transfer function by s to turn the step function into a dirac delta function (recall that that the integral of the step function is the dirac delta).
% unit step response
sys = tf([15],[1,8,15])
stepplot(sys)
You can write:
% unit impulse response
sys = tf([15,0],[1,8,15])
stepplot(sys)
0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

babou babi il 23 Apr 2022
hi,
try this two lines
>> sys = tf (15,[1 8 15])
>> impulse(sys)
best regards,
1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
yousaf muzafar il 29 Ago 2022
thk

Accedi per commentare.

Categorie

Scopri di più su Event Functions in Help Center e File Exchange

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by