Engee 文档

NCO

生成实正弦或复正弦信号。

blockType: NCO

图书馆路径:

/Signal Operations/Sources/NCO

说明

NCO 单元可生成多通道实正弦或复正弦信号,每个输出通道的频率和相位均独立。生成信号的振幅始终为 "1"。所有输出均为实数,但 exp 除外。 `复杂指数`可通过在下拉列表 输出信号 中选择相应项目启用。有关设备如何计算输出信号的更多信息,请参阅 . 算法.

要获得多通道输出,请将参数 相位增量相位偏移 设置为矢量。两个参数的维数必须相同,这决定了输出通道的数量。每个矢量的每个元素都应用于不同的输出通道。

端口

输出

# 罪过 — 正弦输出
标量 | 矢量 | 矩阵

Details

以标量、矢量或矩阵形式指定的正弦输出信号。您可以使用参数 数据类型 指定信号数据类型。

依赖关系

要使用该端口,请将 输出信号 参数设置为 正弦波`或 `正弦和余弦.

数据类型

Float32"、"Float64"、"Fixed"。

复数支持

# Qerr — 相位量化误差
标量 | 向量 | 矩阵

Details

以标量、矢量或矩阵形式指定的相位量化误差。

依赖关系

要使用该端口,请选择复选框 显示相位量化误差端口

数据类型

Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64, Fixed

复数支持

# 系数 — 余弦输出
标量 | 向量 | `矩阵

Details

余弦输出信号,指定为标量、矢量或矩阵。您可以使用参数 数据类型 指定信号数据类型。

依赖关系

要使用该端口,请将 输出信号 参数设置为 余弦`或 `正弦和余弦.

数据类型

Float32"、"Float64"、"Fixed"。

复数支持

# exp — 复指数输出
标量 | 向量 | 矩阵

Details

以标量、矢量或矩阵形式指定的复指数输出。可以使用参数 数据类型 指定信号数据类型。

依赖关系

要使用该端口,请将 输出信号 设置为 复杂指数.

数据类型

Float32"、"Float64"、"Fixed"。

复数支持

输入

# 胶印 — 相移
标量 | 向量 | 矩阵

Details

相移信号指定为实数标量、矢量或全矩阵。输入数据必须是分数长度为零的整数或定点数据类型。程序块将移相端口输入数据的每一列视为一个独立通道。相移信号的通道数必须与输入数据的通道数一致。对于每一帧输入数据,程序块可对每个采样和通道应用不同的相移。

依赖关系

要使用该端口,请将 相位偏移源 参数设置为 输入端口.

数据类型

Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64, Fixed

复数支持

# 招致 — 相位增量
标量 | 矢量

Details

相位递增信号,指定为标量或矢量的实数值。输入必须是整数数据类型或分数长度为零的定点数据类型。相位递增信号的大小取决于如何指定参数 相位偏移

  • 在程序块对话框中指定 相位偏移 时,参数 相位增量 必须是与值 相位偏移 相同长度的标量或矢量。程序块会将矢量的每个元素应用到不同的通道,因此矢量的长度决定了输出通道的数量。

  • 通过输入端口指定 相位偏移 时,offset 端口会将每一列输入视为一个独立通道。 相位增量 的长度必须等于 offset 端口输入的列数。

依赖关系

要使用该端口,请将 相位增量源 参数设置为 输入端口.

数据类型

Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64, Fixed

复数支持

参数

相加器参数

# 相位增量源 — 设置相位增量的方法
通过对话框指定 | 输入端口

Details

选择设置相位增量的方法:

  • 输入端口 -相位增量值将被发送到输入端口*inc*;

  • 通过对话框指定 -相位增量的值可以在参数中设置 相位增量 .

Specify via dialog | Input port

默认值

Specify via dialog

程序使用名称

PhaseIncrementSource

可调谐

可计算

# 相位增量 — 相位增量的值

Details

将相位增量指定为具有整数值的标量或矢量。 仅允许整数数据类型,包括定点和零分数数据类型。 相位增量的维数取决于相移的维数:

  • 当您在block参数中指定相移时 相位偏移 相位增量必须是与相移维数相同的标量或矢量。 块将向量的每个元素应用于单独的通道,因此向量的长度决定了输出通道的数量。

  • 当您通过*offset*输入端口指定相移时,移位端口将每个输入列视为一个独立的通道。 相位增量的长度必须等于移位端口输入端的列数。

依赖关系

若要使用此参数,请为参数设置 相位增量源 意义 通过对话框指定.

默认值

100

程序使用名称

PhaseIncrement

可调谐

可计算

# 相位偏移源 — 设置相移的方法
通过对话框指定 | 输入端口

Details

选择设置相移的方法:

  • 输入端口 -相移值将被发送到输入端口* 偏移*;

  • 通过对话框指定 -可以在参数中设置相移值 相位偏移 .

Specify via dialog | Input port

默认值

Specify via dialog

程序使用名称

PhaseOffsetSource

可调谐

可计算

# 相位偏移 — 相移的值

Details

将相移指定为具有整数值的标量或矢量。 仅允许整数数据类型,包括定点和零分数数据类型。 当您使用此参数指定相移时,它必须是与相位增量具有相同维度的标量或矢量。 标量展开为与相位增量具有相同维数的向量。 相移向量的每个元素应用于单独的输入通道,因此向量的长度决定了输出通道的数量。

依赖关系

若要使用此参数,请为参数设置 相位偏移源 意义 通过对话框指定.

默认值

0

程序使用名称

PhaseOffset

可调谐

可计算

# 添加内部抖动 — 添加内部噪声
Logical

Details

选择此选项可向NCO算法添加平滑。 使用块中使用的算法添加平滑 PN 序列发生器.

默认值

true (已开启)

程序使用名称

AddInternalDither

可调谐

可计算

# 抖动位数 — 平滑位数
Real number

Details

指定平滑位数为正整数。

依赖关系

要使用此端口,请选中此框 添加内部抖动 .

默认值

4

程序使用名称

NumDitherBits

可调谐

可计算

# 量化相位 — 启用累积相位的量化
Logical

Details

要启用累积相位的量化,请选择此选项。

默认值

true (已开启)

程序使用名称

QuantizePhase

可调谐

可计算

# 量化累加器位数 — 驱动器的量化位数
Real number

Details

将驱动器的量化位数指定为大于一且小于驱动器字长度的整数标量。 此值确定搜索表中的记录数。

依赖关系

若要使用此选项,请选中此框 量化相位 .

默认值

12

程序使用名称

NumQuantizeAccBits

可调谐

可计算

# 显示相位量化误差端口 — 相位量化误差输出
Logical

Details

选择相位量化误差输出。 选中此框时,块图标上会显示 Qerr 端口。

依赖关系

若要使用此选项,请选中此框 量化相位 .

默认值

false (关掉)

程序使用名称

ShowErrPort

可调谐

可计算

输出参数

# 输出信号 — 输出信号
正弦波 | 余弦 | 复杂指数 | 正弦和余弦

Details

选择块输出哪个信号。: 正弦波, 余弦, 复杂指数 或两个信号 正弦和余弦. 如果你选择 正弦和余弦,然后信号将被输出到不同的端口。

Sine | Cosine | Complex exponential | Sine and cosine

默认值

Sine

程序使用名称

OutputSignal

可调谐

可计算

# 采样时间 — 采样周期
Real number

Details

如果块充当源,请将采样周期(以秒为单位)指定为正标量。

依赖关系

若要使用此参数,对于两个参数 相位增量源相位偏移源 该值必须设置为 通过对话框指定. 当通过单元的输入端口接收到相位增量或相移时,采样周期被继承并且不使用此参数。

默认值

1

程序使用名称

SampleTimeParam

可调谐

可计算

# 每帧采样 — 每帧计数
Real number

Details

指定每帧样本数为正整数。 如果该值大于一,那么相位增量和相移可以从信道到信道以及从帧到帧变化,但是它们对于给定帧中的每个信道是恒定的。

当使用 偏移 相移输入端口时,它具有与任何输出端口相同的帧状态。 当使用相位增量输入端口 inc 时,不支持帧。

依赖关系

若要使用此参数,请为参数设置 相位增量源 和/或对于参数 相位偏移源 意义 通过对话框指定.

默认值

1

程序使用名称

SamplePerFrame

可调谐

可计算

定点运行参数

# 舍入模式 — 四舍五入方法
向下取整

Details

此参数是只读的。

当输入是定点数据类型时,块 NCO 始终使用舍入方法。 向下取整.

Floor

默认值

Floor

程序使用名称

RM

可调谐

可计算

# 溢出模式 — 溢出方法
绕组

Details

此参数是只读的。

当输入是定点数据类型时,块 NCO 溢出时始终使用该方法 绕组.

Wrap

默认值

Wrap

程序使用名称

OM

可调谐

可计算

累加器

# 数据类型 — 存储数据类型
二进制点缩放

Details

指定驱动器的数据类型。

Binary point scaling

默认值

Binary point scaling

程序使用名称

AccDataType

可调谐

可计算

# 签名 — 驱动器的签名数据类型

Details

指示驱动器的数据类型为签名。

yes

默认值

yes

程序使用名称

AccSign

可调谐

可计算

# 世界长度 — 存储字长
Real number

Details

指定累加器字的长度为正整数从 2 以前 128.

默认值

16

程序使用名称

AccWorldLen

可调谐

可计算

# 分数长度 — 存储数据的长度
0

Details

指定存储数据类型的小数部分长度始终等于 0.

0

默认值

0

程序使用名称

AccFracLen

可调谐

可计算

输出

# 数据类型 — 输出数据的类型
二进制点缩放 | Float64 | Float32

Details

指定输出数据的类型:

  • 选择 Float64Float32 为浮点实现。

  • 当你选择 二进制点缩放 您可以为输出数据指定字的长度和分数的长度(以位为单位)。

注意事项

该块的搜索表由双精度浮点值构建。 所以你可以在输出中达到的最大精度是53位。 设置数据类型字的长度 输出 超过53位的值不会提高输出的精度。

Binary point scaling | Float64 | Float32

默认值

Binary point scaling

程序使用名称

OutputDataType

可调谐

可计算

# 符号 — 输出数据的签名类型

Details

指示输出数据类型是否为签名。

依赖关系

若要使用此参数,请为参数设置 数据类型 意义 二进制点缩放.

yes

默认值

yes

程序使用名称

OutputSign

可调谐

可计算

# 世界长度 — 输出数据字的长度
Real number

Details

指定输出数据字的长度为正整数从 2 以前 128.

依赖关系

若要使用此参数,请为参数设置 数据类型 意义 二进制点缩放.

默认值

16

程序使用名称

OutputWorldLen

可调谐

可计算

# 分数长度 — 输出数据的分数的长度
Real number

Details

将输出数据的分数的长度指定为标量整数。

依赖关系

若要使用此参数,请为参数设置 数据类型 意义 二进制点缩放.

默认值

14

程序使用名称

OutputFracLen

可调谐

可计算

算法

下图显示了实现该程序块的算法。

nco 1 cn

数控振荡器(NCO)的实现由两个独立部分组成。首先,相位累加器累加相位增量并添加相移。在这一阶段,还可以添加额外的内部平滑信号(噪声)。然后,通过量化相位累加器部分的结果,并利用这些结果从查找表中选择值,计算出输出 NCO 。由于查找表包含一组有限的条目,因此在正常运行时, NCO 块允许加法器中的数值溢出,并允许它们在可用范围内闭合。

给定所需的输出频率 ,计算 相位增量 块参数值如下:

其中 是驱动器的字长,而

NCO 的频率分辨率(赫兹)定义为

给定所需的相移(以弧度为单位),计算模块参数 相位偏移 如下:

对于 条目的查找表(其中 为驱动器的量化位数),无杂散动态范围 (SFDR) 的估算方法如下:

  • 分贝,无噪声;

  • 分贝,有噪声。

NCO 模块使用四分之一波查找表方法,存储从 "0 "到 "π/2 "的数值。程序块根据需要使用存储数据类型计算其他值,然后将其转换为输出数据类型。这可能会在该数据类型的范围边界产生量化效应。例如,假设正弦波的值在点 π 处预期为 -1。由于必须计算该点的查找表值,因此根据驱动和输出数据类型的准确性,该块可能会给出`-1`以外的值。