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

📄 pts_ccdf.m

📁 降低OFDM中PAPR的方法PTS的MATLAB源码
💻 M
字号:
%pts methods
clear all;
close all;
n1=10;
c1=128;
v=8;
Fs=10^3;
 NN=0:.1:13;%CCDF的门限值
 ccdf0=zeros(1,131);
 ccdf2=ccdf0;
for m=1:n1;
    % generate qam signal 
    x(:,1)=randsrc(c1,1,[1,-1,3,-3]);
    x(:,2)=randsrc(c1,1,[1,-1,3,-3]);
     y=squeeze(x);
     x1=amodce(y,Fs,'qam');
     y1=x1.';
     % oversample 4
     z1=[y1(1:c1/2),zeros(1,3*c1),y1(c1/2+1:c1)];
     z2=ifft(z1)*c1;
     x0=abs(z2).^2;
     v3=max(x0);
     m3=mean(x0);
     papr3(m)=10*log10(v3/m3);
     l1=length(z1);
     % divided into v sets 
     x2=zeros(1,l1);
     x4=x2;
     x6=x4; 
     b=ones(1,v);
     for k=1:v;
         z(k,:)=[zeros(1,(k-1)*l1/v),z1((k-1)*l1/v+1:k*l1/v),zeros(1,(v-k)*l1/v)];
         iz(k,:)=ifft(z(k,:));  
         iz(k,:)=iz(k,:)*c1;
     x2(1,:)=x2(1,:)+b(k)*iz(k,:);
 end
            x3=abs(x2).^2;
            m0=mean(x3);
            v0=max(x3);
            papr0(m)=10*log10(v0/m0);
        index=1; 
  while index<v+1
         b(index)=-1;
         for n=1:v;
            x4(1,:)=x4(1,:)+b(n)*iz(n,:);
         end
         x5=abs(x4).^2;
         m1=mean(x5);
         v1=max(x5);
            papr1(m)=10*log10(v1/m1);
         if papr1(m)<papr0(m)       
            papr0(m)=papr1(m);
         else
             b(index)=1;
         end

         index=index+1;
     end
  for l=1:131;
if papr3(m)>NN(l);
    ccdf0(l)=ccdf0(l)+1;
end  
if papr0(m)>NN(l);
    ccdf2(l)=ccdf2(l)+1;
end
end
end
 ccdf1=ccdf0./n1;
 ccdf3=ccdf2./n1;
% NN=4:.5:10;
 semilogy(NN,ccdf1,'r',NN,ccdf3,'b')
 title('PTS方法的CCDF曲线')
xlabel('papr(dB)'),ylabel('ccdf')
grid on


    

⌨️ 快捷键说明

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