数字预失真基于Volterra级数的宽带射频功放数字预失真线性化技术matlab仿真
Posted fpga和matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字预失真基于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
以上是关于数字预失真基于Volterra级数的宽带射频功放数字预失真线性化技术matlab仿真的主要内容,如果未能解决你的问题,请参考以下文章