基于MATLAB的OFDM系统SLM与PTS峰均比降低算法仿真
项目介绍
本项目构建了一个标准化的正交频分复用(OFDM)通信系统仿真平台,专注于研究和解决多载波调制技术中面临的高峰均功率比(PAPR)问题。代码完整实现了OFDM信号的生成、过采样处理,并重点仿真了两种经典的无失真PAPR抑制算法:选择性映射(SLM)和部分传输序列(PTS)。通过统计大量OFDM符号的瞬时功率分布,项目输出了互补累积分布函数(CCDF)曲线,直观对比了不同算法由于非线性失真风险降低带来的性能提升。
功能特性
- OFDM 信号生成:支持QPSK调制映射,通过64个子载波构建频域数据。
- 高精度PAPR计算:采用了4倍过采样(Oversampling)技术,通过频域补零插值方法,确保时域信号峰值的捕获更加准确,避免遗漏模拟信号中的实际峰值。
- SLM 算法实现:实现了基于独立随机相位序列的选择性映射算法,通过多路候选信号选择最低PAPR支路。
- PTS 算法实现:实现了基于相邻分割(Adjacent Partition)和相位优化搜索的部分传输序列算法,并在搜索过程中固定首个子块相位以降低计算复杂度。
- 性能评估可视化:自动统计PAPR分布,计算CCDF,并生成对数坐标下的对比曲线图,同时在控制台输出特定概率下的PAPR阈值数据。
系统要求
- MATLAB R2016b 或更高版本
- Communications Toolbox(用于
qammod 函数) - Signal Processing Toolbox(建议安装,用于基础信号处理)
使用方法
- 确保MATLAB环境已按照系统要求配置完毕。
- 将主要脚本文件放置于MATLAB当前工作目录下。
- 直接运行由于主函数定义的
main 函数。 - 程序将开始逐符号进行仿真(默认1000个符号),并在控制台打印进度。
- 仿真结束后,会自动弹出包含原始信号、SLM算法和PTS算法性能对比的CCDF曲线图,并在命令行窗口输出关键的统计结果(如CCDF=1e-3时的PAPR值)。
代码实现详解
本项目的主要逻辑封装在单一入口函数中,通过过程化编程实现了以下关键处理流程:
1. 系统参数配置与初始化
系统设定子载波数为64,调制方式为QPSK,为了精确模拟连续时间信号的PAPR,设置了4倍过采样因子。同时定义了SLM算法的备选相位序列数量(M=16)以及PTS算法的子块数量(V=4)和通过相邻分割所需的相位集合({1, -1, j, -j})。
2. 原始OFDM信号产生
在主循环中,首先生成随机比特流并映射为M-QAM(此处为QPSK)频域符号。随后调用辅助函数执行L倍过采样的IFFT变换,将频域数据转换为时域信号,并直接计算其PAPR作为基准对照。
3. 选择性映射(SLM)算法实现
SLM模块生成M个不同的备选信号:
- 相位序列生成:每次循环中,第1组保留为原始信号(全1序列),其余15组随机生成包含 {1, -1, j, -j} 的相位掩码。
- 频域旋转与变换:将原始频域数据与各个相位向量点乘,分别进行过采样IFFT变换。
- 择优输出:计算所有候选时域信号的PAPR,记录其中的最小值作为该符号经SLM处理后的最终PAPR。
4. 部分传输序列(PTS)算法实现
PTS模块通过子块分割和相位加权组合来降低PAPR:
- 相邻分割(Adjacent Partition):代码将64个子载波按顺序平均分割成V=4个相邻的子块。
- 分块IFFT:利用IFFT的线性性质,预先对每个子块单独进行过采样IFFT变换,并将结果存储在矩阵中,避免重复进行IFFT运算。
- 相位优化搜索:
*
计算量优化:为了减少搜索空间,算法固定了第一个子块的相位因子为1,仅对后续V-1个子块遍历所有相位组合。
*
时域组合:遍历预生成的相位组合矩阵,将各子块的时域信号进行加权求和。
*
PAPR筛选:计算所有组合结果的PAPR,选取最小值记录。
5. 辅助函数设计
- oversampling_ifft:这是实现准确PAPR计算的核心。该函数接收频域数据,将其以中心对称的方式映射到长度为 $N times L$ 的补零后的频谱中(中间插入零),然后执行IFFT并进行功率归一化。这比简单的线性插值更能准确还原OFDM信号的峰值特性。
- calculate_papr:计算信号瞬时功率的最大值与平均值之比,并转换为dB单位。此处包含了对平局功率为0的边界情况处理。
- generate_phase_combinations:根据给定的分割块数和相位集合,生成全排列的相位组合矩阵。该函数实现了类似于多进制计数的逻辑,确保覆盖所有可能的相位状态(固定第一路的情况下)。
6. 统计与绘图
仿真完成后,程序通过预定义的PAPR阈值(0dB - 12dB),统计各算法产生的信号PAPR超过该阈值的概率(CCDF)。最终使用
semilogy 函数绘制三条对比曲线:原始OFDM、SLM优化后、PTS优化后,能够清晰地看出在极低概率下(如0.001),SLM和PTS算法能够显著将PAPR降低数个dB。