impulse response with the commande lsim

26 views (last 30 days)
hello everyone
i try to get the impulse response of first order transfert function with the commande lsim
sys = tf(1,[0.5,1]);
t = [0:0.1:3];
input = zeros(size(t));
input(1)=inf ;% when t=0 the input is inf
output = lsim(sys,input,t);
that lines of commandes dont give me same result as
>> sys = tf (1,[0.5 1])
>> impulse(sys)

Accepted Answer

Mathieu NOE
Mathieu NOE on 25 Apr 2022
your first implementation is a discrete time impulse
For discrete-time systems, the impulse response is the response to a unit area pulse of length Ts and height 1/Ts, where Ts is the sample time of the system.
so the "dirac" area" must remain = 1 , that is the amplitude is not inf but the inverse of the time increment (0.1 s in your code)
further reducing the time increment makes the code getting closer to the "true" impulse response
try with dt = 0.01 like below :
sys = tf(1,[0.5,1]);
dt = 0.01;
t = [0:dt:3];
input = zeros(size(t));
input(1)=1/dt ;% dirac area = 1
output = lsim(sys,input,t);

More Answers (0)




Community Treasure Hunt

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

Start Hunting!