基于PTS方法的OFDM发射端PAPR抑制仿真项目说明
项目介绍
本项目是一个基于MATLAB开发的通信系统仿真程序,旨在解决正交频分复用(OFDM)技术中常见的峰均功率比(PAPR)过高问题。程序通过实现部分传输序列(Partial Transmit Sequence, PTS)算法,模拟了发射端信号处理的完整流程,通过将子载波划分为若干子块并进行相位旋转优化,从而有效降低信号在时域上的峰值,提升功率放大器的效率。
功能特性
- 标准的OFDM调制流程:实现了从随机比特生成到16-QAM星座映射,再到IFFT变换的完整物理层发射处理。
- 高精度PAPR计算:采用4倍过采样方案,通过在频域中间插入零值的方式进行IFFT,确保捕捉到接近连续时间信号的真实峰值功率。
- PTS抑制算法实现:支持多种子块数量(如V=2, V=4)的对比仿真,采用相邻分割(Adjacent Partitioning)策略。
- 最优相位搜索:对相位旋转因子集合 {1, -1} 进行穷举搜索,通过最小化目标函数寻找最优的相位因子组合。
- 性能评估与可视化:自动计算并在对数坐标系下绘制互补累积分布函数(CCDF)曲线,直观展示PAPR抑制效果。
- 统计数据输出:程序能自动计算特定概率(如10^-1)下的PAPR数值并给出相对于原始信道的抑制增益(dB)。
系统要求
- MATLAB R2023a 或更高版本(为确保随机数生成器rng(2023)的一致性)。
- MATLAB Communications Toolbox(通信工具箱),用于调用QAM调制等相关函数。
详细实现逻辑
程序的主程序部分封装在一个主函数中,通过以下步骤运行:
1. 参数初始化
系统设置为64个子载波,采用16-QAM调制。为了模拟不同的优化强度,设置了两个对比组(子块数V分别为2和4)。仿真通过1000次蒙特卡洛循环来获得统计规律。
2. 原始信号处理
在每次循环中,生成随机数据并映射至QAM星座点。为了计算原始OFDM符号的PAPR,首先进行L倍过采样处理:将原始N个子载波信号平分为两部分,分别放置在N*L点IFFT输入向量的两端,中间填充零。变换至时域后,计算当前符号的峰值功率与平均功率的比值。
3. PTS算法核心逻辑
- 子块分割:采用相邻分割法,将N个子载波按顺序划分为V个等长度的非重叠子块。
- 逐块变换:对每个子块单独进行过采样及IFFT变换,得到V个在相加前处于时域的子波形分量。
- 相位组合生成:使用辅助函数生成相位因子集合 {1, -1} 的所有可能排列。为减小搜索空间,将第一个子块的相位因子固定为1,仅对剩余V-1个子块进行穷举。
- 线性寻优:将各时域子分量乘以不同的相位组合并求和。在所有组合中,筛选出合并后结果PAPR最小的一组,作为该PTS符号的最终输出。
4. 结果统计与展示
- 利用自定义的CCDF计算函数,对所有仿真符号的PAPR值进行降序排列并归一化。
- 在绘图区展示原始信号、V=2时的PTS信号以及V=4时的PTS信号的CCDF对比曲线。
- 在命令行窗口打印输出在 $10^{-1}$ 概率阈值下,各配置对应的PAPR具体值及相比于原始OFDM的性能增益。
关键细节分析
- 过采样策略:代码中通过
X_orig(1:N/2) 和 X_orig(end-N/2+1:end) 的排列方式实现了频域补零,这符合OFDM系统中低频子载波在两侧、高频子载波在中间的习惯,能准确模拟时域包络。 - 复杂度与搜索空间:PTS的性能随子块数V的增加而提升,但搜索空间呈 $2^{V-1}$ 指数级增长。代码中展示了V=4时需要搜索8种相位组合,平衡了仿真速度与抑制效果。
- 邻近分割法:代码通过逻辑索引
(v-1)*sub_len + 1 : v*sub_len 实现了子载波的连续分割,这是PTS算法中最直观的分割方式。 - CCDF计算逻辑:通过对数据排序并建立对应的概率轴(N:-1:1/N),准确刻画了PAPR超过某一阈值的概率分布。