commit-gnuradio
[Top][All Lists]
Advanced

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

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


From: n4hy
Subject: [Commit-gnuradio] r4102 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python
Date: Sat, 16 Dec 2006 12:08:27 -0700 (MST)

Author: n4hy
Date: 2006-12-16 12:08:27 -0700 (Sat, 16 Dec 2006)
New Revision: 4102

Modified:
   gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm_test.py
Log:
Corrections to ofdm_test to correctly compute rho, SNR, and add noise



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 17:23:21 UTC (rev 4101)
+++ 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm_test.py    
    2006-12-16 19:08:27 UTC (rev 4102)
@@ -26,7 +26,7 @@
 from gnuradio.wxgui import stdgui, fftsink, waterfallsink, scopesink, form, 
slider
 from optparse import OptionParser
 import wx
-import os, sys, random
+import os, sys, random, math
 
 
 class app_flow_graph(stdgui.gui_flow_graph):
@@ -56,13 +56,22 @@
         self.show_debug_info = True
         
         # parameters
-        fftsize = 1024
-        occupied_tones = 300
-        symbol_length = 1024+128
+        fftsize = 128
+        occupied_tones = 60
+        symbol_length = 160
 
         cpsize = symbol_length - fftsize
-        print "CPSize"
-        print cpsize
+
+        SNR_db = 20
+        SNR = 10.0**(SNR_db/10.0)
+
+        power_in_signal = occupied_tones
+        noise_power_in_channel = power_in_signal/SNR
+        noise_power_required = noise_power_in_channel * fftsize / 
occupied_tones
+        noise_voltage = math.sqrt(noise_power_required)
+        rho = SNR / (SNR + 1.0)
+
+        print rho
         
         win = [1 for i in range(fftsize)]
         data = [random.randint(0,1) for i in range(100000)]
@@ -72,9 +81,12 @@
         self.ofdm = gr.ofdm_bpsk_mapper(occupied_tones, fftsize)
         self.ifft = gr.fft_vcc(fftsize, False, win)
         self.cp_adder = gr.ofdm_cyclic_prefixer(fftsize,symbol_length)
+        self.noise_adder = gr.add_cc()
+        SNR = math.sqrt(10.0/occupied_tones)
+        self.noise = gr.noise_source_c(gr.GR_GAUSSIAN,noise_voltage,1)
 
-        self.debugfile = gr.file_sink(gr.sizeof_gr_complex,"debug_out")
-        self.connect(self.cp_adder,self.debugfile)
+        #self.debugfile = gr.file_sink(gr.sizeof_gr_complex,"debug_out")
+        #self.connect(self.cp_adder,self.debugfile)
         
         #count_seq = range(10000)
         #self.count_src = gr.vector_source_c(count_seq,True)
@@ -84,12 +96,11 @@
 
         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.noise_adder,self.throttle, self.scope)
 
-        self.connect(self.src, self.ofdm, self.ifft, self.cp_adder, 
self.throttle, self.scope)
-
         # ML Sync
-        SNR = 1e8
-        rho = SNR / (SNR + 1.0)
 
         # Energy Detection from ML Sync
 





reply via email to

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