📄 papr_slm_pts.m
字号:
clear allclchold on%Parameter settingfftn = 128; %FFT点数CP_length = fftn/8; %循环前缀长度symbol_num = 1e5; %OFDM符号数M1 = 1; %调制阶数(1——BPSK)data_length = fftn*symbol_num*M1; %数据长度%Data generatingdata_source = bingen(data_length);%OFDM modulatedata4ifft = reshape(data_source,fftn,symbol_num); %S/P %%%%%%%% PAR Control %%%%%%%%%%% %% SLM M_n = 1; %随机相位序列的大小 P = zeros(fftn,M_n); for nn = 1:M_n P_temp = rand(fftn,1); for jj=1:fftn if P_temp(jj,1) <= 0.25 P_temp(jj,1) = -j; elseif P_temp(jj,1) <= 0.5 && P_temp(jj,1) > 0.25 P_temp(jj,1) = -1; elseif P_temp(jj,1) <= 0.75 && P_temp(jj,1) > 0.5 P_temp(jj,1) = 1; elseif P_temp(jj,1) <= 1 && P_temp(jj,1) > 0.75 P_temp(jj,1) = j; end end P(:,nn) = P_temp; end for ii = 1:symbol_num for mm = 1:M_n data4ifft(:,ii) = data4ifft(:,ii).*P(:,mm); ifft_out(:,ii) = sqrt(fftn)*ifft(data4ifft(:,ii)); %IFFT????是data4ifft(:,nn)吗?应该是data4ifft(:,ii)吧! %PAPR计算 arverage_pwr = ifft_out(:,ii)'*ifft_out(:,ii)/fftn; max_value = max(abs(ifft_out(:,ii))); PAPR(1,mm) = max_value^2/arverage_pwr; end plotPAPR(ii) = 10*log10(min(PAPR)); end %CCDF计算 CCDF = zeros(1,13); for jj = 1:13 PAR_temp = zeros(1,symbol_num); PAR_temp(find(plotPAPR > jj-1)) = 1; CCDF(jj) = sum(PAR_temp)/symbol_num;%(CCDF的公式是这个吗?) end PAR_max = 0:1:12; semilogy(PAR_max,CCDF,'b+-') grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -