Merging OFDM features branch r5661:5759 into trunk. OFDM works over the air with...
[debian/gnuradio] / gnuradio-core / src / python / gnuradio / blksimpl / ofdm_receiver.py
index e2f5932836886bcd4f31adc8e682a0bcb426a43d..22ec41f1d9fa63db298da013a896f5aa731f1ece 100644 (file)
 
 import math
 from gnuradio import gr
-from gnuradio.blksimpl.ofdm_sync import ofdm_sync
+from gnuradio.blksimpl.ofdm_sync_ml import ofdm_sync_ml
+from gnuradio.blksimpl.ofdm_sync_pn import ofdm_sync_pn
+from gnuradio.blksimpl.ofdm_sync_pnac import ofdm_sync_pnac
 
 class ofdm_receiver(gr.hier_block):
-    def __init__(self, fg, fft_length, cp_length, occupied_tones, snr, ks1, ks2):
+    def __init__(self, fg, fft_length, cp_length, occupied_tones, snr, ks, logging=False):
         self.fg = fg
 
         bw = (float(occupied_tones) / float(fft_length)) / 2.0
@@ -39,14 +41,21 @@ class ofdm_receiver(gr.hier_block):
         
         win = [1 for i in range(fft_length)]
 
-        self.ofdm_sync = ofdm_sync(fg, fft_length, cp_length, snr)
+        SYNC = "pn"
+        if SYNC == "ml":
+            self.ofdm_sync = ofdm_sync_ml(fg, fft_length, cp_length, snr, logging)
+        elif SYNC == "pn":
+            self.ofdm_sync = ofdm_sync_pn(fg, fft_length, cp_length, logging)
+        elif SYNC == "pnac":
+            self.ofdm_sync = ofdm_sync_pnac(fg, fft_length, cp_length, ks[0])
+
         self.fft_demod = gr.fft_vcc(fft_length, True, win, True)
         self.ofdm_corr  = gr.ofdm_correlator(occupied_tones, fft_length,
-                                             cp_length, ks1, ks2)
+                                             cp_length, ks[1], ks[2])
 
         self.fg.connect(self.chan_filt, self.ofdm_sync, self.fft_demod, self.ofdm_corr)
         
-        if 1:
+        if logging:
             self.fg.connect(self.chan_filt, gr.file_sink(gr.sizeof_gr_complex, "chan_filt_c.dat"))
             self.fg.connect(self.fft_demod, gr.file_sink(gr.sizeof_gr_complex*fft_length, "fft_out_c.dat"))
             self.fg.connect(self.ofdm_corr, gr.file_sink(gr.sizeof_gr_complex*occupied_tones, "ofdm_corr_out_c.dat"))