• 柔婉mo
    了解作者
  • matlab
    开发工具
  • 539KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 48
    下载次数
  • 2018-03-11 20:49
    上传日期
基于RLS算法的 功放数字预失真仿真 Saleh模型 多项式
DPD_Indirect_RLS.rar
  • DPD_Indirect_RLS
  • log_psd_mtm.m
    764B
  • PA_model.m
    145B
  • DPD_model.m
    1KB
  • TestSignal.mat
    269.6KB
  • TrainSignal.mat
    132.7KB
  • tmwaveform.mat
    132.7KB
  • Untitled.m
    3.9KB
  • test.m
    838B
  • PA_MPM_model.m
    923B
  • PA_Saleh_model.m
    340B
内容介绍
%% 采用Memory Polynomial作为预失真模型 clear all close all format long PA_model_num = 1; % 1:Saleh model 2:Memory Polynomial model %% 读取基带输入数据 Xin = importdata('TrainSignal.mat'); Xin = Xin'; DSPstep = 1/30.72/10e6; %%基带时间步进 ts = DSPstep; N = length(Xin); % % 绘制Saleh模型功放AM/AM && AM/PM 曲线 % tn=0.005:0.001:0.8; %%测试数据 % YTn=PA_model(tn,PA_model_num); % Gain=20*log10(abs(YTn)./abs(tn)); %从增益看出Saleh模型电压增益为1.017 % figure(1); % subplot(1,2,1); % plot(20*log10(abs(tn)),20*log10(abs(YTn)./abs(tn))) % AM/AM % title('AM/AM'); % xlabel('Input Power/dBm'); % ylabel('Gain/dB'); % axis([-45 0 2 7]) % grid on % subplot(1,2,2); % plot(20*log10(abs(tn)),angle(YTn)-angle(tn)); %AM/PM % title('AM/PM'); % xlabel('Input Power/dBm'); % ylabel('Output Phase Offset/rad'); % axis([-45 0 0 0.4]) % grid on %% 输入信号幅度设置 %从增益曲线看出0.5dB压缩点,对应tn=0.23 Xn=0.8*Xin/max(abs(Xin)); %输入最大刚好在0.5dB压缩点 %% DPD 核心算法 % Zn=Xn; %Zn 初值 % n=m; %用于计算预失真参数的点数 % %通过间接学习提取预失真参数 % %下面迭代10次 % for i=1:10 % Yn1=PA_model(Zn,PA_model_num); %% Zn为预失真输出,功放输入 % Yn3=Yn1.*(abs(Yn1).^2); %% Y(n)|Y(n)|^2 % Yn5=Yn1.*(abs(Yn1).^4); %% Y(n)|Y(n)|^4 % U1=[Yn1(3:n).',Yn3(3:n).',Yn5(3:n).',Yn1(2:n-1).',Yn3(2:n-1).',Yn5(2:n-1).',Yn1(1:n-2).',Yn3(1:n-2).',Yn5(1:n-2).']; % b1=U1\Zn(3:n).'; % % b2=pinv(U1)*Zn(3:n).'; % Zn=DPD_model(Xn,b1); %%预失真输出 % end %% DPD Algorithm Based On RLS for i = 1 :9 An = [1 0 0 0 0 0 0 0 0]'; delta = 3e5; Pn = eye(9)/delta; PA_Gain = 1; lambda = 0.9+i*0.01; for n = 3 : N Zn = DPD_model(Xn,An); Yn1 = PA_model(Zn,PA_model_num)/PA_Gain; Yn3 = Yn1.*(abs(Yn1).^2); %% Y(n)|Y(n)|^2 Yn5 = Yn1.*(abs(Yn1).^4); %% Y(n)|Y(n)|^4 Yn=[Yn1(n),Yn3(n),Yn5(n),Yn1(n-1),Yn3(n-1),Yn5(n-1),Yn1(n-2),Yn3(n-2),Yn5(n-2)]; Un = Yn.'; Kn = Pn*conj(Un)/(lambda+Un.'*Pn*conj(Un)); Zn_estimate(n) = Un.'*An; e(n) =Zn(n)-Zn_estimate(n); An = An + Kn*(Zn(n)-Un.'*An); Pn = (Pn - Kn*Un.'*Pn)/lambda; end figure(i); plot(abs(e).^2); end % % %% % Xin = importdata('TrainSignal.mat'); % Xin = Xin'; % Xn=0.8*Xin/max(abs(Xin)); %输入最大刚好在0.5dB压缩点 % DSPstep = 1/30.72/10e6; %%基带时间步进 % ts = DSPstep; % N = length(Xn); % %% 无预失真功放输出 % PA_Out_NDPD=PA_model(Xn,PA_model_num); %%无预失真功放输出 % %% 预失真输出及功放输出 % Zn=DPD_model(Xn,An); %预失真输出 % PA_Out_DPD=PA_model(Zn,PA_model_num); % PA输出 % %% Others % % figure(2); % % plot(20*log10(abs(Xn)),20*log10(abs(Yn)),'b') % % axis([-10 0 -10 0]) % % grid on % % figure(3); % % plot(20*log10(abs(Xn)),20*log10(abs(Yn2)),'r') % % % legend('无预失真','有预失真'); % % xlabel('输入功率(dBm)'); % % ylabel('输出功率(dBm)'); % % axis([-10 0 -10 0]) % % grid on % % a=pinv(U)*Zn(101:n).' %%若U既不是行满秩也不是列秩,可以求M-P广义逆 % % % % fvtool(Xn); % % fvtool(PA_Out_NDPD); % % fvtool(PA_Out_DPD); % % %% 调用MTM方法计算PSD % nww=2; %nww is the time-bandwidth product,typical choices are 2, 5/2, 3, or 7/2. % %调节nww可以在分辨率和variance之间折中 % [psdx,freq]=log_psd_mtm(Xn,N,ts,nww); %输入信号的PSD % [psdy,freq]=log_psd_mtm(PA_Out_NDPD,N,ts,nww); %无预失真时功放输出PSD % [psdz,freq]=log_psd_mtm(PA_Out_DPD,N,ts,nww); %有预失真时功放输出PSD % %% 绘制未失真的input信号频谱 % figure(4) % plot(freq*(2*ts),psdx) % xlabel('归一化频率'); % ylabel('归一化PSD (dB)'); % title('未失真的input信号频谱'); % grid on % %% 绘制无预失真时功放输出频谱 % figure(5) % plot(freq*(2*ts),psdy) % xlabel('归一化频率'); % ylabel('归一化PSD (dB)'); % title('无预失真时功放输出频谱'); % grid on % %% 绘制有预失真时功放输出频谱 % figure(6) % plot(freq*(2*ts),psdz) % xlabel('归一化频率'); % ylabel('归一化PSD (dB)'); % title('有预失真时功放输出频谱'); % grid on
评论
    相关推荐
    • matlabcnhelp.rar
      matlab中文帮助很难找的,快速下载
    • MobilePolice.rar
      移动警察,车牌识别,车牌定位系统源代码,已经运用在移动车载稽查系统中。
    • SVM(matlab).rar
      支持向量机(SVM)实现的分类算法源码[matlab]
    • svm.zip
      用MATLAB编写的svm源程序,可以实现支持向量机,用于特征分类或提取
    • Classification-MatLab-Toolbox.rar
      模式识别matlab工具箱,包括SVM,ICA,PCA,NN等等模式识别算法,很有参考价值
    • VC++人脸定位实例.rar
      一个经典的人脸识别算法实例,提供人脸五官定位具体算法及两种实现流程.
    • QPSK_Simulink.rar
      QPSK的Matlab/Simulink的调制解调仿真系统,给出接收信号眼图及系统仿真误码率,包含载波恢复,匹配滤波,定时恢复等重要模块,帮助理解QPSK的系统
    • LPRBPDemo2009KV.rar
      车牌识别,神经网络算法,识别率高达95%,识别时间低于80ms。
    • MODULATION.RAR
      这个源程序代码包提供了通信系统中BPSK,QPSK,OQPSK,MSK,MSK2,GMSK,QAM,QAM16等调制解调方式 用matlab的实现,以及它们在AWGN和Rayleigh信道下的通信系统实现及误码率性能
    • algorithms.rar
      十大算法论文,包括遗传算法,模拟退火,蒙特卡罗法等等,对于初学者很有帮助!!