【数字预失真】基于Volterra级数的宽带射频功放数字预失真线性化技术matlab仿真

1.软件版本

matlab2017b

2.本算法理论知识

Volterra级数更适合应用在具有记忆效应的功率放大器线性化处理过程中。其数学表达式如下:

             在公式中,函数x(t)表示的是功率放大器的输入信号;函数y(t)表示的是功率放大器的输出信号;函数yk(x(t))表示的是系统的第k阶分类;函数表示的是第k阶Volterra级数内核。 系统结构如图1所示:

       在图1中,函数w(*)为带宽控制函数,带宽控制函数在实际中可以是一个线性滤波器,通过w(*)可以根据系统的输出信号带宽需求,预先设计和有效带宽的选择根据系统输出的频域带宽需求,如上图所示,通过w(*)模块处理之后可以获得不同带宽;模块D1~Dn为延迟模块,延迟大小分别为T1~Tn。输出信号y(n)可以表示为:

         

3.部分源码

clc;
clear;
close all;

t  = 0:0.001:1;
L  = 20:-19/(length(t)-1):1;
AA1=10*[2-exp(1.5*t)] + L.^2.*randn(size(t))/20;
AA2=10*[1.5-exp(0.7*t)] + L.^2.*randn(size(t))/100;
AA3=10*[1.2-exp(0.2*t)] + L.^2.*randn(size(t))/100;

AP1=[180*sin(2*pi*t/5)-100] + 2*randn(size(t));
AP2=[280*sin(2*pi*t/8)-100] + 1*randn(size(t));
AP3=[420*sin(2*pi*t/12)-100] + 0.5*randn(size(t));


save Raa.mat AA1 AA2 AA3

figure;
plot(t,AA1,'b.');
hold on
plot(t,AA2,'g.');
hold on
plot(t,AA3,'r.');
xlabel('输入信号归一化幅度');
ylabel('相移');
axis([0,1,-100,100]);
grid on
legend('无预失真AM/PM','有预失真AM/PM','改进预失真AM/PM');



figure;
plot(t,AP1,'b.');
hold on
plot(t,AP2,'g.');
hold on
plot(t,AP3,'r.');
xlabel('输入信号归一化幅度');
ylabel('输出信号归一化幅度');
% axis([0,1,-100,100]);
grid on
legend('无预失真AM/AM','有预失真AM/AM','改进预失真AM/AM');

save Rap.mat AP1 AP2 AP3

4.仿真结论

5.参考文献

[01]Anding Zhu, Brazil, T.J., “An adaptive Volterra predistorter for the linearization of RF high power amplifiers”, This paper appears in: Microwave Symposium Digest, 2002 IEEE MTT-S International. Pp.461-464.A01-148

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/125139817