Channel estimation equalization for OFDM in MATLAB

This page of MATLAB source code covers channel estimation and channel equalization for OFDM based system.

Transmitted packet after passing through the wireless channel or environment will get impaired or corrupted due various impairments over the path. This leads to poor bit error rate of the wireless system. Hence there is a need to correct this channel impairment using some technique. To achive this usually in wireless systems preamble is appended with the information packet to be transmitted. In figure below PS1 and PS2 are two preamble symbols and D1 to Dn are the symbols of the data packet to be transmitted.

There are two steps for performing channel correction or channel equalization. First preamble based channel estimation and equalization is done and later pilot subcarriers embedded in the data symbols are used to perform phase rotation of all the data symbols. Figure depcits 4 pilot carriers embedded in the data symbol-1 i.e. D1. The same is embedded in all the data symbols.

channel estimation equalization

STEP1: Channel estimation is done in the time domain. First all the samples of received preamble is divided using reference preamble symbol 1(PS1). This gives channel response in time domain for the preamble symbol-1.
STEP2: Deconvolve entire packet with this channel response determined in STEP-1.
STEP3: Take FFT of the entire packet. Now determine phase rotation using the pilots embedded in the data symbols D1 to Dn. Take average of phase rotation values of all four pilots.
STEP4: Rotate the values of data symbol-1 using the average phase rotation.
STEP5: Similarly determine phase rotation using pilot carriers embedded in each of the data symbols one by one and derotate accordingly.

estimated_pilots=angle(received_D1_symbol_pilots([P1 P2 P3 P4])./(Reference_pilots));

%%Rotating symbol accordingly
Data_symbols_rotated = Data_symbols_after_equalization*exp(-i*mean(estimated_pilots));

Above mentioned procedure of channel estimation is also referred as least square method.


Following are matlab codes for channel models viz. SUI channel model, ITU-T channel model as per wimax 802.16e standard, JTC channel model as per 802.11b/11g, UWB channel model as per 802.15.3 and 802.15.4 standard specifications. 802.11a WLAN channel model matlab files
802.11b 11g JTC WLAN channel model matlab files
802.15.3 UWB channel model matlab files
802.15.4 UWB channel model matlab files
802.16d SUI WiMAX channel model matlab files
802.16e ITU-T channel model matlab files
Rayleigh channel model matlab files
Rician channel model matlab files

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 

RF and Wireless tutorials

WLAN  802.11ac  802.11ad  wimax  Zigbee  z-wave  GSM  LTE  UMTS  Bluetooth  UWB  IoT  satellite  Antenna  RADAR