[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r4102 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python,
n4hy <=