summaryrefslogtreecommitdiff
path: root/gnuradio-examples/python/hier/sounder/sounder_tx.py
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-examples/python/hier/sounder/sounder_tx.py')
-rw-r--r--gnuradio-examples/python/hier/sounder/sounder_tx.py46
1 files changed, 11 insertions, 35 deletions
diff --git a/gnuradio-examples/python/hier/sounder/sounder_tx.py b/gnuradio-examples/python/hier/sounder/sounder_tx.py
index e6a3e84f8..7d91f36e1 100644
--- a/gnuradio-examples/python/hier/sounder/sounder_tx.py
+++ b/gnuradio-examples/python/hier/sounder/sounder_tx.py
@@ -21,50 +21,26 @@
#
from gnuradio import gr, usrp, eng_notation
-from usrp_sink import usrp_sink_c
import math
n2s = eng_notation.num_to_str
class sounder_tx(gr.hier_block2):
"""
- Creates a top-level channel sounder block with the given parameters.
+ Creates a channel sounder generator with the given parameters.
"""
- def __init__(self, subdev_spec, freq, cal, verbose, max_delay, chip_rate, amplitude):
-
- # Call hierarchical block constructor
- # Top-level blocks have no inputs or outputs
+ def __init__(self, degree, chip_rate, verbose):
gr.hier_block2.__init__(self,
- "sounder_tx", # Block typename
- gr.io_signature(0,0,0), # Input signature
- gr.io_signature(0,0,0)) # Output signature
- self._freq = freq
- self._cal = cal
- self._verbose = verbose
- self._max_delay = max_delay
-
- self._u = usrp_sink_c(0, subdev_spec, chip_rate, self._freq, self._cal, verbose)
- self._chip_rate = self._u._if_rate
- self._resolution = 1.0/self._chip_rate
+ "sounder_tx", # Block typename
+ gr.io_signature(0,0,0), # Input signature
+ gr.io_signature(1, 1, gr.sizeof_float)) # Output signature
- min_chips = int(math.ceil(2.0*self._max_delay * self._chip_rate))
- degree = int(math.ceil(math.log(min_chips)/math.log(2)))
+ self._degree = degree
+ self._chip_rate = chip_rate
+ self._verbose = verbose
self._length = 2**degree-1
-
- self._glfsr = gr.glfsr_source_b(degree)
- self._mapper = gr.chunks_to_symbols_bc((-amplitude+0j, amplitude+0j), 1)
- if self._verbose:
- print "Actual chip rate is", n2s(self._chip_rate), "chips/sec"
- print "Resolution is", n2s(self._resolution), "sec"
- print "Using specified maximum delay spread of", self._max_delay, "sec"
- print "Mininum sequence length needed is", n2s(min_chips), "chips"
- print "Using PN sequence of degree", degree, "length", self._length
- print "Output amplitude is", amplitude
-
- self.define_component("glfsr", self._glfsr)
- self.define_component("mapper", self._mapper)
- self.define_component("usrp", self._u)
- self.connect("glfsr", 0, "mapper", 0)
- self.connect("mapper", 0, "usrp", 0)
+ # Connect PN source to block output
+ self.define_component("glfsr", gr.glfsr_source_f(degree))
+ self.connect("glfsr", 0, "self", 0)