summaryrefslogtreecommitdiff
path: root/gr-digital
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2012-07-16 22:43:46 -0400
committerTom Rondeau <trondeau@vt.edu>2012-07-16 22:43:46 -0400
commit25166c11ad7e438dd3673edca36b3a23ee8ec0dd (patch)
tree1285726602c35493aa4f7230c60cf5298aa4e1e7 /gr-digital
parentf51f49c7cd1b5c1bd10c243f479ac8f9ebb3f3d3 (diff)
digital: fixing narrowband (de)mods and examples to work with gr-digital and gr-filter components.
Diffstat (limited to 'gr-digital')
-rwxr-xr-xgr-digital/examples/narrowband/benchmark_add_channel.py6
-rw-r--r--gr-digital/examples/narrowband/receive_path.py14
-rwxr-xr-xgr-digital/examples/snr_estimators.py4
-rw-r--r--gr-digital/python/bpsk.py6
-rw-r--r--gr-digital/python/gmsk.py10
-rw-r--r--gr-digital/python/pkt.py4
-rw-r--r--gr-digital/python/qpsk.py22
7 files changed, 35 insertions, 31 deletions
diff --git a/gr-digital/examples/narrowband/benchmark_add_channel.py b/gr-digital/examples/narrowband/benchmark_add_channel.py
index 841833a08f..8f2e544fdb 100755
--- a/gr-digital/examples/narrowband/benchmark_add_channel.py
+++ b/gr-digital/examples/narrowband/benchmark_add_channel.py
@@ -20,7 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr
+from gnuradio import gr, filter
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
@@ -43,8 +43,8 @@ class my_top_block(gr.top_block):
self.src = gr.file_source(gr.sizeof_gr_complex, ifile)
#self.throttle = gr.throttle(gr.sizeof_gr_complex, options.sample_rate)
- self.channel = gr.channel_model(noise_voltage, frequency_offset,
- time_offset, noise_seed=random.randint(0,100000))
+ self.channel = filter.channel_model(noise_voltage, frequency_offset,
+ time_offset, noise_seed=random.randint(0,100000))
self.phase = gr.multiply_const_cc(complex(math.cos(phase_offset),
math.sin(phase_offset)))
self.snk = gr.file_sink(gr.sizeof_gr_complex, ofile)
diff --git a/gr-digital/examples/narrowband/receive_path.py b/gr-digital/examples/narrowband/receive_path.py
index 1f93105068..9aa6dc488d 100644
--- a/gr-digital/examples/narrowband/receive_path.py
+++ b/gr-digital/examples/narrowband/receive_path.py
@@ -20,7 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gru
+from gnuradio import gr, gru, filter
from gnuradio import eng_notation
from gnuradio import digital
@@ -61,12 +61,12 @@ class receive_path(gr.hier_block2):
# Design filter to get actual channel we want
sw_decim = 1
- chan_coeffs = gr.firdes.low_pass (1.0, # gain
- sw_decim * self.samples_per_symbol(), # sampling rate
- self._chbw_factor, # midpoint of trans. band
- 0.5, # width of trans. band
- gr.firdes.WIN_HANN) # filter type
- self.channel_filter = gr.fft_filter_ccc(sw_decim, chan_coeffs)
+ chan_coeffs = filter.firdes.low_pass(1.0, # gain
+ sw_decim * self.samples_per_symbol(), # sampling rate
+ self._chbw_factor, # midpoint of trans. band
+ 0.5, # width of trans. band
+ gr.firdes.WIN_HANN) # filter type
+ self.channel_filter = filter.fft_filter_ccc(sw_decim, chan_coeffs)
# receiver
self.packet_receiver = \
diff --git a/gr-digital/examples/snr_estimators.py b/gr-digital/examples/snr_estimators.py
index 432abd4553..0603da131d 100755
--- a/gr-digital/examples/snr_estimators.py
+++ b/gr-digital/examples/snr_estimators.py
@@ -15,7 +15,7 @@ except ImportError:
print "Error: Program requires Matplotlib (matplotlib.sourceforge.net)."
sys.exit(1)
-from gnuradio import gr, digital
+from gnuradio import gr, digital, filter
from optparse import OptionParser
from gnuradio.eng_option import eng_option
@@ -147,7 +147,7 @@ def main():
gr_src = gr.vector_source_c(bits.tolist(), False)
gr_snr = digital.mpsk_snr_est_cc(gr_est, ntag, 0.001)
- gr_chn = gr.channel_model(1.0/scale)
+ gr_chn = filter.channel_model(1.0/scale)
gr_snk = gr.null_sink(gr.sizeof_gr_complex)
tb = gr.top_block()
tb.connect(gr_src, gr_chn, gr_snr, gr_snk)
diff --git a/gr-digital/python/bpsk.py b/gr-digital/python/bpsk.py
index 9f2354003c..d55db15256 100644
--- a/gr-digital/python/bpsk.py
+++ b/gr-digital/python/bpsk.py
@@ -116,8 +116,7 @@ class dbpsk_mod(bpsk_mod):
It exists purely to simplify generation of the block in grc.
"""
- super(dbpsk_mod, self).__init__(differential=True,
- *args, **kwargs)
+ super(dbpsk_mod, self).__init__(*args, **kwargs)
# /////////////////////////////////////////////////////////////////////////////
# DBPSK demodulator
@@ -140,8 +139,7 @@ class dbpsk_demod(bpsk_demod):
It exists purely to simplify generation of the block in grc.
"""
- super(dbpsk_demod, self).__init__(differential=True,
- *args, **kwargs)
+ super(dbpsk_demod, self).__init__(*args, **kwargs)
#
# Add these to the mod/demod registry
diff --git a/gr-digital/python/gmsk.py b/gr-digital/python/gmsk.py
index 2c9be056c2..cc6af9ffff 100644
--- a/gr-digital/python/gmsk.py
+++ b/gr-digital/python/gmsk.py
@@ -32,6 +32,12 @@ import numpy
from pprint import pprint
import inspect
+try:
+ from gnuradio import filter
+except ImportError:
+ import filter_swig as filter
+
+
# default values (used in __init__ and add_options)
_def_samples_per_symbol = 2
_def_bt = 0.35
@@ -92,7 +98,7 @@ class gmsk_mod(gr.hier_block2):
sensitivity = (pi / 2) / samples_per_symbol # phase change per bit = pi / 2
# Turn it into NRZ data.
- self.nrz = gr.bytes_to_syms()
+ self.nrz = digital.bytes_to_syms()
# Form Gaussian filter
# Generate Gaussian response (Needs to be convolved with window below).
@@ -105,7 +111,7 @@ class gmsk_mod(gr.hier_block2):
self.sqwave = (1,) * samples_per_symbol # rectangular window
self.taps = numpy.convolve(numpy.array(self.gaussian_taps),numpy.array(self.sqwave))
- self.gaussian_filter = gr.interp_fir_filter_fff(samples_per_symbol, self.taps)
+ self.gaussian_filter = filter.interp_fir_filter_fff(samples_per_symbol, self.taps)
# FM modulation
self.fmmod = gr.frequency_modulator_fc(sensitivity)
diff --git a/gr-digital/python/pkt.py b/gr-digital/python/pkt.py
index 09254a7caa..b294066f17 100644
--- a/gr-digital/python/pkt.py
+++ b/gr-digital/python/pkt.py
@@ -23,7 +23,7 @@ from math import pi
from gnuradio import gr
import gnuradio.gr.gr_threading as _threading
import packet_utils
-import digital_swig
+import digital_swig as digital
# /////////////////////////////////////////////////////////////////////////////
@@ -141,7 +141,7 @@ class demod_pkts(gr.hier_block2):
threshold = 12 # FIXME raise exception
self._rcvd_pktq = gr.msg_queue() # holds packets from the PHY
- self.correlator = digital_swig.correlate_access_code_bb(access_code, threshold)
+ self.correlator = digital.correlate_access_code_bb(access_code, threshold)
self.framer_sink = digital.framer_sink_1(self._rcvd_pktq)
self.connect(self, self._demodulator, self.correlator, self.framer_sink)
diff --git a/gr-digital/python/qpsk.py b/gr-digital/python/qpsk.py
index 2fdeabd40f..d6c06bc83f 100644
--- a/gr-digital/python/qpsk.py
+++ b/gr-digital/python/qpsk.py
@@ -28,7 +28,7 @@ Demodulation is not included since the generic_mod_demod
from gnuradio import gr
from gnuradio.digital.generic_mod_demod import generic_mod, generic_demod
from utils import mod_codes
-import digital_swig
+import digital_swig as digital
import modulation_utils
# The default encoding (e.g. gray-code, set-partition)
@@ -41,7 +41,7 @@ _def_mod_code = mod_codes.GRAY_CODE
def qpsk_constellation(mod_code=_def_mod_code):
if mod_code != mod_codes.GRAY_CODE:
raise ValueError("This QPSK mod/demod works only for gray-coded constellations.")
- return digital_swig.constellation_qpsk()
+ return digital.constellation_qpsk()
# /////////////////////////////////////////////////////////////////////////////
# QPSK modulator
@@ -62,12 +62,12 @@ class qpsk_mod(generic_mod):
pre_diff_code = True
if not differential:
- constellation = digital_swig.constellation_qpsk()
+ constellation = digital.constellation_qpsk()
if mod_code != mod_codes.GRAY_CODE:
raise ValueError("This QPSK mod/demod works only for gray-coded constellations.")
else:
- constellation = digital_swig.constellation_dqpsk()
- if mod_code not in (mod_codes.GRAY_CODE or mod_codes.NO_CODE):
+ constellation = digital.constellation_dqpsk()
+ if mod_code not in set([mod_codes.GRAY_CODE, mod_codes.NO_CODE]):
raise ValueError("That mod_code is not supported for DQPSK mod/demod.")
if mod_code == mod_codes.NO_CODE:
pre_diff_code = False
@@ -98,12 +98,12 @@ class qpsk_demod(generic_demod):
pre_diff_code = True
if not differential:
- constellation = digital_swig.constellation_qpsk()
+ constellation = digital.constellation_qpsk()
if mod_code != mod_codes.GRAY_CODE:
raise ValueError("This QPSK mod/demod works only for gray-coded constellations.")
else:
- constellation = digital_swig.constellation_dqpsk()
- if mod_code not in (mod_codes.GRAY_CODE or mod_codes.NO_CODE):
+ constellation = digital.constellation_dqpsk()
+ if mod_code not in set([mod_codes.GRAY_CODE, mod_codes.NO_CODE]):
raise ValueError("That mod_code is not supported for DQPSK mod/demod.")
if mod_code == mod_codes.NO_CODE:
pre_diff_code = False
@@ -121,7 +121,7 @@ class qpsk_demod(generic_demod):
def dqpsk_constellation(mod_code=_def_mod_code):
if mod_code != mod_codes.GRAY_CODE:
raise ValueError("The DQPSK constellation is only generated for gray_coding. But it can be used for non-grayed coded modulation if one doesn't use the pre-differential code.")
- return digital_swig.constellation_dqpsk()
+ return digital.constellation_dqpsk()
# /////////////////////////////////////////////////////////////////////////////
# DQPSK modulator
@@ -138,7 +138,7 @@ class dqpsk_mod(qpsk_mod):
See generic_mod block for list of parameters.
"""
- super(dqpsk_mod, self).__init__(mod_code, differential=True,
+ super(dqpsk_mod, self).__init__(mod_code,
*args, **kwargs)
# /////////////////////////////////////////////////////////////////////////////
@@ -158,7 +158,7 @@ class dqpsk_demod(qpsk_demod):
See generic_demod block for list of parameters.
"""
- super(dqpsk_demod, self).__init__(mod_code, differential=True,
+ super(dqpsk_demod, self).__init__(mod_code,
*args, **kwargs)
#