Main Content

有界可变大小信号基本操作

此示例说明如何生成有界可变大小信号,并说明使用这些信号的一些操作。在此示例中,您使用 Selector 模块和 Switch 模块生成可变大小信号。这些信号用于数学运算、总线创建、总线选择、矩阵串联以及实现离散滤波器方程。

有界可变大小信号生成

有界可变大小信号在以下组件中生成。

Bounded Variable-Size Signal Generation Using Switch Block 组件使用 Switch 模块,其输入端口上具有标量信号和 3×2 非标量信号。此模块的输出是上界为 3×2 的有界可变大小信号。根据首个输入传递条件参数中设置的条件决定输出。要允许传播不同大小的信号,请在“模块参数”对话框中选择信号属性 > 允许不同数据输入大小。输出信号进一步用于总线创建、总线选择和矩阵串联组件。

Bounded Variable-Size Signal Generation Using Selector Block 组件使用 Selector 模块,该模块使用一个 3×4 和一个 1×2 非标量信号。此模块的输出是上界为 3×4 的有界可变大小信号。要允许大小选择索引随时间变化,请在“模块参数”对话框中,为索引选项选择起始和结束索引(端口) 参数,并为索引选项选择起始和结束索引(端口) 参数。此外,对于此模型,输入维数设置为 2

使用有界可变大小信号的基本操作

使用有界可变大小信号的操作在以下组件中表示。

Bus Creation, Bus Selection and Matrix Concatenation 组件使用通过 Switch 模块生成的信号,并包含以下用于总线创建、总线选择和矩阵串联的模块。

  • Matrix Concatenate 模块 $-$ 此模块将两个有界可变大小信号串联在一起,沿维度 1(行)的上界为 3×2。它输出 6×2 矩阵。

  • Bus Creator 模块 $-$ 此模块组合两个 3×2 有界可变大小信号 ab,并输出非虚拟总线 Data Signal。此非虚拟总线存储在 Goto 模块中。

  • Bus Selector 模块 $-$ 此模块使用非虚拟总线 Data Signal,并使用 Bus Selector 模块选择两个 3×2 有界可变大小信号。

Stateflow Chart and Function-Call Subsystem to Implement a Discrete-time FIR Filter Equation 组件使用 Unit Delay 和 Gain 模块在名为 Third order Discrete FIR Filter 的函数调用子系统中实现一个三阶因果离散时间有限冲激响应 (FIR) 滤波器方程。滤波器方程表示一个使用最近输入值的加权和。此子系统使用一个 3×2 有界可变大小信号作为输入,它在 function 端口上接收到函数调用信号时会被触发。来自 Stateflow 图 Mode Control Logic 的输出事件 E 指示信号大小的任何变化,这会触发(使能)此子系统的执行。

要传播当前信号大小并重置 Unit Delay 模块状态以接受当前信号大小,请在函数调用子系统内的“触发模块参数”对话框中,将传播可变大小信号的大小参数设置为 Only when enabling

使用 Scope 模块来表示输出处理信号。

在仿真的不同时间步上,使用 simout2simout4 变量将信号宽度记录到基础工作区中。

Mathematical Operations 组件显示对您使用 Selector 模块生成的有界可变大小信号的数学运算。此组件使用以下模块进行数学运算:

  • Complex to Real-Imag 模块:此模块分离复输入信号的实部和虚部。

  • Math Function 模块:此模块使用 square 函数计算信号实部的平方,使用 log10 函数计算信号虚部的常用(以 10 为底)对数值。

  • Width 模块:此模块计算在仿真的不同时间步上输入有界可变大小信号的宽度。此值记录在基础工作区中的变量 selectorVarSigWidth 中。

另请参阅

| | | | (Stateflow) | | | | |

相关主题