Channel estimation/equalization in OFDM

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 [email protected]_h_karmoose@a [email protected]
lexu.edu.eg

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).

  1. 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.

  1. 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 B.
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