Correlation
两个输入数据相互关联的函数。
类型: Correlation
图书馆中的路径:
|
说明
相关性*程序块计算两个输入数组(维数为 N)沿第一维的相互相关函数。计算可以在时域或频域中进行。您可以使用*计算域*参数指定计算域。
在时域中,该单元将第一输入信号 与第二输入信号 的时间反向复共轭进行卷积。
在频域,为了计算相互相关性,模块
-
对两个输入信号 和 进行傅立叶变换。
-
将 和 相乘,其中 是复共轭。
-
计算乘积的反傅里叶变换。
如果将 * 计算域* 设置为 "最快",程序块将选择计算次数最少的域。
端口
输入
端口_1 - 第一个数据输入
矩阵
该块接受多通道和多维输入数据,输入值为实数或复数。将*计算域*设置为`时间`时,输入信号可以是定点信号。当一个或两个输入信号都是复数时,输出信号也是复数。
数据类型: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, Int128
, UInt8
, UInt16
, UInt32
, UInt64
, UInt128
, Fixed
*支持复数:是
端口 2 - 第二数据输入
矩阵
该块接受多通道和多维输入数据,输入值为实数或复数。如果将*计算域*设置为`时间`,输入信号可以是定点信号。当一个或两个输入信号都是复数时,输出信号也是复数。
数据类型: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, Int128
, UInt8
, UInt16
, UInt32
, UInt64
, UInt128
, Fixed
*支持复数:是
输出
端口_1 - 相互关联的输出信号
向量
| `矩阵
两个输入信号相互关联的输出。
当输入数据为多维数组时,程序块会输出一个多维数组,其中除第一维外的所有维数都与输入数组相同。例如
-
当输入 和 的维数分别为 Mu by N by P 和 Mv by N by P 时,Correlation 程序块输出数组 Mu+Mv-1 by N by P。
-
当输入信号 和 的维数分别为 Mu 乘 N 和 Mv 乘 N 时,该块输出数组 Mu+Mv-1 乘 N。
当一个输入信号代表一个列向量,另一个输入信号代表一个多维数组时,相关性模块会计算向量与多维数组中每一列的相互相关性。例如
-
当输入 表示列向量 Mu by 1, 表示矩阵 Mv by N 时,相关块输出矩阵 Mu+Mv-1 by N。
-
同样,当 和 分别是长度为 Mu 和 Mv 的列向量时,程序块执行向量互相关。
数据类型: Float64
*支持复数:是
参数
主要参数
计算域 - 块计算自相关性的区域
时间(默认) | 频率 | 最快
-
时间"- 在时域中计算相互相关性,从而最大限度地减少内存使用量。
-
频率"- 在频域中计算相互关联。更多信息,请参阅 [Алгоритмы].
-
Fastest` - 以最少的计算次数计算相互关联。
要处理定点信号,请将此参数设置为 Time
。
数据类型
Rounding mode - 四舍五入模式
|Floor (default)
|Ceiling
|Convergent
|Nearest
|Round
|Simplest
|`Zero
选择定点运算的舍入模式。您可以选择
-
Floor` - 将正数和负数舍入到负无穷大。
-
上限"- 将正数和负数舍入到正无穷大。
-
收敛"- 将数字四舍五入到最接近的可表示值。如果数字的小数部分以 5 结尾,则四舍五入到最接近的偶数整数。
-
最近"- 将数字舍入到最接近的可表示值。如果数字的小数部分以 5 结尾,则四舍五入为最接近的偶数整数。
-
Round` - 将数字舍入到最接近的可表示值。如果数字的小数部分以 5 结尾,正数四舍五入为正无穷大,负数四舍五入为负无穷大。
-
Simplest` - 自动在 "Floor "舍入和 "Zero "舍入之间进行选择,以生成尽可能高效的舍入代码。
-
Zero
- 将数字舍入为零。
程序块参数总是四舍五入到最接近的可表示值。
如果满足条件,*四舍五入模式*和*整数溢出时使之饱和*设置不会影响数值结果:
通过这些数据类型设置,程序块以全精度模式运行。 |
整数溢出时饱和 - 整数溢出时饱和
已禁用(默认) | 已启用
选中该复选框时,将对整数和定点数使用饱和运算:发生溢出时,结果将自动替换为数据类型的最大可能(模)值。
操作 | 原理 | 对溢出的影响 | 示例 |
---|---|---|---|
已选中(启用)Saturate on integer overflow 复选框。 |
您的模型可能存在溢出,您希望生成的代码明确防止溢出。 |
当发生溢出时,结果将自动替换为数据类型可能的最大值(模)。 |
Int8(有符号 8 位整数)数据类型可表示的最大值是 127。 块操作的任何结果如果超过这个最大值,都会导致 8 位整数溢出。检查时,块输出饱和到 127。同样,在最小输出值为 -128 时,程序块输出也会饱和。 |
整数溢出时饱和*复选框未选中(禁用)。 |
您希望优化生成代码的效率。 您希望避免过度确定程序块如何处理超出范围的信号。 |
溢出将以数据类型所能表示的适当值承载。 |
Int8(有符号的 8 位整数)数据类型可表示的最大值为 127。 块操作的任何结果如果超过这个最大值,都会导致 8 位整数溢出。如果未选中复选框,软件会将导致溢出的值解释为 |
选择该复选框后,饱和将应用于程序块中的所有内部操作,而不仅仅是输入/输出数据或结果。
块参数 |
|
价值观 |
|
默认值 |
|
产品输出* - 产品输出数据类型 Inherit: Same as input (default)
| fixdt([],16,0)
Details
指定工作的输出数据类型。您可以将此参数设置为以下值:
-
继承数据类型的规则,例如,
Inherit: Same as input
。 -
导致有效数据类型的表达式,例如,
fixdt([],16,0)
。
Accumulator - 累加器数据类型
继承:通过内部规则继承(默认)` | 继承:与输入相同
| fixdt([],16,0)
*累加器*指定块中累加操作输出的数据类型。可以将此参数设置为以下值:
-
继承:通过内部规则继承` - 程序块根据内部规则继承工作输出数据类型。
-
继承:与输入相同"--程序块将累加器数据类型设置为与输入数据类型相同。
-
fixdt(1,16,0)`--该代码块指定了一种字长为 16 位、分数长度为 0 的自动有符号二进制缩放定点数据类型。
Output data type - 输出数据类型
Float16
| Float32
| Float64
| Int8
| Int16
| Int32
| Int64
| Int128
| UInt8
| UInt16
| UInt32
| UInt64
| UInt128
| Inherit: auto
| Fixed point
.
指定输出数据类型。
类型可以继承、直接指定或表示为数据类型对象。
块参数: |
|
*参考: |
|
默认值: |
|
Output minimum - 最小输出数据值
[] (默认)
| scalar
- 最小输出数据值
最小输出数据值默认为 []
,相当于 -Inf
。
这个数字必须是有限的实数双标量值。
如果总线类型的对象被指定为该数据块的数据类型,则不要为该数据块中的数据指定最小值。Engee 会忽略这一设置。相反,应为指定为数据类型的对象元素设置最小值。 |
Engee 使用此值执行:
-
建模范围检查。
-
定点数据类型的自动缩放
-
优化从模型生成的代码。这种优化会删除算法代码,并影响某些模拟模式的结果。
该参数不会对实际输出信号进行饱和或修整。取而代之的是使用块 Saturation。 |
块参数 |
|
价值观 |
|
默认值 |
|
输出最大值* - 最大输出数据值 [] (默认)
| scalar
- 最大输出数据值
Details
最大输出数据值默认为 []
,相当于 Inf
。
这个数字必须是有限有效的双标量值。
如果总线类型的对象被指定为该数据块的数据类型,则不要为该数据块中的数据指定最大值。Engee 会忽略这一设置。取而代之的是,为指定为数据类型的对象元素设置最大值。 |
Engee 使用此值执行:
-
建模范围检查。
-
定点数据类型的自动缩放
-
优化从模型生成的代码。这种优化会删除算法代码,并影响某些模拟模式的结果。
该参数不会对实际输出信号进行饱和或修整。取而代之的是使用块 Saturation。 |
块参数 |
|
价值观 |
|
默认值 |
|
锁定数据类型设置,防止定点工具更改 - 锁定数据类型的自动缩放功能
已禁用(默认) | 已启用
复选框,用于阻止定点数据类型的自动缩放。
块参数 |
|
价值观 |
|
默认值 |
|
算法
时域计算
将计算区域设置为 "时间 "时,算法将计算两个信号在时域中的相互相关性。输入信号可以是时域中的定点信号。
两个二维阵列的相关性
当输入数据为两个二维数组时,输出数据 -th 列 包含这些元素:
在哪里?
-
- 复数共轭。
-
- N 上的输入矩阵 Mu。
-
- N 上的输入矩阵 Mv
-
- N 上的输入矩阵 Mu+Mv-1
如果输入 和 的索引超出其有效范围,则其值为零。