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