Engee 文档

Cumulative Product

通道、列或行元素的部分乘积。

类型: CumulativeProduct

图书馆中的路径:

/Signal Operations/Math Functions/Math Functions/Cumulative Product

说明

累积乘积*程序块按给定的输入测量值或时间(当前乘积)计算部分(中间)乘积。

输入可以是矢量或矩阵。

输入和输出信号的特征

正确的输入信号

累加积*程序块接受包含实值或复值的矢量或矩阵输入信号。

正确的复位信号

可选的复位端口 Rst 接受标量值,可以是 Engee 支持的任何数据类型,包括 BoolRst 端口上信号的量化频率必须与输入信号的量化频率相同或更低。Rst 端口的输入计算步长必须是输入信号计算步长的正整数倍。

按通道计算乘积

如果*输入沿*参数设置为 "通道(运行乘积)",程序块将计算每个输入通道中各元素的部分乘积。每个输入的部分乘积都会考虑所有先前值的部分(中间)乘积。在此模式下,还必须指定*输入处理*参数的值。如果参数设置为 "列作为通道(基于帧)",程序块将沿输入信号的每一列计算部分乘积。如果*输入处理*参数设置为 "元素作为通道(基于采样)",程序块将计算输入信号中每个元素随时间变化的部分乘积。

计算输入信号每列的当前乘积

如果*输入处理*参数设置为 "列作为通道(基于帧)",则程序块会将每一列输入信号作为一个独立通道进行处理。如下图和公式所示,输出信号具有以下特征:

  • 第一个输出的第一行与第一个输入的第一行相同。

  • 随后每个输出的第一行是当前输入信号(时间 )的第一行与上一个输出信号(时间 ,其中 是帧周期)的逐元素乘积。

  • 输出信号的大小、尺寸和数据类型与输入信号相同。

如果 块的输入是一个 M 乘 N 的矩阵,则 的输出是一个 M 乘 N 的矩阵,其第一行由以下元素组成

cum prod running framebased

计算输入信号中每个元素的部分乘积

如果*输入处理*参数设置为 "元素作为通道(基于采样)",则程序块会将输入矩阵的每个元素作为独立通道进行处理。如下图和公式所示,输出信号具有以下特征:

  • 第一个输出与第一个输入相同。

  • 随后的每个输出都是当前输入(时间 )和上一个输出(时间 ,其中 是计算步骤)的逐元素乘积。

  • 输出数据的大小、维度和数据类型与输入数据相同。

如果一个程序块的输入 是一个 M 乘 N 的矩阵,则输出 是一个 M 乘 N 的矩阵

为方便起见,在进行通道乘法时,程序块将长度为 M 的输入无向向量视为大小为 M 乘 1 的列向量。在这种情况下,输出是长度为 M 的无向向量。

cum prod running samplebased

重置部分积

计算部分乘积时,只要检测到可选 Rst 端口上的复位事件,就可以配置程序块进行复位。端口 Rst 上信号的量化频率必须等于或小于输入信号的量化频率。Rst 端口的输入计算步长必须是输入信号计算步长的正整数倍。Rst 端口上的信号可以是 Engee 支持的任何数据类型,包括 Bool

如果在程序块执行基于采样的处理时发生重置事件,程序块将使用当前输入的值初始化当前输出。如果在程序块执行基于帧的处理时发生重置事件,则程序块会使用当前输入的第一行值来初始化当前输出的第一行。

重置端口*参数指定了重置事件,可以是以下事件之一:

  • 无"--禁用 Rst 端口。

  • 上升沿"- 当 Rst 端口输入信号时启动复位操作:

    • 从负值上升到正值或零时启动复位操作。

    • 从零上升到正值(不是从负值上升到零的延续)。

rising edge

  • 下降沿"- 当 Rst 输入端的信号出现时,开始复位操作:

    • 从正值降至负值或零。

    • 从零减小到负值(不是从正值减小到零的延续)。

falling edge

  • 任一边沿"- 如果满足 "上升边沿 "或 "下降边沿 "条件(如上所述),则启动重置操作。

  • 非零采样"- 如果 Rst 输入端的值不等于零,则启动复位操作。

列乘法

如果*输入沿乘法*参数设置为 "列",程序块将计算输入每一列的部分积。在这种模式下,当前的部分乘积与之前数值的部分乘积无关。 输出的大小、维度和数据类型与输入相同。第 M 行输出是前 m 行输入的逐元素乘积。

如果 程序块的输入是一个 M 乘 N 的矩阵,那么 的输出就是一个 M 乘 N 的矩阵,其中第 j 列由第 m 行的元素乘积组成。

在列乘法中,程序块将长度为 M 的输入无向向量视为大小为 M 乘 1 的列向量。

ch block ref a to g163

沿行相乘

如果*沿行乘法*参数设置为 "行",程序块将计算各行元素的部分乘积。在这种模式下,当前的部分乘积与之前数值的部分乘积无关。

输出信号的大小、尺寸和数据类型与输入信号相同。第 N 列输出是前 n 列输入的逐元素乘积。

如果 程序块的输入是一个 M 乘 N 的矩阵,那么 的输出就是一个 M 乘 N 的矩阵,其中第 i 行由以下元素组成

在字符串乘法中,程序块将长度为 M 的输入无向向量视为大小为 1 乘 N 的向量字符串。

ch block ref a to g297

参数

输入沿乘法运算 - 乘法维度
Channels (running product) (default) | Columns | Rows

计算乘积的维数。

输入处理 - 输入处理方法
列作为通道(基于帧)(默认)` | 元素作为通道(基于样本)` | 输入处理方法

指定块在按输入通道计算当前乘积时的输入处理方式。

可以将此参数设置为以下选项之一:

列作为通道(基于框架)"- 选择此选项时,程序块会将输入的每一列都视为一个单独的通道。

元素作为通道(基于采样)"--选择此选项时,单元会将每个输入元素视为一个单独的通道。

依赖关系

当*输入相乘*设置为 "通道(运行乘积)"时,将使用此选项。

重置端口 - 重置事件
无(默认)"|"上升沿"|"下降沿"|"任一沿"|"非零采样"。

定义重置事件,使块重置各通道的乘积。端口 Rst 上的信号量化频率必须与输入信号的量化频率相同或更低。端口 Rst 的输入计算步长必须是输入信号计算步长的正整数倍。

依赖关系

只有当*输入沿乘法*设置为 "通道(运行乘积)"时,此参数才可用。