impulse(c2d(tf([1],[1 0 0]),1),10)​与impulse(c​2d(tf([1],​[1 0 0]),1))的输出结果不同, 在t=1时候前者为0.5而后者为1?为什么?

2 views (last 30 days)
impulse(c2d(tf([1],[1 0 0]),1),10)与impulse(c2d(tf([1],[1 0 0]),1))的输出结果不同, 在t=1时候前者为0.5而后者为1?求各位大佬解答!

Answers (1)

Suraj Kumar
Suraj Kumar on 6 Aug 2024
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!

Community Treasure Hunt

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

Start Hunting!