文档

用每个子系统向量化标量算法

这个例子展示了如何使用For Each子系统。在这个例子中,为了简单起见,操作是在一个向量上执行的。

打开示例模型sldemo_foreach_vectorized.该模型包含一个For Each子系统,用于逐个处理输入信号。

每个子系统的输入是:要处理的信号,对每个信号使用的FIR滤波器的系数,以及公共增益。

每个信号都是标量,需要单独处理。因此,控制分区维度的For Each Block被设置为通过分区宽度为1的切片沿维度1对输入信号进行分区。对于每个输入信号,相应的一组系数也必须使用相同的准则进行划分。增益对所有信号都是公共的,因此这个输入没有被分割。

由于输出信号维数期望与输入信号维数匹配,因此将拼接维数设置为分区维数。如果您喜欢改变信号维数(在本例中是转置),您可以选择2作为连接维数。

对于For Each子系统,必须设置分区尺寸和宽度,但不需要设置输入信号大小。然后检查确保这个大小是分区宽度的倍数。如果没有检测到错误,子系统将计算封闭子系统将执行的独立执行的数量。这些执行是独立的,其中,与给定包含块相关联的状态在每个执行中都有一个唯一的值。

要查看此模型的非向量化实现,双击模型左上角的子系统。这个实现不使用For Each子系统。它通过根据需要多次复制子系统并适当地选择和连接信号来模拟子系统的功能。这个复制过程很容易出错,而且不可扩展——改变输入信号的大小就需要相应地改变模型。

这个话题有用吗?