# Schmidl and Cox method in OFDM blocks

**URL:** <https://www.ruby-forum.com/t/schmidl-and-cox-method-in-ofdm-blocks/246089>\
**Category:** GNU Radio\
**Created:** [August 25, 2013, 7:47pm UTC](https://www.ruby-forum.com/t/schmidl-and-cox-method-in-ofdm-blocks/246089 "2013-08-25T19:47:10Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rafa\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/958977/32.png) [@Rafa\_F](https://www.ruby-forum.com/u/Rafa_F)\
**Post date:** [August 25, 2013, 7:47pm UTC](https://www.ruby-forum.com/t/schmidl-and-cox-method-in-ofdm-blocks/246089/1 "2013-08-25T19:47:10Z")

</div>

Hi,

I have been trying to understand OFDM blocks, especially equalization  
and  
estimation part of the code. In the file ofdm\_chanest\_vcvc\_impl.cc,  
schmidl  
and cox method is used.  
I am unable to understand use of this method for channel estimation and  
equalization. Also there are some ToDo left out in the code, some light  
on  
that would also be useful.

Thanks a lot.

Shashank

---

<div class="post-metadata">

**Author:** ![shashank\_g](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/4af34b/32.png) [@shashank\_g](https://www.ruby-forum.com/u/shashank_g)\
**Post date:** [August 26, 2013, 9:27am UTC](https://www.ruby-forum.com/t/schmidl-and-cox-method-in-ofdm-blocks/246089/2 "2013-08-26T09:27:14Z")

</div>

On Sun, Aug 25, 2013 at 07:45:56PM +0200, Shashank G. wrote:

> I have been trying to understand OFDM blocks, especially equalization and  
> estimation part of the code. In the file ofdm\_chanest\_vcvc\_impl.cc, schmidl and  
> cox method is used.
> 
> I am unable to understand use of this method for channel estimation and  
> equalization. Also there are some ToDo left out in the code, some light on that  
> would also be useful.

Hi Shashank,

have you read the paper on Schmidl & Cox? It’s referenced in the code.

Also, make sure you’ve read these:  
[http://gnuradio.org/doc/doxygen/page\_packet\_data.html](http://gnuradio.org/doc/doxygen/page_packet_data.html)  
[http://gnuradio.org/doc/doxygen/page\_ofdm.html](http://gnuradio.org/doc/doxygen/page_ofdm.html)

Once you’ve understood the theory, here’s the practical side:

The algorithm is split up into two parts, the fine frequency + timing  
estimation (== packet detection) and the coarse frequency + channel  
coefficients estimation.

The first is done in ofdm\_sync\_sc\_cfb. The two outputs are the frequency  
offset and a trigger signal to mark the beginning of the packet. We use  
the first to immediately correct the fine frequency offset.

After packetization, there are two separate signal processing paths for  
header and payload. When the header is modulated, the coarse freq.  
offset is not yet known, so that needs to be estimated along with the  
channel coefficient.  
There is only one TODO left in these blocks: There is a method to  
improve the estimation quality of the channel coefficients by applying  
knowledge of the maximum channel delay, which is not yet implemented,  
but this way, it can be added without any API changes.

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

---

<div class="post-metadata">

**Author:** ![Mousi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c4cdca/32.png) [@Mousi](https://www.ruby-forum.com/u/Mousi)\
**Post date:** [August 14, 2020, 12:37pm UTC](https://www.ruby-forum.com/t/schmidl-and-cox-method-in-ofdm-blocks/246089/3 "2020-08-14T12:37:07Z")

</div>

Hallo,  
I have a question related to the Ofdm Rx example in gnuradio. How can we measure the Eb/No of the AWGN channel in this example. If we assume that the transmission is in baseband. The signal contains the two preambles ,header,and payload.  
If we change the voltage of the channel which SNR we obtain.  
Thank you!
