Dear All, I've been trying to investigate how channel estimation works in OFDM based on the implementation provided in Gnuradio for OFDM transmission. I found that it was done in the block digital_ofdm_frame_acquisition.cc/h. As I understand, the digital_ofdm_frame_acquisition::calculate_equalizer does the job: based on known transmitted symbols (stored in d_known_symbol) and received symbols (stored in symbol), the inverse of the channel coefficient can be obtained according an equation similar to the following: channel_coefficient = symbol/d_known_symbol However, there are two differences in the implementation in relation to this equation: 1) the block computes the inverse of the channel coefficient (d_known_symbol/symbol), and 2) there is a frequency compensation term (coasre_freq_comp) which basically rotates the complex samples by phase corresponding to the frequency deviation and obtained via the preceding sync block. One final note is that channel coefficient is obtained in every other tab, and the coefficient in the inter-taps are obtained via linear interpolation of the acquired channels. Now, my questions are as follows: 1) Does this explanation seems correct? 2) By modifying the VERBOSE variable to be equal to 1 in digital_ofdm_frame_acquisition.cc, the block also plots the estimated channel coefficients in the following order: transmitted symbol --> known symbol --> estimated channel inverse --> output). I noticed that when using a file source/sink to store/receive packets from OFDM benchmark transmitter and receiver, the channel coefficients are still not equal to 1, despite the fact that no receive noise nor wireless fading occurs. What do these coefficients represent? 3) Are the obtained coefficients eligible to be used in further precoding of transmitted packets, assuming that the channel between Tx/Rx is reciprocal, and that a receiver can switch roles with the transmitter? Thank you -- *---------------------------------------------------* *Mohammed Hassan Karmoose* *Teaching Assistant, Electrical Engineering Dept.* *Faculty of Engineering, Alexandria University* *Al-Horeya Rd, El-Hadara,* *Alexandria, Egypt - 21544* *Tel: **(++203)592-1852* | *Fax: **(++203)592-1853* *Email: m <firesitter@hotmail.com>_h_karmoose@a <h.karmoose@gmail.com> lexu.edu.eg*

on 2013-08-21 11:34

on 2013-08-21 12:00

Mohammed, you should also check the new OFDM implementation (see examples/ofdm/rx_ofdm.grc and python/digital/ofdm_txrx.py). Much more modular. On Wed, Aug 21, 2013 at 11:33:26AM +0200, Mohammed Karmoose wrote: > Now, my questions are as follows: > > > 1) Does this explanation seems correct? Hm... coarse freq compensation deals with freq. offsets larger than one sub-carrier spacing. Interpolation is done in frequency direction (the Schmidl & Cox sync algo requires double sub-carrier spacing on the sync symbol). > 2) By modifying the VERBOSE variable to be equal to 1 in > digital_ofdm_frame_acquisition.cc, the block also plots the estimated channel > coefficients in the following order: transmitted symbol --> known symbol --> > estimated channel inverse --> output). I noticed that when using a file source/ > sink to store/receive packets from OFDM benchmark transmitter and receiver, the > channel coefficients are still not equal to 1, despite the fact that no receive > noise nor wireless fading occurs. What do these coefficients represent? Most likely phase rotation due to cyclic prefix and timing errors. Have you checked the magnitude? It's probably 1. > 3) Are the obtained coefficients eligible to be used in further precoding of > transmitted packets, assuming that the channel between Tx/Rx is reciprocal, and > that a receiver can switch roles with the transmitter? That's more of a signal processing question, and as such the (annoying) answer is: Depends on your application. Are you attempting some kind of waterfilling algorithm? In any case, discard the phase before you do so, and make sure you have some kind of limiter. MB -- Karlsruhe Institute of Technology (KIT) Communications Engineering Lab (CEL) Dipl.-Ing. Martin Braun Research Associate Kaiserstraße 12 Building 05.01 76131 Karlsruhe Phone: +49 721 608-43790 Fax: +49 721 608-46071 www.cel.kit.edu KIT -- University of the State of Baden-Württemberg and National Laboratory of the Helmholtz Association