資源簡介
介紹了一種放大器的模型,及其實現代碼,記憶Saleh模型
代碼片段和文件信息
%?OFDM_memorySaleh.m
%
%?Simulation?16QAM-OFDM?system?with?memory?Saleh?model
%
%?Programmed?by?Ruby?Lin
%********************?Preparatin?part?*******************************
sr?=?256000.0;?????????????????%?Symbol?rate
m1?=?4;????????????????????????%?m1:Number?of?modulation?levels
???????????????????????????????%?(BPSK:m1=1?QPSK:m1=2?16QAM:m1=4)
br?=?sr?.*?m1;?????????????????%?Bit?rate
???????????????????????????????%?(BPSK:m1=1?QPSK:m1=2?16QAM:m1=4)
nd?=?1024;?????????????????????%?Number?of?symbols?htat?simulates?in
???????????????????????????????%?each?loop
L?=?4;?????????????????????????????????????%?IFFT(FFT)采樣點數
Sdata?=?2^7;???????????????????????????????%?IFFT(FFT)每幀長度
SNR_dB?=?1:15;???????????????????????????%?仿真信噪比范圍
SNR1_dB?=?0:0.1:15;??
Ar?=?2.0;????????????????????????????????%?TWTA的Dong-Seog?Han參數
Br?=?1;
Ap?=?pi/3;
Bp?=?1;
%********************?Data?generation?*******************************
?????
?????data1?=?rand(1nd*m1)?>?0.5;????%?rand:built?in?function
%********************?16QAM?Modulation?******************************
????trym=qammod(data11ndm1);
????ich=abs(trym);
????qch=angle(trym);
????figure(1);
????plot(ichqch‘*‘);
??????
???QAM_mod?=?ich?+?i*qch;
???
???%****************************?OFDM調制?****************************
OFDM_mod_group?=?zeros(L*length(QAM_mod)1);
OFDM_mod?=?zeros(L*length(QAM_mod)1);
for?n?=?1:length(QAM_mod)/Sdata?????????
????
????OFDM_mod_group((n-1)*L*Sdata+Sdata/2+1:(n-1)*L*Sdata+Sdata/2*3)?=...
????????QAM_mod((n-1)*Sdata+1:n*Sdata);
??????
????OFDM_mod((n-1)*(L*Sdata)+1:n*(L*Sdata))?=?...
????????ifft(OFDM_mod_group((n-1)*(L*Sdata)+1:n*(L*Sdata))(L*Sdata));
????
end;
?%****************************?memory?Saleh?****************************
?
IBO_dB?=?10;??????????????????????????????%?功率回退系數???
nf_ibo?=?10^(-IBO_dB/10);????????????????%?功率回退復系數
OFDM_mod_reshape?=?reshape(OFDM_mod1length(OFDM_mod))*nf_ibo;
FIR_c?=?[0.7692?0.1538?0.0769];
A_memory?=?filter(FIR_c1OFDM_mod_reshape);
PA_in_Env?=?abs(A_memory);
PA_in_Phase?=?angle(A_memory);
PA_out_r?=?Ar*PA_in_Env./(1+Br*PA_in_Env.^2);??????????????????????????????????%?幅度非線性放大
PA_out_p?=?Ap*PA_in_Env.^2./(1+Bp*PA_in_Env.^2)?+?PA_in_Phase;???????????????%?相位非線性放大
PA_out?=?PA_out_r.*exp(i*PA_out_p)/nf_ibo;%*nf/2;?????%?去歸一化和去功率回退
ic
- 上一篇:matlab巴特沃斯濾波器m代碼
- 下一篇:碳排放交易粒子群優化算法
評論
共有 條評論