summaryrefslogtreecommitdiff
path: root/gr-digital/examples
diff options
context:
space:
mode:
authorTom Rondeau2011-10-19 10:23:53 -0700
committerTom Rondeau2011-10-19 10:23:53 -0700
commitb35d84eb447f44b547d928e5741feab7660c39e6 (patch)
treef7b93cc1a29b77b00a055657f7e8e8465c97e333 /gr-digital/examples
parent41247b7598d7beb2e53947a7125b81e07996941e (diff)
downloadgnuradio-b35d84eb447f44b547d928e5741feab7660c39e6.tar.gz
gnuradio-b35d84eb447f44b547d928e5741feab7660c39e6.tar.bz2
gnuradio-b35d84eb447f44b547d928e5741feab7660c39e6.zip
digital: fixed digital narrowband examples to set the sample rate based on the symbol rate, not the bitrate, of the modulation.
Diffstat (limited to 'gr-digital/examples')
-rwxr-xr-xgr-digital/examples/narrowband/benchmark_rx.py6
-rwxr-xr-xgr-digital/examples/narrowband/benchmark_tx.py6
-rwxr-xr-xgr-digital/examples/narrowband/tunnel.py8
-rw-r--r--gr-digital/examples/narrowband/uhd_interface.py20
4 files changed, 26 insertions, 14 deletions
diff --git a/gr-digital/examples/narrowband/benchmark_rx.py b/gr-digital/examples/narrowband/benchmark_rx.py
index 19c242ec5..32c3222ae 100755
--- a/gr-digital/examples/narrowband/benchmark_rx.py
+++ b/gr-digital/examples/narrowband/benchmark_rx.py
@@ -44,7 +44,11 @@ class my_top_block(gr.top_block):
gr.top_block.__init__(self)
if(options.rx_freq is not None):
- self.source = uhd_receiver(options.args, options.bitrate,
+ # Work-around to get the modulation's bits_per_symbol
+ args = demodulator.extract_kwargs_from_options(options)
+ symbol_rate = options.bitrate / demodulator(**args).bits_per_symbol()
+
+ self.source = uhd_receiver(options.args, symbol_rate,
options.samples_per_symbol,
options.rx_freq, options.rx_gain,
options.antenna, options.verbose)
diff --git a/gr-digital/examples/narrowband/benchmark_tx.py b/gr-digital/examples/narrowband/benchmark_tx.py
index cc077bb28..25ed355da 100755
--- a/gr-digital/examples/narrowband/benchmark_tx.py
+++ b/gr-digital/examples/narrowband/benchmark_tx.py
@@ -43,7 +43,11 @@ class my_top_block(gr.top_block):
gr.top_block.__init__(self)
if(options.tx_freq is not None):
- self.sink = uhd_transmitter(options.args, options.bitrate,
+ # Work-around to get the modulation's bits_per_symbol
+ args = modulator.extract_kwargs_from_options(options)
+ symbol_rate = options.bitrate / modulator(**args).bits_per_symbol()
+
+ self.sink = uhd_transmitter(options.args, symbol_rate,
options.samples_per_symbol,
options.tx_freq, options.tx_gain,
options.antenna, options.verbose)
diff --git a/gr-digital/examples/narrowband/tunnel.py b/gr-digital/examples/narrowband/tunnel.py
index 7f40bb1c3..7414a7227 100755
--- a/gr-digital/examples/narrowband/tunnel.py
+++ b/gr-digital/examples/narrowband/tunnel.py
@@ -92,12 +92,16 @@ class my_top_block(gr.top_block):
gr.top_block.__init__(self)
- self.source = uhd_receiver(options.address, options.bitrate,
+ # Get the modulation's bits_per_symbol
+ args = mod_class.extract_kwargs_from_options(options)
+ symbol_rate = options.bitrate / mod_class(**args).bits_per_symbol()
+
+ self.source = uhd_receiver(options.args, symbol_rate,
options.samples_per_symbol,
options.rx_freq, options.rx_gain,
options.antenna, options.verbose)
- self.sink = uhd_transmitter(options.address, options.bitrate,
+ self.sink = uhd_transmitter(options.args, symbol_rate,
options.samples_per_symbol,
options.tx_freq, options.tx_gain,
options.antenna, options.verbose)
diff --git a/gr-digital/examples/narrowband/uhd_interface.py b/gr-digital/examples/narrowband/uhd_interface.py
index 5dffe46e0..a0be516ec 100644
--- a/gr-digital/examples/narrowband/uhd_interface.py
+++ b/gr-digital/examples/narrowband/uhd_interface.py
@@ -42,7 +42,7 @@ def add_freq_option(parser):
metavar="FREQ")
class uhd_interface:
- def __init__(self, istx, args, bitrate, sps, freq=None,
+ def __init__(self, istx, args, sym_rate, sps, freq=None,
gain=None, antenna=None):
if(istx):
@@ -59,19 +59,19 @@ class uhd_interface:
self._gain = self.set_gain(gain)
self._freq = self.set_freq(freq)
- self._rate, self._sps = self.set_sample_rate(bitrate, sps)
+ self._rate, self._sps = self.set_sample_rate(sym_rate, sps)
if(antenna):
self.u.set_antenna(antenna, 0)
- def set_sample_rate(self, bitrate, req_sps):
+ def set_sample_rate(self, sym_rate, req_sps):
start_sps = req_sps
while(True):
- asked_samp_rate = bitrate * req_sps
+ asked_samp_rate = sym_rate * req_sps
self.u.set_samp_rate(asked_samp_rate)
actual_samp_rate = self.u.get_samp_rate()
- sps = actual_samp_rate/bitrate
+ sps = actual_samp_rate/sym_rate
if(sps < 2):
req_sps +=1
else:
@@ -79,7 +79,7 @@ class uhd_interface:
break
if(sps != req_sps):
- print "\nBit Rate: %f" % (bitrate)
+ print "\nSymbol Rate: %f" % (sym_rate)
print "Requested sps: %f" % (start_sps)
print "Given sample rate: %f" % (actual_samp_rate)
print "Actual sps for rate: %f" % (actual_sps)
@@ -124,14 +124,14 @@ class uhd_interface:
#-------------------------------------------------------------------#
class uhd_transmitter(uhd_interface, gr.hier_block2):
- def __init__(self, args, bitrate, sps, freq=None, gain=None,
+ def __init__(self, args, sym_rate, sps, freq=None, gain=None,
antenna=None, verbose=False):
gr.hier_block2.__init__(self, "uhd_transmitter",
gr.io_signature(1,1,gr.sizeof_gr_complex),
gr.io_signature(0,0,0))
# Set up the UHD interface as a transmitter
- uhd_interface.__init__(self, True, args, bitrate, sps,
+ uhd_interface.__init__(self, True, args, sym_rate, sps,
freq, gain, antenna)
self.connect(self, self.u)
@@ -174,14 +174,14 @@ class uhd_transmitter(uhd_interface, gr.hier_block2):
class uhd_receiver(uhd_interface, gr.hier_block2):
- def __init__(self, args, bitrate, sps, freq=None, gain=None,
+ def __init__(self, args, sym_rate, sps, freq=None, gain=None,
antenna=None, verbose=False):
gr.hier_block2.__init__(self, "uhd_receiver",
gr.io_signature(0,0,0),
gr.io_signature(1,1,gr.sizeof_gr_complex))
# Set up the UHD interface as a receiver
- uhd_interface.__init__(self, False, args, bitrate, sps,
+ uhd_interface.__init__(self, False, args, sym_rate, sps,
freq, gain, antenna)
self.connect(self.u, self)