有界可变大小信号基本操作
此示例说明如何生成有界可变大小信号,并说明使用这些信号的一些操作。在此示例中,您使用 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 有界可变大小信号
a
和b
,并输出非虚拟总线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 模块来表示输出处理信号。
在仿真的不同时间步上,使用 simout2
和 simout4
变量将信号宽度记录到基础工作区中。
Mathematical Operations
组件显示对您使用 Selector 模块生成的有界可变大小信号的数学运算。此组件使用以下模块进行数学运算:
Complex to Real-Imag 模块:此模块分离复输入信号的实部和虚部。
Math Function 模块:此模块使用
square
函数计算信号实部的平方,使用log10
函数计算信号虚部的常用(以 10 为底)对数值。Width 模块:此模块计算在仿真的不同时间步上输入有界可变大小信号的宽度。此值记录在基础工作区中的变量
selectorVarSigWidth
中。
另请参阅
Switch | Selector | Trigger | Function-Call Subsystem | Chart (Stateflow) | Bus Selector | Bus Creator | Matrix Concatenate | Complex to Real-Imag | Math Function