# generating pilot sub-carriers in matlab

I wanted to simulate OFDM system in MATLAB. I'm using Fixed WiMAX OFDM parameters in my simulation, where the number of data sub-carriers are 192, number of Pilot sub-carriers are 8, number Null sub-carriers are 56. Null tones can be obtained in MATLAB by generating zero matrix with the required rows and columns.

% Null subcarrier:
msg(1,1:100)=0;


similarly, for data subcarriers, digitally modulated data is sent.

% Data subcarrier:
msg(2,1:100)= 1*sign(randn(1,100)) + i*sign(randn(1,100));


my question is, what type of data could I send for Pilot tones?? all books and literature I have read says that: Pilot tones are just known data. What type of Known data are the Pilot tones? What kind of data should I send in my specific problem? Please, clarify.

• Do I fail to see the question here? You calculate their value according to the standard and set the eight subcarriers of the OFDM symbol where they need to go to those values.
– jan
Apr 6, 2014 at 10:10

## Principle

The pilot tone/subcarrier (short: pilot) modulation for WiMax is specified in section 8.3.3.4.2 of IEEE standard 802.16-2004, which is available on the IEEE site. The data bits transmitted on the pilots are defined by a pseudo-random binary sequence (PRBS) $w_k$ of which the polynomial is given by $X^{11}+X^9+1$. The index $k$ stands for the OFDM symbol number and the the pilot tones are modulated using binary phase shift keying (BPSK), i.e. the subcarrier value is either $-A$ or $A$. The detailed allocation of BPSK symbols can be taken from the following equations that I have copied from the above-cited standard

As the energy of all subcarriers shall be equal and as you're using the symbol alphabet $\{1+j, 1-j, -1+j, -1-j\}$ with symbol energy $\sqrt{1^2+1^2}=\sqrt 2$ it must hold $A=\sqrt 2$.

## Example

The sequence for pilots in the uplink is $w_k=1,\ldots$ and the modulation of subcarriers in the first OFDM symbol ($k=0$) is given by

subcarrier index  value
----------------  -----
-88               -A
-63                A
-38               -A
-13                A
13               -A
38               -A
63               -A
88               -A


## Implementation

Create the sequence $w_k$ and create the BPSK symbols according to the above principle for every $k$. Then assign these values to the pilot subcarriers of every OFDM symbol. If rigorous accordance to the standard is not required you can just make up any random sequence of BPSK symbols and allocate them to the pilot subcarriers. Note that the pilot subcarrier allocation might be different depending on the version of the standard, uplink/downlink and PUSC/FUSC.

In your case, each OFDM symbol contains 256 sub-carriers. Store the pilot values for a OFDM symbol at time instant $n$ in an $8 \times 1$ array say V. Also, you have the positions of the pilot carriers stored in a array say, P. Let the OF(:,n) represent the $256 \times 1$ OFDM symbol at time n.

Then you can assign the pilot values V to the corresponding pilot positions P in the OFDM symbol at time n as

OF(P,n)=V


in MATLAB. I hope this helps you a bit.