RF Wireless World

Home of RF and Wireless Vendors and Resources

One Stop For Your RF and Wireless Need

PAPR Reduction-PTS Algorithm

This section of MATLAB source code covers PTS Algorithm for LTE IQ packet PAPR reduction.

Why to reduce PAPR?

The PAPR stands for Peak to average power ratio of a time domain signal x(t). It is the ratio between maximum instantaneous power and its average power. It has been found that if PAPR is lower, power efficiency is higher and hence increase the battery usage for long time. In this page we will see PTS algorithm used for PAPR reduction.There are other techniques also,pls. refer PAPR article.

PTS Algorithm STEP 1:
In PTS, data symbols in X are partitioned in to M disjoint sub blocks X(i), where 1 <= i <= M, such that
X = SUM( X(i)) ; 1 <= i <= M

STEP 2:
The sub blocks X(i) are transformed in to M time-domain partial transmit sequences. x(i) = IFFT (X(i)) ; 1 <= i <= M

Step 3:
These sequences are independently rotated by some phase factors, bi equal to exp(j*φi) ; 1 <= i <= M.

Step 4:
These are then combined to produce the time domain OFDM signal packet back,
x = SUM(bi * x(i) ; 1 <= i <= M

PTS algorithm selects a vector bi such that the PAPR of the corresponding transmit sequence x(t) will be the lowest. IQ vector of different wireless standards will have different PAPR time domain pattern based on complex modulation schemes used and OFDM/OFDMA structure. Hence during simulation vivid iterations need to be carried out.

Download following IQ vector and load or import into the matlab workspace and run the following matlab code to check the results.

PAPR matlab code

Load any baseband IQ vector and apply following algorithm. Plot the CCDF curve for the input IQ packet as well as output(after PTS algorithm is applied) IQ packet. Following IQ vector is for the LTE vector signal with 1.4MHz bandwidth and FFT size of 128.

%%% removing CP
A=tx_data_frame(1,:)
B1=A(:,11:1:138)'
B2=A(:,148:1:275)'
B3=A(:,285:1:412)'
B4=A(:,422:1:549)'
B5=A(:,559:1:686)'
B6=A(:,696:1:823)'
B7=A(:,833:1:960)'
B8=A(:,971:1:1098)'
B9=A(:,1108:1:1235)'
B10=A(:,1245:1:1372)'
B11=A(:,1382:1:1509)'
B12=A(:,1519:1:1646)'
B13=A(:,1656:1:1783)'
B14=A(:,1793:1:1920)'
CZ= [B1' B2' B3' B4' B5' B6' B7' B8' B9' B10' B11' B12' B13' B14']
%%%%%implementing pts algorithm
B11=exp(i*(2*pi/1))*B1
B21=exp(i*(2*pi/2))*B2
B31=exp(i*(2*pi/3))*B3
B41=exp(i*(2*pi/4))*B4
B51=exp(i*(2*pi/5))*B5
B61=exp(i*(2*pi/6))*B6
B71=exp(i*(2*pi/7))*B7
B81=exp(i*(2*pi/8))*B8
B91=exp(i*(2*pi/9))*B9
B101=exp(i*(2*pi/10))*B10
B111=exp(i*(2*pi/11))*B11
B121=exp(i*(2*pi/12))*B12
B131=exp(i*(2*pi/13))*B13
B141=exp(i*(2*pi/14))*B14

B1Z= [B11' B21' B31' B41' B51' B61' B71' B81' B91' B101' B111' B121' B131' B141']

%%% creating input vector to provide as input for PTS algorithm
%%%This is impaired packet
ts=(256/4e6);
doppler=0.1;
tau=[0.0 0.4 0.9];
pdb=[0 -15 -20];
chan = rayleighchan(ts,doppler,tau,pdb);

%TS is the sample time of the input %0.1e-3;
%signal, in seconds. FD is the maximum Doppler shift, in Hertz. %100 Hz

map_out_chl=filter(chan,CZ(1,1:end));

figure(1);
[N,Z3] = hist(abs(B1Z), 1792);
semilogy(Z3,1-cumsum(N)/max(cumsum(N)),'blue')
hold on
title ('CCDF')
xlabel ('dB')
ylabel ('BER')
grid off;

figure(1);
[N,Z3] = hist(abs(map_out_chl), 1792);
semilogy(Z3,1-cumsum(N)/max(cumsum(N)),'red')

Plot with and without PAPR Useful Links to MATLAB codes

Refer following as well as links mentioned on left side panel for useful MATLAB codes.
OFDM Preamble generation  Time off estimation corr  Freq off estimation corr  channel estimation  11a WLAN channel  PN sequence generation  OFDMA Tx Rx  AES DES  carrier aggregation  CCDF  FIR Filter  IIR Filter  Low Pass FIR  Viterbi decoder  CRC8 CRC32