Thursday, February 10, 2011

GNU Radio OFDM Python

from gnuradio import blks2

The code for the module 'blks2' actually resides in a directory 'blk2impl'. It is renamed by the SWIG glue.

./gnuradio-3.3.0/gnuradio-core/src/python/gnuradio/blks2impl/ofdm.py

ofdm.py defines an ofdm_mod class which "modulates an OFDM stream." This program in particular uses the C++ blocks gr_ofdm_mapper_bcv, gr_ofdm_insert_preamble, gr_fft_vcc, gr_ofdm_cyclic_prefixer, and gr_multiply_const_cc.

OFDM modulation:

self._pkt_input = gr.ofdm_mapper_bcv(rotated_const, msgq_limit, options.occupied_tones, options.fft_length)
        
self.preambles = gr.ofdm_insert_preamble(self._fft_length, padded_preambles)
self.ifft = gr.fft_vcc(self._fft_length, False, win, True)
self.cp_adder = gr.ofdm_cyclic_prefixer(self._fft_length, symbol_length)
self.scale = gr.multiply_const_cc(1.0 / math.sqrt(self._fft_length))
        
self.connect((self._pkt_input, 0), (self.preambles, 0))
self.connect((self._pkt_input, 1), (self.preambles, 1))
self.connect(self.preambles, self.ifft, self.cp_adder, self.scale, self)

ofdm.py also has the ofdm_demod class:

1 comment:

  1. How to set parameters for LMS DD Equalizer block? I am getting error regarding to constellation object. How can I create constellation object file and its parameter value?

    If it possible, Could you please let me know, what I have to do?

    Awaiting for your kind reply.

    ReplyDelete