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

📄 xiangweiyinzi.m

📁 降低OFDM系统PAPR的PTS改进算法——相位因子估计。出CCDF比较图
💻 M
字号:
%相位因子估计法
clear;
v=8;
nl=100;
for n=1:nl;
    a=rand(1,256)>0.5;
    C=(a*2-1)/sqrt(2);
    sreal=C(1:2:256);
    simage=C(2:2:256);
    D=sreal+j.*simage; 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
    % oversample 4
     z1=[D(1:128/2),zeros(1,3*128),D(128/2+1:128)];
     z2=ifft(z1)*512;    
     x0=abs(z2).^2;
     v3=max(x0);
     m3=mean(x0);
     papr1(n)=10*log10(v3/m3);
     l1=length(z1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
     % divided into v sets 
     x5=zeros(256,512);  
     x7=zeros(v,512);
     b=ones(1,v);
     x4=zeros(1,512);
     P=zeros(l1,v);
     P1=zeros(l1,v);
     Q=zeros(l1,v);
     for k=1:v
         z(k,:)=[zeros(1,(k-1)*128/v),D((k-1)*128/v+1:k*128/v),zeros(1,(l1-(k-1)*128/v-128/v))];
         iz(k,:)=ifft(z(k,:));  
         iz(k,:)=iz(k,:)*512;
         x5(1,:)=x5(1,:)+b(k)*iz(k,:);
         P(:,k)=iz(k,:);
     end
     x6=abs(x5).^2;
     m2=mean(x6);
     v2=max(x6);
     papr2(n)=10*log10(v2/m2);
     papr3(n)=papr2(n);
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %次优化搜索
         index=1; 
  while index<v+1
         b(index)=-1;
         for m=1:v;
            x7(index,:)=x7(index,:)+b(m)*iz(m,:);
            m+1;
         end
         x8=abs(x7(index,:)).^2;
         m4=mean(x8);
         v4=max(x8);
         papr0(n)=10*log10(v4/m4);
         if papr0(n)<papr2(n)       
             papr2(n)=papr0(n);
         else
             b(index)=1;
         end  
         index=index+1;
  end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  %全搜索算法
  jjj=1;
for i1=-1:2:1;    
    for i2=-1:2:1;        
        for i3=-1:2:1;            
            for i4 = -1:2:1;                
                for i5=-1:2:1;                    
                    for i6=-1:2:1;                        
                        for i7=-1:2:1;                            
                            for i8=-1:2:1;  
                                 A(jjj,1:8)=[i1,i2,i3,i4,i5,i6,i7,i8];                                
                                 jjj=jjj+1;
                            end                        
                        end                    
                    end                
                end            
            end        
        end    
    end
end    
  for i=2:256;
        for k=1:v;
            x5(i,:)=x5(i,:)+A(i,k)*iz(k,:);
        end
        y5=abs(x5(i,:)).^2;
        v5=max(y5);
        m5=mean(y5);
        papr00(n)=10*log10(v5/m5);
       if papr00(n)<papr3(n);
          papr3(n)=papr00(n);
       end
  end
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            
     for i1=1:l1
         x3=abs(P(i1,:)).^2;
         P1(i1,:)=x3;
     end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     for i1=1:l1
         number=paixu1(P1(i1,:));
         for m=1:v
             R(:,m)=P1(:,number(2,m));
         end
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%               
         for i2=1:l1;
             Q1(i2,:)=R(i2,1:2:v);
             Q2(i2,:)=R(i2,2:2:v);
             Q2(i2,:)=-1*Q2(i2,:);
         end
         x1=sum(Q1');
         x2=sum(Q2');
         x3=x1+x2;
         v1=max(abs(x3));
         m1=mean(abs(x3));
         papr000=10*log10(v1/m1);
         x4(i1)=papr000;
     end
     papr4(n)=min(x4);
     papr4(n)=papr4(n)+2.5;
 end
 ccdf0=zeros(1,131);
 ccdf2=zeros(1,131);
 ccdf4=zeros(1,131);
 ccdf6=zeros(1,131);
 NN=0:.1:13;
   for n=1:nl;
       for l=1:131;
           if papr1(n)>NN(l);
              ccdf0(l)=ccdf0(l)+1;
           end
           if papr2(n)>NN(l);
              ccdf2(l)=ccdf2(l)+1;
           end
           if papr3(n)>NN(l);
              ccdf4(l)=ccdf4(l)+1;
           end
           if papr4(n)>NN(l);
              ccdf6(l)=ccdf6(l)+1;
          end     
       end
   end
   ccdf1=ccdf0./100;
   ccdf3=ccdf2./100;
   ccdf5=ccdf4./100;
   ccdf7=ccdf6./100;
   figure(1)
   semilogy(NN,ccdf1,'mO-',NN,ccdf3,'gX-',NN,ccdf5,'cs-',NN,ccdf7,'r*-')
   title('CCDF曲线比较')
   xlabel('papr( in dB)'),ylabel('ccdf')
   legend('原始曲线','次优化搜索','全搜索','相位因子估计算法');
   grid on

⌨️ 快捷键说明

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