Engee 文档

NCO

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

类型: 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

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

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

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

依赖关系

要使用该参数,请将 相位增量源 设置为 通过对话框指定.

默认值

100

程序使用名称

PhaseIncrement

可调谐

可计算

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

Details

选择相移设置方法:

  • 输入端口- 相移值将输入 offset 输入端口;

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

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

以大于 1 小于存储字长的整数标量指定量化存储位数。该值决定了查找表的条目数。

依赖关系

要使用该参数,请选择复选框 量化相位

默认值

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

以正整数指定每帧采样次数。如果该值大于 1,则相位增量和相位偏移可能会因通道和帧而异,但对于给定帧中的每个通道而言,它们都是恒定的。

使用相移输入端口 offset 时,其帧状态与任何输出端口相同。使用相位递增输入端口 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

将累加器字长指定为从 2128 的正整数。

默认值

16

程序使用名称

AccWorldLen

可调谐

可计算

# 分数长度 — 驱动器数据分数长度
0

Details

指定驱动器数据类型的分数长度始终等于 0

0

默认值

0

程序使用名称

AccFracLen

可调谐

可计算

输出

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

Details

指定输出数据类型:

  • 选择 `Float64`或 `Float32`以实现浮点运算。

  • 选择 "二进制点缩放 "时,可以指定输出数据的字长和分数长度(以比特为单位)。

*注意

该程序块的查找表是由双精度浮点数值构建的。因此,输出的最大精度为 53 位。将数据类型 输出 的字长设置为大于 53 位的值不会提高输出的精度。

Binary point scaling | Float64 | Float32

默认值

Binary point scaling

程序使用名称

OutputDataType

可调谐

可计算

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

Details

指定输出数据类型是否为符号类型。

依赖关系

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

yes

默认值

yes

程序使用名称

OutputSign

可调谐

可计算

# 世界长度 — 输出字长
Real number

Details

将输出数据字的长度指定为从 2128 的正整数。

依赖关系

要使用该参数,请将 数据类型 设置为 二进制点缩放.

默认值

16

程序使用名称

OutputWorldLen

可调谐

可计算

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

Details

以标量整数形式指定输出数据的分数长度。

依赖关系

要使用该参数,请将 数据类型 参数设置为 二进制点缩放.

默认值

14

程序使用名称

OutputFracLen

可调谐

可计算

算法

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

nco 1 cn

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

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

其中 是驱动器的字长,而

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

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

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

  • 分贝,无噪声;

  • 分贝,有噪声。

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