基于AWGN信道的QPSK通信系统仿真分析
项目介绍
本项目是一个基于MATLAB开发的数字通信系统仿真工具,专注于正交相移键控(QPSK)调制技术在加性高斯白噪声(AWGN)信道下的性能表现。系统通过完整的信道仿真链路,实现了从比特流生成、调制、加噪、解调到性能评估的全过程。该工具不仅能够提供精确的误码率(BER)分析,还能通过可视化手段直观展示信号在传输过程中的物理特性变化。
功能特性
- 实现了完整的QPSK调制与解调链路,包含发射端处理、信道模拟和接收端恢复。
- 支持基于蒙特卡洛方法的误码率仿真,覆盖从低信噪比到高信噪比的连续区间。
- 自动计算并绘制理论误码率曲线,用于与仿真结果进行对照验证。
- 具备实时星座图监控功能,支持对比发射端原生信号与含噪声接收信号的分布差异。
- 包含相位偏置处理机制,模拟并修正相干解调过程中的相位变动。
- 自动化输出仿真报告,在命令行界面实时反馈仿真进度并汇总统计数据。
系统逻辑与具体实现
系统遵循数字通信系统的标准架构,其具体实现逻辑如下:
- 参数设置与信源生成:
系统初始化仿真参数,默认生成100万个随机二进制比特(1e6 bits),设定仿真信噪比(Eb/No)范围为0至12dB。定义调制阶数为4(QPSK),并预设pi/4的初始相位偏置。
- 发射端处理:
- 串并转换:将原始一维比特流转换为每行2个比特的矩阵。
- 映射规则:采用极性映射方式,将比特0映射为+1,比特1映射为-1。通过组合同相分量(I)和正交分量(Q)生成复数符号。
- 能量归一化:将符号振幅除以sqrt(2),确保符号能量(Es)归一化。
- 相位移动:对所有发射符号应用预设的pi/4相位偏移。
- 信道仿真循环:
系统按步进循环处理不同Eb/No值。在每个循环中,系统根据当前的Eb/No计算线性SNR。SNR的计算考虑了每个符号携带的比特数(2比特),确保在单位采样率下的功率匹配。通过awgn工具箱函数向信号注入符合功率要求的白噪声。
- 接收端处理:
- 相位补偿(相干解调):接收信号首先乘以发射端相位偏置的共轭值,以消除预设的旋转。
- 硬判定解调:根据接收信号在复平面四个象限的位置进行判定。实部或虚部小于0判定为比特1,大于等于0判定为比特0。
- 性能评估:
- 误码率计算:利用biterr工具统计每一信噪比下的错误比特总数并得出仿真BER。
- 理论计算:基于互补误差函数(erfc)计算并在AWGN环境下的QPSK理论误码率。
- 可视化呈现:
系统通过多子图窗口展示结果。左侧为半对数坐标系下的BER折线图;右侧上方展示发射端的标准星座图;右侧下方展示在特定信噪比(8dB)下受噪声干扰后的接收端散点图。
关键算法与实现细节
- 映射逻辑:代码通过
1 - 2*bits 的代数运算实现了比特到电平的快速转换,这在逻辑上对应了特定结构的符号映射。 - 信噪比换算:系统严格区分了每比特能量(Eb)与系统噪声功率的关系,利用
snr_linear * k 将Eb/No准确转换为信道中的符号信噪比。 - 判决算法:接收端未使用复杂的欧氏距离计算,而是直接针对实部和虚部的符号位(Sign bit)进行象限判决,体现了QPSK解调的高效性。
- 向量化处理:整个调制与解调过程避免了低效率的逐点循环,完全基于矩阵和向量运算,显著提升了1e6量级数据下的仿真速度。
使用方法
- 启动MATLAB软件。
- 将仿真脚本所在的文件夹设置为当前工作路径。
- 执行主仿真程序。
- 观察命令行窗口输出的实时进度,每完成一个信噪比节点的计算,系统会刷新当前的错误比特统计。
- 仿真结束后,自动弹出的图形窗口将展示性能曲线与星座图,并在命令行展示Summary统计表。
系统要求
- MATLAB R2016b 或更高版本。
- 需要安装 Communication Toolbox(通信工具箱),用于调用 awgn、biterr 以及相关数学函数。