Cumulative Product
通道、列或行元素的部分乘积。
类型: CumulativeProduct
图书馆中的路径:
|
说明
累积乘积*程序块按给定的输入测量值或时间(当前乘积)计算部分(中间)乘积。
输入可以是矢量或矩阵。
按通道计算乘积
如果*输入沿*参数设置为 "通道(运行乘积)",程序块将计算每个输入通道中各元素的部分乘积。每个输入的部分乘积都会考虑所有先前值的部分(中间)乘积。在此模式下,还必须指定*输入处理*参数的值。如果参数设置为 "列作为通道(基于帧)",程序块将沿输入信号的每一列计算部分乘积。如果*输入处理*参数设置为 "元素作为通道(基于采样)",程序块将计算输入信号中每个元素随时间变化的部分乘积。
计算输入信号每列的当前乘积
如果*输入处理*参数设置为 "列作为通道(基于帧)",则程序块会将每一列输入信号作为一个独立通道进行处理。如下图和公式所示,输出信号具有以下特征:
-
第一个输出的第一行与第一个输入的第一行相同。
-
随后每个输出的第一行是当前输入信号(时间 )的第一行与上一个输出信号(时间 ,其中 是帧周期)的逐元素乘积。
-
输出信号的大小、尺寸和数据类型与输入信号相同。
如果 块的输入是一个 M 乘 N 的矩阵,则 的输出是一个 M 乘 N 的矩阵,其第一行由以下元素组成
计算输入信号中每个元素的部分乘积
如果*输入处理*参数设置为 "元素作为通道(基于采样)",则程序块会将输入矩阵的每个元素作为独立通道进行处理。如下图和公式所示,输出信号具有以下特征:
-
第一个输出与第一个输入相同。
-
随后的每个输出都是当前输入(时间 )和上一个输出(时间 ,其中 是计算步骤)的逐元素乘积。
-
输出数据的大小、维度和数据类型与输入数据相同。
如果一个程序块的输入 是一个 M 乘 N 的矩阵,则输出 是一个 M 乘 N 的矩阵
为方便起见,在进行通道乘法时,程序块将长度为 M 的输入无向向量视为大小为 M 乘 1 的列向量。在这种情况下,输出是长度为 M 的无向向量。
重置部分积
计算部分乘积时,只要检测到可选 Rst 端口上的复位事件,就可以配置程序块进行复位。端口 Rst 上信号的量化频率必须等于或小于输入信号的量化频率。Rst 端口的输入计算步长必须是输入信号计算步长的正整数倍。Rst 端口上的信号可以是 Engee 支持的任何数据类型,包括 Bool
。
如果在程序块执行基于采样的处理时发生重置事件,程序块将使用当前输入的值初始化当前输出。如果在程序块执行基于帧的处理时发生重置事件,则程序块会使用当前输入的第一行值来初始化当前输出的第一行。
重置端口*参数指定了重置事件,可以是以下事件之一:
-
无"--禁用 Rst 端口。
-
上升沿"- 当 Rst 端口输入信号时启动复位操作:
-
从负值上升到正值或零时启动复位操作。
-
从零上升到正值(不是从负值上升到零的延续)。
-
-
下降沿"- 当 Rst 输入端的信号出现时,开始复位操作:
-
从正值降至负值或零。
-
从零减小到负值(不是从正值减小到零的延续)。
-
-
任一边沿"- 如果满足 "上升边沿 "或 "下降边沿 "条件(如上所述),则启动重置操作。
-
非零采样"- 如果 Rst 输入端的值不等于零,则启动复位操作。
参数
输入沿乘法运算 - 乘法维度
Channels (running product) (default)
| Columns
| Rows
计算乘积的维数。
输入处理 - 输入处理方法
列作为通道(基于帧)(默认)` | 元素作为通道(基于样本)` | 输入处理方法
指定块在按输入通道计算当前乘积时的输入处理方式。
可以将此参数设置为以下选项之一:
列作为通道(基于框架)"- 选择此选项时,程序块会将输入的每一列都视为一个单独的通道。
元素作为通道(基于采样)"--选择此选项时,单元会将每个输入元素视为一个单独的通道。
依赖关系
当*输入相乘*设置为 "通道(运行乘积)"时,将使用此选项。
重置端口 - 重置事件
无(默认)"|"上升沿"|"下降沿"|"任一沿"|"非零采样"。
定义重置事件,使块重置各通道的乘积。端口 Rst 上的信号量化频率必须与输入信号的量化频率相同或更低。端口 Rst 的输入计算步长必须是输入信号计算步长的正整数倍。
依赖关系
只有当*输入沿乘法*设置为 "通道(运行乘积)"时,此参数才可用。