diff options
author | Johannes Demel <ufcsy@student.kit.edu> | 2015-06-18 12:14:32 +0200 |
---|---|---|
committer | Johannes Demel <ufcsy@student.kit.edu> | 2015-09-21 10:45:12 +0200 |
commit | 13592802e792a417b1db511dbb1d0445ff4955c8 (patch) | |
tree | 4ecb7d8f8527f9d501a22d871fcca5e0c4b3f838 /gr-fec/examples/polar_encoder_decoder_chain.grc | |
parent | 87670ad6f14e61bf4bde6c6e5b18d19b262fe33f (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.grc | 350 |
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> |