Hi Kunal,
I am planning to spend some more time on OFDM. Then, may be we can put all
the stuff in a README file, after Tom or somebody checks that for us :).

Usman

On Fri, Jun 3, 2011 at 9:23 PM, Kunal Kandekar <kunalkande...@gmail.com>wrote:

> I think this email exchange contains good documentation for (part of) the
> OFDM example. Maybe we could put it in a README file, and upload it to the
> OFDM directory? Or insert these as comments at the respective lines of code?
>
> Kunal
>
>
> On Thu, Jun 2, 2011 at 5:01 PM, Tom Rondeau <trondeau1...@gmail.com>wrote:
>
>> On Thu, Jun 2, 2011 at 12:00 PM, Usman Haider <usmanhaide...@gmail.com>wrote:
>>
>>> Hi Tom
>>> Thanks a lot. Yes, that did help me :). One more question: what is the
>>> purpose of probe at the end of OFDM chain?
>>>
>>> alpha=0.001
>>> thresh=30 #in dB
>>> self.probe = gr.probe_avg_mag_sqrd_c(thresh,alpha)
>>> self.connect(self.ofdm_rx, self.probe)
>>>
>>> I do understand that probe computes the " running average of the
>>> magnitude squared of the the input", but I am not getting its purpose at the
>>> end of the chain.
>>>
>>> Best Regards
>>> Usman
>>
>>
>>
>> That was just used as an indicator or the received signal strength but
>> doesn't really serve much of a purpose.
>>
>> Tom
>>
>>
>>
>>>
>>> On Thu, Jun 2, 2011 at 7:03 PM, Tom Rondeau <trondeau1...@gmail.com>wrote:
>>>
>>>> On Thu, Jun 2, 2011 at 3:10 AM, Usman Haider 
>>>> <usmanhaide...@gmail.com>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
>>>>> Usman
>>>>>
>>>>
>>>>
>>>> Hope this helps,
>>>> Tom
>>>>
>>>>
>>>
>>>
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to