# High-level OFDM question

**URL:** <https://www.ruby-forum.com/t/high-level-ofdm-question/183381>\
**Category:** GNU Radio\
**Created:** [February 12, 2010, 7:41pm UTC](https://www.ruby-forum.com/t/high-level-ofdm-question/183381 "2010-02-12T19:41:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Achilleas\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/74df32/32.png) [@Achilleas\_A](https://www.ruby-forum.com/u/Achilleas_A)\
**Post date:** [February 12, 2010, 7:41pm UTC](https://www.ruby-forum.com/t/high-level-ofdm-question/183381/1 "2010-02-12T19:41:35Z")

</div>

Hi there,

before delving into the details of the OFDM implementation in GNURAdio I  
wanted to ask a high-level question:

What is the method used for initial timing/frequency acquisition?  
Is there one or two training OFDM symbols that precede the transmission  
of data? and how many OFDM data symbols are following? Is this number  
determined by the first training symbols or is it fixed?

Also, my understanding is that each data OFDM symbol has pilot tones for  
continuous frequency/timing tracking, right?

Thanks  
Achilleas

---

<div class="post-metadata">

**Author:** ![Achilleas\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/74df32/32.png) [@Achilleas\_A](https://www.ruby-forum.com/u/Achilleas_A)\
**Post date:** [February 12, 2010, 8:33pm UTC](https://www.ruby-forum.com/t/high-level-ofdm-question/183381/2 "2010-02-12T20:33:05Z")

</div>

On Fri, Feb 12, 2010 at 10:34 AM, Achilleas A.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi there,
> 
> before delving into the details of the OFDM implementation in GNURAdio I  
> wanted to ask a high-level question:
> 
> What is the method used for initial timing/frequency acquisition?

We use, by default, the standard Schmidl and Cox. There are two other  
methods that we wrote which you can use to varying degrees of success.  
My presentation from the Wireless@VT symposium, 2007, has details of  
all of these methods and why we use the one we do.

> Is there one or two training OFDM symbols that precede the transmission of  
> data? and how many OFDM data symbols are following? Is this number  
> determined by the first training symbols or is it fixed?

We use a method that only requires 1 training symbol. The much of the  
code is actually set up to allow you to put in however many you want,  
but you’ll need to redesign some of the the receiver blocks to make  
use of them.

The number of symbols following depends on the frame length you  
specify. In the benchmark\_ofdm\* examples, we default to 400 bytes with  
200 occupied tones per symbol, so for BPSK this is (400\*8/200) = 16  
symbols. So there are 16 symbols between preambles.

> Also, my understanding is that each data OFDM symbol has pilot tones for  
> continuous frequency/timing tracking, right?
> 
> Thanks  
> Achilleas

While I wrote the transmitter to allow for pilot tones, we don’t  
actually make use of them in the receiver. Instead, we use a decision  
feedback equalizer to keep on track. Making use of the pilot tones in  
the receiver is definitely something we need done, though.

Tom

---

<div class="post-metadata">

**Author:** ![Achilleas\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/74df32/32.png) [@Achilleas\_A](https://www.ruby-forum.com/u/Achilleas_A)\
**Post date:** [February 12, 2010, 9:00pm UTC](https://www.ruby-forum.com/t/high-level-ofdm-question/183381/3 "2010-02-12T21:00:36Z")

</div>

Tom, thanks for the info.

So to clarify, the frame length is fixed for the transmission to a  
certain number (say 400 bytes) so the system waits until it collects 400  
bytes worth of data and then it generates and transmits it using a burst  
of 1 training and 16 data OFDM symbols.  
If the number of data in the queue at a give time is say 500 bytes it  
will first process the first 400 and then wait until an additional 300  
bytes (or more) comes in to generate the next burst.  
Is that right?

Achilleas
