フィルターのクリア

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

3 ビュー (過去 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 Center および File ExchangeBig Data Processing についてさらに検索

Community Treasure Hunt

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

Start Hunting!