• 大小: 6KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: Matlab
  • 标签: OFDM  PAPR  

资源简介

OFDM的编码类技术降低系统峰均比。PTS作为其中一种,占有重要作用。此程序仿真了降低PAPR的性能

资源截图

代码片段和文件信息

clear all; clc; close all;

K = 128;                                                                    % SIZE OF FFT 
V = 4;                                                                       % NUMBER OF SELECTIONS
QPSK_Set  = [1 -1 j -j];
Phase_Set = [1 -1];

Choose = [1 1 1 1; 1 1 1 2; 1 1 2 1; 1 2 1 1; 2 1 1 1;...
          1 1 2 2; 1 2 1 2; 1 2 2 1; 2 2 1 1; 2 1 2 1; 2 1 1 2;...      
          2 2 2 1; 2 2 1 2; 2 1 2 2; 1 2 2 2; 2 2 2 2];
Choose_Len = 16;      

MAX_SYMBOLS  = 1e5;
PAPR_Orignal = zeros(1MAX_SYMBOLS);

%  original
for nSymbol=1:MAX_SYMBOLS
    Index = randint(1Klength(QPSK_Set))+1;%1*128
    X= QPSK_Set(Index(1:));                                               % Orignal Frequency domain signal
    x = ifft(X[]2);         %1*128                                              % Time domain signal
    Signal_Power0 = abs(x.^2);
    Peak_Power0   = max(Signal_Power0[]2);
    Mean_Power0   = mean(Signal_Power02);
    PAPR_Orignal(nSymbol) = 10*log10(Peak_Power0./Mean_Power0);
     
end

 

%随机交织+遍历搜索

PAPR_PTS1 = zeros(1MAX_SYMBOLS);

for nSymbol=1:MAX_SYMBOLS
    Index1 = randint(1Klength(QPSK_Set))+1;
    X1 = QPSK_Set(Index1(1:));                                               % Orignal Frequency domain signal
    l1=length(X1);
    z1=zeros(Vl1);
    pilot1=randperm(l1/2);
    for k1=1:V/2 
        z1(k1pilot1(k1:V/2:l1/2))=X1(pilot1(k1:V/2:l1/2));%随机
    end
    for k1=(V/2)+1:V
        z1(k1k1-2+l1/2:V/2:l1)=X1(k1-2+l1/2:V/2:l1);%交织
    end
    a1= ifft(z1[]2);
    min_value1 = 10;
    for n1=1:Choose_Len
        temp_phase1 = Phase_Set(Choose(n1:)).‘;
        temp_max1 = max((abs(sum(a1.*repmat(temp_phase11K)))).^2);
        if temp_max1            min_value1= temp_max1;
            Best_n1 = n1;
        end
    end
    aa1 = sum(a1.*repmat(Phase_Set(Choose(Best_n1:)).‘1K));
        
    Signal_Power1 = abs(aa1.^2);
    Peak_Power1  = max(Signal_Power1[]2);
    Mean_Power1   = mean(Signal_Power12);
    PAPR_PTS1(nSymbol) = 10*log10(Peak_Power1./Mean_Power1);
    
end



%随机分割+遍历搜索

PAPR_PTS4 = zeros(1MAX_SYMBOLS);
for nSymbol=1:MAX_SYMBOLS
    Index4 = randint(1Klength(QPSK_Set))+1;
    X4 = QPSK_Set(Index1(1:));                                               % Orignal Frequency domain signal
    l4=length(X4);
    A4= zeros(VK);
    pilot4=randperm(l4);
    for k=1:V 
      A4(kpilot4(k:V:l4))=X4(pilot4(k:V:l4));%随机
    end
    a4= ifft(A4[]2);
    min_value4 = 10;
    for n4=1:Choose_Len
        temp_phase4= Phase_Set(Choose(n4:)).‘;
        temp_max4= max(abs(sum(a4.*repmat(temp_phase41K))));
         if temp_max4            min_value4= temp_max4;
            Best_n4 = n4;
        end
    end
    aa4= sum(a4.*repmat(Phase_Set(Choose(Best_n4:)).‘1K));
    Signal_Power4= abs(aa4.^2);
    Peak_Power4= max(Signal_Power4[]2);
    Mean_Power4 = mean(Signal_Power42);
   

评论

共有 条评论