summaryrefslogtreecommitdiff
path: root/gr-trellis/grc
diff options
context:
space:
mode:
authorAchilleas Anastasopoulos2011-08-31 19:35:58 -0400
committerAchilleas Anastasopoulos2011-08-31 19:35:58 -0400
commit8f6be2790220af5b4628de7daee3be4b494e3b3e (patch)
treea269d1fdd6970e3a8c4a96e70680bc732612402a /gr-trellis/grc
parentd9955bc0ba633ebd4bb2964b656f47cd05ccd05f (diff)
downloadgnuradio-8f6be2790220af5b4628de7daee3be4b494e3b3e.tar.gz
gnuradio-8f6be2790220af5b4628de7daee3be4b494e3b3e.tar.bz2
gnuradio-8f6be2790220af5b4628de7daee3be4b494e3b3e.zip
Added SCCC encoder/decoder grc blocksi and examples. Also moved all grc blocks related to trellis inside the gr-trellis/grc directory
Diffstat (limited to 'gr-trellis/grc')
-rw-r--r--gr-trellis/grc/Makefile.am4
-rw-r--r--gr-trellis/grc/trellis_permutation.xml10
-rw-r--r--gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml170
-rw-r--r--gr-trellis/grc/trellis_sccc_encoder_xx.xml96
-rw-r--r--gr-trellis/grc/trellis_siso_combined_f.xml2
-rw-r--r--gr-trellis/grc/trellis_siso_f.xml2
-rw-r--r--gr-trellis/grc/trellis_viterbi_combined_xx.xml2
-rw-r--r--gr-trellis/grc/trellis_viterbi_x.xml2
8 files changed, 280 insertions, 8 deletions
diff --git a/gr-trellis/grc/Makefile.am b/gr-trellis/grc/Makefile.am
index 377f5e846..25bc29a87 100644
--- a/gr-trellis/grc/Makefile.am
+++ b/gr-trellis/grc/Makefile.am
@@ -30,4 +30,6 @@ dist_grcblocks_DATA = \
trellis_metrics_x.xml \
trellis_siso_f.xml \
trellis_permutation.xml \
- trellis_viterbi_combined_xx.xml
+ trellis_viterbi_combined_xx.xml \
+ trellis_sccc_encoder_xx.xml \
+ trellis_sccc_decoder_combined_xx.xml
diff --git a/gr-trellis/grc/trellis_permutation.xml b/gr-trellis/grc/trellis_permutation.xml
index 6bd14e6b7..125a78d4d 100644
--- a/gr-trellis/grc/trellis_permutation.xml
+++ b/gr-trellis/grc/trellis_permutation.xml
@@ -11,7 +11,7 @@
<key>trellis_permutation</key>
<category>Error Correction/Trellis</category>
<import>from gnuradio import trellis</import>
- <make>trellis.permutation($block_size, $table, $syms_per_block, $type.size*$vlen)</make>
+ <make>trellis.permutation($interleaver_size, $table, $syms_per_block, $type.size*$vlen)</make>
<param>
<name>Type</name>
<key>type</key>
@@ -43,8 +43,8 @@
</option>
</param>
<param>
- <name>Block Size</name>
- <key>block_size</key>
+ <name>Interleaver Size</name>
+ <key>interleaver_size</key>
<type>int</type>
</param>
<param>
@@ -74,4 +74,8 @@
<type>$type</type>
<vlen>$vlen</vlen>
</source>
+ <doc>
+Interleaver size is given in blocks.
+One Symbol = (in/out type) * (vector length)
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml b/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml
new file mode 100644
index 000000000..de7dfc842
--- /dev/null
+++ b/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## SCCC Decoder Combined
+###################################################
+ -->
+
+
+<block>
+ <name>SCCC Decoder Combo</name>
+ <key>trellis_sccc_decoder_combined_xx</key>
+ <category>Error Correction/Trellis</category>
+ <import>from gnuradio import trellis</import>
+ <make>trellis.sccc_decoder_combined_$(type)$(out_type)(
+ trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
+ trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
+ trellis.interleaver($interleaver),
+ $block_size,
+ $iterations,
+ $siso_type,
+ $dim, $table, $metric_type,
+ $scaling)
+ </make>
+ <callback>set_TABLE($table)</callback>
+ <param>
+ <name>Input Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Complex</name>
+ <key>c</key>
+ <opt>io:complex</opt>
+ <opt>table:complex_vector</opt>
+ </option>
+ <option>
+ <name>Float</name>
+ <key>f</key>
+ <opt>io:float</opt>
+ <opt>table:real_vector</opt>
+ </option>
+ </param>
+ <param>
+ <name>Output Type</name>
+ <key>out_type</key>
+ <type>enum</type>
+ <option>
+ <name>Int</name>
+ <key>i</key>
+ <opt>io:int</opt>
+ </option>
+ <option>
+ <name>Short</name>
+ <key>s</key>
+ <opt>io:short</opt>
+ </option>
+ <option>
+ <name>Byte</name>
+ <key>b</key>
+ <opt>io:byte</opt>
+ </option>
+ </param>
+ <param>
+ <name>Outer FSM</name>
+ <key>o_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Outer Initial State</name>
+ <key>o_init_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Outer Final State</name>
+ <key>o_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Inner FSM</name>
+ <key>i_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Inner Initial State</name>
+ <key>i_init_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Inner Final State</name>
+ <key>i_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Interleaver</name>
+ <key>interleaver</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Block Size</name>
+ <key>block_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Iterations</name>
+ <key>iterations</key>
+ <value>10</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Dimensionality</name>
+ <key>dim</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Constellation</name>
+ <key>table</key>
+ <type>$type.table</type>
+ </param>
+ <param>
+ <name>Metric Type</name>
+ <key>metric_type</key>
+ <type>enum</type>
+ <option>
+ <name>Euclidean</name>
+ <key>trellis.TRELLIS_EUCLIDEAN</key>
+ </option>
+ <option>
+ <name>Hard Symbol</name>
+ <key>trellis.TRELLIS_HARD_SYMBOL</key>
+ </option>
+ <option>
+ <name>Hard Bit</name>
+ <key>trellis.TRELLIS_HARD_BIT</key>
+ </option>
+ </param>
+ <param>
+ <name>SISO Type</name>
+ <key>siso_type</key>
+ <type>enum</type>
+ <option>
+ <name>Min Sum</name>
+ <key>trellis.TRELLIS_MIN_SUM</key>
+ </option>
+ <option>
+ <name>Sum Product</name>
+ <key>trellis.TRELLIS_SUM_PRODUCT</key>
+ </option>
+ </param>
+ <param>
+ <name>Scaling</name>
+ <key>scaling</key>
+ <value>1.0</value>
+ <type>real</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>$type.io</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$out_type.io</type>
+ </source>
+ <doc>
+Viterbi Decoder combined with metric calculation. \
+The fsm arguments are passed directly to the trellis.fsm() constructor.
+ </doc>
+</block>
diff --git a/gr-trellis/grc/trellis_sccc_encoder_xx.xml b/gr-trellis/grc/trellis_sccc_encoder_xx.xml
new file mode 100644
index 000000000..04b0b8e66
--- /dev/null
+++ b/gr-trellis/grc/trellis_sccc_encoder_xx.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##SCCC Encoder
+###################################################
+ -->
+
+<block>
+ <name>SCCC Encoder</name>
+ <key>trellis_sccc_encoder_xx</key>
+ <category>Error Correction/Trellis</category>
+ <import>from gnuradio import trellis</import>
+ <make>trellis.sccc_encoder_$(type)(trellis.fsm($o_fsm_args), $o_init_state, trellis.fsm($i_fsm_args), $i_init_state, trellis.interleaver($interleaver_args), $bl)</make>
+ <param>
+ <name>Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Byte->Byte</name>
+ <key>bb</key>
+ <opt>input:byte</opt>
+ <opt>output:byte</opt>
+ </option>
+ <option>
+ <name>Byte->Short</name>
+ <key>bs</key>
+ <opt>input:byte</opt>
+ <opt>output:short</opt>
+ </option>
+ <option>
+ <name>Byte->Int</name>
+ <key>bi</key>
+ <opt>input:byte</opt>
+ <opt>output:int</opt>
+ </option>
+ <option>
+ <name>Short->Short</name>
+ <key>ss</key>
+ <opt>input:short</opt>
+ <opt>output:short</opt>
+ </option>
+ <option>
+ <name>Short->Int</name>
+ <key>si</key>
+ <opt>input:short</opt>
+ <opt>output:int</opt>
+ </option>
+ <option>
+ <name>Int->Int</name>
+ <key>ii</key>
+ <opt>input:int</opt>
+ <opt>output:int</opt>
+ </option>
+ </param>
+ <param>
+ <name>Outer FSM</name>
+ <key>o_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Outer Initial State</name>
+ <key>o_init_state</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Inner FSM</name>
+ <key>i_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Inner Initial State</name>
+ <key>i_init_state</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Interleaver</name>
+ <key>interleaver_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Blocklength</name>
+ <key>bl</key>
+ <type>int</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>$type.input</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type.output</type>
+ </source>
+ <doc>
+The fsm and interleaver arguments are passed directly to the trellis.fsm() and trellis.interleaver() constructors.
+ </doc>
+</block>
diff --git a/gr-trellis/grc/trellis_siso_combined_f.xml b/gr-trellis/grc/trellis_siso_combined_f.xml
index 48ed8dd76..b09b12ae9 100644
--- a/gr-trellis/grc/trellis_siso_combined_f.xml
+++ b/gr-trellis/grc/trellis_siso_combined_f.xml
@@ -7,7 +7,7 @@
<block>
- <name>Trellis SISO Combo</name>
+ <name>SISO Combo</name>
<key>trellis_siso_combined_f</key>
<category>Error Correction/Trellis</category>
<import>from gnuradio import trellis</import>
diff --git a/gr-trellis/grc/trellis_siso_f.xml b/gr-trellis/grc/trellis_siso_f.xml
index 21af005fa..f956c3577 100644
--- a/gr-trellis/grc/trellis_siso_f.xml
+++ b/gr-trellis/grc/trellis_siso_f.xml
@@ -7,7 +7,7 @@
<block>
- <name>Trellis SISO</name>
+ <name>SISO</name>
<key>trellis_siso_f</key>
<category>Error Correction/Trellis</category>
<import>from gnuradio import trellis</import>
diff --git a/gr-trellis/grc/trellis_viterbi_combined_xx.xml b/gr-trellis/grc/trellis_viterbi_combined_xx.xml
index 874c64a58..714c5284c 100644
--- a/gr-trellis/grc/trellis_viterbi_combined_xx.xml
+++ b/gr-trellis/grc/trellis_viterbi_combined_xx.xml
@@ -7,7 +7,7 @@
<block>
- <name>Trellis Viterbi Combo</name>
+ <name>Viterbi Combo</name>
<key>trellis_viterbi_combined_xx</key>
<category>Error Correction/Trellis</category>
<import>from gnuradio import trellis</import>
diff --git a/gr-trellis/grc/trellis_viterbi_x.xml b/gr-trellis/grc/trellis_viterbi_x.xml
index 3f85d95cb..a0c69c36a 100644
--- a/gr-trellis/grc/trellis_viterbi_x.xml
+++ b/gr-trellis/grc/trellis_viterbi_x.xml
@@ -7,7 +7,7 @@
<block>
- <name>Trellis Viterbi</name>
+ <name>Viterbi</name>
<key>trellis_viterbi_x</key>
<category>Error Correction/Trellis</category>
<import>from gnuradio import trellis</import>