[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r4548 - gnuradio/branches/developers/n4hy/ofdm/gnuradi
From: |
trondeau |
Subject: |
[Commit-gnuradio] r4548 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm |
Date: |
Tue, 20 Feb 2007 15:21:26 -0700 (MST) |
Author: trondeau
Date: 2007-02-20 15:21:25 -0700 (Tue, 20 Feb 2007)
New Revision: 4548
Modified:
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/benchmark_ofdm.py
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/ofdm_receiver.py
Log:
work in progress
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-20 22:21:15 UTC (rev 4547)
+++
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/benchmark_ofdm.py
2007-02-20 22:21:25 UTC (rev 4548)
@@ -37,10 +37,10 @@
def __init__(self, fg, sample_rate, noise_voltage, frequency_offset):
self.input = gr.add_const_cc(0)
-
+
self.noise_adder = gr.add_cc()
self.noise = gr.noise_source_c(gr.GR_GAUSSIAN,noise_voltage)
- self.offset = gr.sig_source_c((sample_rate*1.0), gr.GR_SIN_WAVE,
frequency_offset, 1.0, 0.0)
+ self.offset = gr.sig_source_c(1, gr.GR_SIN_WAVE, frequency_offset,
1.0, 0.0)
self.mixer_offset = gr.multiply_cc()
fg.connect(self.input, (self.mixer_offset,0))
@@ -57,7 +57,7 @@
channel_on = True
SNR = 10.0**(options.snr/10.0)
- frequency_offset = options.frequency_offset
+ frequency_offset = options.frequency_offset / options.fft_length
power_in_signal = options.occupied_tones
noise_power_in_channel = power_in_signal/SNR
Modified:
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/ofdm_receiver.py
===================================================================
---
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/ofdm_receiver.py
2007-02-20 22:21:15 UTC (rev 4547)
+++
gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm/ofdm_receiver.py
2007-02-20 22:21:25 UTC (rev 4548)
@@ -84,21 +84,32 @@
self.fg.connect(self.moving_sum_filter,(self.diff,1))
#ML measurements input to sampler block and detect
- self.sampler = gr.ofdm_sampler(fft_length,symbol_length,1)
+ self.f2c = gr.float_to_complex()
+ self.sampler = gr.ofdm_sampler(fft_length,symbol_length)
+ self.pkt_detect = gr.peak_detector_ff()
+ self.sample_and_hold = gr.sample_and_hold_ff()
+ self.nco = gr.frequency_modulator_fc((1/(2*math.pi))/fft_length)
#gr.vco_f(1, (1/(2*math.pi))/fft_length, 1)
+ self.sigmix = gr.multiply_cc()
- self.f2c1 = gr.float_to_complex()
- self.f2c2 = gr.float_to_complex()
+ # Mix the signal with an NCO controlled by the sync loop
+ self.fg.connect(self.input, (self.sigmix,0))
+ self.fg.connect(self.nco, (self.sigmix,1))
+ self.fg.connect(self.sigmix, (self.sampler,0))
- # Connect inputs to OFDM sampler:
- # 1: stream to get downconverted to baseband
- # 2: output of difference block (theta)
- # 3: frequency error estimate (epsilon)
- self.fg.connect(self.input, (self.sampler,0))
- self.fg.connect(self.diff, self.f2c1,(self.sampler,1))
- self.fg.connect(self.angle, self.f2c2,(self.sampler,2))
+ # use the sync loop values to set the sampler and the NCO
+ # diff = theta
+ # angle = epsilon
+ self.fg.connect(self.diff, self.pkt_detect)
+ self.fg.connect(self.pkt_detect, self.f2c, (self.sampler,1))
+ self.fg.connect(self.pkt_detect, (self.sample_and_hold,1))
+ self.fg.connect(self.angle, (self.sample_and_hold,0))
+ self.fg.connect(self.sample_and_hold, self.nco)
- if 0:
- self.fg.connect(self.diff, gr.file_sink(gr.sizeof_float,
"ofdmrx_theta_f.dat"))
- self.fg.connect(self.angle, gr.file_sink(gr.sizeof_float,
"ofdmrx_epsilon_f.dat"))
-
+ if 1:
+ self.fg.connect(self.diff, gr.file_sink(gr.sizeof_float,
"theta_f.dat"))
+ self.fg.connect(self.angle, gr.file_sink(gr.sizeof_float,
"epsilon_f.dat"))
+ self.fg.connect(self.pkt_detect, gr.file_sink(gr.sizeof_float,
"peaks_f.dat"))
+ self.fg.connect(self.sample_and_hold,
gr.file_sink(gr.sizeof_float, "sample_and_hold_f.dat"))
+ self.fg.connect(self.nco, gr.file_sink(gr.sizeof_gr_complex,
"nco_c.dat"))
+
gr.hier_block.__init__(self, fg, self.input, self.sampler)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r4548 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-examples/python/ofdm,
trondeau <=