summaryrefslogtreecommitdiff
path: root/gr-trellis/examples/grc
diff options
context:
space:
mode:
authorAchilleas Anastasopoulos <anastas@umich.edu>2014-10-14 10:51:31 -0400
committerAchilleas Anastasopoulos <anastas@umich.edu>2014-10-15 19:01:05 -0400
commit79d55f173046d87ae31f04ad1e6dbafe1c9ae5ca (patch)
treec3efe8e25da8d13b99bb5cdf8b4234ef8cf54d07 /gr-trellis/examples/grc
parentbe8e888f80934a884287f0ec9eb62dd0d2b7f5e5 (diff)
fixed a bug in pccc encoder/decoder, and added fsm files.
Also added locks in the set_ methods
Diffstat (limited to 'gr-trellis/examples/grc')
-rw-r--r--gr-trellis/examples/grc/pccc.grc479
-rw-r--r--gr-trellis/examples/grc/sccc.grc258
-rw-r--r--gr-trellis/examples/grc/turbo_equalization.grc204
3 files changed, 515 insertions, 426 deletions
diff --git a/gr-trellis/examples/grc/pccc.grc b/gr-trellis/examples/grc/pccc.grc
index 9d966031cf..e10c70a614 100644
--- a/gr-trellis/examples/grc/pccc.grc
+++ b/gr-trellis/examples/grc/pccc.grc
@@ -69,7 +69,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>fsm2</value>
+ <value>prefix</value>
</param>
<param>
<key>_enabled</key>
@@ -77,7 +77,7 @@
</param>
<param>
<key>value</key>
- <value>trellis.fsm(prefix+"awgn1o2_4.fsm")</value>
+ <value>"@FSM_FILE_INSTALL_DIR@"</value>
</param>
<param>
<key>alias</key>
@@ -85,7 +85,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 149)</value>
+ <value>(320, 21)</value>
</param>
<param>
<key>_rotation</key>
@@ -96,7 +96,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>fsm1</value>
+ <value>R</value>
</param>
<param>
<key>_enabled</key>
@@ -104,7 +104,7 @@
</param>
<param>
<key>value</key>
- <value>trellis.fsm(prefix+"awgn1o2_4.fsm")</value>
+ <value>100e3</value>
</param>
<param>
<key>alias</key>
@@ -112,7 +112,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 85)</value>
+ <value>(200, 101)</value>
</param>
<param>
<key>_rotation</key>
@@ -123,7 +123,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>prefix</value>
+ <value>block</value>
</param>
<param>
<key>_enabled</key>
@@ -131,7 +131,7 @@
</param>
<param>
<key>value</key>
- <value>"@FSM_FILE_INSTALL_DIR@"</value>
+ <value>1000</value>
</param>
<param>
<key>alias</key>
@@ -139,7 +139,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 21)</value>
+ <value>(200, 37)</value>
</param>
<param>
<key>_rotation</key>
@@ -150,7 +150,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>interleaver</value>
+ <value>dim</value>
</param>
<param>
<key>_enabled</key>
@@ -158,7 +158,7 @@
</param>
<param>
<key>value</key>
- <value>trellis.interleaver(block,666)</value>
+ <value>mod[0]</value>
</param>
<param>
<key>alias</key>
@@ -166,7 +166,88 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 213)</value>
+ <value>(688, 317)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>constellation</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>mod[1]</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(528, 317)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>dim</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(688, 189)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>constellation</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>-3,-3,-1,-3,1,-3,3,-3, -3,-1,-1,-1,1,-1,3,-1, -3,1,-1,1,1,1,3,1, -3,3,-1,3,1,3,3,3 </value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(528, 189)</value>
</param>
<param>
<key>_rotation</key>
@@ -204,7 +285,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>block</value>
+ <value>noisevar</value>
</param>
<param>
<key>_enabled</key>
@@ -212,7 +293,7 @@
</param>
<param>
<key>value</key>
- <value>1000</value>
+ <value>10**(-EsN0_dB/10.0) * Es /2.0</value>
</param>
<param>
<key>alias</key>
@@ -220,7 +301,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(200, 37)</value>
+ <value>(1032, 149)</value>
</param>
<param>
<key>_rotation</key>
@@ -231,7 +312,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>interleaver</value>
</param>
<param>
<key>_enabled</key>
@@ -239,7 +320,7 @@
</param>
<param>
<key>value</key>
- <value>10e3</value>
+ <value>trellis.interleaver(block,666)</value>
</param>
<param>
<key>alias</key>
@@ -247,7 +328,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(200, 101)</value>
+ <value>(320, 213)</value>
</param>
<param>
<key>_rotation</key>
@@ -258,7 +339,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>noisevar</value>
+ <value>fsm1</value>
</param>
<param>
<key>_enabled</key>
@@ -266,7 +347,7 @@
</param>
<param>
<key>value</key>
- <value>10**(-EsN0_dB/10.0) * Es /2.0</value>
+ <value>trellis.fsm(prefix+"awgn1o2_4rsc.fsm")</value>
</param>
<param>
<key>alias</key>
@@ -274,7 +355,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1032, 149)</value>
+ <value>(320, 85)</value>
</param>
<param>
<key>_rotation</key>
@@ -285,7 +366,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>constellation</value>
+ <value>fsm2</value>
</param>
<param>
<key>_enabled</key>
@@ -293,7 +374,7 @@
</param>
<param>
<key>value</key>
- <value>-3,-3,-1,-3,1,-3,3,-3, -3,-1,-1,-1,1,-1,3,-1, -3,1,-1,1,1,1,3,1, -3,3,-1,3,1,3,3,3 </value>
+ <value>trellis.fsm(prefix+"awgn1o1_4rsc.fsm")</value>
</param>
<param>
<key>alias</key>
@@ -301,7 +382,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(528, 189)</value>
+ <value>(320, 149)</value>
</param>
<param>
<key>_rotation</key>
@@ -312,7 +393,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>dim</value>
+ <value>mod</value>
</param>
<param>
<key>_enabled</key>
@@ -320,7 +401,7 @@
</param>
<param>
<key>value</key>
- <value>2</value>
+ <value>fu.psk2x3</value>
</param>
<param>
<key>alias</key>
@@ -328,7 +409,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(688, 189)</value>
+ <value>(576, 253)</value>
</param>
<param>
<key>_rotation</key>
@@ -524,65 +605,6 @@
</param>
</block>
<block>
- <key>variable_slider</key>
- <param>
- <key>id</key>
- <value>EsN0_dB</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>EsN0 (dB)</value>
- </param>
- <param>
- <key>value</key>
- <value>2</value>
- </param>
- <param>
- <key>min</key>
- <value>-10</value>
- </param>
- <param>
- <key>max</key>
- <value>10</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>1000</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
- </param>
- <param>
- <key>converver</key>
- <value>float_converter</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value></value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(896, 129)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>virtual_sink</key>
<param>
<key>id</key>
@@ -652,10 +674,10 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>blocks_throttle</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0_0</value>
+ <value>blocks_throttle_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -666,19 +688,15 @@
<value>byte</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>2</value>
+ <key>samples_per_second</key>
+ <value>R</value>
</param>
<param>
- <key>num_samps</key>
- <value>1007</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>repeat</key>
+ <key>ignoretag</key>
<value>True</value>
</param>
<param>
@@ -699,7 +717,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(8, 471)</value>
+ <value>(208, 492)</value>
</param>
<param>
<key>_rotation</key>
@@ -707,10 +725,10 @@
</param>
</block>
<block>
- <key>blocks_throttle</key>
+ <key>analog_noise_source_x</key>
<param>
<key>id</key>
- <value>blocks_throttle_0_0</value>
+ <value>analog_noise_source_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -718,19 +736,19 @@
</param>
<param>
<key>type</key>
- <value>byte</value>
+ <value>float</value>
</param>
<param>
- <key>samples_per_second</key>
- <value>R</value>
+ <key>noise_type</key>
+ <value>analog.GR_GAUSSIAN</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>amp</key>
+ <value>noisevar**0.5</value>
</param>
<param>
- <key>ignoretag</key>
- <value>True</value>
+ <key>seed</key>
+ <value>-42</value>
</param>
<param>
<key>alias</key>
@@ -750,7 +768,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(208, 492)</value>
+ <value>(656, 646)</value>
</param>
<param>
<key>_rotation</key>
@@ -758,33 +776,25 @@
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>blocks_add_xx</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
+ <value>blocks_add_xx_1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>byte</value>
- </param>
- <param>
- <key>out_type</key>
+ <key>type</key>
<value>float</value>
</param>
<param>
- <key>symbol_table</key>
- <value>constellation</value>
- </param>
- <param>
- <key>dimension</key>
+ <key>num_inputs</key>
<value>2</value>
</param>
<param>
- <key>num_ports</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
@@ -805,7 +815,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(632, 485)</value>
+ <value>(880, 552)</value>
</param>
<param>
<key>_rotation</key>
@@ -813,10 +823,60 @@
</param>
</block>
<block>
- <key>analog_noise_source_x</key>
+ <key>virtual_sink</key>
<param>
<key>id</key>
- <value>analog_noise_source_x_0</value>
+ <value>virtual_sink_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>observation</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(896, 676)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>import</key>
+ <param>
+ <key>id</key>
+ <value>import_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>import</key>
+ <value>import gnuradio.trellis.fsm_utils as fu</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(48, 132)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>trellis_pccc_encoder_xx</key>
+ <param>
+ <key>id</key>
+ <value>trellis_pccc_encoder_xx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -824,19 +884,31 @@
</param>
<param>
<key>type</key>
- <value>float</value>
+ <value>bb</value>
</param>
<param>
- <key>noise_type</key>
- <value>analog.GR_GAUSSIAN</value>
+ <key>o_fsm_args</key>
+ <value>fsm1</value>
</param>
<param>
- <key>amp</key>
- <value>noisevar**0.5</value>
+ <key>o_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>seed</key>
- <value>-42</value>
+ <key>i_fsm_args</key>
+ <value>fsm2</value>
+ </param>
+ <param>
+ <key>i_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>interleaver_args</key>
+ <value>interleaver</value>
+ </param>
+ <param>
+ <key>bl</key>
+ <value>block</value>
</param>
<param>
<key>alias</key>
@@ -856,7 +928,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(656, 646)</value>
+ <value>(400, 457)</value>
</param>
<param>
<key>_rotation</key>
@@ -864,25 +936,33 @@
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>blocks_add_xx_1</value>
+ <value>digital_chunks_to_symbols_xx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
+ <key>in_type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>out_type</key>
<value>float</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>symbol_table</key>
+ <value>constellation</value>
</param>
<param>
- <key>vlen</key>
+ <key>dimension</key>
+ <value>dim</value>
+ </param>
+ <param>
+ <key>num_ports</key>
<value>1</value>
</param>
<param>
@@ -903,7 +983,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(880, 552)</value>
+ <value>(632, 485)</value>
</param>
<param>
<key>_rotation</key>
@@ -911,22 +991,54 @@
</param>
</block>
<block>
- <key>virtual_sink</key>
+ <key>analog_random_source_x</key>
<param>
<key>id</key>
- <value>virtual_sink_0</value>
+ <value>analog_random_source_x_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>stream_id</key>
- <value>observation</value>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>num_samps</key>
+ <value>block</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(896, 676)</value>
+ <value>(8, 471)</value>
</param>
<param>
<key>_rotation</key>
@@ -934,62 +1046,58 @@
</param>
</block>
<block>
- <key>trellis_pccc_encoder_xx</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>trellis_pccc_encoder_xx_0</value>
+ <value>EsN0_dB</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>bb</value>
+ <key>label</key>
+ <value>EsN0 (dB)</value>
</param>
<param>
- <key>o_fsm_args</key>
- <value>fsm1</value>
+ <key>value</key>
+ <value>2</value>
</param>
<param>
- <key>o_init_state</key>
- <value>0</value>
+ <key>min</key>
+ <value>-10</value>
</param>
<param>
- <key>i_fsm_args</key>
- <value>fsm2</value>
+ <key>max</key>
+ <value>20</value>
</param>
<param>
- <key>i_init_state</key>
- <value>0</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>interleaver_args</key>
- <value>interleaver</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>bl</key>
- <value>block</value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
- <key>alias</key>
+ <key>grid_pos</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(400, 457)</value>
+ <value>(896, 129)</value>
</param>
<param>
<key>_rotation</key>
@@ -1052,7 +1160,7 @@
</param>
<param>
<key>dim</key>
- <value>2</value>
+ <value>dim</value>
</param>
<param>
<key>table</key>
@@ -1064,11 +1172,11 @@
</param>
<param>
<key>siso_type</key>
- <value>trellis.TRELLIS_SUM_PRODUCT</value>
+ <value>trellis.TRELLIS_MIN_SUM</value>
</param>
<param>
<key>scaling</key>
- <value>1.0/noisevar</value>
+ <value>0.5/noisevar</value>
</param>
<param>
<key>alias</key>
@@ -1095,33 +1203,6 @@
<value>0</value>
</param>
</block>
- <block>
- <key>import</key>
- <param>
- <key>id</key>
- <value>import_0_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>import</key>
- <value>import gnuradio.trellis.fsm_utils as fu</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(48, 132)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
<connection>
<source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
<sink_block_id>blocks_add_xx_1</sink_block_id>
diff --git a/gr-trellis/examples/grc/sccc.grc b/gr-trellis/examples/grc/sccc.grc
index 0bcaa6c00a..f31f3ce86d 100644
--- a/gr-trellis/examples/grc/sccc.grc
+++ b/gr-trellis/examples/grc/sccc.grc
@@ -69,33 +69,6 @@
<key>variable</key>
<param>
<key>id</key>
- <value>mod</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>fu.psk2x3</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(632, 101)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
<value>prefix</value>
</param>
<param>
@@ -123,7 +96,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>mod</value>
</param>
<param>
<key>_enabled</key>
@@ -131,7 +104,7 @@
</param>
<param>
<key>value</key>
- <value>10e3</value>
+ <value>fu.psk2x3</value>
</param>
<param>
<key>alias</key>
@@ -139,7 +112,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(224, 93)</value>
+ <value>(632, 101)</value>
</param>
<param>
<key>_rotation</key>
@@ -363,6 +336,33 @@
</param>
</block>
<block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>R</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>100e3</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(224, 93)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
<key>import</key>
<param>
<key>id</key>
@@ -855,105 +855,6 @@
</param>
</block>
<block>
- <key>trellis_sccc_decoder_combined_xx</key>
- <param>
- <key>id</key>
- <value>trellis_sccc_decoder_combined_xx_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>f</value>
- </param>
- <param>
- <key>out_type</key>
- <value>b</value>
- </param>
- <param>
- <key>o_fsm_args</key>
- <value>fsm_o</value>
- </param>
- <param>
- <key>o_init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>o_final_state</key>
- <value>-1</value>
- </param>
- <param>
- <key>i_fsm_args</key>
- <value>fsm_i</value>
- </param>
- <param>
- <key>i_init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>i_final_state</key>
- <value>-1</value>
- </param>
- <param>
- <key>interleaver</key>
- <value>interleaver</value>
- </param>
- <param>
- <key>block_size</key>
- <value>block</value>
- </param>
- <param>
- <key>iterations</key>
- <value>5</value>
- </param>
- <param>
- <key>dim</key>
- <value>dim</value>
- </param>
- <param>
- <key>table</key>
- <value>constellation</value>
- </param>
- <param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
- </param>
- <param>
- <key>siso_type</key>
- <value>trellis.TRELLIS_SUM_PRODUCT</value>
- </param>
- <param>
- <key>scaling</key>
- <value>1.0/noisevar</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(400, 745)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>analog_noise_source_x</key>
<param>
<key>id</key>
@@ -1176,6 +1077,105 @@
<value>0</value>
</param>
</block>
+ <block>
+ <key>trellis_sccc_decoder_combined_xx</key>
+ <param>
+ <key>id</key>
+ <value>trellis_sccc_decoder_combined_xx_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>f</value>
+ </param>
+ <param>
+ <key>out_type</key>
+ <value>b</value>
+ </param>
+ <param>
+ <key>o_fsm_args</key>
+ <value>fsm_o</value>
+ </param>
+ <param>
+ <key>o_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>o_final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>i_fsm_args</key>
+ <value>fsm_i</value>
+ </param>
+ <param>
+ <key>i_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>i_final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>interleaver</key>
+ <value>interleaver</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>block</value>
+ </param>
+ <param>
+ <key>iterations</key>
+ <value>5</value>
+ </param>
+ <param>
+ <key>dim</key>
+ <value>dim</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>constellation</value>
+ </param>
+ <param>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
+ </param>
+ <param>
+ <key>siso_type</key>
+ <value>trellis.TRELLIS_MIN_SUM</value>
+ </param>
+ <param>
+ <key>scaling</key>
+ <value>1.0/noisevar</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(400, 745)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
<connection>
<source_block_id>analog_noise_source_x_0</source_block_id>
<sink_block_id>blocks_add_xx_1</sink_block_id>
diff --git a/gr-trellis/examples/grc/turbo_equalization.grc b/gr-trellis/examples/grc/turbo_equalization.grc
index b2c3b20c6a..c83c59db20 100644
--- a/gr-trellis/examples/grc/turbo_equalization.grc
+++ b/gr-trellis/examples/grc/turbo_equalization.grc
@@ -3,18 +3,54 @@
<flow_graph>
<timestamp>Wed Oct 1 11:04:18 2014</timestamp>
<block>
- <key>variable</key>
+ <key>options</key>
<param>
<key>id</key>
- <value>fsm_i</value>
+ <value>turbo_equalization</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>trellis.fsm(len(modulation[1]),len(channel))</value>
+ <key>title</key>
+ <value>Hard/Soft/Turbo Equalization</value>
+ </param>
+ <param>
+ <key>author</key>
+ <value>AA</value>
+ </param>
+ <param>
+ <key>description</key>
+ <value>gnuradio flow graph</value>
+ </param>
+ <param>
+ <key>window_size</key>
+ <value>2048, 3048</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>wx_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run_options</key>
+ <value>prompt</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
+ <value></value>
</param>
<param>
<key>alias</key>
@@ -22,7 +58,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 293)</value>
+ <value>(10, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -33,7 +69,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>prefix</value>
+ <value>fsm_o</value>
</param>
<param>
<key>_enabled</key>
@@ -41,7 +77,7 @@
</param>
<param>
<key>value</key>
- <value>"@FSM_FILE_INSTALL_DIR@"</value>
+ <value>trellis.fsm(prefix+"/awgn1o2_4.fsm")</value>
</param>
<param>
<key>alias</key>
@@ -49,7 +85,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(768, 21)</value>
+ <value>(344, 21)</value>
</param>
<param>
<key>_rotation</key>
@@ -60,7 +96,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>tot_mod</value>
+ <value>block_b</value>
</param>
<param>
<key>_enabled</key>
@@ -68,7 +104,7 @@
</param>
<param>
<key>value</key>
- <value>fu.make_isi_lookup(modulation,channel,False)</value>
+ <value>bpsym*1000</value>
</param>
<param>
<key>alias</key>
@@ -76,7 +112,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 381)</value>
+ <value>(216, 21)</value>
</param>
<param>
<key>_rotation</key>
@@ -87,7 +123,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>interleaver</value>
</param>
<param>
<key>_enabled</key>
@@ -95,7 +131,7 @@
</param>
<param>
<key>value</key>
- <value>100e3</value>
+ <value>trellis.interleaver(block_b/bpsym,666)</value>
</param>
<param>
<key>alias</key>
@@ -103,7 +139,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(216, 109)</value>
+ <value>(528, 117)</value>
</param>
<param>
<key>_rotation</key>
@@ -114,7 +150,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>modulation</value>
+ <value>Es</value>
</param>
<param>
<key>_enabled</key>
@@ -122,7 +158,7 @@
</param>
<param>
<key>value</key>
- <value>fu.pam4</value>
+ <value>numpy.mean((numpy.square(numpy.abs(tot_mod[1]))))</value>
</param>
<param>
<key>alias</key>
@@ -130,7 +166,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 117)</value>
+ <value>(776, 181)</value>
</param>
<param>
<key>_rotation</key>
@@ -141,7 +177,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>channel</value>
+ <value>noisevar</value>
</param>
<param>
<key>_enabled</key>
@@ -149,7 +185,7 @@
</param>
<param>
<key>value</key>
- <value>fu.c_channel</value>
+ <value>10**(-EsN0_dB/10.0) * Es /2.0</value>
</param>
<param>
<key>alias</key>
@@ -157,7 +193,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 205)</value>
+ <value>(1080, 181)</value>
</param>
<param>
<key>_rotation</key>
@@ -195,7 +231,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>noisevar</value>
+ <value>channel</value>
</param>
<param>
<key>_enabled</key>
@@ -203,7 +239,7 @@
</param>
<param>
<key>value</key>
- <value>10**(-EsN0_dB/10.0) * Es /2.0</value>
+ <value>fu.c_channel</value>
</param>
<param>
<key>alias</key>
@@ -211,7 +247,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1080, 181)</value>
+ <value>(320, 205)</value>
</param>
<param>
<key>_rotation</key>
@@ -222,7 +258,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>Es</value>
+ <value>modulation</value>
</param>
<param>
<key>_enabled</key>
@@ -230,7 +266,7 @@
</param>
<param>
<key>value</key>
- <value>numpy.mean((numpy.square(numpy.abs(tot_mod[1]))))</value>
+ <value>fu.pam4</value>
</param>
<param>
<key>alias</key>
@@ -238,7 +274,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(776, 181)</value>
+ <value>(320, 117)</value>
</param>
<param>
<key>_rotation</key>
@@ -249,7 +285,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>interleaver</value>
+ <value>R</value>
</param>
<param>
<key>_enabled</key>
@@ -257,7 +293,7 @@
</param>
<param>
<key>value</key>
- <value>trellis.interleaver(block_b/bpsym,666)</value>
+ <value>100e3</value>
</param>
<param>
<key>alias</key>
@@ -265,7 +301,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(528, 117)</value>
+ <value>(216, 109)</value>
</param>
<param>
<key>_rotation</key>
@@ -276,7 +312,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>fsm_o</value>
+ <value>tot_mod</value>
</param>
<param>
<key>_enabled</key>
@@ -284,7 +320,7 @@
</param>
<param>
<key>value</key>
- <value>trellis.fsm(prefix+"/awgn1o2_4.fsm")</value>
+ <value>fu.make_isi_lookup(modulation,channel,False)</value>
</param>
<param>
<key>alias</key>
@@ -292,7 +328,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(328, 29)</value>
+ <value>(320, 381)</value>
</param>
<param>
<key>_rotation</key>
@@ -303,7 +339,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>block_b</value>
+ <value>prefix</value>
</param>
<param>
<key>_enabled</key>
@@ -311,7 +347,7 @@
</param>
<param>
<key>value</key>
- <value>bpsym*1000</value>
+ <value>"@FSM_FILE_INSTALL_DIR@"</value>
</param>
<param>
<key>alias</key>
@@ -319,7 +355,34 @@
</param>
<param>
<key>_coordinate</key>
- <value>(216, 21)</value>
+ <value>(768, 21)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>fsm_i</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>trellis.fsm(len(modulation[1]),len(channel))</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(320, 293)</value>
</param>
<param>
<key>_rotation</key>
@@ -880,6 +943,14 @@
<value>0</value>
</param>
<param>
+ <key>blockwise</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>blocklength</key>
+ <value>0</value>
+ </param>
+ <param>
<key>alias</key>
<value></value>
</param>
@@ -2334,69 +2405,6 @@
</param>
</block>
<block>
- <key>options</key>
- <param>
- <key>id</key>
- <value>turbo_equalization</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>title</key>
- <value>Hard/Soft/Turbo Equalization</value>
- </param>
- <param>
- <key>author</key>
- <value>AA</value>
- </param>
- <param>
- <key>description</key>
- <value>gnuradio flow graph</value>
- </param>
- <param>
- <key>window_size</key>
- <value>2048, 3048</value>
- </param>
- <param>
- <key>generate_options</key>
- <value>wx_gui</value>
- </param>
- <param>
- <key>category</key>
- <value>Custom</value>
- </param>
- <param>
- <key>run_options</key>
- <value>prompt</value>
- </param>
- <param>
- <key>run</key>
- <value>True</value>
- </param>
- <param>
- <key>max_nouts</key>
- <value>0</value>
- </param>
- <param>
- <key>realtime_scheduling</key>
- <value></value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(10, 10)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>blocks_unpack_k_bits_bb</key>
<param>
<key>id</key>