Simulink - 查找积累超过阈值的向量元素的索引

时间:2015-02-25 18:13:53

标签: signal-processing simulink

我正在寻求改进Simulink模型的延迟估计部分。输入是系统的估计脉冲响应。我想要脉冲响应的第一个样本的索引,其中它与前一个元素的绝对值之和超过整个向量中总分的一定部分。

这是我目前的解决方案: Screenshot of Simulink model

矩阵和沿维度2运行.prelookup块设置为clip。这是找到元素(可能是一个关闭,我还没想到),总数达到了1%。

这看起来过于复杂,如果没有一些解释,它还不清楚它的目的是什么。我尝试提出一种基于离散积分器/累加器模块的解决方案,但无法提出更好的解决方案。它确实比这个解决方案需要更多的补充,尽管现在的性能并不是真正的问题。

是否有更简单的方法可以在矢量中获取运行总和,而不是Toeplitz-> Triangular-> Sum部分?是否有更好的方法来执行整个查找?

1 个答案:

答案 0 :(得分:1)

如果您有DSP系统工具箱,则有一个"累积总和"块应该能够替换你的toeplitz,traiangular矩阵和矩阵和。

http://www.mathworks.com/help/dsp/ref/cumulativesum.html

如果你没有DSP系统工具箱,我建议在MATLAB功能块中对其进行编码,它应该是一个单独的工具箱。

y = cumsum(x);

当你在那里时,你可能还想在MATLAB功能块中编写整个逻辑,在这种情况下更容易编码和理解。