项目名称:基于MATLAB的QPSK调制与解调仿真系统
项目介绍
本项目是一个基于MATLAB环境开发的QPSK(正交相移键控)全链路仿真系统。该系统精确模拟了数字通信系统中从信源产生、调制、信道传输到解调及性能分析的完整流程。通过模块化的设计,用户可以直观地观察信号在时域与复平面上的特性变化,并对比理论误码率与实际仿真性能。
功能特性
- 数据源生成:自动生成任意长度的二进制随机比特序列,并确保序列长度满足QPSK符号映射要求的偶数倍。
- 正交调制逻辑:实现串并转换与格雷码映射,将比特流转换为同相(I)与正交(Q)分量。
- 脉冲成形与处理:支持多倍上采样处理,并采用矩形脉冲成形技术生成基带波形。
- 信道模拟:集成加性高斯白噪声(AWGN)信道,允许自定义信噪比(SNR)以模拟真实传输环境。
- 相干解调与判决:包含相位偏移补偿、中点下采样以及基于硬判决逻辑的比特重构。
- 多维度可视化:实时生成比特流波形、I/Q时域轨迹、发送/接收星座图以及BER(误码率)性能对比曲线。
系统的实现逻辑
系统按照标准的数字通信物理层流程运行,具体步骤如下:
- 初始化与参数设定:定义总比特数、每个符号的采样点数、初始相位偏移以及目标信噪比。
- 信号调制阶段:
- 将输入的比特流每两个比特分为一组(并排处理)。
- 根据格雷码规则(Gray Code Mapping)映射到四个特定的相位点:[00]、[01]、[11]、[10]分别对应复平面上的特定象限。
- 对复数符号应用初始相位偏移(如 $pi/4$)。
- 通过重复采样(矩形脉冲辅助函数)产生连续的基带时域信号。
- 传输仿真:在生成的调制信号中加入指定功率的背景噪声,模拟信道中的信号劣化。
- 信号解调阶段:
-
相位补偿:利用反向相位旋转消除初始相位偏移的影响。
-
最优采样:在每个符号周期的中间位置进行取样,以获得最大的噪声容限。
-
硬判决机制:通过判断实部和虚部的符号(正或负)直接判决原始比特。
-
比特重组:将判定后的I/Q比特重新交织成原始长度的串行比特流。
- 性能分析与绘图:
- 通过对比输入与输出序列计算误比特数和误码率。
- 绘制时域波形图、复数星座图,以及理论误码率曲线与当前仿真点的对比图。
关键函数与算法分析
- 格雷码映射算法:系统中采用 $I = (1-2 cdot b_1)/sqrt{2}$ 和 $Q = (1-2 cdot b_2)/sqrt{2}$ 的变换公式。这种映射确保了相邻符号间只有一个比特位的差异,能有效最小化相邻相位误判导致的比特错误。
- 相位补偿算法:在解调首端使用 $exp(-j cdot phase_shift)$ 进行旋转,确保判决轴与标准坐标轴对齐,是实现正确非相干探测的前提。
- 判决逻辑:代码通过简单的零值比较($text{real} < 0$ 或 $text{imag} < 0$)将复数信号映射回二进制,由于调制时使用了特定的归一化幅值,该方法在AWGN信道下具有最优性能。
- 矩形脉冲成形:通过自定义函数实现的重复采样逻辑,模拟了最基础的数字脉冲形态,为时域波形观察提供了基础。
使用方法
- 启动MATLAB软件。
- 将仿真脚本加载至当前工作路径。
- 运行仿真函数。
- 在弹出的图形窗口中观察基带波形、星座图的变化。
- 在命令行窗口中查看总发送比特数、误比特数、当前SNR以及最终的误码率统计。
- 可根据需要调整函数开头的参数(如修改
snr_db 或 initialPhase)来测试不同环境下的系统性能。
系统要求
- MATLAB R2016b 或更高版本。
- 通信工具箱(Communications Toolbox):用于执行
awgn 噪声添加和 biterr 误码率统计功能。