Engee 文档

NCO

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

类型: NCO

图书馆中的路径:

/Signal Operations/Sources/NCO

说明

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

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

端口

输出

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

Details

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

依赖关系

要使用该端口,请将 Output signal 参数设置为 Sine`或 `Sine and cosine.

数据类型

Float32"、"Float64"、"Fixed"。

复数支持

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

Details

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

依赖关系

要使用该端口,请选择复选框 Show phase quantization error port

数据类型

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

复数支持

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

Details

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

依赖关系

要使用该端口,请将 Output signal 参数设置为 Cosine`或 `Sine and cosine.

数据类型

Float32"、"Float64"、"Fixed"。

复数支持

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

Details

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

依赖关系

要使用该端口,请将 Output signal 设置为 Complex exponential.

数据类型

Float32"、"Float64"、"Fixed"。

复数支持

输入

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

Details

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

依赖关系

要使用该端口,请将 Phase offset source 参数设置为 Input port.

数据类型

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

复数支持

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

Details

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

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

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

依赖关系

要使用该端口,请将 Phase increment source 参数设置为 Input port.

数据类型

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

复数支持

参数

相加器参数

# Phase increment source — 相位增量设置方法
Specify via dialog | Input port

Details

选择相位增量设置方法:

  • Input port- 相位增量值将输入 inc 输入端口;

  • Specify via dialog- 相位增量值可在参数 Phase increment 中设置。

Specify via dialog | Input port

默认值

Specify via dialog

程序使用名称

PhaseIncrementSource

可调谐

可计算

# Phase increment — 相位增量值

Details

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

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

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

依赖关系

要使用该参数,请将 Phase increment source 设置为 Specify via dialog.

默认值

100

程序使用名称

PhaseIncrement

可调谐

可计算

# Phase offset source — 相移设置方法
Specify via dialog | Input port

Details

选择相移设置方法:

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

  • Specify via dialog- 相移值可在参数 Phase offset 中设置。

Specify via dialog | Input port

默认值

Specify via dialog

程序使用名称

PhaseOffsetSource

可调谐

可计算

# Phase offset — 相移值

Details

以标量或整数向量的形式指定相移值。只允许使用整数数据类型,包括定点和零长分数数据类型。使用该参数指定相移时,相移必须是与相位增量维数相同的标量或矢量。标量会扩展为与相位增量维数相同的矢量。相移向量的每个元素都应用于不同的输入通道,因此向量的长度决定了输出通道的数量。

依赖关系

要使用该参数,请将 Phase offset source 参数设置为 Specify via dialog.

默认值

0

程序使用名称

PhaseOffset

可调谐

可计算

# Add internal dither — 内添噪音
Logical

Details

选择该复选框可为 NCO 算法添加平滑处理。平滑将使用PN Sequence Generator 序列块中应用的算法添加。

默认值

true (已开启)

程序使用名称

AddInternalDither

可调谐

可计算

# Number of dither bits — 抗锯齿位数
Real number

Details

以正整数指定平滑位数。

依赖关系

要使用此端口,请选择复选框 Add internal dither

默认值

4

程序使用名称

NumDitherBits

可调谐

可计算

# Quantize phase — 包括累积阶段的量化
Logical

Details

要启用累积相位量化,请选择该复选框。

默认值

true (已开启)

程序使用名称

QuantizePhase

可调谐

可计算

# Number of quantized accumulator bits — 存储设备的量化位数
Real number

Details

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

依赖关系

要使用该参数,请选择复选框 Quantize phase

默认值

12

程序使用名称

NumQuantizeAccBits

可调谐

可计算

# Show phase quantization error port — 相位量化误差输出
Logical

Details

选择输出相位量化误差。选择此复选框时,Qerr 端口会出现在图块图标上。

依赖关系

要启用该选项,请选择复选框 Quantize phase

默认值

false (关掉)

程序使用名称

ShowErrPort

可调谐

可计算

输出参数

# Output signal — 输出信号
Sine | Cosine | Complex exponential | Sine and cosine

Details

选择设备输出的信号: Sine, Cosine, Complex exponential`或两个信号 `Sine and cosine.如果选择 `Sine and cosine`如果选择 ,信号将输出到不同的端口。

Sine | Cosine | Complex exponential | Sine and cosine

默认值

Sine

程序使用名称

OutputSignal

可调谐

可计算

# Sample time — 采样期
Real number

Details

如果区块作为源,则用正标量指定采样周期(以秒为单位)。

依赖关系

要使用该参数,必须将 Phase increment sourcePhase offset source 设置为 Specify via dialog.当通过块输入端口输入相位增量或相位偏移时,采样周期被继承,不使用此参数。

默认值

1

程序使用名称

SampleTimeParam

可调谐

可计算

# Samples per frame — 每帧计数
Real number

Details

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

使用相移输入端口 offset 时,其帧状态与任何输出端口相同。使用相位递增输入端口 inc 时,不支持帧。

依赖关系

要使用该参数,请将 Phase increment source 参数和/或 Phase offset source 参数设置为 Specify via dialog.

默认值

1

程序使用名称

SamplePerFrame

可调谐

可计算

定点运行参数

# Rounding mode — 四舍五入法
Floor

Details

该参数为只读参数。

当输入是定点数据类型时, NCO 块始终使用舍入方法 Floor.

Floor

默认值

Floor

程序使用名称

RM

可调谐

可计算

# Overflow mode — 溢出法
Wrap

Details

该参数为只读参数。

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

Wrap

默认值

Wrap

程序使用名称

OM

可调谐

可计算

累加器

# Data type — 驱动数据类型
Binary point scaling

Details

指定驱动器的数据类型。

Binary point scaling

默认值

Binary point scaling

程序使用名称

AccDataType

可调谐

可计算

# Signed — 硬盘数据的符号类型
yes

Details

表示驱动数据类型为符号数据类型。

yes

默认值

yes

程序使用名称

AccSign

可调谐

可计算

# World length — 存储字长
Real number

Details

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

默认值

16

程序使用名称

AccWorldLen

可调谐

可计算

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

Details

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

0

默认值

0

程序使用名称

AccFracLen

可调谐

可计算

输出

# Data type — 输出数据类型
Binary point scaling | Float64 | Float32

Details

指定输出数据类型:

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

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

*注意

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

Binary point scaling | Float64 | Float32

默认值

Binary point scaling

程序使用名称

OutputDataType

可调谐

可计算

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

Details

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

依赖关系

要使用此参数,请将 Data type 设置为 Binary point scaling.

yes

默认值

yes

程序使用名称

OutputSign

可调谐

可计算

# World length — 输出字长
Real number

Details

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

依赖关系

要使用该参数,请将 Data type 设置为 Binary point scaling.

默认值

16

程序使用名称

OutputWorldLen

可调谐

可计算

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

Details

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

依赖关系

要使用该参数,请将 Data type 参数设置为 Binary point scaling.

默认值

14

程序使用名称

OutputFracLen

可调谐

可计算

算法

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

nco 1 cn

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

给定所需的输出频率 ,计算 Phase increment 块参数值如下:

其中 是驱动器的字长,而

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

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

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

  • 分贝,无噪声;

  • 分贝,有噪声。

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