2026b

# comm_PhaseNoise


对基带信号添加相位噪声

函数库: TyCommunication

# 描述

comm_PhaseNoise 系统对象将相位噪声添加到复合信号。该对象模拟由无线通信发射机或接收机的本地振荡器引入的损伤。该对象根据指定的频谱掩码生成滤波的相位噪声,并将其添加到输入信号中。有关相位噪声建模的描述,请参阅算法。

要使用 comm_PhaseNoise 添加相位噪声,请执行以下操作:

  1. 创建 comm_PhaseNoise 对象并设置其属性;

  2. 用 step 调用对象。

# 构造

# 语法

phznoise = comm_PhaseNoise()
phznoise = comm_PhaseNoise(; Name = Value)

# 说明

phznoise = comm_PhaseNoise() 创建具有默认属性值的相位噪声系统对象。


phznoise = comm_PhaseNoise(; Name = Value) 创建一个相位噪声对象,其指定属性 Name 设置为指定值。可以按任意顺序指定其他名称值对参数,如 Name1 = Value1、…、NameN = alueN。

# 属性

除非另有说明,否则属性是不可更改的,这意味着在调用对象后不能更改其值。对象在调用时锁定,在释放函数时解锁。

如果属性是可调的,则可以随时更改其值。

Level - 相位噪声
-50(默认)| 标量 | 向量

相对于载波/赫兹(dBc/Hz), 相位噪声(以分贝为单位)指定为 -50。Level 和 FrequencyOffset 属性的长度必须相同。

注意

若创建时输入的 Level 和 FrequencyOffset 类型为标量,则后续无法修改 comm_PhaseNoise 对象的 Level 和 FrequencyOffset 为向量,反之同理。

FrequencyOffset - 频率偏移
20(默认)| 标量 | 向量

频率偏移(Hz) ,指定为 20。最大频率偏移值必须小于 FS/2,其中 FS 表示 SampleRate 属性值。

Level 和 FrequencyOffset 属性的长度必须相同。

注意

若创建时输入的 Level 和 FrequencyOffset 类型为标量,则后续无法修改 comm_PhaseNoise 对象的 Level 和 FrequencyOffset 为向量,反之同理。

SampleRate - 采样率
1e6(默认值) | 正标量

采样率(Hz) ,指定为大于 FrequencyOffset 属性指定的最大值两倍的正标量。

RandomStream - 随机流的来源
"Global stream"(默认) | "mt19937ar with seed"

随机流的源,指定为 "Global stream" 或 "mt19937ar with seed"。如果 RandomStream 设置为 "mt19937ar with seed",则 mt19937a 算法用于正态分布随机数生成,在这种情况下,重置方法将随机数流重新初始化为 seed 属性的值。

seed - 初始种子
2137(默认值) | 小于232的正标量

RandomStream 的初始种子,指定为小于 232 的正标量。

依赖关系

要启用此属性,请将 RandomStream 设置为 "mt19937ar with seed"。

# 用法

# 语法

out = step(phznoise, in)

# 说明

out = phznoise(in) 将由 phznoice System 对象指定的相位噪声添加到输入信号中。结果返回到 out。

# 输入参数

in - 输入信号
向量 | 矩阵

输入信号,指定为 数字向量或 矩阵。 是样本数,M 是信道数

# 输出参数

out - 输出信号
向量 | 矩阵

输出信号,作为具有与输入信号相同的数据类型和大小的复值信号返回。

# 对象函数

要使用对象函数,请将系统对象指定为第一个输入参数。

对系统对象通用的操作
step 运行系统对象算法
release 释放资源并允许更改系统对象属性值和输入特性
reset 重置系统对象的内部状态

# 示例

相位噪声对 16-QAM 信号的影响
using TyCommunication
using TyMath
Random.seed!(1234)
pnoise = comm_PhaseNoise(; Level=-50, FrequencyOffset=20)
M = 16
data = randi([0 M - 1], 1000, 1)
modData = qammod(data, M)
y = step(pnoise, modData)
scatterplot(y)

# 另请参阅

comm_MemorylessNonlinearity