Engee 文档

NCO

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

blockType: 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

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

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

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

依赖关系

若要使用此参数,请为参数设置 Phase increment source 意义 Specify via dialog.

默认值

100

程序使用名称

PhaseIncrement

可调谐

可计算

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

Details

选择设置相移的方法:

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

  • 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

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

依赖关系

若要使用此选项,请选中此框 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

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

当使用 偏移 相移输入端口时,它具有与任何输出端口相同的帧状态。 当使用相位增量输入端口 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

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

默认值

16

程序使用名称

AccWorldLen

可调谐

可计算

# Fraction length — 存储数据的长度
0

Details

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

0

默认值

0

程序使用名称

AccFracLen

可调谐

可计算

输出

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

Details

指定输出数据的类型:

  • 选择 Float64Float32 为浮点实现。

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

注意事项

该块的搜索表由双精度浮点值构建。 所以你可以在输出中达到的最大精度是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

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

依赖关系

若要使用此参数,请为参数设置 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`以外的值。