我正在寻求改进Simulink模型的延迟估计部分。输入是系统的估计脉冲响应。我想要脉冲响应的第一个样本的索引,其中它与前一个元素的绝对值之和超过整个向量中总分的一定部分。
这是我目前的解决方案:
矩阵和沿维度2运行.prelookup块设置为clip。这是找到元素(可能是一个关闭,我还没想到),总数达到了1%。
这看起来过于复杂,如果没有一些解释,它还不清楚它的目的是什么。我尝试提出一种基于离散积分器/累加器模块的解决方案,但无法提出更好的解决方案。它确实比这个解决方案需要更多的补充,尽管现在的性能并不是真正的问题。
是否有更简单的方法可以在矢量中获取运行总和,而不是Toeplitz-> Triangular-> Sum部分?是否有更好的方法来执行整个查找?
答案 0 :(得分:1)
如果您有DSP系统工具箱,则有一个"累积总和"块应该能够替换你的toeplitz,traiangular矩阵和矩阵和。
http://www.mathworks.com/help/dsp/ref/cumulativesum.html
如果你没有DSP系统工具箱,我建议在MATLAB功能块中对其进行编码,它应该是一个单独的工具箱。
y = cumsum(x);
当你在那里时,你可能还想在MATLAB功能块中编写整个逻辑,在这种情况下更容易编码和理解。