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

📄 slm2.m

📁 降低OFDM系统中PAPR的SLM算法程序
💻 M
字号:
% SLM--PAPR Simulation
%
% Reference: R. W. B?uml, R. F. H. Fisher, and J. B. Huber, 
%“Reducing the Peak-to-Average Power Ratio of Multicarrier Modulation by 
% Selected Mapping,” Elect. Lett., vol. 32, no. 22, Oct. 1996, pp. 2056–57.
%
% Author: Bin Jiang
% National Mobile Communication Research Laboratory
% Southeast University, 210096 Nanjing, China
% Email: bjiang@seu.edu.cn

clear all; clc; close all;

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

MAX_SYMBOLS  = 1e4;
PAPR_Orignal = zeros(1,MAX_SYMBOLS);
PAPR_SLM     = zeros(3,MAX_SYMBOLS);

X     = zeros(N,K);
Index = zeros(N,K);
for nSymbol=1:MAX_SYMBOLS
    Index(1,:)   = randint(1,K,length(QPSK_Set))+1;
    Index(2:N,:) = randint(N-1,K,length(Phase_Set))+1;
    
    X(1,:) = QPSK_Set(Index(1,:));                                          % Orignal Frequency domain signal
    Phase_Rot = Phase_Set(Index(2:N,:));
    X(2:N,:) = repmat(X(1,:),N-1,1).*Phase_Rot;                             % Phase roated Frequency domain signal
    
    x = ifft(X,[],2);                                                       % Time domain signal
    Signal_Power = abs(x.^2);
    Peak_Power   = max(Signal_Power,[],2);
    Mean_Power   = mean(Signal_Power,2);
    
    PAPR_temp = 10*log10(Peak_Power./Mean_Power);
    PAPR_Orignal(nSymbol) = PAPR_temp(1);
    PAPR_SLM(1,nSymbol)     = min(PAPR_temp(1:2));
    PAPR_SLM(2,nSymbol)     = min(PAPR_temp(1:4));
    PAPR_SLM(3,nSymbol)     = min(PAPR_temp(1:8));
    
end

[cdf1, PAPR1] = ecdf(PAPR_Orignal);
[cdf2, PAPR2] = ecdf(PAPR_SLM(1,:));
[cdf3, PAPR3] = ecdf(PAPR_SLM(2,:));
[cdf4, PAPR4] = ecdf(PAPR_SLM(3,:));

%--------------------------------------------------------------------------
semilogy(PAPR1,1-cdf1,'-k',PAPR2,1-cdf2,'-r',PAPR3,1-cdf3,'-b',PAPR4,1-cdf4,'-m')
legend('Orignal (N=1)','SLM (N=2)', 'SLM (N=4)', 'SLM (N=8)')
xlabel('PAPR0 [dB]');
ylabel('CCDF (Pr[PAPR>PAPR0])');
grid on

⌨️ 快捷键说明

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