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

2 Ansichten (letzte 30 Tage)
Qu Tianxiang
Qu Tianxiang am 25 Jul. 2024
Beantwortet: Suraj Kumar am 6 Aug. 2024
impulse(c2d(tf([1],[1 0 0]),1),10)与impulse(c2d(tf([1],[1 0 0]),1))的输出结果不同, 在t=1时候前者为0.5而后者为1?求各位大佬解答!

Antworten (1)

Suraj Kumar
Suraj Kumar am 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!

Kategorien

Mehr zu Big Data Processing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!