基于记忆多项式的OFDM通信系统数字预失真(DPD)仿真平台
项目介绍
本项目是一个构建在MATLAB环境下的OFDM通信系统仿真模型,专门用于研究和验证数字预失真(DPD)技术对射频功率放大器(PA)非线性畸变的补偿效果。在无线通信中,功率放大器的高效率工作通常伴随着严重的非线性失真,导致信号频谱展宽(邻道干扰)和星座图畸变(误码率升高)。本项目通过建立放大器的逆模型,在信号发射前进行预补偿,从而在提升系统线性度的同时保持较高的功率效率。
功能特性
- 完备的OFDM链路动态仿真:实现了从物理层比特流生成、QAM调制、IFFT变换、循环前缀(CP)添加,到过采样插值滤波的完整发射机流程。
- 非线性记忆功率放大器建模:内置了一个包含奇数阶非线性项(三阶、五阶)及记忆效应的处理函数,模拟真实功率放大器的增益压缩与相位失真。
- 基于间接学习架构(ILA)的DPD:系统通过提取功率放大器的输出与输入样点,利用最小二乘法(LS)离线估计功率放大器的逆模型系数。
- 记忆多项式补偿算法:预失真器支持自定义非线性阶数和记忆深度,能够有效抑制由于功率放大器记忆效应引起的信号失真。
- 多维度性能分析可视化:提供功率谱密度(PSD)对比、AM-AM特性曲线、接收机星座图以及误码率(BER)和误差矢量幅度(EVM)的实时统计。
运行环境与系统要求
- 软件环境:MATLAB R2020a 或更高版本。
- 所需工具箱:
- Signal Processing Toolbox(用于重采样和功率谱估计)
- Communications Toolbox(用于QAM调制解调和比特误码率计算)
系统逻辑实现说明
仿真流程严格遵循现代数字信号处理架构,具体步骤如下:
- 参数初始化:
系统默认采用16QAM调制,1024点的FFT规模,并设置4倍过采样。过采样是观察频谱再生(Spectral Regrowth)和执行DPD算法的关键前提。
- 信号产生与调制:
随机生成的比特流经过QAM映射后转化为频域符号,通过IFFT进入时域。系统添加循环前缀以抵消符号间干扰,并利用插值滤波器(resample函数)进行上采样,将信号带宽调整至适合观察PA非线性的范围。
- 功率放大器行为模拟:
代码实现了一个具有记忆特性的多项式模型。该模型不仅考虑了当前输入信号的幅阶($x(n)|x(n)|^2$ 等),还引入了历史样点的延迟项,模拟射频电路中储能元件导致的记忆效应。
- 预失真系数训练(核心算法):
采用间接学习架构(Indirect Learning Architecture)。系统首先让原始信号通过功率放大器,收集PA的输出信号。随后,将PA的输出作为“自变量”,PA的输入作为“因变量”,通过构造包含不同阶数和延迟项的特征矩阵(Basis Matrix),利用最小二乘法(LS)求解出能够抵消PA畸变的预失真参数。
- 信号补偿与发射:
将计算得到的系数应用于待发信号,生成预补偿后的信号。该信号再次进入功率放大器,此时PA的非线性特性与预失真器的逆特性相互抵消,输出接近线性的放大信号。
- 接收机处理与解调:
接收端执行下采样、去除CP、FFT变换及均衡处理。系统通过对比有无DPD干预下的解调结果,验证算法性能。
关键函数与实现细节
- 特征矩阵构造(construct_basis_matrix):这是DPD实现的核心逻辑。该函数接收信号、非线性阶数及记忆深度作为输入,构建一个复杂的矩阵。矩阵的每一列代表一个基函数项,例如 $x(n), x(n)|x(n)|^2, x(n-q)|x(n-q)|^4$。这种结构允许模型捕获复杂的非线性相互作用。
- 功率放大器模型执行(apply_pa_model):该函数通过固定的多项式系数对输入向量进行变换。它通过结合当前点与延迟点的非线性项,产生具有压缩特性的输出信号。
- 性能评估(MeanSquareError & simplify_demod):
-
EVM计算:通过归一化均方误差(MSE)来衡量PA输出信号与原始参考信号之间的偏差。
-
简化解调器:实现了完整的逆OFDM变换流程,包括单标量等效均衡,确保在非线性环境下依然能准确评估系统的BER指标。
使用方法
- 打开MATLAB,将工作目录指向项目文件夹。
- 直接在命令行窗口运行核心仿真脚本。
- 仿真运行结束后,系统将自动弹出可视化图形窗口:
-
左上图:观察DPD开启前后,邻道功率泄露(ACLR)的改善程度。
-
右上图:观察AM-AM曲线,有DPD时曲线应更接近一条从原点出发的直线。
-
左下图:观察星座图的收敛情况,有DPD时星座点会更加集中。
-
右下图:查看具体的BER、EVM性能数值总结。