summaryrefslogtreecommitdiff
path: root/gr-fec/examples/polar_encoder_decoder_chain.grc
diff options
context:
space:
mode:
authorJohannes Demel <ufcsy@student.kit.edu>2015-06-18 12:14:32 +0200
committerJohannes Demel <ufcsy@student.kit.edu>2015-09-21 10:45:12 +0200
commit13592802e792a417b1db511dbb1d0445ff4955c8 (patch)
tree4ecb7d8f8527f9d501a22d871fcca5e0c4b3f838 /gr-fec/examples/polar_encoder_decoder_chain.grc
parent87670ad6f14e61bf4bde6c6e5b18d19b262fe33f (diff)
polar: SC and SC List decoder implemented in C++
Diffstat (limited to 'gr-fec/examples/polar_encoder_decoder_chain.grc')
-rw-r--r--gr-fec/examples/polar_encoder_decoder_chain.grc350
1 files changed, 168 insertions, 182 deletions
diff --git a/gr-fec/examples/polar_encoder_decoder_chain.grc b/gr-fec/examples/polar_encoder_decoder_chain.grc
index c648aea294..7cab62d291 100644
--- a/gr-fec/examples/polar_encoder_decoder_chain.grc
+++ b/gr-fec/examples/polar_encoder_decoder_chain.grc
@@ -18,7 +18,17 @@
</param>
<param>
<key>comment</key>
- <value></value>
+ <value># for rough throughput measurements.
+
+ tb = polar_encoder_decoder_chain()
+ start_time = time.time()
+ tb.start()
+ tb.wait()
+ stop_time = time.time()
+ samps = 2 ** 22
+ diff = stop_time - start_time
+ throughput = tb.head_samps / diff
+ print("exe time:", diff, ", with ", tb.head_samps, "samps, throughput: ", throughput)</value>
</param>
<param>
<key>description</key>
@@ -74,42 +84,18 @@
</param>
</block>
<block>
- <key>variable_cc_decoder_def</key>
- <param>
- <key>padding</key>
- <value>False</value>
- </param>
+ <key>variable</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
- <key>k</key>
- <value>7</value>
- </param>
- <param>
- <key>dim1</key>
- <value>1</value>
- </param>
- <param>
- <key>dim2</key>
- <value>1</value>
- </param>
- <param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>state_end</key>
- <value>-1</value>
- </param>
- <param>
- <key>framebits</key>
- <value>2048</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(640, 35)</value>
+ <value>(360, 11)</value>
</param>
<param>
<key>_rotation</key>
@@ -117,66 +103,42 @@
</param>
<param>
<key>id</key>
- <value>cc_decoder</value>
+ <value>head_samps</value>
</param>
<param>
<key>value</key>
- <value>"ok"</value>
- </param>
- <param>
- <key>ndim</key>
- <value>0</value>
- </param>
- <param>
- <key>polys</key>
- <value>[79,109]</value>
- </param>
- <param>
- <key>rate</key>
- <value>2</value>
- </param>
- <param>
- <key>state_start</key>
- <value>0</value>
- </param>
- <param>
- <key>mode</key>
- <value>fec.CC_STREAMING</value>
+ <value>2 ** 22</value>
</param>
</block>
<block>
- <key>variable_cc_encoder_def</key>
+ <key>variable_polar_decoder_sc_def</key>
<param>
- <key>padding</key>
- <value>False</value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
+ <key>num_info_bits</key>
+ <value>128</value>
</param>
<param>
- <key>k</key>
- <value>7</value>
+ <key>block_size</key>
+ <value>256</value>
</param>
<param>
- <key>dim1</key>
- <value>1</value>
+ <key>comment</key>
+ <value></value>
</param>
<param>
- <key>dim2</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>_enabled</key>
- <value>False</value>
+ <key>frozen_bit_positions</key>
+ <value>range(128)</value>
</param>
<param>
- <key>framebits</key>
- <value>2048</value>
+ <key>frozen_bit_values</key>
+ <value>[0] * 128</value>
</param>
<param>
<key>_coordinate</key>
- <value>(304, 43)</value>
+ <value>(864, 555)</value>
</param>
<param>
<key>_rotation</key>
@@ -184,27 +146,11 @@
</param>
<param>
<key>id</key>
- <value>cc_encoder</value>
- </param>
- <param>
- <key>ndim</key>
- <value>0</value>
- </param>
- <param>
- <key>polys</key>
- <value>[79,109]</value>
- </param>
- <param>
- <key>rate</key>
- <value>2</value>
- </param>
- <param>
- <key>state_start</key>
- <value>0</value>
+ <value>polar_decoder</value>
</param>
<param>
- <key>mode</key>
- <value>fec.CC_STREAMING</value>
+ <key>is_packed</key>
+ <value>False</value>
</param>
</block>
<block>
@@ -235,7 +181,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(576, 307)</value>
+ <value>(192, 451)</value>
</param>
<param>
<key>_rotation</key>
@@ -251,7 +197,15 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>variable_polar_decoder_sc_list_def</key>
+ <param>
+ <key>num_info_bits</key>
+ <value>128</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>256</value>
+ </param>
<param>
<key>comment</key>
<value></value>
@@ -261,8 +215,16 @@
<value>True</value>
</param>
<param>
+ <key>frozen_bit_positions</key>
+ <value>range(128)</value>
+ </param>
+ <param>
+ <key>frozen_bit_values</key>
+ <value>[0,] * 128</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(10, 170)</value>
+ <value>(608, 539)</value>
</param>
<param>
<key>_rotation</key>
@@ -270,11 +232,15 @@
</param>
<param>
<key>id</key>
- <value>samp_rate</value>
+ <value>polar_scld</value>
</param>
<param>
- <key>value</key>
- <value>32000</value>
+ <key>max_list_size</key>
+ <value>8</value>
+ </param>
+ <param>
+ <key>is_packed</key>
+ <value>False</value>
</param>
</block>
<block>
@@ -297,7 +263,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(136, 227)</value>
+ <value>(0, 323)</value>
</param>
<param>
<key>_rotation</key>
@@ -325,7 +291,7 @@
</param>
<param>
<key>num_samps</key>
- <value>2 ** 10</value>
+ <value>2 ** 10 </value>
</param>
<param>
<key>type</key>
@@ -337,7 +303,7 @@
</param>
</block>
<block>
- <key>blocks_char_to_float</key>
+ <key>blocks_add_const_vxx</key>
<param>
<key>alias</key>
<value></value>
@@ -347,16 +313,20 @@
<value></value>
</param>
<param>
+ <key>const</key>
+ <value>1.0</value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1272, 251)</value>
+ <value>(752, 347)</value>
</param>
<param>
<key>_rotation</key>
@@ -364,7 +334,11 @@
</param>
<param>
<key>id</key>
- <value>blocks_char_to_float_0</value>
+ <value>blocks_add_const_vxx_0</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
<key>maxoutbuf</key>
@@ -375,16 +349,12 @@
<value>0</value>
</param>
<param>
- <key>scale</key>
- <value>10</value>
- </param>
- <param>
<key>vlen</key>
<value>1</value>
</param>
</block>
<block>
- <key>blocks_head</key>
+ <key>blocks_char_to_float</key>
<param>
<key>alias</key>
<value></value>
@@ -399,11 +369,11 @@
</param>
<param>
<key>_enabled</key>
- <value>True</value>
+ <value>False</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1080, 363)</value>
+ <value>(1112, 347)</value>
</param>
<param>
<key>_rotation</key>
@@ -411,7 +381,7 @@
</param>
<param>
<key>id</key>
- <value>blocks_head_0</value>
+ <value>blocks_char_to_float_0</value>
</param>
<param>
<key>maxoutbuf</key>
@@ -422,12 +392,8 @@
<value>0</value>
</param>
<param>
- <key>num_items</key>
- <value>2 ** 32</value>
- </param>
- <param>
- <key>type</key>
- <value>byte</value>
+ <key>scale</key>
+ <value>1.0</value>
</param>
<param>
<key>vlen</key>
@@ -435,16 +401,12 @@
</param>
</block>
<block>
- <key>blocks_null_sink</key>
+ <key>blocks_char_to_float</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>bus_conns</key>
- <value>[[0,],]</value>
- </param>
- <param>
<key>comment</key>
<value></value>
</param>
@@ -458,7 +420,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1256, 368)</value>
+ <value>(616, 347)</value>
</param>
<param>
<key>_rotation</key>
@@ -466,15 +428,19 @@
</param>
<param>
<key>id</key>
- <value>blocks_null_sink_0</value>
+ <value>blocks_char_to_float_0_0</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>scale</key>
+ <value>-0.5</value>
</param>
<param>
<key>vlen</key>
@@ -482,7 +448,7 @@
</param>
</block>
<block>
- <key>blocks_pack_k_bits_bb</key>
+ <key>blocks_head</key>
<param>
<key>alias</key>
<value></value>
@@ -501,7 +467,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(408, 251)</value>
+ <value>(944, 459)</value>
</param>
<param>
<key>_rotation</key>
@@ -509,11 +475,7 @@
</param>
<param>
<key>id</key>
- <value>blocks_pack_k_bits_bb_0</value>
- </param>
- <param>
- <key>k</key>
- <value>8</value>
+ <value>blocks_head_0</value>
</param>
<param>
<key>maxoutbuf</key>
@@ -523,14 +485,30 @@
<key>minoutbuf</key>
<value>0</value>
</param>
+ <param>
+ <key>num_items</key>
+ <value>head_samps</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
</block>
<block>
- <key>blocks_unpack_k_bits_bb</key>
+ <key>blocks_null_sink</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
+ <key>bus_conns</key>
+ <value>[[0,],]</value>
+ </param>
+ <param>
<key>comment</key>
<value></value>
</param>
@@ -544,7 +522,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(904, 363)</value>
+ <value>(1160, 464)</value>
</param>
<param>
<key>_rotation</key>
@@ -552,23 +530,27 @@
</param>
<param>
<key>id</key>
- <value>blocks_unpack_k_bits_bb_0</value>
+ <value>blocks_null_sink_0</value>
</param>
<param>
- <key>k</key>
- <value>8</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
</block>
<block>
- <key>fec_generic_decoder</key>
+ <key>fec_extended_decoder</key>
+ <param>
+ <key>ann</key>
+ <value>None</value>
+ </param>
<param>
<key>alias</key>
<value></value>
@@ -582,16 +564,16 @@
<value></value>
</param>
<param>
- <key>decoder</key>
- <value>cc_decoder</value>
+ <key>decoder_list</key>
+ <value>polar_scld</value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1040, 251)</value>
+ <value>(872, 323)</value>
</param>
<param>
<key>_rotation</key>
@@ -599,11 +581,7 @@
</param>
<param>
<key>id</key>
- <value>fec_generic_decoder_0</value>
- </param>
- <param>
- <key>itype</key>
- <value>byte</value>
+ <value>fec_extended_decoder_0</value>
</param>
<param>
<key>maxoutbuf</key>
@@ -614,12 +592,20 @@
<value>0</value>
</param>
<param>
- <key>otype</key>
- <value>byte</value>
+ <key>puncpat</key>
+ <value>'11'</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>none</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>fec_extended_decoder</value>
</param>
</block>
<block>
- <key>fec_generic_encoder</key>
+ <key>fec_extended_encoder</key>
<param>
<key>alias</key>
<value></value>
@@ -629,20 +615,20 @@
<value></value>
</param>
<param>
- <key>encoder</key>
- <value>polar_encoder</value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
+ <value>False</value>
+ </param>
+ <param>
+ <key>encoder_list</key>
+ <value>polar_encoder</value>
</param>
<param>
<key>_coordinate</key>
- <value>(576, 251)</value>
+ <value>(192, 331)</value>
</param>
<param>
<key>_rotation</key>
@@ -650,11 +636,7 @@
</param>
<param>
<key>id</key>
- <value>fec_generic_encoder_0</value>
- </param>
- <param>
- <key>itype</key>
- <value>byte</value>
+ <value>fec_extended_encoder_0</value>
</param>
<param>
<key>maxoutbuf</key>
@@ -665,8 +647,12 @@
<value>0</value>
</param>
<param>
- <key>otype</key>
- <value>byte</value>
+ <key>puncpat</key>
+ <value>'11'</value>
+ </param>
+ <param>
+ <key>threadtype</key>
+ <value>none</value>
</param>
</block>
<block>
@@ -732,7 +718,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1432, 235)</value>
+ <value>(1256, 331)</value>
</param>
<param>
<key>gui_hint</key>
@@ -1061,55 +1047,55 @@
</block>
<connection>
<source_block_id>analog_random_source_x_0</source_block_id>
- <sink_block_id>blocks_pack_k_bits_bb_0</sink_block_id>
+ <sink_block_id>blocks_char_to_float_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_char_to_float_0</source_block_id>
- <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
+ <source_block_id>analog_random_source_x_0</source_block_id>
+ <sink_block_id>fec_extended_encoder_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_head_0</source_block_id>
- <sink_block_id>blocks_null_sink_0</sink_block_id>
+ <source_block_id>blocks_add_const_vxx_0</source_block_id>
+ <sink_block_id>fec_extended_decoder_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_pack_k_bits_bb_0</source_block_id>
- <sink_block_id>fec_generic_encoder_0</sink_block_id>
+ <source_block_id>blocks_char_to_float_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
- <sink_block_id>blocks_head_0</sink_block_id>
+ <source_block_id>blocks_char_to_float_0_0</source_block_id>
+ <sink_block_id>blocks_add_const_vxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_generic_decoder_0</source_block_id>
- <sink_block_id>blocks_char_to_float_0</sink_block_id>
+ <source_block_id>blocks_head_0</source_block_id>
+ <sink_block_id>blocks_null_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_generic_encoder_0</source_block_id>
+ <source_block_id>fec_extended_decoder_0</source_block_id>
<sink_block_id>blocks_char_to_float_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_generic_encoder_0</source_block_id>
- <sink_block_id>blocks_unpack_k_bits_bb_0</sink_block_id>
+ <source_block_id>fec_extended_decoder_0</source_block_id>
+ <sink_block_id>blocks_head_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>fec_generic_encoder_0</source_block_id>
- <sink_block_id>fec_generic_decoder_0</sink_block_id>
+ <source_block_id>fec_extended_encoder_0</source_block_id>
+ <sink_block_id>blocks_char_to_float_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>