基于限幅滤波算法的OFDM系统PAPR抑制仿真
项目简介
本项目实现了一个完整的OFDM(正交频分复用)通信系统仿真平台,专注于解决OFDM系统中典型的高峰均功率比(PAPR)问题。通过在MATLAB环境中构建基带传输链路,本项目深入探究了经典的限幅滤波(Clipping and Filtering, C&F)算法及其迭代优化机制。
系统模拟了从信号生成、过采样、限幅处理到信道传输及接收解调的全过程,并通过多维度的性能指标(CCDF、BER、PSD)量化评估了算法在降低PAPR、抑制带外辐射以及对误码率影响之间的权衡关系。
功能特性
- 标准的OFDM基带链路:包含随机比特生成、16-QAM高阶调制、频域映射及IFFT变换。
- 高精度过采样处理:采用4倍过采样(L=4)技术,通过频域补零方法准确捕获时域连续信号中的真实峰值,避免漏检。
- 迭代限幅滤波算法:
* 实现时域硬限幅,将信号幅度严格限制在预设阈值内。
* 实现频域滤波,消除限幅操作引入的带外干扰(Out-of-Band Radiation)。
* 支持迭代机制,通过多次“限幅-滤波”循环,在保持PAPR降低效果的同时减少峰值再生。
*
CCDF分析:统计PAPR的互补累积分布函数,直观展示PAPR降低幅度。
*
BER仿真:在AWGN(加性高斯白噪声)信道下评估非线性失真对系统误码率的影响。
*
PSD分析:利用Welch法估计功率谱密度,验证滤波环节对频谱感知的改善效果。
- 可视化展示:自动生成包含时域波形对比、CCDF曲线、PSD频谱对比及BER曲线的综合分析图表。
核心算法与实现逻辑
本项目的主程序脚本严格遵循以下逻辑流程进行仿真:
1. 系统参数配置与初始化
脚本首先清理环境并设置固定随机种子(rng 42),确保仿真结果的可复现性。系统定义的关键参数包括:256个子载波、4倍过采样、16-QAM调制、限幅率(CR)为1.4以及最大迭代次数为3次。
2. PAPR分布统计 (CCDF)
为了评估PAPR降低性能,程序执行以下步骤:
- 循环生成通过IFFT过采样后的OFDM时域符号。
- 计算原始信号的PAPR。
- 分别应用“1次迭代”和“最大次数迭代”的限幅滤波算法处理信号,并计算处理后的PAPR。
- 统计并生成CCDF数据,用于后续对比不同迭代次数下的PAPR抑制能力。
3. 目前误码率 (BER) 性能仿真
程序通过模拟AWGN信道传输来评估算法对通信可靠性的影响:
- 构建包含数千个符号的数据块,进行批量IFFT变换以提高仿真效率。
- 在发送端,分别保留原始信号和经过迭代限幅滤波处理的信号。
- 在信噪比(Eb/No)0dB至20dB的范围内,向信号添加相应功率的高斯白噪声。
- 接收端执行FFT变换和QAM解调,对比发送与接收比特,分别计算原始OFDM系统与限幅滤波后系统的误码率。
4. 功率谱密度 (PSD) 分析
为了验证算法对频谱特性的影响,程序进行了高分辨率的频谱分析:
- 生成长序列的OFDM符号流。
- 对比三种状态的信号频谱:
1.
原始信号:展现标准的OFDM频谱特性。
2.
仅限幅(无滤波):模拟仅有时域限幅时的频谱,观察由于非线性操作导致的显著带外频谱再生(展宽)。
3.
限幅+滤波:应用完整的迭代算法,验证滤波操作如何有效地消除带外干扰,使频谱回归至接近原始信号的掩模范围内。
- 使用Kaiser窗配合
pwelch函数进行平滑且精确的功率谱估计。
5. 结果可视化
仿真最后生成一个包含四个子图的窗口:
- 时域信号幅度对比:直观显示原始信号峰值如何被“削平”至限幅阈值以下。
- PAPR CCDF:展示经过处理后,高PAPR出现的概率显著降低。
- PSD 对比:清晰呈现“仅限幅”造成的频谱恶化以及“滤波”后的修复效果。
- BER 性能:展示在同等信噪比下,限幅引入的信号失真导致的误码率轻微上升。
关键函数说明
- generate_ofdm_symbol: 负责生成随机比特流并映射为16-QAM频域符号。
- ifft_oversampled: 实现过采样逻辑。不在时域直接插值,而是通过在频域数据中间插入零点(Zero Padding),扩展数据长度至N*L,再进行IFFT变换,从而获得高精度的时域波形。
- iterative_clipping_filtering: 算法的核心实现。
*
限幅 (Clipping): 计算信号幅度,对超过 $CR times sigma$ 阈值的部分通过
threshold * exp(j * phase) 进行幅度压缩,同时保持相位不变。
*
滤波 (Filtering): 将限幅后的信号变换至频域,强制将带外子载波(数据带宽之外的高频部分)置零,然后再变换回时域。此步骤反复迭代以逼近最佳效果。
使用方法
- 确保计算机安装了 MATLAB 软件,并包含 Signal Processing Toolbox(用于
pwelch 等函数)和 Communications Toolbox(用于 qammod/qamdemod/biterr/awgn)。 - 将代码保存为
.m 文件。 - 直接运行主函数。
- 程序将在控制台输出各阶段的进度提示(如“正在运行...”、“计算CCDF...”、“仿真BER...”)。
- 运行结束后,会自动弹出一个综合图表窗口展示所有仿真结果。
系统要求
- 软件:MATLAB R2018a 或更高版本
- 工具箱:
* Communications Toolbox (通信工具箱)
* Signal Processing Toolbox (信号处理工具箱)