▲基于记忆多项式预失真与自适应均衡的16QAM非线性通信系统联合补偿技术matlab仿真

0 阅读7分钟

目录

1.引言

2.系统失真机理与联合补偿必要性

2.1 16QAM信号特性与功放非线性失真

2.2 无线多径信道线性失真

2.3 联合补偿

3.记忆多项式模型与数字预失真

4. 记忆多项式预失真逆模型(MP-DPD)

5. MP-DPD对16QAM失真抑制机理

6. LMS最小均方自适应均衡算法

7. MATLAB程序

8.完整程序下载


1.引言

       现代宽带无线通信普遍采用16QAM等高阶正交幅度调制,信号高峰均功率比(PAPR)使射频功率放大器(PA)进入非线性压缩区,产生AM/AM、AM/PM失真与记忆效应;同时多径无线信道引入码间串扰(ISI)、时变衰落,两类失真叠加会严重恶化EVM、BER与频谱指标。传统方案仅单独采用发射端记忆多项式数字预失真(MP-DPD)或接收端自适应均衡,无法同时抑制功放非线性与信道线性畸变,补偿性能存在瓶颈。

2.系统失真机理与联合补偿必要性

2.1 16QAM信号特性与功放非线性失真

16QAM采用4比特映射单复基带符号,归一化星座点集合:

S={±1±j1,±1±j3,±3±j1,±3±j3}

信号峰均比约4.8dB,宽带传输下包络剧烈起伏,功放工作点易落入饱和区。功放失真分为两类:

无记忆静态非线性:AM/AM幅度压缩、AM/PM相位偏移,仅与瞬时输入包络相关;

记忆非线性:宽带信号载波包络变化快,功放RC偏置网络、匹配滤波带来记忆效应,当前输出同时依赖当前与历史输入采样。

无记忆Saleh功放模型:

r=∣x(n)∣为输入信号包络,α1​,α2​,β1​,β2​为功放实测拟合参数。叠加记忆效应后,仅静态多项式无法精准建模,记忆多项式(Memory Polynomial, MP)成为工程主流功放建模工具。

2.2 无线多径信道线性失真

无线信道多径散射等效离散时变FIR滤波器,基带冲激响应:

Lh​为信道多径抽头数,hl​为时变复增益。信号经过信道产生码间串扰ISI,接收采样:

spa​(n)为功放输出信号,w(n)为复高斯白噪声。单独依靠预失真仅补偿发射端功放畸变,无法消除接收端信道ISI;仅接收均衡仅补偿线性串扰,功放残留非线性畸变会持续恶化均衡收敛特性,形成误差耦合。

2.3 联合补偿

联合补偿采用发射前置预失真 + 接收后置自适应均衡两级架构:

发射端:记忆多项式预失真器MP-DPD对16QAM基带符号预畸变,抵消功放记忆非线性,使功放输出逼近理想线性放大信号;

接收端:自适应均衡器(LMS/RLS)抑制多径ISI,补偿信道线性畸变;

闭环协同:发射DPD通过射频反馈支路自适应更新多项式系数,接收均衡利用训练序列 / 判决导向迭代滤波权值,两级补偿协同消除 “非线性 + 线性” 复合失真。

完整基带系统链路:

3.记忆多项式模型与数字预失真

       记忆多项式基于Volterra级数对角简化,仅保留同阶延迟项的奇次非线性(射频功放仅奇次项产生带内失真,偶次项落至基带外可滤除),功放输入x(n)、输出ypa​(n)关系:

将式改写为矩阵线性形式,便于最小二乘辨识。构造基函数向量Φ(n):

该线性特性是记忆多项式核心优势:模型输出关于系数线性,可直接采用LS、RLS快速辨识,远优于Volterra级数、神经网络等非线性参数模型。

4. 记忆多项式预失真逆模型(MP-DPD)

预失真目标:构造映射xdpd​(n)=Fdpd​[s(n)],使功放输出ypa​(n)=G⋅s(n),G为理想线性增益,s(n)为原始16QAM发送符号。预失真器采用同阶记忆多项式结构:

通过射频耦合反馈支路实时采集功放输出,周期性更新c^,跟踪功放温度、供电电压漂移带来的特性变化,持续抑制16QAM信号的AM/AM、AM/PM畸变。

5. MP-DPD对16QAM失真抑制机理

       未预失真时,功放非线性使16QAM星座外层大功率符号压缩、内层符号相位偏移,星座边界模糊;MP-DPD通过逆多项式对发送符号预先施加反向畸变:大功率符号放大幅度、补偿相位滞后,抵消功放压缩效应。经过预失真后功放输出基带等效:

edpd​(n)为DPD建模残差,远小于原始功放失真,大幅降低接收均衡器需要补偿的非线性基底误差,避免均衡器因强非线性出现不收敛、稳态MSE抬升问题。

6. LMS最小均方自适应均衡算法

训练阶段期望信号d(n)=s(n)(已知16QAM训练符号),瞬时误差:

判决导向模式(数据传输阶段无训练序列):d(n)=QAM-Demod(s^(n)),利用判决后的16QAM标准星座点作为期望信号持续更新权值,跟踪时变信道。

7. MATLAB程序

figure('Name','BER对比','Color','w');
mk={'-o','-s','-d','-^'};
for sc=1:nS
    semilogy(EbN0_dB,BER(sc,:),mk{sc},'LineWidth',1.6); 
    hold on; 
end
grid on; 
xlabel('Eb/N0 (dB)'); 
ylabel('BER'); 
ylim([1e-3 1]);
legend(scenarios,'Location','southwest');
title('PA非线性+多径信道下16QAM误码率对比');

refC = qammod((0:M-1).',M,'UnitAveragePower',true);
figure('Name','星座图','Color','w');
for sc=1:nS
    subplot(2,2,sc);
    plot(real(cap{sc}),imag(cap{sc}),'.','MarkerSize',3); hold on;
    plot(real(refC),imag(refC),'rx','MarkerSize',10,'LineWidth',1.5);
    axis equal; grid on; axis([-1.5 1.5 -1.5 1.5]);
    title(sprintf('%s @ %d dB',scenarios{sc},capSNR));
    xlabel('I'); ylabel('Q');
end

figure('Name','PA特性','Color','w');
xt   = (0:0.01:1.2).';                       % 输入幅度扫描
pa   = memoryPolyPA(xt, paCoef, Kpa, Qpa);   % 直接PA
dp   = applyDPD(xt, dpdCoef, Kpa, Qpa);
padp = memoryPolyPA(dp, paCoef, Kpa, Qpa);   % DPD+PA级联
plot(abs(xt),abs(pa),'r--','LineWidth',1.6); 
hold on;
plot(abs(xt),abs(padp),'b-','LineWidth',1.6);
plot(abs(xt),abs(xt),'k:','LineWidth',1.2);
grid on; xlabel('输入幅度 |x|'); ylabel('输出幅度 |y|');
legend('仅PA(非线性压缩)','DPD+PA(线性化)','理想线性','Location','northwest');
title('功率放大器 AM/AM 特性: 预失真线性化效果');

测试结果如下: