Clear Filters
Clear Filters

How to interpret the amplitude of impulse() results

18 views (last 30 days)
For the given transfer function, if I want to use the impulse response to conv any input signals to the system (a step function for example), the amplitude of output will be wrong.
In general, how can I use the impulse response to realize the sample functionality as lsim()?
Thanks in advance!
% RC low pass filter
fco = 0.7e9;
wco = fco * 2 * pi;
tau = 1 / wco;
num = [1];
den = [1/wco, 1];
% check tf model
sys = tf(num, den)
sys = 1 --------------- 2.274e-10 s + 1 Continuous-time transfer function.

Accepted Answer

David Goodmanson
David Goodmanson on 30 Apr 2024
Edited: David Goodmanson on 1 May 2024
Hi HG,
the large ampltude of the impulse response is correct. (has the original question been edited?) This has to be the case since the step response is the time integral of the impulse response. The step response = 1 for large t, Since the width of the impulse response is tiny, its amplitude must be large. Just eyeballing the impulse response 3x10^9 * .4x10^(-9) = 1.2, which works.
impulse response:
let a = 2.274e-10 let impulse response = (1/a) e^(-t/a) % very large amplitude
Laplace transform to check:
Int{0,inf} (1/a) e^(-t/a)*e^(-st) dt = (1/a) * 1/(s+1/a) = 1/(a*s +1) % ok
For the step response, integration in time gives an extra factor of 1/s in the s domain.
let step response = Int{0,t} (1/a) e^(-tau/a) dtau = 1 - e^(-t/a)
Laplace transform to check:
Int{0,inf} (1-e^(-t/a))*e^(-st) dt = 1/s - 1/(s+1/a) = (1/a)/(s*(s+1/a))
= 1/(s*(a*s +1)) % ok

More Answers (1)

Paul on 30 Apr 2024
It sounds like the code needs to account for the difference between the convolution sum, as computed by conv, and the convolution integral, which is what really applies for continuous-time systems. Would be easier to help if you showed the complete code where the amplitude of the output is wrong.

Community Treasure Hunt

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

Start Hunting!