diff options
author | Achilleas Anastasopoulos | 2011-08-31 19:35:58 -0400 |
---|---|---|
committer | Achilleas Anastasopoulos | 2011-08-31 19:35:58 -0400 |
commit | 8f6be2790220af5b4628de7daee3be4b494e3b3e (patch) | |
tree | a269d1fdd6970e3a8c4a96e70680bc732612402a /gr-trellis/grc | |
parent | d9955bc0ba633ebd4bb2964b656f47cd05ccd05f (diff) | |
download | gnuradio-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.am | 4 | ||||
-rw-r--r-- | gr-trellis/grc/trellis_permutation.xml | 10 | ||||
-rw-r--r-- | gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml | 170 | ||||
-rw-r--r-- | gr-trellis/grc/trellis_sccc_encoder_xx.xml | 96 | ||||
-rw-r--r-- | gr-trellis/grc/trellis_siso_combined_f.xml | 2 | ||||
-rw-r--r-- | gr-trellis/grc/trellis_siso_f.xml | 2 | ||||
-rw-r--r-- | gr-trellis/grc/trellis_viterbi_combined_xx.xml | 2 | ||||
-rw-r--r-- | gr-trellis/grc/trellis_viterbi_x.xml | 2 |
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> |