1 Star2 Stars3 Stars4 Stars5 Stars (4 votes, average: 4.75 out of 5)
Print Print

Trying out PAPR reduction for OFDM by multiplication with j

by Krishna Sankar on July 2, 2008

In this post, we will explore a probable way of reducing PAPR (peak to average power ratio) in OFDM by changing the phase of some of the subcarriers. This is in response to the comment to post on Peak to Average power ratio for OFDM, where Mr. Elibom suggested to reduce the PAPR by cyclically rotate some of the subcarriers and using.

Further, the presentation in the IEEE TGN, PAPR in HT-LTF (11-06/1595r1), mentions that in 40MHz mode where a 128pt FFT is used, PAPR of HT-LTF (High Throughput Long Training Field) can be reduced by multiplying the upper 20MHz subcarriers by j. Using quick Matlab simulations, we will try to validate that claim for HT-LTF and further check the PAPR for a general random BPSK and QPSK modulation.


The HT-LTF sequence for the TG-N draft specification is described in page 35 of the Joint Proposal PHY specification document (11-05/1102r4). Note: The specification has evolved considerably over the past 2.5 years (and is not yet publically available), but for discussion on HT-LTF this document should suffice.

The peak to average power ratio for a signal is defined as
, where
corresponds to the conjugate operator.

Expressing in deciBels,

Matlab/Octave script for computing PAPR in HT-LTF
close all; clear all;
nFFT = 128; nDSC = 114;
% The 128pt HT-LTF sequence for 40MHz as defined in 11-06/1595r4
htLTF = [ zeros(1,6) 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 ...
1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 1 1 1 -1 -1 -1 1 0 ...
0 0 -1 1 1 -1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 ...
1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 1 1 1 zeros(1,5)];

x1F = htLTF; % no rotation
x2F = [htLTF(1:64) j*htLTF(65:128)]; % with 90degree rotation

% Taking iFFT, time domain
x1t = (nFFT/sqrt(nDSC))*ifft(fftshift(x1F.')).'; % no rotation
x2t = (nFFT/sqrt(nDSC))*ifft(fftshift(x2F.')).'; % with rotation

% computing the peak to average power ratio for symbol without rotation
meanSquareValue1 = sum(x1t.*conj(x1t),2)/nFFT;
peakValue1 = max(x1t.*conj(x1t),[],2);
paprSymbol1 = peakValue1./meanSquareValue1;
paprSymbol1dB = 10*log10(paprSymbol1)
% computing the peak to average power ratio for symbol with 90 degree rotation
meanSquareValue2 = sum(x2t.*conj(x2t),2)/nFFT;
peakValue2 = max(x2t.*conj(x2t),[],2);
paprSymbol2 = peakValue2./meanSquareValue2;
paprSymbol2dB = 10*log10(paprSymbol2)

As claimed in slide7 of power point presentation PAPR In HT-LTF (11-06/1595r1), the PAPR with

(a) No rotation is 5.6317dB and

(b) With 90 degree rotation is 3.4066dB.

So, around 2.2dB reduction in PAPR is achieved. :)

PAPR for random BPSK and QPSK

Armed with the above result, I tried to simulate the PAPR for with random BPSK (and QPSK) modulation on a 128pt FFT with and without rotating the upper 20MHz subcarriers by j.

Click here to download the Matlab/Octave script for simulating PAPR for BPSK/QPSK modulation OFDM with j rotation

The results from the simulations is shown below.

OFDM PAPR for BPSK/QPSK with j rotation

Figure: OFDM PAPR for BPSK/QPSK with j rotation


1. For random BPSK sequence, the multiplication by j resulted in increase of PAPR by around 0.5dB.

2. For random QPSK sequence, the PAPR with and without multiplication by j is almost the same.

Based on the above simulation results, may I conclude that there is no noticable reduction in PAPR by multiplying upper 20MHz subcarriers by j. There might be some special cases (like HT-LTF sequence), where the multiplication by j reduces PAPR. However for random BPSK/QPSK sequence, there is no improvement. :(

D id you like this article? Make sure that you do not miss a new article by subscribing to RSS feed OR subscribing to e-mail newsletter. Note: Subscribing via e-mail entitles you to download the free e-Book on BER of BPSK/QPSK/16QAM/16PSK in AWGN.

{ 49 comments… read them below or add one }

Nitish Jain December 18, 2014 at 2:25 pm

I am doing a project titled “PAPR Reduction in OFDM, through Reordering of Clusters”
Can you please send me the MATLAB code for the same or else for the Partial Transmit Sequence Method.
Thank you


sitaramireddy October 13, 2014 at 6:27 pm

i need matlab code for papr reduction in ofdm using companding techniqe


saru April 5, 2012 at 8:30 pm

hi could u please help me to design a high power amplifier in ofdm. i need it


Krishna Sankar April 10, 2012 at 4:36 am

@saru: emailed you the instructions


Radhika January 18, 2012 at 10:09 pm

Can u plz help me on the topic of PAPR Reduction by using companding and interleaving..?Can u provide me with the MATLAB Code..????


Krishna Sankar January 23, 2012 at 5:29 am

@Radhika: Sorry, I have not studied that topic.


Meryem February 24, 2010 at 4:41 pm

Hi (Krishna),
First, Thanks for the particularly interesting information about the PAPR for BPSK/QPSK modulation OFDM with j rotation. I am working on PAPR reduction methods for OFDM. Lately I found a method where they use Selected Mapping to reduce PAPR. Did you ever worked with this method and could you give me some instructions how I can implement this in matlab?
Thank you very much.
Kind regards,


Krishna Sankar March 31, 2010 at 5:12 am

@Meryem: Sorry, I have not worked on selective mapping algorithm to reduce PAPR.


abdul September 7, 2012 at 2:01 pm

dear Meryem..(Who ever is interested in SLM) (though its too late but may be some one need it)
Implementation of SLM in matlab is very simple. Just use the code provided, and
1) in place of rotating half of the carriers, rotate all of them with a phasor vector
2) You need to have many phasor vectors (I mean 2- any desired number).
3) After rotation take the IFFT with all the phasor vectors used, and choose the one with the lowest PAR!!!
Its the main idea of SLM.. Moreover, for simplicity u can use phasors which are multiple of pi/2 … or u can use random phasors as well!!


Orson February 1, 2010 at 2:17 am

i have some problems in caculating the PAPR of 16-QAM
for example



Krishna Sankar April 4, 2010 at 4:33 am

@Orson: You are right, except that you do not need min in the last step
Also, plz refer to the post @


vinothkumar January 5, 2010 at 9:25 pm

sir, In matlab script of computing papr in HT-LTF,
what is the meaning and need of using [],2. please explain the concept


velan December 19, 2009 at 8:29 am

Hai all. I would like to know the fixing/deciding the threshold for PAPR value while finding CCDF for various methods.


Krishna Sankar December 23, 2009 at 5:37 am

@velan: Well, why do you want to have a threshold while plotting the CCDF value?


Ahmed December 17, 2009 at 9:13 am

The detrimental effect of high PAPR, as we know, is due to the non-linear nature of Power amplifiers. In this respect, can you help to incorporate amplifier back-off in to HPA simulation. Just for your reference the following link http://www.mathworks.com/matlabcentral/fileexchange/15331-ofdm-high-power-amplifier-effects
simulates a non-liner amplifer. I will be obliged if you can share your thoughts abou how to incorcorporate output backoff in this code.
Thanks a lot


Krishna Sankar December 23, 2009 at 5:28 am

@Ahmed: Well, to prevent the power amplifier to operate in the nonlinear region, we can reduce the signal power (with the penalty of efficiency) such that the peak of the signal does not cause the PA to move into the non-linear region of operation.


SREENU November 18, 2009 at 10:59 am

how i can calculate the throughput of WLAN OFDM system


Krishna Sankar December 6, 2009 at 3:49 pm

@SREENU: I would recommend you to go over the paper
Throughput and Delay Limits of IEEE 802.11, Yang Xiao, Jon Rosdahl, IEEE COMMUNICATIONS LETTERS, VOL. 6, NO. 8, AUGUST 2002
Its available online and you should be able to find it by quick googling. Good luck.


Ricardo November 13, 2009 at 11:36 pm

How can I calculate PSD in Octave? Because it doesn’t cognize pwelch.


Krishna Sankar December 3, 2009 at 5:28 am

@Ricardo: You can download pwelch() from Octave Source Forge


Ahmed sabbir November 2, 2009 at 2:45 pm

Hi Krishna!
Thanks a lot for your helpful post. I have a query regarding the effect of oversampling on the calculated PAPR. Literature survey shows that a oversampling factor of L=4 is needed to have a true estimation of PAPR. However, I am not finding any such influence. In more details, if I insert N*(L-1)[N is the iFFT size] 0′s in the middle of vector containing the modulated symbol vector (htLTF here) (i.e., oversampling with factor of L)and feed it into IFFT, I find no change in PAPR compared to when no oversampling is done. What I find is that the mean and peak changes but the ratio remains constant. Am I missing something?
Hoping for your response.


Krishna Sankar November 8, 2009 at 8:37 am

@Ahmed sabbir: Sorry, I am also not very well aware for the need for doing oversampling to form a better estimate of PAPR.


Ahmed December 10, 2009 at 11:07 am

Just for an update..I did find difference in the estimation.there was a bug in my previous code I guess.
One request. Can you help to incorporate amplifier back-off in to HPA simulation. Just for your reference the following link http://www.mathworks.com/matlabcentral/fileexchange/15331-ofdm-high-power-amplifier-effects
simulates a non-liner amplifer. Iwill be obliged if you can share your thoughts abou how to incorcorporate output backoff in this code.
Thanks a lot


srnu October 27, 2009 at 10:01 pm

thank you ver much sir


srinu October 26, 2009 at 9:20 am

sorry , i got that thank you very much


srinivas October 18, 2009 at 10:29 pm

sorry, i had one more doubt (is about power spectral density:PSD)
how to calculate PSD And where we will calculate PSD (i.e at Tr. or at Rr.) in MIMO-OFDM.
will you send syntax for PSD (x-axis: freq./bandwidth, y-axis:PSD(dBr) )
thank you very much…………………


Krishna Sankar October 27, 2009 at 5:11 am

@srinivas: We can calcluate PSD at transmit or receive for each antenna in a MIMO link. You can use pwelch for plotting a PSD. For eg, in the post on http://www.dsplog.com/2008/02/03/understanding-an-ofdm-transmission/, I have used it as
[Pxx,W] = pwelch(st,[],[],4096,20);
st – is the time domain wave form
4096 – is the number of points in frequency domain
20 – is the sampling clock


Michael February 9, 2012 at 2:06 pm

Hi ,dear Krishna, the same question.

our sampling rate is 20 000 000 ,but ,you put in that function you just use 20?why?it really confuse me .



Krishna Sankar February 10, 2012 at 6:03 am

@Michael: Shouldn’t matter, as sampling frequency is notional in matlab


srinu October 15, 2009 at 12:00 am

dear sir,
i have one doubt in the above fig: CDF plots of PAPR 128pt(bksk,qpsk),
here PAPR=6.25 ( bpsk ) and PAPR=6.5 (bpsk-j) for CDF=0.4 &
PAPR=5.6 ( bpsk ) and PAPR=6.1 (bpsk-j) for CDF=0.2 etc.. so how we can say PAPR is less in bpsk with j rotation.
please will you give detailed explanation about that and how we can compare PAPR performance with CDF.
thanking you .


Krishna Sankar October 15, 2009 at 5:34 am

@srinu: If you read my observation (stated just below the figure), you can see that
“Based on the above simulation results, may I conclude that there is no noticable reduction in PAPR by multiplying upper 20MHz subcarriers by j. There might be some special cases (like HT-LTF sequence), where the multiplication by j reduces PAPR. However for random BPSK/QPSK sequence, there is no improvement”


srinivas August 16, 2009 at 9:04 pm

i have to do academic project “peakā€“to-average power ratio reduction in OFDM modulation” in Matlab(DSP). Please can you give me the Matlab Code for this project. Please do it.


Krishna Sankar August 18, 2009 at 3:49 am

@srinivas: Good luck for your academic project.


deepika July 28, 2009 at 11:26 am

can u plz tell me wat is the relation between HTLTF and an ofdm signal?


Krishna Pillai July 29, 2009 at 5:34 am

@deepika: HT-LTF stands for High Throughput Long Training Field. Its the name for a preamble symbol used in 802.11n PHY specifications.


jake July 21, 2009 at 12:07 am

noteable reduction in PAPR has been observed in OFDM systems implementing PTS and Selective mapping. Have you tried simulating SLM in matlab?


Krishna Pillai July 24, 2009 at 3:55 am

@jake: Sorry, I have not tried modeling selected mapping for PAPR reduction in OFDM systems


ali jaleel taher July 8, 2009 at 3:21 pm

good morning sir id like to give me m file about partial transmit sequence(pts) used to reduce papr in ofdm system and calculation of ber in pts


Krishna Pillai July 15, 2009 at 4:48 am

@ali jaleel taher: Sorry, I have not tried modeling partial transmit sequence for reducing PAPR.


ali jaleel taher /iraq June 16, 2009 at 3:33 pm

matlab partial transmit sequance (pts)used to reduce papr in of and clippinng method to reduce papr and calculating ber in pts and clliping


Krishna Pillai June 20, 2009 at 10:52 am

@ali jaleel taher: Sorry, I did not follow your question


Claire February 16, 2009 at 7:31 am

Sorry, another question, if you add the cyclic prefix (for OFDM), do you calculate the meansquare and peak value after the CP is inserted or before the CP is inserted? Thanks again


Krishna Pillai February 20, 2009 at 6:02 am

Cyclic prefix does not affec the peak value as the cyclic prefix is just a copy of the exisiting symbol. So if a peak valure is present in the cyclic prefix, the same peak value is present in the symbol itself.

For the mean square value also, the cyclic prefix does not make a difference. If we use cyclic prefix for mean square value computation, we need to have a higher value for scaling when computing the mean.

Hope this helps.


Claire March 11, 2009 at 6:37 pm

Thanks for your help! Your site (and your answers) has been very helpful to understand OFDM and other wireless parameters.


Krishna Pillai March 21, 2009 at 7:11 am

@Claire: Glad to help. :)


Claire February 16, 2009 at 7:13 am


I am wondering why do you do fftshift when taking time domain (in the ifft function)? and also why in the sum and max function, you use the dimension 2? Can I for example replace it with 1? It is for the row isn’t it? Thanks (sorry for the basic question)


Krishna Pillai February 20, 2009 at 6:00 am

@Claire: My replies:

1. fftshift is used for visualizing the fft output. fft out gives a vector with dimesion [0 to 63], however, the values from the indices [32 to 63] correspond to spectrum @ [-32 to -1]. I have written posts on
(a) http://www.dsplog.com/2007/06/17/interpreting-the-output-of-fft-operation-in-matlab/
(b) http://www.dsplog.com/2008/08/08/negative-frequency/
Hope the above posts help you understand fftshift().

2. This parameter controls the which dimension of the matrix should be used for finding sum, max. Please refer to the help in matlab.


abuy January 22, 2009 at 2:25 pm

agh matlab nya ga bs di donlot..
gad isiny..
terlalu sedikit isiny..


shobi July 9, 2008 at 11:27 am

the information submitted is very useful for the projects based on papr in ofdm


Leave a Comment

Previous post:

Next post: