到目前为止,我在Matlab中为生物医学应用提供了一些信号处理算法原型 . 它看起来像一批用于离线信号处理的.m函数 .

但随着算法复杂性的增加,我意识到我的函数应该在实时模式下相互交互 . 例如,func1可以检测不同的事件/状态,func2的进一步工作取决于该事件(反之亦然) .

然后我发现使用基于框架的概念的Matlab System对象可以帮助我:http://www.mathworks.com/help/dsp/gs/what-are-system-objects.html "For simple, one-time computations use MATLAB functions. However, if you need to design and simulate a system with many components, use System objects."

但是当我开始探索这个工具时,我遇到了一些限制:在许多Matlab示例中,在单个工作流中使用了几个标准对象,帧长度相等(单个循环内的几个步骤(obj)方法的序列) . 在Simulink中,有标准内置块的常见方案 .

我需要的是高级自定义对象(=算法阶段)的连接,它可以具有不同的帧长度,可以根据系统的特定状态进行切换,并且可以彼此共享一些事件 .

我看到两种不同的方式:

1)使用简单的主脚本和公共变量,步骤(对象)和几个分支,描述整个系统的行为和控制管理 .

2)使用Simulink图 .


所以,我的问题是:

1)如何处理不同的帧长度? (例如,1k样品的一步() - >然后是10个步骤()的100个样品 - >然后等待3k样品的步骤()的数据)

2)使用Simulink有什么好处,除了图形表示?

3)如果使用Simulink,我应该在哪里保留一些常见的数据/参数,以及如何在不同对象之间切换工作流程?