使用 Simulink 检查 256-QAM
此示例说明如何使用 Simulink® 对包含正交调幅 (QAM)、加性高斯白噪声 (AWGN) 信道和相位噪声的通信系统进行建模。该模型显示 256-QAM 信号的星座图并执行误码率 (BER) 计算。
概述
cm_commphasenoise
模型仿真 AWGN 和相位噪声对 256-QAM 信号的影响。
Bernoulli Binary Generator 模块生成由范围 [0, 255] 内的 8 位二进制值序列组成的随机信号。
Rectangular QAM Modulator Baseband 模块使用基带 256 进制 QAM 调制信号。
AWGN Channel 模块通过向调制信号添加高斯白噪声对含噪信道进行建模。
Phase Noise 模块在其复输入信号的相位角中引入噪声。
Rectangular QAM Demodulator Baseband 模块对信号进行解调。
这些附加模型模块可帮助您解释仿真结果。
Constellation Diagram 模块显示添加了 AWGN 和相位噪声的信号的星座图。
Error Rate Calculation 模块对接收信号与发射信号之间不同的位进行计数。
标注
outputErr
的 To Workspace 模块将结果输出到工作区以在绘制结果时使用。标注
Display BER Plot
的 Callback Button 打开一个绘图,其中显示不同相位噪声电平下 256-QAM 发射和接收的 Eb/N0 性能曲线。
数字调制
模型对 QAM 进行仿真,这是一种将数字信号转换为复信号的方法。该模型将信号调制到一个复数序列上,这些复数位于复平面的一个点阵上,这个点阵称为信号的星座图。这些点的绘图称为信号的散点图或星座图。
此处显示的星座图显示添加了 AWGN 以及添加了 AWGN 和相位噪声的基带 256 进制 QAM。由于添加了噪声,星座图中的点并未精确位于图窗中所示的星座图上。相位噪声会改变复调制信号的相位角,导致星座图点发生径向位移。
运行仿真
默认模型配置的运行持续时间设置为 inf
。Error Rate Calculation 模块配置为运行到发生 100 个错误。要在发生 100 个错误之前停止仿真,请在仿真选项卡上点击停止。
显示错误率
Display 模块显示由 AWGN 信道和相位噪声引入的错误数量。当您运行仿真时,该模块中会出现三个小框,显示来自 Error Rate Calculation 模块的向量输出。向量值为 [BER, 错误总数, 比较的总位数]。
显示相位噪声图
要显示在一系列相位噪声设置下 BER 随 Eb/N0 变化的以下曲线图,请双击模型中的 Display BER Plot 模块。
进一步探查
您可以通过设置参数来控制 Simulink 模块的工作方式。要查看或更改仿真参数,请双击一个模块以打开其模块封装。
要更改相位噪声量,请打开 Phase Noise 模块封装,并为 Phase noise level (dBc/Hz) 参数输入新值。点击确定以应用新设置。
要更改噪声量,请打开 AWGN Channel 模块封装,并为 Eb/No (dB) 参数输入新值。减小此参数值会增大噪声电平。点击确定以应用新设置。
降低相位噪声和增大 Eb/N0 可从模型中去除噪声。由于模型配置为运行到发生 100 个错误,因此,当模型中的噪声很小时,仿真运行时间较长。要限制最长仿真运行时间,您可以将运行持续时间从 inf
减小到较小的值,例如 10
。
要生成新结果,请使用修改后的设置运行仿真。
您也可以在参数中输入变量名称。然后在 MATLAB® 命令行中设置工作区中该变量的值。在使用不同参数值运行多个仿真时,在命令行窗口中设置参数会很方便。
您还可以使用回调函数来配置仿真。此模型中多个参数的默认设置是使用 PreLoadFcn
回调函数设置的。有关模型属性和回调函数的详细信息,请参阅模型回调 (Simulink)。
绘制不同噪声电平下的 BER
plot_256qam_ber_curves.m
MATLAB® 程序文件通过使用不同的 Phase noise level (dBc/Hz) 和 Eb/No (dB) 参数值运行多个仿真,生成此示例中呈现的 BER 图。每条曲线都是在固定相位噪声量下 BER 随信噪比变化的绘图。对于每个绘制的 BER 点,当达到 1000 个误码或比较了 1e8 个位时,仿真停止。由于输入信号和仿真损伤的随机性,每次运行的结果有所不同。