Hi Qu Tianxiang,
From what I gather, you are trying to understand the reasoning behind the difference between the outputs of MATLAB commands “impulse(c2d(tf([1],[1 0 0]),1),10)” and “impulse(c2d(tf([1],[1 0 0]),1))” at t=1.
Let us understand the working of both the functions in detail:
- In “impulse(c2d(tf([1],[1 0 0]),1),10)”, the function is called with a time vector of 10 samples thus impulse is computed at these specific points.
- But in case of “impulse(c2d(tf([1],[1 0 0]),1))”, the function is called without a time vector, so MATLAB automatically determines the time vector based on system dynamics.
- So, when you specify 10 samples the time vector might not include a point at exactly t=1 so it might be interpolating between points, whereas MATLAB’s default time vector includes more points and might exactly capture the impulse response.
Refer to the output below for a better understanding:
For more details on the “impulse” function in MATLAB, you can refer to the documentation below:
Hope this is helpful!