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/Makefile.am33
-rw-r--r--gr-digital/grc/digital_block_tree.xml43
-rw-r--r--gr-digital/grc/digital_cma_equalizer_cc.xml42
-rw-r--r--gr-digital/grc/digital_costas_loop_cc.xml44
-rw-r--r--gr-digital/grc/digital_dxpsk_demod.xml167
-rw-r--r--gr-digital/grc/digital_dxpsk_mod.xml121
-rw-r--r--gr-digital/grc/digital_kurtotic_equalizer_cc.xml31
-rw-r--r--gr-digital/grc/digital_lms_dd_equalizer_cc.xml41
9 files changed, 524 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/Makefile.am b/gr-digital/grc/Makefile.am
new file mode 100644
index 000000000..1c8ab9b33
--- /dev/null
+++ b/gr-digital/grc/Makefile.am
@@ -0,0 +1,33 @@
+#
+# 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_costas_loop_cc.xml \
+ digital_cma_equalizer_cc.xml \
+ digital_lms_dd_equalizer_cc.xml \
+ digital_kurtotic_equalizer_cc.xml \
+ digital_dxpsk_mod.xml \
+ digital_dxpsk_demod.xml
diff --git a/gr-digital/grc/digital_block_tree.xml b/gr-digital/grc/digital_block_tree.xml
new file mode 100644
index 000000000..596669e5e
--- /dev/null
+++ b/gr-digital/grc/digital_block_tree.xml
@@ -0,0 +1,43 @@
+<?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_costas_loop_cc</block>
+ <block>digital_cma_equalizer_cc</block>
+ <block>digital_lms_dd_equalizer_cc</block>
+ <block>digital_kurtotic_equalizer_cc</block>
+ </cat>
+ <cat>
+ <name>Digital Modulators</name>
+ <block>digital_dxpsk_mod</block>
+ <block>digital_dxpsk_demod</block>
+ </cat>
+</cat>
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_costas_loop_cc.xml b/gr-digital/grc/digital_costas_loop_cc.xml
new file mode 100644
index 000000000..087535b87
--- /dev/null
+++ b/gr-digital/grc/digital_costas_loop_cc.xml
@@ -0,0 +1,44 @@
+<?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($eta, $w, $order)</make>
+ <callback>set_damping_factor($eta)</callback>
+ <callback>set_natural_freq($w)</callback>
+ <param>
+ <name>Damping Factor</name>
+ <key>eta</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Natural Frequency</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..5e6dced22
--- /dev/null
+++ b/gr-digital/grc/digital_dxpsk_demod.xml
@@ -0,0 +1,167 @@
+<?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,
+ costas_alpha=$costas_alpha,
+ timing_alpha=$timing_alpha,
+ timing_max_dev=$timing_max_dev,
+ gray_code=$gray_code,
+ verbose=$verbose,
+ log=$log,
+ sync_out=$sync_out,
+)</make>
+ <callback>clock_recov.set_alpha($costas_alpha)</callback>
+ <callback>clock_recov.set_beta(0.25*$costas_alpha**2)</callback>
+ <callback>time_recov.set_alpha($timing_alpha)</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>Costas Alpha</name>
+ <key>costas_alpha</key>
+ <value>0.175</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>Omega Relative Limit</name>
+ <key>omega_relative_limit</key>
+ <value>0.005</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>gray_code</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>
+ <source>
+ <name>sync</name>
+ <type>complex</type>
+ <optional>1</optional>
+ </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..5d59f36e0
--- /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.
+-->
+
+<!--
+###################################################
+##DPSK2 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_code=$gray_code,
+ 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_code</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_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>