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일)
Qu Tianxiang
Qu Tianxiang 2024년 7월 25일
답변: Suraj Kumar 2024년 8월 6일
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!