%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% LINEARIZATION WITH NONADAPTIVE PREDISTORTION
% STEPEST DESCENT WITH SCALE & ROTATE PARAMETERS USE TO CONSTRUCT LUT
% ____
% vi(n) | | y(n) | | vo(n)
% ------>| PD |--------->| PA |------->
% | |____| |____| |
% | \/_____/ \______/ |
% | | saleh-model |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
close all;
clear;
PA_Model=0; % 0= Static Model , 1= Dynamic Model (step variation) , 2= Dynamic Model (memory effect)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Random bit Generator %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
data=dlmread('IQ.txt');
I=data(:,1);
Q=data(:,2);
Inp=1.2.*(I+i*Q);
%Inp=Inp./max(abs(Inp));
%Inp=((randint(1,N)-.5)*2+j*(randint(1,N)-.5)*2)/2^.10; %Random bir Generator(QPSK)
%Inp=Inp.*exp(j.*2.*pi.*N/N1);
Fs=1250E06;
f=100E06;
%Inp=decimate(Inp,1);
Inp=decimate(Inp,2);
%Inp=Inp.*exp(j.*2.*pi./10)+Inp.*exp(-j.*2.*pi./1000);
%figure;
%plot(20*log10(abs(fft(Inp))))
%hold on;
%plot(linspace(-Fs/2, Fs/2, length(Inp1)), 20*log10(abs(fftshift(fft(Inp1)))),'r')
%Inp=rcosflt(Inp,1, 8,'sqrt', 0.4,4);
%Inp=real(Inp).*cos(j*2.*pi.*f1./Fs)+i*imag(Inp).*sin(j*2.*pi.*f1./Fs);
%Inp=in;
r=length(Inp);
Out=Saleh_model_modified(Inp,PA_Model);
x=Inp;
Y=(Out);
m=2;
n=3;
U=ones(20,r);
a=zeros(1,n*(m+1));
a=a.';
b=ones(20,r);
Hq=zeros(n,r-m);
Hq=Hq.';
H=zeros(r-m,n*(m+1));
%d=zeros(1,r);
d1=ones(1,r);
d1=d1.';
%d=d.';
H=H;
b=b;
l=0;
%q=0;
rmse=zeros(1,r);
rmse=rmse.';
rmse0=zeros(1,r);
rmse0=rmse0.';
for q=0:m
for k=1:n
for s=1:r-q
d=x(q+1:end);
d1(s)=d(s);
h=d1.*(abs(d1)).^(2*(k-1));
h=h(1:end-m);
end;
Hq(:,k)=h;
end;
ct=(n).*q;
for j=1:n
H(:,ct+j)=Hq(:,j);
end;
d1=ones(1,r);
d1=d1.';
end;
for p=1:1
Y=Y(1:end-m);
a=pinv(H)*Y;
d1=ones(1,r-m);
d1=d1.';
Inp=Inp(1:end-m);
y=zeros(1,r-m);
y=y.';
for f=0:0
for k=1:n
for v=1:r-m
x=Inp;
d=x(f+1:end);
d1(v)=d(v);
c=(n).*f;
end;
y=y+d1.*(abs(d1)).^(2*(k-1))*a(k,:);
end;
E=Y-y;
for l=1:r-m
rmse0=rmse0+E(l,:).^2;
end;
rmse0=sqrt(rmse0);
end;
d1=ones(1,r-m);
d1=d1.';
for f=1:m
for k=1:n
for v=1:r-m-f
x=Inp;
d=x(f+1:end);
d1(v)=d(v);
c=(n).*f;
end;
y=y+d1.*(abs(d1)).^(2*(k-1))*a(k+c,:);
end;
d1=ones(1,r-m);
d1=d1.';
end;
E=Y-y;
Y=y;
for l=1:r-m
rmse=rmse+E(l,:).^2;
end;
rmse=sqrt(rmse);
MEMR=1-rmse./rmse0;
end;
%Out=Saleh_model_modified(Zpd,PA_Model);
Inp=Inp(1:end-2);
Out=Out(1:end-m-2);
y=y(1:end-2);
figure;
%plot(abs(Inp),abs(Out),'r.');
%hold on;
plot(abs(Inp),abs(y),'.');
figure;
psd(y);
hold on;
psd(Inp);
figure;
plot(abs(MEMR))
MPM.rar_MPM matlab_The Method Method_mpm_mpm-i-sph_saleh model
版权申诉
5星 · 超过95%的资源 100 浏览量
2022-09-21
06:23:34
上传
评论
收藏 1KB RAR 举报
四散
- 粉丝: 49
- 资源: 1万+
最新资源
- mybatis中的动态sql, 涉及 where trim set if foreach等
- 简单- 快递运输(Java & JS & Python & C).html
- mybatis框架 更改ems系统,使用动态sql等.zip
- 易语言工具条下拉菜单实现
- Mybatis动态SQL高级映射.zip
- 源码esp8266开发板机智云机智云智能灯
- Python实现多图像转换成连贯的PDF文件,支持所有图片格式,可预览、裁剪、自定义PDF布局、设置图像顺序、PDF质量选择等
- H5腾讯地图选择位置组件
- 基于UCC28019+LM5017电源板硬件(原理图+PCB)工程文件.zip
- 源码esp8266开发板机智云机智云空气净化器
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论1