# comm_PhaseNoise
对基带信号添加相位噪声
函数库: TyCommunication
# 描述
comm_PhaseNoise 系统对象将相位噪声添加到复合信号。该对象模拟由无线通信发射机或接收机的本地振荡器引入的损伤。该对象根据指定的频谱掩码生成滤波的相位噪声,并将其添加到输入信号中。有关相位噪声建模的描述,请参阅算法。
要使用 comm_PhaseNoise 添加相位噪声,请执行以下操作:
创建 comm_PhaseNoise 对象并设置其属性;
用 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 - 输入信号
向量 | 矩阵
输入信号,指定为
# 输出参数
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)
