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.
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.
DOWNLOAD CHANNEL MODEL MATLAB CODES
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