# Pilot symbols in ofdm

**URL:** <https://www.ruby-forum.com/t/pilot-symbols-in-ofdm/230338>\
**Category:** GNU Radio\
**Created:** [June 11, 2014, 2:45pm UTC](https://www.ruby-forum.com/t/pilot-symbols-in-ofdm/230338 "2014-06-11T14:45:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jason\_sam](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/7993a0/32.png) [@jason\_sam](https://www.ruby-forum.com/u/jason_sam)\
**Post date:** [June 11, 2014, 2:45pm UTC](https://www.ruby-forum.com/t/pilot-symbols-in-ofdm/230338/1 "2014-06-11T14:45:46Z")

</div>

Hi

Looking at the ofdm receiver at ofdm\_rx grc, I see that schmidl and cox  
synchronisation algorithm uses sync1 and sync2 which are two ofdm  
training  
symbols that help in frequency offset correction and also timing  
estimate  
to detect the start of the packet.

Then there is channel estimator block in grc that again uses preamble  
ofdm  
symbol to detect coarse frequency offset. In the entire implementation  
I  
haven’t seen the use of pilot symbols in each ofdm symbol for either  
channel estimation or synchronisation. So does that mean that if you are  
using a packet structure with a preamble there is no need of pilots for  
any  
receiver processing.

I get this doubt because benchmark\_rx.py which uses ofdm gives you a  
terminal option saying occupied tones which can be set by user at  
terminal.  
So if you can set or increase occupied tones to any number less than fft  
length, then that means you can be flexible with increasing or  
decreasing  
pilot symbols to a value that you want. Am I right?

---

<div class="post-metadata">

**Author:** ![karan\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/e47774/32.png) [@karan\_t](https://www.ruby-forum.com/u/karan_t)\
**Post date:** [June 11, 2014, 3:39pm UTC](https://www.ruby-forum.com/t/pilot-symbols-in-ofdm/230338/2 "2014-06-11T15:39:09Z")

</div>

On 11.06.2014 14:43, Karan T. wrote:

> symbol for either channel estimation or synchronisation. So does that  
> mean that if you are using a packet structure with a preamble there is  
> no need of pilots for any receiver processing.
> 
> I get this doubt because benchmark\_rx.py which uses ofdm gives you a  
> terminal option saying occupied tones which can be set by user at  
> terminal. So if you can set or increase occupied tones to any number  
> less than fft length, then that means you can be flexible with  
> increasing or decreasing pilot symbols to a value that you want. Am I right?

Yes, you can use zero pilot carriers. They are used in the  
ofdm\_frame\_equalizer\_vcvc, but our current implementations aren’t very  
good. For longer frames, I recommend using pilot symbols (distributed in  
time, not frequency!), but for short packets, the initial estimation is  
sometimes enough, if your setup is two USRPs close to each other and you  
have something like 10 OFDM symbols total.

M

---

<div class="post-metadata">

**Author:** ![karan\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/e47774/32.png) [@karan\_t](https://www.ruby-forum.com/u/karan_t)\
**Post date:** [June 11, 2014, 5:19pm UTC](https://www.ruby-forum.com/t/pilot-symbols-in-ofdm/230338/3 "2014-06-11T17:19:28Z")

</div>

Hi Martin,  
Thanks for the reply. I would like to just clarify two  
questions I have from your comment.

1. In gnuradio packet structure , what is difference between frame and  
packet? I see that packet consists of preamble,header,payload and crc  
fields. But what does a frame mean. Is it the entire data that is sent  
from the transmitter which is then broken into packets or is it  
something  
else.

2. what is the payload size in a packet. Like I think that every packet  
consists of a few ofdm symbols(maybe around 2 or 3 FFT length symbols)  
as a  
payload along with preamble, header and crc. Is the number of ofdm  
symbols  
to be sent as payload fixed or variable for a packet.

On Wed, Jun 11, 2014 at 7:07 PM, Martin B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![karan\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/e47774/32.png) [@karan\_t](https://www.ruby-forum.com/u/karan_t)\
**Post date:** [June 11, 2014, 6:11pm UTC](https://www.ruby-forum.com/t/pilot-symbols-in-ofdm/230338/4 "2014-06-11T18:11:41Z")

</div>

On 11.06.2014 17:18, Karan T. wrote:

> Hi Martin,  
> Thanks for the reply. I would like to just clarify two  
> questions I have from your comment.
> 
> 1. In gnuradio packet structure , what is difference between frame and  
> packet? I see that packet consists of preamble,header,payload and crc  
> fields. But what does a frame mean. Is it the entire data that is sent  
> from the transmitter which is then broken into packets or is it  
> something else.

I think they can be used interchangeably.

> 1. what is the payload size in a packet. Like I think that every packet  
> consists of a few ofdm symbols(maybe around 2 or 3 FFT length symbols)  
> as a payload along with preamble, header and crc. Is the number of ofdm  
> symbols to be sent as payload fixed or variable for a packet.

You set the length of the packet. The ofdm\_tx hier block takes a tagged  
stream as entry, and every streamed packet will be one OFDM packet.

M
