summaryrefslogtreecommitdiff
path: root/gr-digital/grc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/grc')
-rw-r--r--gr-digital/grc/.gitignore2
-rw-r--r--gr-digital/grc/CMakeLists.txt47
-rw-r--r--gr-digital/grc/Makefile.am50
-rw-r--r--gr-digital/grc/digital_binary_slicer_fb.xml20
-rw-r--r--gr-digital/grc/digital_block_tree.xml63
-rw-r--r--gr-digital/grc/digital_clock_recovery_mm_xx.xml64
-rw-r--r--gr-digital/grc/digital_cma_equalizer_cc.xml42
-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_costas_loop_cc.xml38
-rw-r--r--gr-digital/grc/digital_dxpsk_demod.xml153
-rw-r--r--gr-digital/grc/digital_dxpsk_mod.xml121
-rw-r--r--gr-digital/grc/digital_fll_band_edge_cc.xml70
-rw-r--r--gr-digital/grc/digital_kurtotic_equalizer_cc.xml31
-rw-r--r--gr-digital/grc/digital_lms_dd_equalizer_cc.xml41
-rw-r--r--gr-digital/grc/digital_mpsk_receiver_cc.xml75
-rw-r--r--gr-digital/grc/digital_ofdm_cyclic_prefixer.xml52
-rw-r--r--gr-digital/grc/digital_ofdm_demod.xml143
-rw-r--r--gr-digital/grc/digital_ofdm_frame_acquisition.xml77
-rw-r--r--gr-digital/grc/digital_ofdm_insert_preamble.xml57
-rw-r--r--gr-digital/grc/digital_ofdm_mod.xml156
-rw-r--r--gr-digital/grc/digital_ofdm_sampler.xml67
-rw-r--r--gr-digital/grc/digital_ofdm_sync_pn.xml61
-rw-r--r--gr-digital/grc/digital_psk_demod.xml158
-rw-r--r--gr-digital/grc/digital_psk_mod.xml125
-rw-r--r--gr-digital/grc/digital_qam_demod.xml158
-rw-r--r--gr-digital/grc/digital_qam_mod.xml125
27 files changed, 2052 insertions, 0 deletions
diff --git a/gr-digital/grc/.gitignore b/gr-digital/grc/.gitignore
new file mode 100644
index 000000000..3dda72986
--- /dev/null
+++ b/gr-digital/grc/.gitignore
@@ -0,0 +1,2 @@
+Makefile.in
+Makefile
diff --git a/gr-digital/grc/CMakeLists.txt b/gr-digital/grc/CMakeLists.txt
new file mode 100644
index 000000000..330098539
--- /dev/null
+++ b/gr-digital/grc/CMakeLists.txt
@@ -0,0 +1,47 @@
+# 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.
+
+install(FILES
+ 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_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_ofdm_mod.xml
+ digital_ofdm_demod.xml
+ digital_ofdm_cyclic_prefixer.xml
+ digital_ofdm_frame_acquisition.xml
+ digital_ofdm_insert_preamble.xml
+ digital_ofdm_sampler.xml
+ digital_ofdm_sync_pn.xml
+ DESTINATION ${GRC_BLOCKS_DIR}
+ COMPONENT "digital_python"
+)
diff --git a/gr-digital/grc/Makefile.am b/gr-digital/grc/Makefile.am
new file mode 100644
index 000000000..ef4e38600
--- /dev/null
+++ b/gr-digital/grc/Makefile.am
@@ -0,0 +1,50 @@
+#
+# 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.
+#
+
+include $(top_srcdir)/Makefile.common
+
+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_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_ofdm_mod.xml \
+ digital_ofdm_demod.xml \
+ digital_ofdm_cyclic_prefixer.xml \
+ digital_ofdm_frame_acquisition.xml \
+ digital_ofdm_insert_preamble.xml \
+ digital_ofdm_sampler.xml \
+ digital_ofdm_sync_pn.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
new file mode 100644
index 000000000..816df7f45
--- /dev/null
+++ b/gr-digital/grc/digital_block_tree.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+-->
+
+<!--
+###################################################
+##Block Tree for GR Digital blocks.
+###################################################
+ -->
+<cat>
+ <name></name> <!-- Blank for Root Name -->
+ <cat>
+ <name>Digital</name>
+ <block>digital_binary_slicer_fb</block>
+ <block>digital_clock_recovery_mm_xx</block>
+ <block>digital_cma_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>
+ <name>Digital Modulators</name>
+ <block>digital_dxpsk_mod</block>
+ <block>digital_dxpsk_demod</block>
+ <block>digital_psk_mod</block>
+ <block>digital_psk_demod</block>
+ <block>digital_qam_mod</block>
+ <block>digital_qam_demod</block>
+ </cat>
+ <cat>
+ <name>OFDM</name>
+ <block>digital_ofdm_mod</block>
+ <block>digital_ofdm_demod</block>
+ <block>digital_ofdm_cyclic_prefixer</block>
+ <block>digital_ofdm_frame_acquisition</block>
+ <block>digital_ofdm_insert_preamble</block>
+ <block>digital_ofdm_sampler</block>
+ <block>digital_ofdm_sync_pn</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_cma_equalizer_cc.xml b/gr-digital/grc/digital_cma_equalizer_cc.xml
new file mode 100644
index 000000000..118c18e29
--- /dev/null
+++ b/gr-digital/grc/digital_cma_equalizer_cc.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## CMA Equalizer
+###################################################
+ -->
+<block>
+ <name>CMA Equalizer</name>
+ <key>digital_cma_equalizer_cc</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.cma_equalizer_cc($num_taps, $modulus, $mu, $sps)</make>
+ <callback>set_gain($mu)</callback>
+ <callback>set_modulus($modulus)</callback>
+ <param>
+ <name>Num. Taps</name>
+ <key>num_taps</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Modulus</name>
+ <key>modulus</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Gain</name>
+ <key>mu</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Samples per Symbol</name>
+ <key>sps</key>
+ <type>int</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</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_costas_loop_cc.xml b/gr-digital/grc/digital_costas_loop_cc.xml
new file mode 100644
index 000000000..668c43dec
--- /dev/null
+++ b/gr-digital/grc/digital_costas_loop_cc.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Costas Loop
+###################################################
+ -->
+<block>
+ <name>Costas Loop</name>
+ <key>digital_costas_loop_cc</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.costas_loop_cc($w, $order)</make>
+ <callback>set_loop_bandwidth($w)</callback>
+ <param>
+ <name>Loop Bandwidth</name>
+ <key>w</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Order</name>
+ <key>order</key>
+ <type>int</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+
+ <!-- Optional Outputs -->
+ <source>
+ <name>frequency</name>
+ <type>float</type>
+ <optional>1</optional>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_dxpsk_demod.xml b/gr-digital/grc/digital_dxpsk_demod.xml
new file mode 100644
index 000000000..d5e742097
--- /dev/null
+++ b/gr-digital/grc/digital_dxpsk_demod.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+##DPSK2 Mod - 2, 4, 8
+###################################################
+ -->
+<block>
+ <name>DPSK Demod</name>
+ <key>digital_dxpsk_demod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.$(type)_demod(
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ phase_bw=$phase_bw,
+ timing_bw=$timing_bw,
+ gray_coded=$gray_coded,
+ verbose=$verbose,
+ log=$log
+)</make>
+ <callback>clock_recov.set_loop_bandwidth($phase_bw)</callback>
+ <callback>time_recov.set_loop_bandwidth($timing_bw)</callback>
+ <param>
+ <name>Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>DBPSK</name>
+ <key>dbpsk</key>
+ </option>
+ <option>
+ <name>DQPSK</name>
+ <key>dqpsk</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Phase Loop Bandwidth</name>
+ <key>phase_bw</key>
+ <value>6.28/100.0</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Timing Bandwidth</name>
+ <key>timing_bw</key>
+ <value>6.28/100.0</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Omega Relative Limit</name>
+ <key>omega_relative_limit</key>
+ <value>0.005</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>gray_coded</key>
+ <value>True</value>
+ <type>bool</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Sync Out</name>
+ <key>sync_out</key>
+ <value>False</value>
+ <type>bool</type>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </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_dxpsk_mod.xml b/gr-digital/grc/digital_dxpsk_mod.xml
new file mode 100644
index 000000000..fbda9fb1f
--- /dev/null
+++ b/gr-digital/grc/digital_dxpsk_mod.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+## DPSK Mod - 2, 4, 8
+###################################################
+ -->
+<block>
+ <name>DPSK Mod</name>
+ <key>digital_dxpsk_mod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.$(type)_mod(
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ gray_coded=$gray_coded,
+ verbose=$verbose,
+ log=$log)
+ </make>
+ <param>
+ <name>Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>DBPSK</name>
+ <key>dbpsk</key>
+ </option>
+ <option>
+ <name>DQPSK</name>
+ <key>dqpsk</key>
+ </option>
+ <option>
+ <name>D8PSK</name>
+ <key>d8psk</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>gray_coded</key>
+ <value>True</value>
+ <type>bool</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_fll_band_edge_cc.xml b/gr-digital/grc/digital_fll_band_edge_cc.xml
new file mode 100644
index 000000000..e4da773db
--- /dev/null
+++ b/gr-digital/grc/digital_fll_band_edge_cc.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## FLL using Band-Edge Filters
+###################################################
+ -->
+<block>
+ <name>FLL Band-Edge</name>
+ <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>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Complex->Complex</name>
+ <key>cc</key>
+ <opt>input:complex</opt>
+ <opt>output:complex</opt>
+ </option>
+ </param>
+
+ <param>
+ <name>Samples Per Symbol</name>
+ <key>samps_per_sym</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Filter Rolloff Factor</name>
+ <key>rolloff</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Prototype Filter Size</name>
+ <key>filter_size</key>
+ <type>int</type>
+ </param>
+
+ <param>
+ <name>Loop Bandwidth</name>
+ <key>w</key>
+ <type>real</type>
+ </param>
+
+ <sink>
+ <name>in</name>
+ <type>$type.input</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type.output</type>
+ </source>
+ <source>
+ <name>freq</name>
+ <type>float</type>
+ <optional>1</optional>
+ </source>
+ <source>
+ <name>phase</name>
+ <type>float</type>
+ <optional>1</optional>
+ </source>
+ <source>
+ <name>error</name>
+ <type>float</type>
+ <optional>1</optional>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_kurtotic_equalizer_cc.xml b/gr-digital/grc/digital_kurtotic_equalizer_cc.xml
new file mode 100644
index 000000000..8c4a2012d
--- /dev/null
+++ b/gr-digital/grc/digital_kurtotic_equalizer_cc.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## Kurtotic Equalizer
+###################################################
+ -->
+<block>
+ <name>Kurtotic Equalizer</name>
+ <key>digital_kurtotic_equalizer_cc</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.kurtotic_equalizer_cc($num_taps, $mu)</make>
+ <callback>set_gain($mu)</callback>
+ <param>
+ <name>Num. Taps</name>
+ <key>num_taps</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Mu</name>
+ <key>mu</key>
+ <type>real</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_lms_dd_equalizer_cc.xml b/gr-digital/grc/digital_lms_dd_equalizer_cc.xml
new file mode 100644
index 000000000..0fd7d523b
--- /dev/null
+++ b/gr-digital/grc/digital_lms_dd_equalizer_cc.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## LMS DD Equalizer
+###################################################
+ -->
+<block>
+ <name>LMS DD Equalizer</name>
+ <key>digital_lms_dd_equalizer_cc</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.lms_dd_equalizer_cc($num_taps, $mu, $sps, $cnst)</make>
+ <callback>set_gain($mu)</callback>
+ <param>
+ <name>Gain</name>
+ <key>mu</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Num. Taps</name>
+ <key>num_taps</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Samples per Symbol</name>
+ <key>sps</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Constellation Object</name>
+ <key>cnst</key>
+ <type>raw</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_mpsk_receiver_cc.xml b/gr-digital/grc/digital_mpsk_receiver_cc.xml
new file mode 100644
index 000000000..ab7e5c209
--- /dev/null
+++ b/gr-digital/grc/digital_mpsk_receiver_cc.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##MPSK Receiver
+###################################################
+ -->
+<block>
+ <name>MPSK Receiver</name>
+ <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>
+ <callback>set_omega($omega)</callback>
+ <callback>set_gain_omega($gain_omega)</callback>
+ <param>
+ <name>M</name>
+ <key>M</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Theta</name>
+ <key>theta</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Loop Bandwidth</name>
+ <key>w</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Min Freq</name>
+ <key>fmin</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Max Freq</name>
+ <key>fmax</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</name>
+ <key>omega</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Gain Omega</name>
+ <key>gain_omega</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>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_ofdm_cyclic_prefixer.xml b/gr-digital/grc/digital_ofdm_cyclic_prefixer.xml
new file mode 100644
index 000000000..d5e5d3894
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_cyclic_prefixer.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<!--
+###################################################
+##OFDM Cyclic Prefixer
+###################################################
+ -->
+<block>
+ <name>OFDM Cyclic Prefixer</name>
+ <key>digital_ofdm_cyclic_prefixer</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.ofdm_cyclic_prefixer($input_size, $output_size)</make>
+ <param>
+ <name>Input Size</name>
+ <key>input_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Output Size</name>
+ <key>output_size</key>
+ <type>int</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ <vlen>$input_size</vlen>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_ofdm_demod.xml b/gr-digital/grc/digital_ofdm_demod.xml
new file mode 100644
index 000000000..9f3a83715
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_demod.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<!--
+###################################################
+##OFDM Demod
+###################################################
+ -->
+<block>
+ <name>OFDM Demod</name>
+ <key>digital_ofdm_demod</key>
+ <import>from grc_gnuradio import blks2 as grc_blks2</import>
+ <import>from gnuradio import digital</import>
+ <make>grc_blks2.packet_demod_$(type.fcn)(digital.ofdm_demod(
+ options=grc_blks2.options(
+ modulation="$modulation",
+ fft_length=$fft_length,
+ occupied_tones=$occupied_tones,
+ cp_length=$cp_length,
+ snr=$snr,
+ log=None,
+ verbose=None,
+ ),
+ callback=lambda ok, payload: self.$(id).recv_pkt(ok, payload),
+ ),
+)</make>
+ <param>
+ <name>Output Type</name>
+ <key>type</key>
+ <value>float</value>
+ <type>enum</type>
+ <option>
+ <name>Complex</name>
+ <key>complex</key>
+ <opt>fcn:c</opt>
+ </option>
+ <option>
+ <name>Float</name>
+ <key>float</key>
+ <opt>fcn:f</opt>
+ </option>
+ <option>
+ <name>Int</name>
+ <key>int</key>
+ <opt>fcn:i</opt>
+ </option>
+ <option>
+ <name>Short</name>
+ <key>short</key>
+ <opt>fcn:s</opt>
+ </option>
+ <option>
+ <name>Byte</name>
+ <key>byte</key>
+ <opt>fcn:b</opt>
+ </option>
+ </param>
+ <param>
+ <name>Modulation</name>
+ <key>modulation</key>
+ <type>enum</type>
+ <option>
+ <name>BPSK</name>
+ <key>bpsk</key>
+ </option>
+ <option>
+ <name>QPSK</name>
+ <key>qpsk</key>
+ </option>
+ <option>
+ <name>8PSK</name>
+ <key>8psk</key>
+ </option>
+ <option>
+ <name>QAM8</name>
+ <key>qam8</key>
+ </option>
+ <option>
+ <name>QAM16</name>
+ <key>qam16</key>
+ </option>
+ <option>
+ <name>QAM64</name>
+ <key>qam64</key>
+ </option>
+ <option>
+ <name>QAM256</name>
+ <key>qam256</key>
+ </option>
+ </param>
+ <param>
+ <name>FFT Length</name>
+ <key>fft_length</key>
+ <value>512</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Occupied Tones</name>
+ <key>occupied_tones</key>
+ <value>200</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Cyclic Prefix Length</name>
+ <key>cp_length</key>
+ <value>128</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>SNR</name>
+ <key>snr</key>
+ <value>10</value>
+ <type>real</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type</type>
+ </source>
+ <doc>Payload Length: 0 for automatic.</doc>
+</block>
diff --git a/gr-digital/grc/digital_ofdm_frame_acquisition.xml b/gr-digital/grc/digital_ofdm_frame_acquisition.xml
new file mode 100644
index 000000000..2545f18e6
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_frame_acquisition.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<!--
+###################################################
+##OFDM Frame Acquisition
+###################################################
+ -->
+<block>
+ <name>OFDM Frame Acquisition</name>
+ <key>digital_ofdm_frame_acquisition</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.ofdm_frame_acquisition($occupied_carriers, $fft_length, $cplen, $known_symbol, $max_fft_shift_len)</make>
+ <param>
+ <name>Occupied Carriers</name>
+ <key>occupied_carriers</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>FFT Length</name>
+ <key>fft_length</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>CP Length</name>
+ <key>cplen</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Preamble</name>
+ <key>known_symbol</key>
+ <type>complex_vector</type>
+ </param>
+ <param>
+ <name>Max FFT Shift</name>
+ <key>max_fft_shift_len</key>
+ <type>int</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ <vlen>$fft_length</vlen>
+ </sink>
+ <sink>
+ <name>flag</name>
+ <type>byte</type>
+ <vlen>$fft_length</vlen>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ <vlen>$occupied_carriers</vlen>
+ </source>
+ <source>
+ <name>flag</name>
+ <type>byte</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_ofdm_insert_preamble.xml b/gr-digital/grc/digital_ofdm_insert_preamble.xml
new file mode 100644
index 000000000..33a93058f
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_insert_preamble.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<!--
+###################################################
+##OFDM Insert Preamble
+###################################################
+ -->
+<block>
+ <name>OFDM Insert Preamble</name>
+ <key>digital_ofdm_insert_preamble</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.ofdm_insert_preamble($fft_length, $preamble)</make>
+ <param>
+ <name>FFT Length</name>
+ <key>fft_length</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Preamble</name>
+ <key>preamble</key>
+ <type>raw</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ <vlen>$fft_length</vlen>
+ </sink>
+ <sink>
+ <name>flag</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ <vlen>$fft_length</vlen>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_ofdm_mod.xml b/gr-digital/grc/digital_ofdm_mod.xml
new file mode 100644
index 000000000..24cb2aa33
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_mod.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<!--
+###################################################
+##OFDM Mod
+###################################################
+ -->
+<block>
+ <name>OFDM Mod</name>
+ <key>digital_ofdm_mod</key>
+ <import>from grc_gnuradio import blks2 as grc_blks2</import>
+ <import>from gnuradio import digital</import>
+ <make>grc_blks2.packet_mod_$(type.fcn)(digital.ofdm_mod(
+ options=grc_blks2.options(
+ modulation="$modulation",
+ fft_length=$fft_length,
+ occupied_tones=$occupied_tones,
+ cp_length=$cp_length,
+ pad_for_usrp=$pad_for_usrp,
+ log=None,
+ verbose=None,
+ ),
+ ),
+ payload_length=$payload_length,
+)</make>
+ <param>
+ <name>Input Type</name>
+ <key>type</key>
+ <value>float</value>
+ <type>enum</type>
+ <option>
+ <name>Complex</name>
+ <key>complex</key>
+ <opt>fcn:c</opt>
+ </option>
+ <option>
+ <name>Float</name>
+ <key>float</key>
+ <opt>fcn:f</opt>
+ </option>
+ <option>
+ <name>Int</name>
+ <key>int</key>
+ <opt>fcn:i</opt>
+ </option>
+ <option>
+ <name>Short</name>
+ <key>short</key>
+ <opt>fcn:s</opt>
+ </option>
+ <option>
+ <name>Byte</name>
+ <key>byte</key>
+ <opt>fcn:b</opt>
+ </option>
+ </param>
+ <param>
+ <name>Modulation</name>
+ <key>modulation</key>
+ <type>enum</type>
+ <option>
+ <name>BPSK</name>
+ <key>bpsk</key>
+ </option>
+ <option>
+ <name>QPSK</name>
+ <key>qpsk</key>
+ </option>
+ <option>
+ <name>8PSK</name>
+ <key>8psk</key>
+ </option>
+ <option>
+ <name>QAM8</name>
+ <key>qam8</key>
+ </option>
+ <option>
+ <name>QAM16</name>
+ <key>qam16</key>
+ </option>
+ <option>
+ <name>QAM64</name>
+ <key>qam64</key>
+ </option>
+ <option>
+ <name>QAM256</name>
+ <key>qam256</key>
+ </option>
+ </param>
+ <param>
+ <name>FFT Length</name>
+ <key>fft_length</key>
+ <value>512</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Occupied Tones</name>
+ <key>occupied_tones</key>
+ <value>200</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Cyclic Prefix Length</name>
+ <key>cp_length</key>
+ <value>128</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Pad for USRP</name>
+ <key>pad_for_usrp</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Payload Length</name>
+ <key>payload_length</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>$type</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+ <doc>Payload Length: 0 for automatic.</doc>
+</block>
diff --git a/gr-digital/grc/digital_ofdm_sampler.xml b/gr-digital/grc/digital_ofdm_sampler.xml
new file mode 100644
index 000000000..f3d5c85f3
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_sampler.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<!--
+###################################################
+##OFDM Sampler
+###################################################
+ -->
+<block>
+ <name>OFDM Sampler</name>
+ <key>digital_ofdm_sampler</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.ofdm_sampler($fft_length, $symbol_length, $timeout)</make>
+ <param>
+ <name>FFT Length</name>
+ <key>fft_length</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Symbol Length</name>
+ <key>symbol_length</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Timeout</name>
+ <key>timeout</key>
+ <value>1000</value>
+ <type>int</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <sink>
+ <name>flag</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ <vlen>$fft_length</vlen>
+ </source>
+ <source>
+ <name>flag</name>
+ <type>byte</type>
+ <vlen>$fft_length</vlen>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_ofdm_sync_pn.xml b/gr-digital/grc/digital_ofdm_sync_pn.xml
new file mode 100644
index 000000000..7a05f394d
--- /dev/null
+++ b/gr-digital/grc/digital_ofdm_sync_pn.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<!--
+###################################################
+##OFDM Synchronizer - PN based
+###################################################
+ -->
+<block>
+ <name>OFDM Sync PN</name>
+ <key>digital_ofdm_sync_pn</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.ofdm_sync_pn($fft_length, $cp_length, $logging)</make>
+ <param>
+ <name>FFT Length</name>
+ <key>fft_length</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>CP Length</name>
+ <key>cp_length</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>logging</key>
+ <value>False</value>
+ <type>bool</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>fine freq</name>
+ <type>float</type>
+ </source>
+ <source>
+ <name>timing sig</name>
+ <type>byte</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_psk_demod.xml b/gr-digital/grc/digital_psk_demod.xml
new file mode 100644
index 000000000..b2628ac88
--- /dev/null
+++ b/gr-digital/grc/digital_psk_demod.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+##PSK Demod
+###################################################
+ -->
+<block>
+ <name>PSK Demod</name>
+ <key>digital_psk_demod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.psk.psk_demod(
+ constellation_points=$constellation_points,
+ mod_code=$mod_code,
+ differential=$differential,
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ freq_alpha=$freq_alpha,
+ timing_alpha=$timing_alpha,
+ timing_max_dev=$timing_max_dev,
+ phase_alpha=$phase_alpha,
+ verbose=$verbose,
+ log=$log,
+ )</make>
+ <param>
+ <name>Number of Constellation Points</name>
+ <key>constellation_points</key>
+ <value>8</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>mod_code</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>gray</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>none</key>
+ </option>
+ </param>
+ <param>
+ <name>Differential Encoding</name>
+ <key>differential</key>
+ <value>True</value>
+ <type>bool</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Frequency Alpha</name>
+ <key>freq_alpha</key>
+ <value>0.01</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Timing Alpha</name>
+ <key>timing_alpha</key>
+ <value>0.100</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Timing Max Dev</name>
+ <key>timing_max_dev</key>
+ <value>1.5</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Phase Alpha</name>
+ <key>phase_alpha</key>
+ <value>0.1</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</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_psk_mod.xml b/gr-digital/grc/digital_psk_mod.xml
new file mode 100644
index 000000000..cafcf4e50
--- /dev/null
+++ b/gr-digital/grc/digital_psk_mod.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+##PSK Mod
+###################################################
+ -->
+<block>
+ <name>PSK Mod</name>
+ <key>digital_psk_mod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.psk.psk_mod(
+ constellation_points=$constellation_points,
+ mod_code=$mod_code,
+ differential=$differential,
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ verbose=$verbose,
+ log=$log,
+ )</make>
+ <param>
+ <name>Number of Constellation Points</name>
+ <key>constellation_points</key>
+ <value>8</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>mod_code</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>"gray"</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>"none"</key>
+ </option>
+ </param>
+ <param>
+ <name>Differential Encoding</name>
+ <key>differential</key>
+ <value>True</value>
+ <type>bool</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_qam_demod.xml b/gr-digital/grc/digital_qam_demod.xml
new file mode 100644
index 000000000..88b20293e
--- /dev/null
+++ b/gr-digital/grc/digital_qam_demod.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+##QAM Demod
+###################################################
+ -->
+<block>
+ <name>QAM Demod</name>
+ <key>digital_qam_demod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.qam.qam_demod(
+ constellation_points=$constellation_points,
+ mod_code=$mod_code,
+ differential=$differential,
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ freq_alpha=$freq_alpha,
+ timing_alpha=$timing_alpha,
+ timing_max_dev=$timing_max_dev,
+ phase_alpha=$phase_alpha,
+ verbose=$verbose,
+ log=$log,
+ )</make>
+ <param>
+ <name>Number of Constellation Points</name>
+ <key>constellation_points</key>
+ <value>16</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>mod_code</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>gray</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>none</key>
+ </option>
+ </param>
+ <param>
+ <name>Differential Encoding</name>
+ <key>differential</key>
+ <value>True</value>
+ <type>bool</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Frequency Alpha</name>
+ <key>freq_alpha</key>
+ <value>0.01</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Timing Alpha</name>
+ <key>timing_alpha</key>
+ <value>0.100</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Timing Max Dev</name>
+ <key>timing_max_dev</key>
+ <value>1.5</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Phase Alpha</name>
+ <key>phase_alpha</key>
+ <value>0.1</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</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
new file mode 100644
index 000000000..4d73d9a68
--- /dev/null
+++ b/gr-digital/grc/digital_qam_mod.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+##QAM Mod
+###################################################
+ -->
+<block>
+ <name>QAM Mod</name>
+ <key>digital_qam_mod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.qam.qam_mod(
+ constellation_points=$constellation_points,
+ mod_code=$mod_code,
+ differential=$differential,
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ verbose=$verbose,
+ log=$log,
+ )</make>
+ <param>
+ <name>Number of Constellation Points</name>
+ <key>constellation_points</key>
+ <value>16</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>mod_code</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>"gray"</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>"none"</key>
+ </option>
+ </param>
+ <param>
+ <name>Differential Encoding</name>
+ <key>differential</key>
+ <value>True</value>
+ <type>bool</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+</block>