⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptsn.m

📁 改变子载波的数目n
💻 M
字号:
% Program 2-3
% ptsn.m
% Simulation program to realize PTS with different N  to reduct PAPR of OFDM
% programmed by phui

clc;
clear;
close all;
%********************** preparation part ***************************

V=2;
N=[16 32 64];     % Number of parallel channel to transmit (points)
%papr             % Peak-to-Average Power Ratio
nloop=1000;       % Number of simulation loops
%************************** main loop part **************************


para=16;   
for iii=1:nloop
%************************** Data generation **************************** 
x=rand(1,para)>0.5;
%**************************** BPSK demode ****************************
seldata=x.*2-1;  
%******************************** IFFT ******************************** 
y=ifft(seldata); 
%*********************** Sub-block Partition ***************************
V=2;
seldata0=zeros(1,para/2);
seldata1=[seldata(1:para/2),seldata0];
seldata2=[seldata0,seldata(para/2+1:para)];
%******************* Ifft************************
y1=ifft(seldata1);       %  ifft : built in function
y2=ifft(seldata2);
Vloop=2.^V;
B=zeros(Vloop,V);
for vvv=1:1:Vloop
      a=rand(1,V);
      B(vvv,:)=2*(a>0.5)-1 ;  
      ypts=B(vvv,1)*y1+B(vvv,2)*y2;
      mma(vvv)=max(abs(ypts).^2);
end
[mmioa,idx]=min(mma);
b=B(idx,:);
b
yptsN=b(1)*y1+b(2)*y2;

pr10(iii)=papr(y);
pr11(iii)=papr(yptsN);
end
Pprr10=ccdf(pr10);
Pprr11=ccdf(pr11);



para=32;   
for iii=1:nloop
%************************** Data generation **************************** 
x=rand(1,para)>0.5;
%**************************** BPSK demode ****************************
seldata=x.*2-1;  
%******************************** IFFT ******************************** 
y=ifft(seldata); 
%*********************** Sub-block Partition ***************************
V=2;
seldata0=zeros(1,para/2);
seldata1=[seldata(1:para/2),seldata0];
seldata2=[seldata0,seldata(para/2+1:para)];
%******************* Ifft************************
y1=ifft(seldata1);       %  ifft : built in function
y2=ifft(seldata2);
Vloop=2.^V;
B=zeros(Vloop,V);
for vvv=1:1:Vloop
      a=rand(1,V);
      B(vvv,:)=2*(a>0.5)-1 ;  
      ypts=B(vvv,1)*y1+B(vvv,2)*y2;
      mma(vvv)=max(abs(ypts).^2);
end
[mmioa,idx]=min(mma);
b=B(idx,:);
b
yptsN=b(1)*y1+b(2)*y2;

pr20(iii)=papr(y);
pr21(iii)=papr(yptsN);
end
Pprr20=ccdf(pr20);
Pprr21=ccdf(pr21);



para=64;   
for iii=1:nloop
%************************** Data generation **************************** 
x=rand(1,para)>0.5;
%**************************** BPSK demode ****************************
seldata=x.*2-1;  
%******************************** IFFT ******************************** 
y=ifft(seldata); 
%*********************** Sub-block Partition ***************************
V=2;
seldata0=zeros(1,para/2);
seldata1=[seldata(1:para/2),seldata0];
seldata2=[seldata0,seldata(para/2+1:para)];
%******************* Ifft************************
y1=ifft(seldata1);       %  ifft : built in function
y2=ifft(seldata2);
Vloop=2.^V;
B=zeros(Vloop,V);
for vvv=1:1:Vloop
      a=rand(1,V);
      B(vvv,:)=2*(a>0.5)-1 ;  
      ypts=B(vvv,1)*y1+B(vvv,2)*y2;
      mma(vvv)=max(abs(ypts).^2);
end
[mmioa,idx]=min(mma);
b=B(idx,:);
b
yptsN=b(1)*y1+b(2)*y2;


pr30(iii)=papr(y);
pr31(iii)=papr(yptsN);
end
Pprr30=ccdf(pr30);
Pprr31=ccdf(pr31);


papr0_in_dB=2.001:0.001:14;
  figure(20);
    semilogy(papr0_in_dB,Pprr10);hold on;
    semilogy(papr0_in_dB,Pprr11,'r');
    semilogy(papr0_in_dB,Pprr20,'g--');
    semilogy(papr0_in_dB,Pprr21,'c');
    semilogy(papr0_in_dB,Pprr30,'m');
    semilogy(papr0_in_dB,Pprr31,'y:');
    hold off;
    axis([6 12  1e-003 1e000]) ;
    ylabel('Pr(PAPR>PAPR0)');
    xlabel('PAPR0/dB');
    title('performance' );
    legend('b,primary N=16','r,V=2 N=16','g--,primary N=32','c,V=2 N=32','m,primary N=64','y:,V=2 N=64');
    grid;
    gtext('N=16');
    gtext('V=2 N=16');
    gtext('N=32');
    gtext('V=2 N=32');
    gtext('N=64');
gtext('V=2 N=64');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -