[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] OFDM Help

From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] OFDM Help
Date: Thu, 2 Jun 2011 10:03:51 -0400

On Thu, Jun 2, 2011 at 3:10 AM, Usman Haider <address@hidden> wrote:
Hi all,

I am working on the OFDM in GnuRadio. After reading the code files and going through the presentation on the OFDM implementation I did understand most part of OFDM. But I still have few questions to ask:

It's been a long time since I've looked at these items, so my memory is a bit fuzzy on these things. But here goes, anyway.

1)   how symbols_per_packet is calculated ? I know the following formula 
          symbols_per_packet = math.ceil(((4+options.size+4) * 8) / options.occupied_tones)
      but why 4+4 ? why these 8 bytes are added to calculate the symbol per packet?
      If these 8 bytes are for packet header and CRC32 ??

Yes, I believe you are correct. The extra 4 and 4 comes form the header and CRC.
2)  Why 2 is added to following formula while calculating samples_per_packet ?
          samples_per_packet = (symbols_per_packet+2) * (options.fft_length+options.  cp_length). If this 2 is for preamble symbols?   

I think 1 is for the preamble and 1 is for that last packet.
3)  How many preamble symbols are inserted for one packet ? I think there is one preamble symbol for one packet ? right ?

Yes, 1 preamble that is split into 2 internal repetitions used for correlation.
4)  What is the format of OFDM packet transmitted. I got the following idea after reading the code
      packet Head(4bytes)  | payload(option.size bytes)   | CRC32(4bytes)  | something extra(1byte)  
      my question is what is the purpose of packet head ? And what is this last byte for ? I know this byte comes from the following code
         pkt_dt = ''.join((payload_with_crc, '\x55'))
         what is its purpose ?? 

I can't remember exactly. I think this had something to do with the USRP USB transport issues, and we had to pad it out with this.
5)   I know from the source code that whitening is done in order to ensure transition in data. am I right? But what is effect of variable "whitener_offset" ?it is set to 0. 

It's like a seed value so that you aren't necessarily using the same whitening coefficients all the time if you don't want to.
6)    Which thing really invokes the call to rx_callback() ?

It's used in gnuradio-core/sry/python/gnuradio/blks2impl/ofdm.py in the ofdm_demod class. This sets up a "watcher" thread called _queue_watcher_thread (line 279), which waits for a message to be appended to the message queue. The message is appended in gr_ofdm_frame_sink when a packet is received.  When the watcher thread gets the new message, it ships it off to the callback function for processing.
Thank you very much for precious time. waiting for your response

Best Regards

Hope this helps,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]