Home of RF and Wireless Vendors and Resources

Frequency offset estimation for OFDM in MATLAB

This page of MATLAB source code covers frequency offset estimation and correction used in a OFDM based system receiver.
The concept is employed in wireless technologies such as WLAN, WiMAX, LDACS etc.

Frequency synchronization module enables the receiver to overcome frequency offsets induced due to transmitter and receiver clock variations, drifts etc.
On this page we will see frequency offset estimation using reference data i.e. preamble.

• Extract the first symbol of preamble from the received packet. (excluding CP)
• Multiply first 128 samples with complex conjugate of next 128 samples of the first symbol preamble.
• Estimate angle of above 128 multiplications.
• Take average of the angle vector
• Divide average value by 2*pi.
• Multiply result with 4 as frequency bins are spaced at every 4th place.
• This will give frequency offset.
• Note: Frequency offset estimation using symbol2 can also be done in the similar manner
explained above. Multiply result with 2 as frequency bins are spaced at every second place in the second symbol preamble.

Frequency offset correction

For Frequency offset correction utilize the frequency offset estimated above and multiply the received symbols using
exponential function as mentioned below.
y(n)= y'(n).exp(-i2π α n/N )
where n is sample index and N is no. of samples in a
symbol, y(n) and y'(n) are the received samples without and with frequency offset and
α is the frequency offset estimated (f_off or f_off1 or f_off2) using above algorithms.