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

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

回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Big Data Processing 的更多信息

Community Treasure Hunt

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

Start Hunting!