summaryrefslogtreecommitdiff
path: root/gnuradio-examples/python
diff options
context:
space:
mode:
authorTom Rondeau2011-09-26 23:23:14 -0400
committerTom Rondeau2011-09-26 23:23:14 -0400
commit4fec8eba2eb3d362319c8e09bf370edaa10cd1b9 (patch)
treee41ff025b20b5c4ad8928fa0651a06dca884dc6f /gnuradio-examples/python
parent79e7183bda0e3850c79dee7f086a8676311607fa (diff)
parente3b56bfd879f16c2fa1f284f330ed3df6a211ec1 (diff)
downloadgnuradio-4fec8eba2eb3d362319c8e09bf370edaa10cd1b9.tar.gz
gnuradio-4fec8eba2eb3d362319c8e09bf370edaa10cd1b9.tar.bz2
gnuradio-4fec8eba2eb3d362319c8e09bf370edaa10cd1b9.zip
Merge branch 'next' into digital
Conflicts: gnuradio-core/src/lib/general/general.i gnuradio-core/src/lib/general/gr_pll_carriertracking_cc.cc gnuradio-core/src/lib/general/gr_pll_freqdet_cf.cc gnuradio-core/src/lib/general/gr_pll_refout_cc.cc gnuradio-core/src/python/gnuradio/gr/qa_pll_carriertracking.py gnuradio-core/src/python/gnuradio/gr/qa_pll_freqdet.py gnuradio-core/src/python/gnuradio/gr/qa_pll_refout.py gr-digital/lib/digital_constellation_receiver_cb.cc gr-digital/python/Makefile.am gr-digital/python/__init__.py gr-digital/python/generic_mod_demod.py gr-digital/python/pkt.py gr-digital/python/psk2.py gr-digital/python/qam.py
Diffstat (limited to 'gnuradio-examples/python')
-rw-r--r--gnuradio-examples/python/Makefile.am2
-rw-r--r--gnuradio-examples/python/digital_voice/.gitignore10
-rwxr-xr-xgnuradio-examples/python/digital_voice/cvsd_test.py63
-rwxr-xr-xgnuradio-examples/python/digital_voice/encdec.py58
-rwxr-xr-xgnuradio-examples/python/ofdm/gr_plot_ofdm.py20
-rwxr-xr-xgnuradio-examples/python/pfb/channelize.py19
-rwxr-xr-xgnuradio-examples/python/pfb/chirp_channelize.py19
-rwxr-xr-xgnuradio-examples/python/pfb/decimate.py23
-rwxr-xr-xgnuradio-examples/python/pfb/fmtest.py42
-rwxr-xr-xgnuradio-examples/python/pfb/interpolate.py23
-rwxr-xr-xgnuradio-examples/python/pfb/resampler.py34
-rwxr-xr-xgnuradio-examples/python/pfb/synth_filter.py14
-rwxr-xr-xgnuradio-examples/python/pfb/synth_to_chan.py14
-rw-r--r--gnuradio-examples/python/tags/.gitignore2
-rw-r--r--gnuradio-examples/python/tags/Makefile.am (renamed from gnuradio-examples/python/digital_voice/Makefile.am)11
-rwxr-xr-xgnuradio-examples/python/tags/test_file_tags.py28
-rwxr-xr-xgnuradio-examples/python/tags/uhd_burst_detector.py66
17 files changed, 248 insertions, 200 deletions
diff --git a/gnuradio-examples/python/Makefile.am b/gnuradio-examples/python/Makefile.am
index 30effdf9a..3f1977e74 100644
--- a/gnuradio-examples/python/Makefile.am
+++ b/gnuradio-examples/python/Makefile.am
@@ -25,12 +25,12 @@ SUBDIRS = \
apps \
digital \
digital-bert \
- digital_voice \
mp-sched \
multi-antenna \
multi_usrp \
network \
ofdm \
pfb \
+ tags \
usrp \
usrp2
diff --git a/gnuradio-examples/python/digital_voice/.gitignore b/gnuradio-examples/python/digital_voice/.gitignore
deleted file mode 100644
index c400497f5..000000000
--- a/gnuradio-examples/python/digital_voice/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-/Makefile
-/Makefile.in
-/.la
-/.lo
-/.deps
-/.libs
-/*.la
-/*.lo
-/*.pyc
-/*.pyo
diff --git a/gnuradio-examples/python/digital_voice/cvsd_test.py b/gnuradio-examples/python/digital_voice/cvsd_test.py
deleted file mode 100755
index f8f1b9cce..000000000
--- a/gnuradio-examples/python/digital_voice/cvsd_test.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2007 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr, blks2
-from gnuradio import audio
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-
-def main():
- parser = OptionParser(option_class=eng_option)
- parser.add_option("-I", "--audio-input", type="string", default="",
- help="pcm input device name. E.g., hw:0,0 or /dev/dsp")
- parser.add_option("-O", "--audio-output", type="string", default="",
- help="pcm output device name. E.g., hw:0,0 or /dev/dsp")
- parser.add_option("-r", "--sample-rate", type="eng_float", default="32000",
- help="Audio sampling rate [defaul=%default]")
- parser.add_option("-S", "--resample-rate", type="int", default="8",
- help="Resampling rate in CVSD [default=%default]")
- (options, args) = parser.parse_args ()
-
- if len(args) != 0:
- parser.print_help()
- raise SystemExit, 1
-
- tb = gr.top_block()
-
- src = audio.source(int(options.sample_rate), options.audio_input)
- tx = blks2.cvsd_encode(options.resample_rate)
-
- # todo: add noise
-
- rx = blks2.cvsd_decode(options.resample_rate)
- dst = audio.sink(int(options.sample_rate), options.audio_output)
-
- tb.connect(src, tx, rx, dst)
- tb.run()
-
-if __name__ == '__main__':
- print "Enter CTRL-C to exit"
- try:
- main()
- except KeyboardInterrupt:
- pass
-
diff --git a/gnuradio-examples/python/digital_voice/encdec.py b/gnuradio-examples/python/digital_voice/encdec.py
deleted file mode 100755
index e87d57e2b..000000000
--- a/gnuradio-examples/python/digital_voice/encdec.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2005 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr, blks2
-from gnuradio import audio
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-
-class my_top_block(gr.top_block):
-
- def __init__(self):
- gr.top_block.__init__(self)
-
- parser = OptionParser(option_class=eng_option)
- parser.add_option("-I", "--audio-input", type="string", default="",
- help="pcm input device name. E.g., hw:0,0 or /dev/dsp")
- parser.add_option("-O", "--audio-output", type="string", default="",
- help="pcm output device name. E.g., hw:0,0 or /dev/dsp")
- (options, args) = parser.parse_args ()
- if len(args) != 0:
- parser.print_help()
- raise SystemExit, 1
-
- sample_rate = 8000
- src = audio.source(sample_rate, options.audio_input)
- tx = blks2.digital_voice_tx(self)
- if_gain = gr.multiply_const_cc(10000)
- # channel simulator here...
- rx = blks2.digital_voice_rx(self)
- dst = audio.sink(sample_rate, options.audio_output)
-
- self.connect(src, tx, if_gain, rx, dst)
-
-
-if __name__ == '__main__':
- try:
- my_top_block().run()
- except KeyboardInterrupt:
- pass
diff --git a/gnuradio-examples/python/ofdm/gr_plot_ofdm.py b/gnuradio-examples/python/ofdm/gr_plot_ofdm.py
index e3b347189..b24855148 100755
--- a/gnuradio-examples/python/ofdm/gr_plot_ofdm.py
+++ b/gnuradio-examples/python/ofdm/gr_plot_ofdm.py
@@ -20,14 +20,24 @@
# Boston, MA 02110-1301, USA.
#
-import scipy, pylab, math
-import struct, sys
-from pylab import *
-from matplotlib.font_manager import fontManager, FontProperties
+import math, struct, sys
from optparse import OptionParser
-from scipy import fftpack
from math import log10
+try:
+ import scipy
+ from scipy import fftpack
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
+
+try:
+ from pylab import *
+ from matplotlib.font_manager import fontManager, FontProperties
+except ImportError:
+ print "Error: Program requires matplotlib (see: matplotlib.sourceforge.net)."
+ sys.exit(1)
+
matplotlib.interactive(True)
matplotlib.use('TkAgg')
diff --git a/gnuradio-examples/python/pfb/channelize.py b/gnuradio-examples/python/pfb/channelize.py
index f845c05c6..999e5d20e 100755
--- a/gnuradio-examples/python/pfb/channelize.py
+++ b/gnuradio-examples/python/pfb/channelize.py
@@ -21,10 +21,21 @@
#
from gnuradio import gr, blks2
-import os, time
-import scipy, pylab
-from scipy import fftpack
-from pylab import mlab
+import sys, time
+
+try:
+ import scipy
+ from scipy import fftpack
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
+
+try:
+ import pylab
+ from pylab import mlab
+except ImportError:
+ print "Error: Program requires matplotlib (see: matplotlib.sourceforge.net)."
+ sys.exit(1)
class pfb_top_block(gr.top_block):
def __init__(self):
diff --git a/gnuradio-examples/python/pfb/chirp_channelize.py b/gnuradio-examples/python/pfb/chirp_channelize.py
index edebf5f59..951255d3b 100755
--- a/gnuradio-examples/python/pfb/chirp_channelize.py
+++ b/gnuradio-examples/python/pfb/chirp_channelize.py
@@ -21,10 +21,21 @@
#
from gnuradio import gr, blks2
-import os, time
-import scipy, pylab
-from scipy import fftpack
-from pylab import mlab
+import sys, time
+
+try:
+ import scipy
+ from scipy import fftpack
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
+
+try:
+ import pylab
+ from pylab import mlab
+except ImportError:
+ print "Error: Program requires matplotlib (see: matplotlib.sourceforge.net)."
+ sys.exit(1)
class pfb_top_block(gr.top_block):
def __init__(self):
diff --git a/gnuradio-examples/python/pfb/decimate.py b/gnuradio-examples/python/pfb/decimate.py
index cb5d61b72..643a2c241 100755
--- a/gnuradio-examples/python/pfb/decimate.py
+++ b/gnuradio-examples/python/pfb/decimate.py
@@ -21,14 +21,21 @@
#
from gnuradio import gr, blks2
-import os
-import scipy, pylab
-from scipy import fftpack
-from pylab import mlab
-import time
-
-#print os.getpid()
-#raw_input()
+import sys, time
+
+try:
+ import scipy
+ from scipy import fftpack
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
+
+try:
+ import pylab
+ from pylab import mlab
+except ImportError:
+ print "Error: Program requires matplotlib (see: matplotlib.sourceforge.net)."
+ sys.exit(1)
class pfb_top_block(gr.top_block):
def __init__(self):
diff --git a/gnuradio-examples/python/pfb/fmtest.py b/gnuradio-examples/python/pfb/fmtest.py
index 97df0e0f5..635ee4e9e 100755
--- a/gnuradio-examples/python/pfb/fmtest.py
+++ b/gnuradio-examples/python/pfb/fmtest.py
@@ -1,14 +1,42 @@
#!/usr/bin/env python
#
+# Copyright 2009 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
+from gnuradio import gr, blks2
+import sys, math, time
+
+try:
+ import scipy
+ from scipy import fftpack
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
+
+try:
+ import pylab
+except ImportError:
+ print "Error: Program requires matplotlib (see: matplotlib.sourceforge.net)."
+ sys.exit(1)
-from gnuradio import gr, eng_notation
-from gnuradio import blks2
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-import math, time, sys, scipy, pylab
-from scipy import fftpack
-
class fmtx(gr.hier_block2):
def __init__(self, lo_freq, audio_rate, if_rate):
diff --git a/gnuradio-examples/python/pfb/interpolate.py b/gnuradio-examples/python/pfb/interpolate.py
index a7a2522f8..370cf26a7 100755
--- a/gnuradio-examples/python/pfb/interpolate.py
+++ b/gnuradio-examples/python/pfb/interpolate.py
@@ -21,14 +21,21 @@
#
from gnuradio import gr, blks2
-import os
-import scipy, pylab
-from scipy import fftpack
-from pylab import mlab
-import time
-
-#print os.getpid()
-#raw_input()
+import sys, time
+
+try:
+ import scipy
+ from scipy import fftpack
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
+
+try:
+ import pylab
+ from pylab import mlab
+except ImportError:
+ print "Error: Program requires matplotlib (see: matplotlib.sourceforge.net)."
+ sys.exit(1)
class pfb_top_block(gr.top_block):
def __init__(self):
diff --git a/gnuradio-examples/python/pfb/resampler.py b/gnuradio-examples/python/pfb/resampler.py
index 6be7cf14e..7b296ca71 100755
--- a/gnuradio-examples/python/pfb/resampler.py
+++ b/gnuradio-examples/python/pfb/resampler.py
@@ -1,7 +1,39 @@
#!/usr/bin/env python
+#
+# Copyright 2009 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
from gnuradio import gr, blks2
-import scipy, pylab
+import sys
+
+try:
+ import scipy
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
+
+try:
+ import pylab
+except ImportError:
+ print "Error: Program requires matplotlib (see: matplotlib.sourceforge.net)."
+ sys.exit(1)
class mytb(gr.top_block):
def __init__(self, fs_in, fs_out, fc, N=10000):
diff --git a/gnuradio-examples/python/pfb/synth_filter.py b/gnuradio-examples/python/pfb/synth_filter.py
index a1562f9ea..074d9cb2c 100755
--- a/gnuradio-examples/python/pfb/synth_filter.py
+++ b/gnuradio-examples/python/pfb/synth_filter.py
@@ -21,7 +21,19 @@
#
from gnuradio import gr, blks2
-import scipy, pylab
+import sys
+
+try:
+ import scipy
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
+
+try:
+ import pylab
+except ImportError:
+ print "Error: Program requires matplotlib (see: matplotlib.sourceforge.net)."
+ sys.exit(1)
def main():
N = 1000000
diff --git a/gnuradio-examples/python/pfb/synth_to_chan.py b/gnuradio-examples/python/pfb/synth_to_chan.py
index 1beda1a54..7e454d903 100755
--- a/gnuradio-examples/python/pfb/synth_to_chan.py
+++ b/gnuradio-examples/python/pfb/synth_to_chan.py
@@ -21,7 +21,19 @@
#
from gnuradio import gr, blks2
-import scipy, pylab
+import sys
+
+try:
+ import scipy
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
+
+try:
+ import pylab
+except ImportError:
+ print "Error: Program requires matplotlib (see: matplotlib.sourceforge.net)."
+ sys.exit(1)
def main():
N = 1000000
diff --git a/gnuradio-examples/python/tags/.gitignore b/gnuradio-examples/python/tags/.gitignore
new file mode 100644
index 000000000..b336cc7ce
--- /dev/null
+++ b/gnuradio-examples/python/tags/.gitignore
@@ -0,0 +1,2 @@
+/Makefile
+/Makefile.in
diff --git a/gnuradio-examples/python/digital_voice/Makefile.am b/gnuradio-examples/python/tags/Makefile.am
index 60f363b90..5d71bf9b0 100644
--- a/gnuradio-examples/python/digital_voice/Makefile.am
+++ b/gnuradio-examples/python/tags/Makefile.am
@@ -1,5 +1,5 @@
#
-# Copyright 2004,2005,2009 Free Software Foundation, Inc.
+# Copyright 2011 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -21,8 +21,9 @@
include $(top_srcdir)/Makefile.common
-ourdatadir = $(exampledir)/digital_voice
+ourdatadir = $(exampledir)/tags
+
+dist_ourdata_SCRIPTS = \
+ test_file_tags.py \
+ uhd_burst_detector.py
-dist_ourdata_SCRIPTS = \
- encdec.py \
- cvsd_test.py
diff --git a/gnuradio-examples/python/tags/test_file_tags.py b/gnuradio-examples/python/tags/test_file_tags.py
index 4ff4549ef..446986cd7 100755
--- a/gnuradio-examples/python/tags/test_file_tags.py
+++ b/gnuradio-examples/python/tags/test_file_tags.py
@@ -1,7 +1,33 @@
#!/usr/bin/env python
+#
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
from gnuradio import gr
-import scipy
+import sys
+
+try:
+ import scipy
+except ImportError:
+ print "Error: Program requires scipy (see: www.scipy.org)."
+ sys.exit(1)
def main():
data = scipy.arange(0, 32000, 1).tolist()
diff --git a/gnuradio-examples/python/tags/uhd_burst_detector.py b/gnuradio-examples/python/tags/uhd_burst_detector.py
index f8ebbe66a..ffa419562 100755
--- a/gnuradio-examples/python/tags/uhd_burst_detector.py
+++ b/gnuradio-examples/python/tags/uhd_burst_detector.py
@@ -1,4 +1,24 @@
#!/usr/bin/env python
+#
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
from gnuradio import eng_notation
from gnuradio import gr
@@ -9,16 +29,16 @@ from gnuradio.gr import firdes
from optparse import OptionParser
class uhd_burst_detector(gr.top_block):
- def __init__(self, frequency, sample_rate,
- uhd_address="192.168.10.2", trigger=False):
+ def __init__(self, uhd_address, options):
gr.top_block.__init__(self)
- self.freq = frequency
- self.samp_rate = sample_rate
self.uhd_addr = uhd_address
- self.gain = 32
- self.trigger = trigger
+ self.freq = options.freq
+ self.samp_rate = options.samp_rate
+ self.gain = options.gain
+ self.threshold = options.threshold
+ self.trigger = options.trigger
self.uhd_src = uhd.single_usrp_source(
device_addr=self.uhd_addr,
@@ -32,7 +52,6 @@ class uhd_burst_detector(gr.top_block):
taps = firdes.low_pass_2(1, 1, 0.4, 0.1, 60)
self.chanfilt = gr.fir_filter_ccc(10, taps)
- self.ann0 = gr.annotator_alltoall(100000, gr.sizeof_gr_complex)
self.tagger = gr.burst_tagger(gr.sizeof_gr_complex)
# Dummy signaler to collect a burst on known periods
@@ -40,11 +59,18 @@ class uhd_burst_detector(gr.top_block):
self.signal = gr.vector_source_s(data, True)
# Energy detector to get signal burst
+ ## use squelch to detect energy
+ self.det = gr.simple_squelch_cc(self.threshold, 0.01)
+ ## convert to mag squared (float)
self.c2m = gr.complex_to_mag_squared()
- self.iir = gr.single_pole_iir_filter_ff(0.0001)
- self.sub = gr.sub_ff()
- self.mult = gr.multiply_const_ff(32768)
+ ## average to debounce
+ self.avg = gr.single_pole_iir_filter_ff(0.01)
+ ## rescale signal for conversion to short
+ self.scale = gr.multiply_const_ff(2**16)
+ ## signal input uses shorts
self.f2s = gr.float_to_short()
+
+ # Use file sink burst tagger to capture bursts
self.fsnk = gr.tagged_file_sink(gr.sizeof_gr_complex, self.samp_rate)
@@ -60,17 +86,12 @@ class uhd_burst_detector(gr.top_block):
else:
# Connect an energy detector signaler to the burst tagger
- self.connect((self.uhd_src, 0), (self.c2m, 0))
- self.connect((self.c2m, 0), (self.sub, 0))
- self.connect((self.c2m, 0), (self.iir, 0))
- self.connect((self.iir, 0), (self.sub, 1))
- self.connect((self.sub, 0), (self.mult,0))
- self.connect((self.mult, 0), (self.f2s, 0))
- self.connect((self.f2s, 0), (self.tagger, 1))
+ self.connect(self.uhd_src, self.det)
+ self.connect(self.det, self.c2m, self.avg, self.scale, self.f2s)
+ self.connect(self.f2s, (self.tagger, 1))
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
- self.wxgui_fftsink2_0.set_sample_rate(self.samp_rate/10)
self.uhd_src_0.set_samp_rate(self.samp_rate)
if __name__ == '__main__':
@@ -83,16 +104,15 @@ if __name__ == '__main__':
help="set frequency to FREQ", metavar="FREQ")
parser.add_option("-g", "--gain", type="eng_float", default=0,
help="set gain in dB [default=%default]")
- parser.add_option("-R", "--rate", type="eng_float", default=200000,
+ parser.add_option("-R", "--samp-rate", type="eng_float", default=200000,
help="set USRP sample rate [default=%default]")
+ parser.add_option("-t", "--threshold", type="float", default=-60,
+ help="Set the detection power threshold (dBm) [default=%default")
parser.add_option("-T", "--trigger", action="store_true", default=False,
help="Use internal trigger instead of detector [default=%default]")
(options, args) = parser.parse_args()
- frequency = options.freq
- samp_rate = samp_rate = options.rate
uhd_addr = options.address
- trigger = options.trigger
- tb = uhd_burst_detector(frequency, samp_rate, uhd_addr, trigger)
+ tb = uhd_burst_detector(uhd_addr, options)
tb.run()