假设在simluink中的输出长为1801
输入轨迹为1801,那么如果要在Matlab中用卷积还原结果,系统的脉冲响应长度怎么取,因为在Matlab中conv结果的长度为N+M-1,N参考轨迹的长度
M系统的脉冲响应长度,怎么还原simulink结果
就是用Matlab怎么算出simulink相同的结果
simluink输出怎么在Matlab还原
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术宅program 2023-05-16 16:55关注
在这个问题中,Simulink的输出长度为1801,输入轨迹也为1801。要在Matlab中使用卷积运算还原相同结果,需要正确选择系统的脉冲响应长度M。
根据卷积运算的长度计算公式:conv结果长度 = N + M - 1
其中N为输入轨迹长度,M为脉冲响应长度。
为得到相同于Simulink的输出结果1801,需要满足:
1801 = 1801 + M - 1
解得:M = 1801
所以,在Matlab中为得到跟Simulink相同的输出结果,系统的脉冲响应长度M需要取1801。
Matlab中的代码可以如下:matlab N = 1801; % 输入轨迹长度 M = 1801; % 脉冲响应长度 x = rand(N,1); % 随机输入轨迹 h = rand(M,1); % 随机脉冲响应 y = conv(x,h); % 卷积运算
此时y的长度为:1801 + 1801 - 1 = 3601
由于我们取M = 1801,正好可以得到与Simulink输出相同长度的结果1801。如果M取其他值,则无法得到相同结果。
所以,在利用卷积运算还原Simulink的输出结果时,正确选择系统的脉冲响应长度M是关键。需要根据公式计算使得卷积结果长度等于Simulink的输出长度,此时取M = 1801。解决 无用评论 打赏 举报
悬赏问题
- ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
- ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
- ¥20 C#上传XML格式数据
- ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
- ¥100 单片机hardfaulr
- ¥20 手机截图相片分辨率降低一半
- ¥50 求一段sql语句,遇到小难题了,可以50米解决
- ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
- ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
- ¥15 虚拟机检测,可以是封装好的DLL,可付费