commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r4604 - gnuradio/branches/developers/n4hy/ofdm/gnuradi


From: trondeau
Subject: [Commit-gnuradio] r4604 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm
Date: Thu, 22 Feb 2007 22:49:01 -0700 (MST)

Author: trondeau
Date: 2007-02-22 22:49:00 -0700 (Thu, 22 Feb 2007)
New Revision: 4604

Modified:
   
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/benchmark_ofdm.py
   gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/ofdm.py
   
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/transmit_path.py
Log:
A little hackery to get multipath channel and known symbols into the OFDM 
frames.


Modified: 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/benchmark_ofdm.py
===================================================================
--- 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/benchmark_ofdm.py
      2007-02-23 05:48:13 UTC (rev 4603)
+++ 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/benchmark_ofdm.py
      2007-02-23 05:49:00 UTC (rev 4604)
@@ -50,6 +50,14 @@
 
         gr.hier_block.__init__(self, fg, self.input, self.noise_adder)
 
+class multipath_channel(gr.hier_block):
+    def __init__(self, fg):
+
+        self.taps = [1.0, .2, 0.0, .1, .08, -.4, .12, -.2, 0, 0, 0, .3]
+        self.chan = gr.fir_filter_ccc(1, self.taps)
+        
+        gr.hier_block.__init__(self, fg, self.chan, self.chan)
+
 class my_graph(gr.flow_graph):
     def __init__(self, callback, options):
         gr.flow_graph.__init__(self)
@@ -70,8 +78,12 @@
 
         if channel_on:
             self.channel = awgn_channel(self, options.sample_rate, 
noise_voltage, frequency_offset)
-            self.connect(self.txpath, self.throttle, self.channel)
+            self.multipath = multipath_channel(self)
+            
+            self.connect(self.txpath, self.throttle, self.multipath, 
self.channel)
+            #self.connect(self.txpath, self.throttle, self.channel)
             self.connect(self.channel, self.rxpath)
+            self.connect(self.txpath, gr.file_sink(gr.sizeof_gr_complex, 
"tx_ofdm.dat"))
         else:
             self.connect(self.txpath, self.throttle, self.rxpath)
             self.connect(self.txpath, gr.file_sink(gr.sizeof_gr_complex, "tx"))
@@ -137,9 +149,13 @@
     n = 0
     pktno = 0
     pkt_size = int(options.size)
+
     
+    
     while n < nbytes:
-        pkt_contents = struct.pack('!H', pktno) + (pkt_size - 2) * chr(pktno & 
0xff)
+        r = ''.join([chr(random.randint(0,255)) for i in range(pkt_size-2)])
+        #pkt_contents = struct.pack('!H', pktno) + (pkt_size - 2) * chr(pktno 
& 0xff)
+        pkt_contents = struct.pack('!H', pktno) + r
         send_pkt(pkt_contents)
         n += pkt_size
         #sys.stderr.write('.')
@@ -150,8 +166,11 @@
     send_pkt(eof=True)
     fg.wait()                       # wait for it to finish
 
+
 if __name__ == '__main__':
     try:
         main()
     except KeyboardInterrupt:
         pass
+
+

Modified: 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/ofdm.py
===================================================================
--- 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/ofdm.py    
    2007-02-23 05:48:13 UTC (rev 4603)
+++ 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/ofdm.py    
    2007-02-23 05:49:00 UTC (rev 4604)
@@ -43,7 +43,12 @@
 
         win = [] #[1 for i in range(self._fft_length)]
 
-        self.ofdm = gr.ofdm_bpsk_mapper(self._mtu, self._occupied_tones, 
self._fft_length)
+        # hard-coded known symbol
+        #ks = self._occupied_tones*[1,]
+        ks1 = known_symbols_200_1
+        ks2 = known_symbols_200_2
+        
+        self.ofdm = gr.ofdm_bpsk_mapper(self._mtu, self._occupied_tones, 
self._fft_length, ks1, ks2)
         self.ifft = gr.fft_vcc(self._fft_length, False, win, True)
         self.cp_adder = gr.ofdm_cyclic_prefixer(self._fft_length, 
symbol_length)
         
@@ -100,17 +105,23 @@
 
         win = [1 for i in range(self._fft_length)]
 
+        # hard-coded known symbol
+        ks1 = known_symbols_200_1
+        ks2 = known_symbols_200_2
+
         # ML Sync
         self.ofdm_sync = ofdm_receiver(self.fg, self._fft_length, 
symbol_length, self._snr)
 
         # OFDM Demod
         self.fft_demod = gr.fft_vcc(self._fft_length, True, win, True)
-        self.ofdm_demod = gr.ofdm_bpsk_demapper(self._occupied_tones, 
self._fft_length)
+        self.ofdm_corr  = gr.ofdm_correlator(self._occupied_tones, 
self._fft_length, ks1, ks2)
+        self.ofdm_demod = gr.ofdm_bpsk_demapper(self._occupied_tones)
 
+
         if options.verbose:
             self._print_verbage()
 
-        self.fg.connect(self.ofdm_sync, self.fft_demod, self.ofdm_demod)
+        self.fg.connect(self.ofdm_sync, self.fft_demod, self.ofdm_corr, 
self.ofdm_demod)
         gr.hier_block.__init__(self, self.fg, self.ofdm_sync, self.ofdm_demod)
         
     def bits_per_symbol(self=None):   # staticmethod that's also callable on 
an instance
@@ -138,3 +149,12 @@
         print "FFT length:      %3d"   % (self._fft_length)
         print "Occupied Tones:  %3d"   % (self._occupied_tones)
         print "CP length:       %3d"   % (self._cp_length)
+
+
+# generated in python using:
+# import random
+# pn = [2.0*random.randint(0,1)-1.0 for i in range(self._occupied_tones)]
+
+known_symbols_200_1 = [1.0, 1.0, -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 
-1.0, 1.0, 1.0, -1.0, 1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, 
-1.0, -1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 
1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 
1.0, -1.0, -1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 
-1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 
-1.0, 1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, -1.0, -1.0, 1.0, -1.0, -1.0, -1.0, 
-1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 
-1.0, 1.0, 1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, 
-1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, -1.0, 
1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, 1.0, 
-1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, -1.0, -1.0, -1.0, 1.0, 
-1.0, -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 
-1.0, 1.0, 1.0, -1.0]
+        
+known_symbols_200_2 = [-1.0, -1.0, -1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, 1.0, 
1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 
1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 
-1.0, -1.0, 1.0, 1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 
-1.0, 1.0, 1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 
-1.0, 1.0, -1.0, 1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 
-1.0, 1.0, -1.0, 1.0, 1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, -1.0, -1.0, 1.0, 
1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 
-1.0, -1.0, 1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, 1.0, -1.0, 
-1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, 
1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 
1.0, -1.0, 1.0, 1.0, -1.0, 1.0, -1.0, -1.0, -1.0, 1.0, 1.0, -1.0, -1.0, 1.0, 
1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, -1.0, -1.0, 1.0, -1.0, -1.0, -1.0, 1.0, 
1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 
1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0]

Modified: 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/transmit_path.py
===================================================================
--- 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/transmit_path.py
       2007-02-23 05:48:13 UTC (rev 4603)
+++ 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/transmit_path.py
       2007-02-23 05:49:00 UTC (rev 4604)
@@ -43,7 +43,7 @@
 
         self._verbose      = options.verbose
         self._tx_amplitude = options.tx_amplitude    # digital amplitude sent 
to USRP
-    
+
         self.ofdm_mod = ofdm.ofdm_mod(fg, options)
         self.packet_transmitter = \
             blks.mod_ofdm_pkts(fg,





reply via email to

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