summaryrefslogtreecommitdiff
path: root/gr-digital
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital')
-rw-r--r--gr-digital/examples/.gitignore6
-rw-r--r--gr-digital/examples/Makefile.am12
-rwxr-xr-xgr-digital/examples/benchmark_tx.py4
-rwxr-xr-xgr-digital/examples/gen_whitener.py40
-rwxr-xr-xgr-digital/examples/run_length.py83
-rwxr-xr-xgr-digital/examples/rx_voice.py151
-rwxr-xr-xgr-digital/examples/tx_voice.py158
-rw-r--r--gr-digital/grc/Makefile.am12
-rw-r--r--gr-digital/grc/digital_binary_slicer_fb.xml20
-rw-r--r--gr-digital/grc/digital_block_tree.xml10
-rw-r--r--gr-digital/grc/digital_clock_recovery_mm_xx.xml64
-rw-r--r--gr-digital/grc/digital_constellation_decoder_cb.xml25
-rw-r--r--gr-digital/grc/digital_correlate_access_code_bb.xml31
-rw-r--r--gr-digital/grc/digital_dxpsk_mod.xml6
-rw-r--r--gr-digital/grc/digital_fll_band_edge_cc.xml6
-rw-r--r--gr-digital/grc/digital_mpsk_receiver_cc.xml6
-rw-r--r--gr-digital/grc/digital_psk_mod.xml11
-rw-r--r--gr-digital/grc/digital_qam_mod.xml11
18 files changed, 620 insertions, 36 deletions
diff --git a/gr-digital/examples/.gitignore b/gr-digital/examples/.gitignore
index b336cc7ce..d7028d40d 100644
--- a/gr-digital/examples/.gitignore
+++ b/gr-digital/examples/.gitignore
@@ -1,2 +1,8 @@
/Makefile
/Makefile.in
+/*.8b
+/*.16s
+/*.16i
+/*.32f
+/*.32fc
+/*.16sc
diff --git a/gr-digital/examples/Makefile.am b/gr-digital/examples/Makefile.am
index ca36716fa..849e826a1 100644
--- a/gr-digital/examples/Makefile.am
+++ b/gr-digital/examples/Makefile.am
@@ -24,10 +24,18 @@ include $(top_srcdir)/Makefile.common
ourdatadir = $(exampledir)/digital
noinst_PYTHON = \
- example_fll.py
+ example_costas.py \
+ example_fll.py \
+ example_timing.py
dist_ourdata_SCRIPTS = \
transmit_path.py \
- receive_path.py
+ receive_path.py \
+ benchmark_tx.py \
+ benchmark_rx.py \
+ tx_voice.py \
+ rx_voice.py \
+ run_length.py \
+ gen_whitener.py
diff --git a/gr-digital/examples/benchmark_tx.py b/gr-digital/examples/benchmark_tx.py
index e5d24915a..92013a532 100755
--- a/gr-digital/examples/benchmark_tx.py
+++ b/gr-digital/examples/benchmark_tx.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gru
-from gnuradio import usrp
+from gnuradio import gr
+from gnuradio import uhd
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
diff --git a/gr-digital/examples/gen_whitener.py b/gr-digital/examples/gen_whitener.py
new file mode 100755
index 000000000..9a81e4eaa
--- /dev/null
+++ b/gr-digital/examples/gen_whitener.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+from gnuradio import gr, gru
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+import sys
+
+class my_graph(gr.top_block):
+
+ def __init__(self):
+ gr.top_block.__init__(self)
+
+ parser = OptionParser(option_class=eng_option)
+ (options, args) = parser.parse_args ()
+ if len(args) != 0:
+ parser.print_help()
+ raise SystemExit, 1
+
+ src = gr.lfsr_32k_source_s()
+ head = gr.head(gr.sizeof_short, 2048)
+ self.dst = gr.vector_sink_s()
+ self.connect(src, head, self.dst)
+
+if __name__ == '__main__':
+ try:
+ tb = my_graph()
+ tb.run()
+ f = sys.stdout
+ i = 0
+ for s in tb.dst.data():
+ f.write("%3d, " % (s & 0xff,))
+ f.write("%3d, " % ((s >> 8) & 0xff,))
+ i = i+2
+ if i % 16 == 0:
+ f.write('\n')
+
+ except KeyboardInterrupt:
+ pass
+
+
diff --git a/gr-digital/examples/run_length.py b/gr-digital/examples/run_length.py
new file mode 100755
index 000000000..5020655db
--- /dev/null
+++ b/gr-digital/examples/run_length.py
@@ -0,0 +1,83 @@
+#!/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 optparse import OptionParser
+import sys
+
+def main():
+ parser = OptionParser()
+ parser.add_option("-f", "--file", default=None,
+ help="Choose file to read data from.")
+ (options, args) = parser.parse_args()
+
+ if options.file == None:
+ print "Must specify file to read from using '-f'."
+ sys.exit(1)
+ print "Using", options.file, "for data."
+
+ f = open(options.file, 'r')
+ runs = []
+ count = 0
+ current = 0
+ bytes = 0
+ bits = 0
+
+ for ch in f.read():
+ x = ord(ch)
+ bytes = bytes + 1
+ for i in range(7,-1,-1):
+ bits = bits + 1
+ t = (x >> i) & 0x1
+ if t == current:
+ count = count + 1
+ else:
+ if count > 0:
+ if len(runs) < count:
+ for j in range(count - len(runs)):
+ runs.append(0);
+ runs[count-1] = runs[count-1] + 1
+
+ current = 1-current;
+ count = 1
+
+ # Deal with last run at EOF
+ if len(runs) < count and count > 0:
+ for j in range(count - len(runs)):
+ runs.append(0);
+ runs[count-1] = runs[count-1] + 1
+
+ chk = 0
+ print "Bytes read: ", bytes
+ print "Bits read: ", bits
+ print
+ for i in range(len(runs)):
+ chk = chk + runs[i]*(i+1)
+ print "Runs of length", i+1, ":", runs[i]
+ print
+ print "Sum of runs:", chk, "bits"
+ print
+ print "Maximum run length is", len(runs), "bits"
+
+if __name__ == "__main__":
+ main()
+
+
diff --git a/gr-digital/examples/rx_voice.py b/gr-digital/examples/rx_voice.py
new file mode 100755
index 000000000..d29d64ed6
--- /dev/null
+++ b/gr-digital/examples/rx_voice.py
@@ -0,0 +1,151 @@
+#!/usr/bin/env python
+#
+# Copyright 2005,2006,2009,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
+from gnuradio import uhd
+from gnuradio import audio
+from gnuradio import eng_notation
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+from gnuradio.vocoder import gsm_full_rate
+
+# From gr-digital
+from gnuradio import digital
+
+import random
+import struct
+import sys
+
+# from current dir
+from receive_path import receive_path
+
+#import os
+#print os.getpid()
+#raw_input('Attach and press enter')
+
+
+class audio_tx(gr.hier_block2):
+ def __init__(self, audio_output_dev):
+ gr.hier_block2.__init__(self, "audio_tx",
+ gr.io_signature(0, 0, 0), # Input signature
+ gr.io_signature(0, 0, 0)) # Output signature
+
+ sample_rate = 8000
+ self.packet_src = gr.message_source(33)
+ voice_decoder = gsm_full_rate.decode_ps()
+ s2f = gr.short_to_float ()
+ sink_scale = gr.multiply_const_ff(1.0/32767.)
+ audio_sink = audio.sink(sample_rate, audio_output_dev)
+ self.connect(self.packet_src, voice_decoder, s2f, sink_scale, audio_sink)
+
+ def msgq(self):
+ return self.packet_src.msgq()
+
+
+class my_top_block(gr.top_block):
+ def __init__(self, demod_class, rx_callback, options):
+ gr.top_block.__init__(self)
+ self.rxpath = receive_path(demod_class, rx_callback, options)
+ self.audio_tx = audio_tx(options.audio_output)
+
+ if(options.from_file is not None):
+ self.thr = gr.throttle(gr.sizeof_gr_complex, options.bitrate)
+ self.source = gr.file_source(gr.sizeof_gr_complex, options.from_file)
+ self.connect(self.source, self.thr, self.rxpath)
+ else:
+ self.thr = gr.throttle(gr.sizeof_gr_complex, 1e6)
+ self.source = gr.null_source(gr.sizeof_gr_complex)
+ self.connect(self.source, self.thr, self.rxpath)
+
+ self.connect(self.audio_tx)
+
+# /////////////////////////////////////////////////////////////////////////////
+# main
+# /////////////////////////////////////////////////////////////////////////////
+
+global n_rcvd, n_right
+
+def main():
+ global n_rcvd, n_right
+
+ n_rcvd = 0
+ n_right = 0
+
+ def rx_callback(ok, payload):
+ global n_rcvd, n_right
+ n_rcvd += 1
+ if ok:
+ n_right += 1
+
+ tb.audio_tx.msgq().insert_tail(gr.message_from_string(payload))
+
+ print "ok = %r n_rcvd = %4d n_right = %4d" % (
+ ok, n_rcvd, n_right)
+
+ demods = digital.modulation_utils2.type_1_demods()
+
+ # Create Options Parser:
+ parser = OptionParser (option_class=eng_option, conflict_handler="resolve")
+ expert_grp = parser.add_option_group("Expert")
+
+ parser.add_option("-m", "--modulation", type="choice", choices=demods.keys(),
+ default='gmsk',
+ help="Select modulation from: %s [default=%%default]"
+ % (', '.join(demods.keys()),))
+ 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("","--from-file", default=None,
+ help="input file of samples to demod")
+ receive_path.add_options(parser, expert_grp)
+
+ for mod in demods.values():
+ mod.add_options(expert_grp)
+
+ parser.set_defaults(bitrate=50e3) # override default bitrate default
+ (options, args) = parser.parse_args ()
+
+ if len(args) != 0:
+ parser.print_help(sys.stderr)
+ sys.exit(1)
+
+ if options.from_file is None:
+ if options.rx_freq is None:
+ sys.stderr.write("You must specify -f FREQ or --freq FREQ\n")
+ parser.print_help(sys.stderr)
+ sys.exit(1)
+
+
+ # build the graph
+ tb = my_top_block(demods[options.modulation], rx_callback, options)
+
+ r = gr.enable_realtime_scheduling()
+ if r != gr.RT_OK:
+ print "Warning: Failed to enable realtime scheduling."
+
+ tb.run()
+
+if __name__ == '__main__':
+ try:
+ main()
+ except KeyboardInterrupt:
+ pass
diff --git a/gr-digital/examples/tx_voice.py b/gr-digital/examples/tx_voice.py
new file mode 100755
index 000000000..f4f2c3a86
--- /dev/null
+++ b/gr-digital/examples/tx_voice.py
@@ -0,0 +1,158 @@
+#!/usr/bin/env python
+#
+# Copyright 2005-2007,2009,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
+from gnuradio import uhd
+from gnuradio import audio
+from gnuradio import eng_notation
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+from gnuradio.vocoder import gsm_full_rate
+
+# From gr-digital
+from gnuradio import digital
+
+import random
+import time
+import struct
+import sys
+
+# from current dir
+from transmit_path import transmit_path
+
+#import os
+#print os.getpid()
+#raw_input('Attach and press enter')
+
+
+class audio_rx(gr.hier_block2):
+ def __init__(self, audio_input_dev):
+ gr.hier_block2.__init__(self, "audio_rx",
+ gr.io_signature(0, 0, 0), # Input signature
+ gr.io_signature(0, 0, 0)) # Output signature
+ sample_rate = 8000
+ src = audio.source(sample_rate, audio_input_dev)
+ src_scale = gr.multiply_const_ff(32767)
+ f2s = gr.float_to_short()
+ voice_coder = gsm_full_rate.encode_sp()
+ self.packets_from_encoder = gr.msg_queue()
+ packet_sink = gr.message_sink(33, self.packets_from_encoder, False)
+ self.connect(src, src_scale, f2s, voice_coder, packet_sink)
+
+ def get_encoded_voice_packet(self):
+ return self.packets_from_encoder.delete_head()
+
+
+class my_top_block(gr.top_block):
+
+ def __init__(self, modulator_class, options):
+ gr.top_block.__init__(self)
+ self.txpath = transmit_path(modulator_class, options)
+ self.audio_rx = audio_rx(options.audio_input)
+
+ if(options.to_file is not None):
+ self.sink = gr.file_sink(gr.sizeof_gr_complex, options.to_file)
+ else:
+ self.sink = gr.null_sink(gr.sizeof_gr_complex)
+
+ self.connect(self.audio_rx)
+ self.connect(self.txpath, self.sink)
+
+
+# /////////////////////////////////////////////////////////////////////////////
+# main
+# /////////////////////////////////////////////////////////////////////////////
+
+def main():
+
+ def send_pkt(payload='', eof=False):
+ return tb.txpath.send_pkt(payload, eof)
+
+ def rx_callback(ok, payload):
+ print "ok = %r, payload = '%s'" % (ok, payload)
+
+ mods = digital.modulation_utils2.type_1_mods()
+
+ parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
+ expert_grp = parser.add_option_group("Expert")
+
+ parser.add_option("-m", "--modulation", type="choice", choices=mods.keys(),
+ default='gmsk',
+ help="Select modulation from: %s [default=%%default]"
+ % (', '.join(mods.keys()),))
+ parser.add_option("-M", "--megabytes", type="eng_float", default=0,
+ help="set megabytes to transmit [default=inf]")
+ 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("","--to-file", default=None,
+ help="Output file for modulated samples")
+ transmit_path.add_options(parser, expert_grp)
+
+ for mod in mods.values():
+ mod.add_options(expert_grp)
+
+ parser.set_defaults(bitrate=50e3) # override default bitrate default
+ (options, args) = parser.parse_args ()
+
+ if len(args) != 0:
+ parser.print_help()
+ sys.exit(1)
+
+ if options.to_file is None:
+ if options.tx_freq is None:
+ sys.stderr.write("You must specify -f FREQ or --freq FREQ\n")
+ parser.print_help(sys.stderr)
+ sys.exit(1)
+
+ # build the graph
+ tb = my_top_block(mods[options.modulation], options)
+
+ r = gr.enable_realtime_scheduling()
+ if r != gr.RT_OK:
+ print "Warning: failed to enable realtime scheduling"
+
+
+ tb.start() # start flow graph
+
+ # generate and send packets
+ nbytes = int(1e6 * options.megabytes)
+ n = 0
+ pktno = 0
+
+ while nbytes == 0 or n < nbytes:
+ packet = tb.audio_rx.get_encoded_voice_packet()
+ s = packet.to_string()
+ send_pkt(s)
+ n += len(s)
+ sys.stderr.write('.')
+ pktno += 1
+
+ send_pkt(eof=True)
+ tb.wait() # wait for it to finish
+
+
+if __name__ == '__main__':
+ try:
+ main()
+ except KeyboardInterrupt:
+ pass
diff --git a/gr-digital/grc/Makefile.am b/gr-digital/grc/Makefile.am
index 963939f12..e4426e721 100644
--- a/gr-digital/grc/Makefile.am
+++ b/gr-digital/grc/Makefile.am
@@ -25,15 +25,19 @@ grcblocksdir = $(grc_blocksdir)
dist_grcblocks_DATA = \
digital_block_tree.xml \
+ digital_binary_slicer_fb.xml \
+ digital_clock_recovery_mm_xx.xml \
+ digital_constellation_decoder_cb.xml \
+ digital_correlate_access_code_bb.xml \
digital_costas_loop_cc.xml \
digital_cma_equalizer_cc.xml \
- digital_lms_dd_equalizer_cc.xml \
+ digital_fll_band_edge_cc.xml \
digital_kurtotic_equalizer_cc.xml \
+ digital_lms_dd_equalizer_cc.xml \
+ digital_mpsk_receiver_cc.xml \
digital_dxpsk_mod.xml \
digital_dxpsk_demod.xml \
digital_psk_mod.xml \
digital_psk_demod.xml \
digital_qam_mod.xml \
- digital_qam_demod.xml \
- digital_fll_band_edge_cc.xml \
- digital_mpsk_receiver_cc.xml
+ digital_qam_demod.xml
diff --git a/gr-digital/grc/digital_binary_slicer_fb.xml b/gr-digital/grc/digital_binary_slicer_fb.xml
new file mode 100644
index 000000000..3187d13f9
--- /dev/null
+++ b/gr-digital/grc/digital_binary_slicer_fb.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Binary Slicer
+###################################################
+ -->
+<block>
+ <name>Binary Slicer</name>
+ <key>digital_binary_slicer_fb</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.binary_slicer_fb()</make>
+ <sink>
+ <name>in</name>
+ <type>float</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_block_tree.xml b/gr-digital/grc/digital_block_tree.xml
index 3432d876c..088fe1c10 100644
--- a/gr-digital/grc/digital_block_tree.xml
+++ b/gr-digital/grc/digital_block_tree.xml
@@ -30,11 +30,15 @@
<name></name> <!-- Blank for Root Name -->
<cat>
<name>Digital</name>
- <block>digital_costas_loop_cc</block>
+ <block>digital_binary_slicer_fb</block>
+ <block>digital_clock_recovery_mm_xx</block>
<block>digital_cma_equalizer_cc</block>
- <block>digital_lms_dd_equalizer_cc</block>
- <block>digital_kurtotic_equalizer_cc</block>
+ <block>digital_constellation_decoder_cb</block>
+ <block>digital_correlate_access_code_bb</block>
+ <block>digital_costas_loop_cc</block>
<block>digital_fll_band_edge_cc</block>
+ <block>digital_kurtotic_equalizer_cc</block>
+ <block>digital_lms_dd_equalizer_cc</block>
<block>digital_mpsk_receiver_cc</block>
</cat>
<cat>
diff --git a/gr-digital/grc/digital_clock_recovery_mm_xx.xml b/gr-digital/grc/digital_clock_recovery_mm_xx.xml
new file mode 100644
index 000000000..d9c5ea4ff
--- /dev/null
+++ b/gr-digital/grc/digital_clock_recovery_mm_xx.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Clock Recovery MM
+###################################################
+ -->
+<block>
+ <name>Clock Recovery MM</name>
+ <key>digital_clock_recovery_mm_xx</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.clock_recovery_mm_$(type.fcn)($omega, $gain_omega, $mu, $gain_mu, $omega_relative_limit)</make>
+ <callback>set_omega($omega)</callback>
+ <callback>set_gain_omega($gain_omega)</callback>
+ <callback>set_mu($mu)</callback>
+ <callback>set_gain_mu($gain_mu)</callback>
+ <param>
+ <name>Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Complex</name>
+ <key>complex</key>
+ <opt>fcn:cc</opt>
+ </option>
+ <option>
+ <name>Float</name>
+ <key>float</key>
+ <opt>fcn:ff</opt>
+ </option>
+ </param>
+ <param>
+ <name>Omega</name>
+ <key>omega</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Gain Omega</name>
+ <key>gain_omega</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Mu</name>
+ <key>mu</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Gain Mu</name>
+ <key>gain_mu</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Omega Relative Limit</name>
+ <key>omega_relative_limit</key>
+ <type>real</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>$type</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_constellation_decoder_cb.xml b/gr-digital/grc/digital_constellation_decoder_cb.xml
new file mode 100644
index 000000000..c7353e288
--- /dev/null
+++ b/gr-digital/grc/digital_constellation_decoder_cb.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Constellation Decoder
+###################################################
+ -->
+<block>
+ <name>Constellation Decoder</name>
+ <key>digital_constellation_decoder_cb</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.constellation_decoder_cb($constellation)</make>
+ <param>
+ <name>Constellation Object</name>
+ <key>constellation</key>
+ <type>raw</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_correlate_access_code_bb.xml b/gr-digital/grc/digital_correlate_access_code_bb.xml
new file mode 100644
index 000000000..3941834c4
--- /dev/null
+++ b/gr-digital/grc/digital_correlate_access_code_bb.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Correlate Access Code
+###################################################
+ -->
+<block>
+ <name>Correlate Access Code</name>
+ <key>digital_correlate_access_code_bb</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.correlate_access_code_bb($access_code, $threshold)</make>
+ <param>
+ <name>Access Code</name>
+ <key>access_code</key>
+ <value>101010</value>
+ <type>string</type>
+ </param>
+ <param>
+ <name>Threshold</name>
+ <key>threshold</key>
+ <type>int</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_dxpsk_mod.xml b/gr-digital/grc/digital_dxpsk_mod.xml
index 5d59f36e0..fbda9fb1f 100644
--- a/gr-digital/grc/digital_dxpsk_mod.xml
+++ b/gr-digital/grc/digital_dxpsk_mod.xml
@@ -23,7 +23,7 @@
<!--
###################################################
-##DPSK2 Mod - 2, 4, 8
+## DPSK Mod - 2, 4, 8
###################################################
-->
<block>
@@ -33,7 +33,7 @@
<make>digital.$(type)_mod(
samples_per_symbol=$samples_per_symbol,
excess_bw=$excess_bw,
- gray_code=$gray_code,
+ gray_coded=$gray_coded,
verbose=$verbose,
log=$log)
</make>
@@ -68,7 +68,7 @@
</param>
<param>
<name>Gray Code</name>
- <key>gray_code</key>
+ <key>gray_coded</key>
<value>True</value>
<type>bool</type>
<option>
diff --git a/gr-digital/grc/digital_fll_band_edge_cc.xml b/gr-digital/grc/digital_fll_band_edge_cc.xml
index 1c5a34e54..e4da773db 100644
--- a/gr-digital/grc/digital_fll_band_edge_cc.xml
+++ b/gr-digital/grc/digital_fll_band_edge_cc.xml
@@ -6,9 +6,9 @@
-->
<block>
<name>FLL Band-Edge</name>
- <key>gr_fll_band_edge_cc</key>
- <import>from gnuradio import gr</import>
- <make>gr.fll_band_edge_cc($samps_per_sym, $rolloff, $filter_size, $w)</make>
+ <key>digital_fll_band_edge_cc</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.fll_band_edge_cc($samps_per_sym, $rolloff, $filter_size, $w)</make>
<callback>set_loop_bandwidth($w)</callback>
<param>
<name>Type</name>
diff --git a/gr-digital/grc/digital_mpsk_receiver_cc.xml b/gr-digital/grc/digital_mpsk_receiver_cc.xml
index 948f18b6e..ab7e5c209 100644
--- a/gr-digital/grc/digital_mpsk_receiver_cc.xml
+++ b/gr-digital/grc/digital_mpsk_receiver_cc.xml
@@ -6,9 +6,9 @@
-->
<block>
<name>MPSK Receiver</name>
- <key>gr_mpsk_receiver_cc</key>
- <import>from gnuradio import gr</import>
- <make>gr.mpsk_receiver_cc($M, $theta, $w, $fmin, $fmax, $mu, $gain_mu, $omega, $gain_omega, $omega_relative_limit)</make>
+ <key>digital_mpsk_receiver_cc</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.mpsk_receiver_cc($M, $theta, $w, $fmin, $fmax, $mu, $gain_mu, $omega, $gain_omega, $omega_relative_limit)</make>
<callback>set_loop_bandwidth($w)</callback>
<callback>set_mu($mu)</callback>
<callback>set_gain_mu($gain_mu)</callback>
diff --git a/gr-digital/grc/digital_psk_mod.xml b/gr-digital/grc/digital_psk_mod.xml
index f4566c2b4..34ed42c97 100644
--- a/gr-digital/grc/digital_psk_mod.xml
+++ b/gr-digital/grc/digital_psk_mod.xml
@@ -51,11 +51,11 @@
<type>enum</type>
<option>
<name>Yes</name>
- <key>gray</key>
+ <key>"gray"</key>
</option>
<option>
<name>No</name>
- <key>none</key>
+ <key>"none"</key>
</option>
</param>
<param>
@@ -116,15 +116,10 @@
</param>
<sink>
<name>in</name>
- <type>complex</type>
+ <type>byte</type>
</sink>
<source>
<name>out</name>
- <type>byte</type>
- </source>
- <source>
- <name>sync</name>
<type>complex</type>
- <optional>1</optional>
</source>
</block>
diff --git a/gr-digital/grc/digital_qam_mod.xml b/gr-digital/grc/digital_qam_mod.xml
index 87782fe86..4d73d9a68 100644
--- a/gr-digital/grc/digital_qam_mod.xml
+++ b/gr-digital/grc/digital_qam_mod.xml
@@ -51,11 +51,11 @@
<type>enum</type>
<option>
<name>Yes</name>
- <key>gray</key>
+ <key>"gray"</key>
</option>
<option>
<name>No</name>
- <key>none</key>
+ <key>"none"</key>
</option>
</param>
<param>
@@ -116,15 +116,10 @@
</param>
<sink>
<name>in</name>
- <type>complex</type>
+ <type>byte</type>
</sink>
<source>
<name>out</name>
- <type>byte</type>
- </source>
- <source>
- <name>sync</name>
<type>complex</type>
- <optional>1</optional>
</source>
</block>