commit-gnuradio
[Top][All Lists]
Advanced

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

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


From: n4hy
Subject: [Commit-gnuradio] r4105 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python
Date: Sat, 16 Dec 2006 16:49:01 -0700 (MST)

Author: n4hy
Date: 2006-12-16 16:49:01 -0700 (Sat, 16 Dec 2006)
New Revision: 4105

Modified:
   gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm_test.py
Log:
GUI title fixed,  frequency offset display added showing joint timing and 
frequency estimation working at low SNR

Modified: 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm_test.py
===================================================================
--- 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm_test.py    
    2006-12-16 23:43:21 UTC (rev 4104)
+++ 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm_test.py    
    2006-12-16 23:49:01 UTC (rev 4105)
@@ -56,13 +56,13 @@
         self.show_debug_info = True
         
         # parameters
-        fftsize = 512
-        occupied_tones = 384
-        symbol_length = 512+64
+        fftsize = 128
+        occupied_tones = 70
+        symbol_length = 128+32
 
         cpsize = symbol_length - fftsize
 
-        SNR_db = 10
+        SNR_db = 10.0
         SNR = 10.0**(SNR_db/10.0)
 
         power_in_signal = occupied_tones
@@ -83,6 +83,8 @@
         self.cp_adder = gr.ofdm_cyclic_prefixer(fftsize,symbol_length)
         self.noise_adder = gr.add_cc()
         self.noise = gr.noise_source_c(gr.GR_GAUSSIAN,noise_voltage,1)
+        self.offset = 
gr.sig_source_c((sample_rate*1.0),gr.GR_SIN_WAVE,-0.125*sample_rate/fftsize,1.0,0.0)
+        self.mixer_offset = gr.multiply_cc()
 
         #self.debugfile = gr.file_sink(gr.sizeof_gr_complex,"debug_out")
         #self.connect(self.cp_adder,self.debugfile)
@@ -96,7 +98,9 @@
         self.throttle = gr.throttle(gr.sizeof_gr_complex, 1e5)
         self.scope = fftsink.fft_sink_c (self, panel, fft_size=1024, 
sample_rate=sample_rate, fft_rate=30)
         self.connect(self.noise,(self.noise_adder,0))
-        self.connect(self.src, self.ofdm, self.ifft, 
self.cp_adder,(self.noise_adder,1))
+        self.connect(self.src, self.ofdm, self.ifft, 
self.cp_adder,(self.mixer_offset,1))
+        self.connect(self.mixer_offset,(self.noise_adder,1))
+        self.connect(self.offset,(self.mixer_offset,0))
         self.connect(self.noise_adder,self.throttle, self.scope)
 
         # ML Sync
@@ -130,6 +134,7 @@
         self.connect(self.magsqrd1,(self.adder,0))
         self.connect(self.magsqrd2,(self.adder,1))
         self.connect(self.adder,self.moving_sum_filter)
+        
 
         # Correlation from ML Sync
         self.conjg = gr.conjugate_cc();
@@ -137,8 +142,12 @@
 
         movingsum2_taps = [1.0 for i in range(cpsize)]
         self.movingsum2 = gr.fir_filter_ccf(1,movingsum2_taps)
+        
 
         self.c2mag = gr.complex_to_mag()
+        self.angle = gr.complex_to_arg()
+        self.scale = gr.multiply_const_ff(-1000.0/(2*math.pi))
+        
 
         self.connect(self.throttle,(self.mixer,1))
         self.connect(self.delay,self.conjg,(self.mixer,0))
@@ -150,9 +159,10 @@
         self.connect(self.moving_sum_filter,(self.diff,1))
         
         self.oscope = scopesink.scope_sink_f(self, panel, 
sample_rate=sample_rate)
-        self.connect(self.moving_sum_filter,(self.oscope,0))
-        self.connect(self.c2mag,(self.oscope,1))
-        self.connect(self.diff,(self.oscope,2))
+#        self.connect(self.moving_sum_filter,(self.oscope,0))
+#        self.connect(self.c2mag,(self.oscope,1))
+        self.connect(self.diff,(self.oscope,0))
+        self.connect(self.movingsum2,self.angle,self.scale,(self.oscope,1))
         
         self._build_gui(vbox)
 
@@ -216,7 +226,7 @@
 
         
 def main ():
-    app = stdgui.stdapp(app_flow_graph, "Audio FFT", nstatus=1)
+    app = stdgui.stdapp(app_flow_graph, "OFDM algorithm test", nstatus=1)
     app.MainLoop()
 
 if __name__ == '__main__':





reply via email to

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