commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 13/25: polar: updated documentation and exa


From: git
Subject: [Commit-gnuradio] [gnuradio] 13/25: polar: updated documentation and examples
Date: Wed, 23 Sep 2015 14:51:38 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

jcorgan pushed a commit to branch master
in repository gnuradio.

commit fa027dd7040dff34835052b1d19326d2e8aa3bf3
Author: Johannes Demel <address@hidden>
Date:   Tue Sep 22 17:57:23 2015 +0200

    polar: updated documentation and examples
---
 ....grc => fecapi_polar_async_packed_decoders.grc} |  864 +++++++++++-----
 ..._code_example.grc => fecapi_polar_decoders.grc} | 1033 +++++++++++++++-----
 ..._code_example.grc => fecapi_polar_encoders.grc} |  803 ++++++++++-----
 gr-fec/examples/polar_ber_curve_gen.grc            |    4 +-
 gr-fec/examples/polar_code_example.grc             |   38 +-
 gr-fec/include/gnuradio/fec/polar_common.h         |   12 +-
 gr-fec/include/gnuradio/fec/polar_decoder_common.h |    9 +-
 gr-fec/include/gnuradio/fec/polar_decoder_sc.h     |   11 +
 .../include/gnuradio/fec/polar_decoder_sc_list.h   |   14 +-
 gr-fec/include/gnuradio/fec/polar_encoder.h        |   18 +-
 10 files changed, 2064 insertions(+), 742 deletions(-)

diff --git a/gr-fec/examples/polar_encoder_decoder_chain.grc 
b/gr-fec/examples/fecapi_polar_async_packed_decoders.grc
similarity index 61%
rename from gr-fec/examples/polar_encoder_decoder_chain.grc
rename to gr-fec/examples/fecapi_polar_async_packed_decoders.grc
index b5d27ca..e7660cf 100644
--- a/gr-fec/examples/polar_encoder_decoder_chain.grc
+++ b/gr-fec/examples/fecapi_polar_async_packed_decoders.grc
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='utf-8'?>
 <?grc format='1' created='3.7.9'?>
 <flow_graph>
-  <timestamp>Mon Jun 15 10:51:02 2015</timestamp>
+  <timestamp>Tue Sep 22 15:36:05 2015</timestamp>
   <block>
     <key>options</key>
     <param>
       <key>author</key>
-      <value>Johannes Demel</value>
+      <value></value>
     </param>
     <param>
       <key>alias</key>
@@ -22,16 +22,7 @@
     </param>
     <param>
       <key>comment</key>
-      <value># for rough throughput measurements.
-
-    tb = polar_encoder_decoder_chain()
-    start_time = time.time()
-    tb.start()
-    tb.wait()
-    stop_time = time.time()
-    diff = stop_time - start_time
-    throughput = tb.head_samps / diff
-    print("execution time: {0:.6f} for {1:e} samples with throughput: {2:,.2f} 
Sps".format(diff, tb.head_samps, throughput))</value>
+      <value></value>
     </param>
     <param>
       <key>description</key>
@@ -43,7 +34,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(10, 10)</value>
+      <value>(8, 8)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -51,11 +42,11 @@
     </param>
     <param>
       <key>generate_options</key>
-      <value>no_gui</value>
+      <value>qt_gui</value>
     </param>
     <param>
       <key>id</key>
-      <value>polar_encoder_decoder_chain</value>
+      <value>fecapi_polar_decoder_examples</value>
     </param>
     <param>
       <key>max_nouts</key>
@@ -67,7 +58,7 @@
     </param>
     <param>
       <key>run_options</key>
-      <value>run</value>
+      <value>prompt</value>
     </param>
     <param>
       <key>run</key>
@@ -79,14 +70,17 @@
     </param>
     <param>
       <key>title</key>
-      <value>POLAR Encoder and Decoder</value>
+      <value>Polar decoder examples</value>
     </param>
   </block>
   <block>
     <key>variable</key>
     <param>
       <key>comment</key>
-      <value></value>
+      <value>codeword size of polar codes.
+
+MUST be a power of 2!
+MUST be greater than 'frame_size'.</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -94,7 +88,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(704, 35)</value>
+      <value>(840, 499)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -106,22 +100,147 @@
     </param>
     <param>
       <key>value</key>
-      <value>2 ** 11</value>
+      <value>512</value>
     </param>
   </block>
   <block>
-    <key>variable</key>
+    <key>variable_polar_code_configurator</key>
+    <param>
+      <key>num_info_bits</key>
+      <value>frame_size * 8</value>
+    </param>
+    <param>
+      <key>block_size</key>
+      <value>block_size</value>
+    </param>
+    <param>
+      <key>channel</key>
+      <value>polar.CHANNEL_TYPE_BEC</value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value>Block is used to configure polar encoders and decoders.
+
+returns dictionary with requested configuration.
+
+most important dict values: 'values' and 'positions'</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(664, 499)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>polar_config</value>
+    </param>
+    <param>
+      <key>design_snr</key>
+      <value>0.0</value>
+    </param>
+    <param>
+      <key>mu</key>
+      <value>32</value>
+    </param>
+  </block>
+  <block>
+    <key>variable_polar_decoder_sc_def</key>
+    <param>
+      <key>num_info_bits</key>
+      <value>frame_size * 8</value>
+    </param>
+    <param>
+      <key>block_size</key>
+      <value>block_size</value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value>Standard 'Successive Cancellation' decoder.
+
+performs better with greater block size.
+This is due to stronger polarization at higher block sizes.</value>
+    </param>
+    <param>
+      <key>dim1</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>dim2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>frozen_bit_positions</key>
+      <value>polar_config['positions']</value>
+    </param>
+    <param>
+      <key>frozen_bit_values</key>
+      <value>polar_config['values']</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(400, 651)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>polar_decoder_sc</value>
+    </param>
+    <param>
+      <key>ndim</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable_polar_encoder_def</key>
+    <param>
+      <key>num_info_bits</key>
+      <value>frame_size * 8</value>
+    </param>
+    <param>
+      <key>block_size</key>
+      <value>block_size</value>
+    </param>
     <param>
       <key>comment</key>
       <value></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>frozen_bit_positions</key>
+      <value>polar_config['positions']</value>
+    </param>
+    <param>
+      <key>frozen_bit_values</key>
+      <value>polar_config['values']</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(360, 11)</value>
+      <value>(400, 507)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -129,11 +248,15 @@
     </param>
     <param>
       <key>id</key>
-      <value>head_samps</value>
+      <value>polar_encoder_sc</value>
     </param>
     <param>
-      <key>value</key>
-      <value>2 ** 23# encoder: 32, decoder: 23</value>
+      <key>is_packed</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>ndim</key>
+      <value>0</value>
     </param>
   </block>
   <block>
@@ -148,7 +271,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(792, 35)</value>
+      <value>(8, 99)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -156,38 +279,93 @@
     </param>
     <param>
       <key>id</key>
-      <value>n_info_bits</value>
+      <value>samp_rate</value>
     </param>
     <param>
       <key>value</key>
-      <value>block_size / 2</value>
+      <value>int(50e3)</value>
     </param>
   </block>
   <block>
-    <key>variable_polar_code_configurator</key>
+    <key>analog_random_source_x</key>
     <param>
-      <key>num_info_bits</key>
-      <value>n_info_bits</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>block_size</key>
-      <value>block_size</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>channel</key>
-      <value>BSC</value>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(136, 459)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>180</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>analog_random_source_x_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>max</key>
+      <value>256</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>min</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>num_samps</key>
+      <value>1000</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>byte</value>
+    </param>
+    <param>
+      <key>repeat</key>
+      <value>True</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
+    <param>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
       <key>comment</key>
       <value></value>
     </param>
     <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(704, 99)</value>
+      <value>(1176, 307)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -195,105 +373,218 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_config</value>
+      <value>blocks_char_to_float_0_0_0_0</value>
     </param>
     <param>
-      <key>design_snr</key>
-      <value>-1.0</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>mu</key>
-      <value>32</value>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>scale</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
     </param>
   </block>
   <block>
-    <key>variable_polar_decoder_sc_def</key>
+    <key>blocks_char_to_float</key>
     <param>
-      <key>num_info_bits</key>
-      <value>n_info_bits</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>block_size</key>
-      <value>block_size</value>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(672, 235)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>180</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>blocks_char_to_float_0_1</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>scale</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
+    <param>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
       <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>dim1</key>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(656, 395)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>blocks_char_to_float_0_1_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>scale</key>
       <value>1</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>4</value>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_ctrlport_monitor_performance</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
       <key>_enabled</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>en</key>
       <value>True</value>
     </param>
     <param>
-      <key>frozen_bit_positions</key>
-      <value>polar_config['positions']</value>
+      <key>_coordinate</key>
+      <value>(384, 11)</value>
     </param>
     <param>
-      <key>frozen_bit_values</key>
-      <value>polar_config['values']</value>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>blocks_ctrlport_monitor_performance_0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_pdu_to_tagged_stream</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(864, 555)</value>
+      <value>(952, 155)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>blocks_pdu_to_tagged_stream_0</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>tag</key>
+      <value>pkt_len</value>
     </param>
     <param>
-      <key>id</key>
-      <value>polar_decoder</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>ndim</key>
+      <key>minoutbuf</key>
       <value>0</value>
     </param>
   </block>
   <block>
-    <key>variable_polar_encoder_def</key>
+    <key>blocks_pdu_to_tagged_stream</key>
     <param>
-      <key>num_info_bits</key>
-      <value>n_info_bits</value>
-    </param>
-    <param>
-      <key>block_size</key>
-      <value>block_size</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
       <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>dim2</key>
-      <value>4</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>frozen_bit_positions</key>
-      <value>polar_config['positions']</value>
-    </param>
-    <param>
-      <key>frozen_bit_values</key>
-      <value>polar_config['values']</value>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(192, 451)</value>
+      <value>(976, 307)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -301,74 +592,86 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_encoder</value>
+      <value>blocks_pdu_to_tagged_stream_0_0</value>
     </param>
     <param>
-      <key>is_packed</key>
-      <value>False</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>ndim</key>
+      <key>tag</key>
+      <value>pkt_len</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
       <value>0</value>
     </param>
   </block>
   <block>
-    <key>variable_polar_decoder_sc_list_def</key>
+    <key>blocks_repack_bits_bb</key>
     <param>
-      <key>num_info_bits</key>
-      <value>n_info_bits</value>
+      <key>k</key>
+      <value>8</value>
     </param>
     <param>
-      <key>block_size</key>
-      <value>block_size</value>
+      <key>l</key>
+      <value>1</value>
     </param>
     <param>
-      <key>comment</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>1</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>4</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>frozen_bit_positions</key>
-      <value>polar_config['positions']</value>
-    </param>
-    <param>
-      <key>frozen_bit_values</key>
-      <value>polar_config['values']</value>
+      <key>endianness</key>
+      <value>gr.GR_MSB_FIRST</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(608, 539)</value>
+      <value>(920, 227)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
     <param>
       <key>id</key>
-      <value>polar_scld</value>
+      <value>blocks_repack_bits_bb_0</value>
     </param>
     <param>
-      <key>max_list_size</key>
-      <value>8</value>
+      <key>len_tag_key</key>
+      <value>pkt_len</value>
     </param>
     <param>
-      <key>ndim</key>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
       <value>0</value>
     </param>
+    <param>
+      <key>align_output</key>
+      <value>False</value>
+    </param>
   </block>
   <block>
-    <key>analog_random_source_x</key>
+    <key>blocks_stream_to_tagged_stream</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -387,7 +690,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(0, 323)</value>
+      <value>(168, 387)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -395,39 +698,35 @@
     </param>
     <param>
       <key>id</key>
-      <value>analog_random_source_x_0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <value>blocks_stream_to_tagged_stream_0_0</value>
     </param>
     <param>
-      <key>max</key>
-      <value>2</value>
+      <key>len_tag_key</key>
+      <value>pkt_len</value>
     </param>
     <param>
-      <key>minoutbuf</key>
+      <key>maxoutbuf</key>
       <value>0</value>
     </param>
     <param>
-      <key>min</key>
+      <key>minoutbuf</key>
       <value>0</value>
     </param>
     <param>
-      <key>num_samps</key>
-      <value>2 ** 10 </value>
+      <key>packet_len</key>
+      <value>frame_size</value>
     </param>
     <param>
       <key>type</key>
       <value>byte</value>
     </param>
     <param>
-      <key>repeat</key>
-      <value>True</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
   </block>
   <block>
-    <key>blocks_char_to_float</key>
+    <key>blocks_tagged_stream_to_pdu</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -442,11 +741,11 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>False</value>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1112, 347)</value>
+      <value>(488, 155)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -454,27 +753,27 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0</value>
+      <value>blocks_tagged_stream_to_pdu_0</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>tag</key>
+      <value>pkt_len</value>
     </param>
     <param>
-      <key>scale</key>
-      <value>1.0</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
   </block>
   <block>
-    <key>blocks_char_to_float</key>
+    <key>blocks_tagged_stream_to_pdu</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -489,11 +788,11 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(736, 347)</value>
+      <value>(528, 307)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -501,27 +800,27 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_1</value>
+      <value>blocks_tagged_stream_to_pdu_1</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>type</key>
+      <value>float</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>tag</key>
+      <value>pkt_len</value>
     </param>
     <param>
-      <key>scale</key>
-      <value>1</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
   </block>
   <block>
-    <key>blocks_head</key>
+    <key>blocks_throttle</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -540,7 +839,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(944, 459)</value>
+      <value>(168, 307)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -548,7 +847,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_head_0</value>
+      <value>blocks_throttle_0</value>
+    </param>
+    <param>
+      <key>ignoretag</key>
+      <value>True</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -559,8 +862,8 @@
       <value>0</value>
     </param>
     <param>
-      <key>num_items</key>
-      <value>head_samps</value>
+      <key>samples_per_second</key>
+      <value>samp_rate</value>
     </param>
     <param>
       <key>type</key>
@@ -572,16 +875,12 @@
     </param>
   </block>
   <block>
-    <key>blocks_null_sink</key>
+    <key>blocks_vector_source_x</key>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>bus_conns</key>
-      <value>[[0,],]</value>
-    </param>
-    <param>
       <key>comment</key>
       <value></value>
     </param>
@@ -595,28 +894,44 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1152, 465)</value>
+      <value>(136, 203)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
     <param>
       <key>id</key>
-      <value>blocks_null_sink_0</value>
+      <value>blocks_vector_source_x_0_1_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>type</key>
       <value>byte</value>
     </param>
     <param>
-      <key>num_inputs</key>
-      <value>1</value>
+      <key>repeat</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>tags</key>
+      <value>[]</value>
     </param>
     <param>
       <key>vlen</key>
       <value>1</value>
     </param>
+    <param>
+      <key>vector</key>
+      <value>(frame_size/15)*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0, 
127]</value>
+    </param>
   </block>
   <block>
     <key>digital_map_bb</key>
@@ -638,11 +953,11 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(624, 347)</value>
+      <value>(808, 235)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
     <param>
       <key>id</key>
@@ -650,7 +965,7 @@
     </param>
     <param>
       <key>map</key>
-      <value>[-1, 1]</value>
+      <value>[-1,1]</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -662,11 +977,7 @@
     </param>
   </block>
   <block>
-    <key>fec_extended_decoder</key>
-    <param>
-      <key>ann</key>
-      <value>None</value>
-    </param>
+    <key>fec_async_decoder</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -680,8 +991,8 @@
       <value></value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>polar_scld</value>
+      <key>decoder</key>
+      <value>polar_decoder_sc</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -689,7 +1000,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(872, 323)</value>
+      <value>(736, 307)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -697,7 +1008,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>fec_extended_decoder_0</value>
+      <value>fec_async_decoder_0</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -708,20 +1019,16 @@
       <value>0</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>'11'</value>
-    </param>
-    <param>
-      <key>threadtype</key>
-      <value>none</value>
+      <key>packed</key>
+      <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>fec_extended_decoder</value>
+      <key>rev_pack</key>
+      <value>False</value>
     </param>
   </block>
   <block>
-    <key>fec_extended_encoder</key>
+    <key>fec_async_encoder</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -736,15 +1043,15 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>0</value>
+      <value>True</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>polar_encoder</value>
+      <key>encoder</key>
+      <value>polar_encoder_sc</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(192, 331)</value>
+      <value>(712, 155)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -752,7 +1059,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>fec_extended_encoder_0</value>
+      <value>fec_async_encoder_0</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -763,16 +1070,63 @@
       <value>0</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>'11'</value>
+      <key>packed</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>rev_pack</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>rev_unpack</key>
+      <value>False</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(184, 11)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>frame_size</value>
     </param>
     <param>
-      <key>threadtype</key>
-      <value>none</value>
+      <key>label</key>
+      <value>Frame Size</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>intx</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>30</value>
     </param>
   </block>
   <block>
-    <key>import</key>
+    <key>parameter</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -787,7 +1141,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1208, 19)</value>
+      <value>(296, 11)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -795,18 +1149,30 @@
     </param>
     <param>
       <key>id</key>
-      <value>import_0</value>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value></value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>string</value>
     </param>
     <param>
-      <key>import</key>
-      <value>import time</value>
+      <key>value</key>
+      <value>'11'</value>
     </param>
   </block>
   <block>
     <key>qtgui_time_sink_x</key>
     <param>
       <key>autoscale</key>
-      <value>True</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -830,11 +1196,11 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>False</value>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1256, 331)</value>
+      <value>(1336, 363)</value>
     </param>
     <param>
       <key>gui_hint</key>
@@ -866,7 +1232,7 @@
     </param>
     <param>
       <key>label1</key>
-      <value></value>
+      <value>Decoded</value>
     </param>
     <param>
       <key>marker1</key>
@@ -906,7 +1272,7 @@
     </param>
     <param>
       <key>alpha2</key>
-      <value>1.0</value>
+      <value>0.6</value>
     </param>
     <param>
       <key>color2</key>
@@ -914,7 +1280,7 @@
     </param>
     <param>
       <key>label2</key>
-      <value></value>
+      <value>Input</value>
     </param>
     <param>
       <key>marker2</key>
@@ -938,7 +1304,7 @@
     </param>
     <param>
       <key>label3</key>
-      <value></value>
+      <value>Rep. (Rate=3)</value>
     </param>
     <param>
       <key>marker3</key>
@@ -962,7 +1328,7 @@
     </param>
     <param>
       <key>label4</key>
-      <value></value>
+      <value>CC (K=7, Rate=2)</value>
     </param>
     <param>
       <key>marker4</key>
@@ -986,7 +1352,7 @@
     </param>
     <param>
       <key>label5</key>
-      <value></value>
+      <value>CCSDS</value>
     </param>
     <param>
       <key>marker5</key>
@@ -1098,15 +1464,15 @@
     </param>
     <param>
       <key>name</key>
-      <value>""</value>
+      <value></value>
     </param>
     <param>
       <key>nconnections</key>
-      <value>1</value>
+      <value>2</value>
     </param>
     <param>
       <key>size</key>
-      <value>2048</value>
+      <value>512</value>
     </param>
     <param>
       <key>srate</key>
@@ -1142,7 +1508,7 @@
     </param>
     <param>
       <key>update_time</key>
-      <value>0.10</value>
+      <value>0.01</value>
     </param>
     <param>
       <key>ylabel</key>
@@ -1154,7 +1520,7 @@
     </param>
     <param>
       <key>ymax</key>
-      <value>1</value>
+      <value>140</value>
     </param>
     <param>
       <key>ymin</key>
@@ -1163,56 +1529,98 @@
   </block>
   <connection>
     <source_block_id>analog_random_source_x_0</source_block_id>
-    <sink_block_id>digital_map_bb_0</sink_block_id>
+    <sink_block_id>blocks_throttle_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>analog_random_source_x_0</source_block_id>
-    <sink_block_id>fec_extended_encoder_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_0_0_0_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_char_to_float_0_1</source_block_id>
+    <sink_block_id>blocks_tagged_stream_to_pdu_1</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>
+    <source_block_id>blocks_char_to_float_0_1_0</source_block_id>
     <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
     <source_key>0</source_key>
+    <sink_key>1</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_pdu_to_tagged_stream_0</source_block_id>
+    <sink_block_id>blocks_repack_bits_bb_0</sink_block_id>
+    <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_0_1</source_block_id>
-    <sink_block_id>fec_extended_decoder_0</sink_block_id>
+    <source_block_id>blocks_pdu_to_tagged_stream_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_0_0_0_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_repack_bits_bb_0</source_block_id>
+    <sink_block_id>digital_map_bb_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_stream_to_tagged_stream_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_0_1_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_map_bb_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_0_1</sink_block_id>
+    <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
+    <sink_block_id>blocks_tagged_stream_to_pdu_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_decoder_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_0</sink_block_id>
+    <source_block_id>blocks_tagged_stream_to_pdu_0</source_block_id>
+    <sink_block_id>fec_async_encoder_0</sink_block_id>
+    <source_key>pdus</source_key>
+    <sink_key>in</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_tagged_stream_to_pdu_1</source_block_id>
+    <sink_block_id>fec_async_decoder_0</sink_block_id>
+    <source_key>pdus</source_key>
+    <sink_key>in</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_throttle_0</source_block_id>
+    <sink_block_id>blocks_stream_to_tagged_stream_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_decoder_0</source_block_id>
-    <sink_block_id>blocks_head_0</sink_block_id>
+    <source_block_id>blocks_vector_source_x_0_1_0</source_block_id>
+    <sink_block_id>blocks_throttle_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_encoder_0</source_block_id>
-    <sink_block_id>blocks_head_0</sink_block_id>
+    <source_block_id>digital_map_bb_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_0_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
+  <connection>
+    <source_block_id>fec_async_decoder_0</source_block_id>
+    <sink_block_id>blocks_pdu_to_tagged_stream_0_0</sink_block_id>
+    <source_key>out</source_key>
+    <sink_key>pdus</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_async_encoder_0</source_block_id>
+    <sink_block_id>blocks_pdu_to_tagged_stream_0</sink_block_id>
+    <source_key>out</source_key>
+    <sink_key>pdus</sink_key>
+  </connection>
 </flow_graph>
diff --git a/gr-fec/examples/polar_code_example.grc 
b/gr-fec/examples/fecapi_polar_decoders.grc
similarity index 60%
copy from gr-fec/examples/polar_code_example.grc
copy to gr-fec/examples/fecapi_polar_decoders.grc
index ae388d6..83e86fd 100644
--- a/gr-fec/examples/polar_code_example.grc
+++ b/gr-fec/examples/fecapi_polar_decoders.grc
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='utf-8'?>
 <?grc format='1' created='3.7.9'?>
 <flow_graph>
-  <timestamp>Thu Jul 16 16:19:12 2015</timestamp>
+  <timestamp>Tue Sep 22 15:13:38 2015</timestamp>
   <block>
     <key>options</key>
     <param>
       <key>author</key>
-      <value>Johannes Demel</value>
+      <value></value>
     </param>
     <param>
       <key>alias</key>
@@ -34,7 +34,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(10, 10)</value>
+      <value>(8, 8)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -46,7 +46,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_code_example</value>
+      <value>fecapi_polar_decoders</value>
     </param>
     <param>
       <key>max_nouts</key>
@@ -70,14 +70,17 @@
     </param>
     <param>
       <key>title</key>
-      <value>POLAR code example flowgraph</value>
+      <value>Polar Decoders Example</value>
     </param>
   </block>
   <block>
     <key>variable</key>
     <param>
       <key>comment</key>
-      <value></value>
+      <value>codeword size of polar codes.
+
+MUST be a power of 2!
+MUST be greater than 'frame_size'.</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -85,7 +88,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(560, 267)</value>
+      <value>(1320, 547)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -97,22 +100,34 @@
     </param>
     <param>
       <key>value</key>
-      <value>1024</value>
+      <value>512</value>
     </param>
   </block>
   <block>
-    <key>variable</key>
+    <key>variable_dummy_decoder_def</key>
     <param>
       <key>comment</key>
       <value></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>framebits</key>
+      <value>frame_size*8</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(560, 331)</value>
+      <value>(152, 643)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -120,18 +135,61 @@
     </param>
     <param>
       <key>id</key>
-      <value>n_info_bits</value>
+      <value>dec_dummy</value>
     </param>
     <param>
       <key>value</key>
-      <value>block_size / 2</value>
+      <value>"ok"</value>
+    </param>
+    <param>
+      <key>ndim</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable_dummy_encoder_def</key>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>dim1</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>dim2</key>
+      <value>4</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>framebits</key>
+      <value>frame_size*8</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(152, 563)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>enc_dummy</value>
+    </param>
+    <param>
+      <key>ndim</key>
+      <value>0</value>
     </param>
   </block>
   <block>
     <key>variable_polar_code_configurator</key>
     <param>
       <key>num_info_bits</key>
-      <value>n_info_bits</value>
+      <value>frame_size * 8</value>
     </param>
     <param>
       <key>block_size</key>
@@ -139,11 +197,15 @@
     </param>
     <param>
       <key>channel</key>
-      <value>BSC</value>
+      <value>polar.CHANNEL_TYPE_BEC</value>
     </param>
     <param>
       <key>comment</key>
-      <value></value>
+      <value>Block is used to configure polar encoders and decoders.
+
+returns dictionary with requested configuration.
+
+most important dict values: 'values' and 'positions'</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -151,7 +213,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(664, 267)</value>
+      <value>(1144, 547)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -174,7 +236,7 @@
     <key>variable_polar_decoder_sc_def</key>
     <param>
       <key>num_info_bits</key>
-      <value>n_info_bits</value>
+      <value>frame_size * 8</value>
     </param>
     <param>
       <key>block_size</key>
@@ -182,7 +244,64 @@
     </param>
     <param>
       <key>comment</key>
-      <value></value>
+      <value>Standard 'Successive Cancellation' decoder.
+
+performs better with greater block size.
+This is due to stronger polarization at higher block sizes.</value>
+    </param>
+    <param>
+      <key>dim1</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>dim2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>frozen_bit_positions</key>
+      <value>polar_config['positions']</value>
+    </param>
+    <param>
+      <key>frozen_bit_values</key>
+      <value>polar_config['values']</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(408, 691)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>polar_decoder_sc</value>
+    </param>
+    <param>
+      <key>ndim</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable_polar_decoder_sc_list_def</key>
+    <param>
+      <key>num_info_bits</key>
+      <value>frame_size * 8</value>
+    </param>
+    <param>
+      <key>block_size</key>
+      <value>block_size</value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value>Advanced 'Successive Cancellation List' decoder
+
+Greater list size usually results in better decoding performance.
+But it is computationally more heavy.</value>
     </param>
     <param>
       <key>dim1</key>
@@ -206,7 +325,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1040, 267)</value>
+      <value>(776, 691)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -214,7 +333,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_decoder</value>
+      <value>polar_decoder_scl</value>
+    </param>
+    <param>
+      <key>max_list_size</key>
+      <value>8</value>
     </param>
     <param>
       <key>ndim</key>
@@ -225,7 +348,7 @@
     <key>variable_polar_encoder_def</key>
     <param>
       <key>num_info_bits</key>
-      <value>n_info_bits</value>
+      <value>frame_size * 8</value>
     </param>
     <param>
       <key>block_size</key>
@@ -257,7 +380,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(872, 267)</value>
+      <value>(408, 547)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -265,7 +388,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_encoder</value>
+      <value>polar_encoder_sc</value>
     </param>
     <param>
       <key>is_packed</key>
@@ -277,10 +400,10 @@
     </param>
   </block>
   <block>
-    <key>variable_polar_decoder_sc_list_def</key>
+    <key>variable_polar_encoder_def</key>
     <param>
       <key>num_info_bits</key>
-      <value>n_info_bits</value>
+      <value>frame_size * 8</value>
     </param>
     <param>
       <key>block_size</key>
@@ -300,7 +423,7 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>0</value>
+      <value>True</value>
     </param>
     <param>
       <key>frozen_bit_positions</key>
@@ -312,7 +435,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(960, 59)</value>
+      <value>(776, 547)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -320,11 +443,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_scld</value>
+      <value>polar_encoder_scl</value>
     </param>
     <param>
-      <key>max_list_size</key>
-      <value>8</value>
+      <key>is_packed</key>
+      <value>False</value>
     </param>
     <param>
       <key>ndim</key>
@@ -355,7 +478,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>350e3</value>
+      <value>50000</value>
     </param>
   </block>
   <block>
@@ -374,15 +497,15 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>False</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(512, 419)</value>
+      <value>(160, 459)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
     <param>
       <key>id</key>
@@ -406,7 +529,7 @@
     </param>
     <param>
       <key>num_samps</key>
-      <value>2 ** 10 +1</value>
+      <value>1000</value>
     </param>
     <param>
       <key>type</key>
@@ -437,7 +560,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(952, 475)</value>
+      <value>(768, 427)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -457,7 +580,7 @@
     </param>
     <param>
       <key>scale</key>
-      <value>1.0</value>
+      <value>1</value>
     </param>
     <param>
       <key>vlen</key>
@@ -484,7 +607,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(952, 443)</value>
+      <value>(1136, 427)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -492,7 +615,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_1</value>
+      <value>blocks_char_to_float_0_0</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -504,7 +627,7 @@
     </param>
     <param>
       <key>scale</key>
-      <value>1.0</value>
+      <value>1</value>
     </param>
     <param>
       <key>vlen</key>
@@ -531,7 +654,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(440, 651)</value>
+      <value>(1136, 331)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -539,7 +662,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_2</value>
+      <value>blocks_char_to_float_0_0_0</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -559,7 +682,7 @@
     </param>
   </block>
   <block>
-    <key>blocks_pack_k_bits_bb</key>
+    <key>blocks_char_to_float</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -578,7 +701,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(808, 651)</value>
+      <value>(1136, 235)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -586,11 +709,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_pack_k_bits_bb_0</value>
-    </param>
-    <param>
-      <key>k</key>
-      <value>8</value>
+      <value>blocks_char_to_float_0_0_0_0</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -600,9 +719,17 @@
       <key>minoutbuf</key>
       <value>0</value>
     </param>
+    <param>
+      <key>scale</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
   </block>
   <block>
-    <key>blocks_unpack_k_bits_bb</key>
+    <key>blocks_char_to_float</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -621,7 +748,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(432, 547)</value>
+      <value>(432, 147)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -629,11 +756,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_unpack_k_bits_bb_0</value>
-    </param>
-    <param>
-      <key>k</key>
-      <value>8</value>
+      <value>blocks_char_to_float_0_1</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -643,9 +766,17 @@
       <key>minoutbuf</key>
       <value>0</value>
     </param>
+    <param>
+      <key>scale</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
   </block>
   <block>
-    <key>digital_map_bb</key>
+    <key>blocks_char_to_float</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -664,7 +795,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(328, 651)</value>
+      <value>(768, 331)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -672,11 +803,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>digital_map_bb_0</value>
-    </param>
-    <param>
-      <key>map</key>
-      <value>[-1, 1]</value>
+      <value>blocks_char_to_float_0_2</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -686,17 +813,17 @@
       <key>minoutbuf</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>fec_ber_bf</key>
     <param>
-      <key>berlimit</key>
-      <value>-7.0</value>
+      <key>scale</key>
+      <value>1</value>
     </param>
     <param>
-      <key>berminerrors</key>
-      <value>10000</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -715,7 +842,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(952, 625)</value>
+      <value>(768, 235)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -723,7 +850,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>fec_ber_bf_0</value>
+      <value>blocks_char_to_float_0_2_0</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -734,16 +861,47 @@
       <value>0</value>
     </param>
     <param>
-      <key>test_mode</key>
-      <value>False</value>
+      <key>scale</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
     </param>
   </block>
   <block>
-    <key>fec_extended_decoder</key>
+    <key>blocks_ctrlport_monitor_performance</key>
     <param>
-      <key>ann</key>
-      <value>None</value>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>en</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(392, 11)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>blocks_ctrlport_monitor_performance_0</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_throttle</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -757,16 +915,12 @@
       <value></value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>polar_decoder</value>
-    </param>
-    <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(576, 627)</value>
+      <value>(208, 267)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -774,7 +928,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>fec_extended_decoder_0</value>
+      <value>blocks_throttle_0</value>
+    </param>
+    <param>
+      <key>ignoretag</key>
+      <value>True</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -785,20 +943,20 @@
       <value>0</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>'11'</value>
+      <key>samples_per_second</key>
+      <value>samp_rate</value>
     </param>
     <param>
-      <key>threadtype</key>
-      <value>none</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>value</key>
-      <value>fec_extended_decoder</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
   </block>
   <block>
-    <key>fec_extended_encoder</key>
+    <key>blocks_unpack_k_bits_bb</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -816,12 +974,8 @@
       <value>True</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>polar_encoder</value>
-    </param>
-    <param>
       <key>_coordinate</key>
-      <value>(576, 531)</value>
+      <value>(224, 371)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -829,7 +983,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>fec_extended_encoder_0</value>
+      <value>blocks_unpack_k_bits_bb_0</value>
+    </param>
+    <param>
+      <key>k</key>
+      <value>8</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -839,25 +997,9 @@
       <key>minoutbuf</key>
       <value>0</value>
     </param>
-    <param>
-      <key>puncpat</key>
-      <value>'11'</value>
-    </param>
-    <param>
-      <key>threadtype</key>
-      <value>none</value>
-    </param>
   </block>
   <block>
-    <key>qtgui_number_sink</key>
-    <param>
-      <key>autoscale</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>avg</key>
-      <value>0</value>
-    </param>
+    <key>blocks_vector_source_x</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -876,214 +1018,595 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1096, 619)</value>
+      <value>(168, 139)</value>
     </param>
     <param>
-      <key>gui_hint</key>
-      <value></value>
+      <key>_rotation</key>
+      <value>180</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>id</key>
+      <value>blocks_vector_source_x_0_1_0</value>
     </param>
     <param>
-      <key>graph_type</key>
-      <value>qtgui.NUM_GRAPH_HORIZ</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>id</key>
-      <value>qtgui_number_sink_0</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>type</key>
-      <value>float</value>
+      <value>byte</value>
     </param>
     <param>
-      <key>color1</key>
-      <value>("black", "black")</value>
+      <key>repeat</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>tags</key>
+      <value>[]</value>
     </param>
     <param>
-      <key>factor1</key>
+      <key>vlen</key>
       <value>1</value>
     </param>
     <param>
-      <key>label1</key>
+      <key>vector</key>
+      <value>(frame_size/15)*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0, 
127]</value>
+    </param>
+  </block>
+  <block>
+    <key>digital_map_bb</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit1</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color10</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor10</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>label10</key>
+      <key>_coordinate</key>
+      <value>(656, 427)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>digital_map_bb_0_0</value>
+    </param>
+    <param>
+      <key>map</key>
+      <value>[-1, 1]</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>digital_map_bb</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>unit10</key>
+      <key>affinity</key>
       <value></value>
     </param>
     <param>
-      <key>color2</key>
-      <value>("black", "black")</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>factor2</key>
-      <value>1</value>
+      <key>_coordinate</key>
+      <value>(656, 331)</value>
     </param>
     <param>
-      <key>label2</key>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>digital_map_bb_0_0_0</value>
+    </param>
+    <param>
+      <key>map</key>
+      <value>[-1, 1]</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>digital_map_bb</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit2</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color3</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor3</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>label3</key>
+      <key>_coordinate</key>
+      <value>(656, 235)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>digital_map_bb_0_0_0_0</value>
+    </param>
+    <param>
+      <key>map</key>
+      <value>[-1, 1]</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_decoder</key>
+    <param>
+      <key>ann</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit3</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color4</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor4</key>
-      <value>1</value>
+      <key>decoder_list</key>
+      <value>polar_decoder_scl</value>
     </param>
     <param>
-      <key>label4</key>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(912, 403)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>fec_extended_decoder_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>none</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_decoder</key>
+    <param>
+      <key>ann</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit4</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color5</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor5</key>
-      <value>1</value>
+      <key>decoder_list</key>
+      <value>polar_decoder_sc</value>
     </param>
     <param>
-      <key>label5</key>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(912, 307)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>fec_extended_decoder_0_1</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>none</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_decoder</key>
+    <param>
+      <key>ann</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit5</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color6</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor6</key>
-      <value>1</value>
+      <key>decoder_list</key>
+      <value>dec_dummy</value>
     </param>
     <param>
-      <key>label6</key>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(912, 211)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>fec_extended_decoder_0_1_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>none</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_encoder</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit6</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color7</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor7</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>label7</key>
+      <key>encoder_list</key>
+      <value>polar_encoder_scl</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(432, 411)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>fec_extended_encoder_1</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>capillary</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_encoder</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit7</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color8</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor8</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>label8</key>
+      <key>encoder_list</key>
+      <value>polar_encoder_sc</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(432, 315)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>fec_extended_encoder_1_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>capillary</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_encoder</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit8</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color9</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor9</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>label9</key>
+      <key>encoder_list</key>
+      <value>enc_dummy</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(432, 219)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>fec_extended_encoder_1_0_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>capillary</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit9</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>max</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>min</key>
-      <value>-1</value>
+      <key>_coordinate</key>
+      <value>(200, 11)</value>
     </param>
     <param>
-      <key>name</key>
-      <value>""</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>nconnections</key>
-      <value>1</value>
+      <key>id</key>
+      <value>frame_size</value>
     </param>
     <param>
-      <key>update_time</key>
-      <value>0.10</value>
+      <key>label</key>
+      <value>Frame Size</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>intx</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>30</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(312, 11)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value></value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>string</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>'11'</value>
     </param>
   </block>
   <block>
     <key>qtgui_time_sink_x</key>
     <param>
       <key>autoscale</key>
-      <value>True</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1111,7 +1634,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1088, 443)</value>
+      <value>(1408, 153)</value>
     </param>
     <param>
       <key>gui_hint</key>
@@ -1143,7 +1666,7 @@
     </param>
     <param>
       <key>label1</key>
-      <value></value>
+      <value>Input</value>
     </param>
     <param>
       <key>marker1</key>
@@ -1183,7 +1706,7 @@
     </param>
     <param>
       <key>alpha2</key>
-      <value>1.0</value>
+      <value>0.6</value>
     </param>
     <param>
       <key>color2</key>
@@ -1191,7 +1714,7 @@
     </param>
     <param>
       <key>label2</key>
-      <value></value>
+      <value>Dummy</value>
     </param>
     <param>
       <key>marker2</key>
@@ -1215,7 +1738,7 @@
     </param>
     <param>
       <key>label3</key>
-      <value></value>
+      <value>Polar with SC decoder</value>
     </param>
     <param>
       <key>marker3</key>
@@ -1239,7 +1762,7 @@
     </param>
     <param>
       <key>label4</key>
-      <value></value>
+      <value>Polar with SC list decoder</value>
     </param>
     <param>
       <key>marker4</key>
@@ -1263,7 +1786,7 @@
     </param>
     <param>
       <key>label5</key>
-      <value></value>
+      <value>CCSDS</value>
     </param>
     <param>
       <key>marker5</key>
@@ -1375,11 +1898,11 @@
     </param>
     <param>
       <key>name</key>
-      <value>""</value>
+      <value></value>
     </param>
     <param>
       <key>nconnections</key>
-      <value>2</value>
+      <value>4</value>
     </param>
     <param>
       <key>size</key>
@@ -1419,7 +1942,7 @@
     </param>
     <param>
       <key>update_time</key>
-      <value>0.10</value>
+      <value>0.01</value>
     </param>
     <param>
       <key>ylabel</key>
@@ -1431,33 +1954,39 @@
     </param>
     <param>
       <key>ymax</key>
-      <value>1</value>
+      <value>1.5</value>
     </param>
     <param>
       <key>ymin</key>
-      <value>-1</value>
+      <value>-0.5</value>
     </param>
   </block>
   <connection>
     <source_block_id>analog_random_source_x_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_0_1</sink_block_id>
+    <sink_block_id>blocks_throttle_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>analog_random_source_x_0</source_block_id>
-    <sink_block_id>blocks_unpack_k_bits_bb_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_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>analog_random_source_x_0</source_block_id>
-    <sink_block_id>fec_ber_bf_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_0_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>
+    <sink_key>3</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_0</source_block_id>
+    <source_block_id>blocks_char_to_float_0_0_0</source_block_id>
+    <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>2</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_char_to_float_0_0_0_0</source_block_id>
     <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>1</sink_key>
@@ -1470,49 +1999,103 @@
   </connection>
   <connection>
     <source_block_id>blocks_char_to_float_0_2</source_block_id>
-    <sink_block_id>fec_extended_decoder_0</sink_block_id>
+    <sink_block_id>fec_extended_decoder_0_1</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>blocks_char_to_float_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_0_2_0</source_block_id>
+    <sink_block_id>fec_extended_decoder_0_1_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_ber_bf_0</sink_block_id>
+    <source_block_id>blocks_throttle_0</source_block_id>
+    <sink_block_id>blocks_unpack_k_bits_bb_0</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>1</sink_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_0_1</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>fec_extended_encoder_0</sink_block_id>
+    <sink_block_id>fec_extended_encoder_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_map_bb_0</source_block_id>
+    <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
+    <sink_block_id>fec_extended_encoder_1_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>fec_extended_encoder_1_0_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_vector_source_x_0_1_0</source_block_id>
+    <sink_block_id>blocks_throttle_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>digital_map_bb_0_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>digital_map_bb_0_0_0</source_block_id>
     <sink_block_id>blocks_char_to_float_0_2</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_ber_bf_0</source_block_id>
-    <sink_block_id>qtgui_number_sink_0</sink_block_id>
+    <source_block_id>digital_map_bb_0_0_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_0_2_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_extended_decoder_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>fec_extended_decoder_0_1</source_block_id>
+    <sink_block_id>blocks_char_to_float_0_0_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_extended_decoder_0_1_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_0_0_0_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_extended_encoder_1</source_block_id>
+    <sink_block_id>digital_map_bb_0_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_extended_encoder_1_0</source_block_id>
+    <sink_block_id>digital_map_bb_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_encoder_0</source_block_id>
-    <sink_block_id>digital_map_bb_0</sink_block_id>
+    <source_block_id>fec_extended_encoder_1_0_0</source_block_id>
+    <sink_block_id>digital_map_bb_0_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
diff --git a/gr-fec/examples/polar_code_example.grc 
b/gr-fec/examples/fecapi_polar_encoders.grc
similarity index 67%
copy from gr-fec/examples/polar_code_example.grc
copy to gr-fec/examples/fecapi_polar_encoders.grc
index ae388d6..93036fd 100644
--- a/gr-fec/examples/polar_code_example.grc
+++ b/gr-fec/examples/fecapi_polar_encoders.grc
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='utf-8'?>
 <?grc format='1' created='3.7.9'?>
 <flow_graph>
-  <timestamp>Thu Jul 16 16:19:12 2015</timestamp>
+  <timestamp>Tue Sep 22 15:53:02 2015</timestamp>
   <block>
     <key>options</key>
     <param>
       <key>author</key>
-      <value>Johannes Demel</value>
+      <value></value>
     </param>
     <param>
       <key>alias</key>
@@ -34,7 +34,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(10, 10)</value>
+      <value>(8, 8)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -46,7 +46,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_code_example</value>
+      <value>fecapi_polar_encoders</value>
     </param>
     <param>
       <key>max_nouts</key>
@@ -70,34 +70,7 @@
     </param>
     <param>
       <key>title</key>
-      <value>POLAR code example flowgraph</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>comment</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(560, 267)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>id</key>
-      <value>block_size</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>1024</value>
+      <value>Polar encoder examples</value>
     </param>
   </block>
   <block>
@@ -112,7 +85,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(560, 331)</value>
+      <value>(8, 155)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -124,7 +97,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>block_size / 2</value>
+      <value>frame_size * 8</value>
     </param>
   </block>
   <block>
@@ -139,11 +112,15 @@
     </param>
     <param>
       <key>channel</key>
-      <value>BSC</value>
+      <value>polar.CHANNEL_TYPE_BEC</value>
     </param>
     <param>
       <key>comment</key>
-      <value></value>
+      <value>Block is used to configure polar encoders and decoders.
+
+returns dictionary with requested configuration.
+
+most important dict values: 'values' and 'positions'</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -151,7 +128,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(664, 267)</value>
+      <value>(704, 11)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -171,7 +148,7 @@
     </param>
   </block>
   <block>
-    <key>variable_polar_decoder_sc_def</key>
+    <key>variable_polar_encoder_def</key>
     <param>
       <key>num_info_bits</key>
       <value>n_info_bits</value>
@@ -194,7 +171,7 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>frozen_bit_positions</key>
@@ -206,7 +183,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1040, 267)</value>
+      <value>(1152, 635)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -214,7 +191,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_decoder</value>
+      <value>polar_encoder_async</value>
+    </param>
+    <param>
+      <key>is_packed</key>
+      <value>False</value>
     </param>
     <param>
       <key>ndim</key>
@@ -225,7 +206,7 @@
     <key>variable_polar_encoder_def</key>
     <param>
       <key>num_info_bits</key>
-      <value>n_info_bits</value>
+      <value>frame_size * 8</value>
     </param>
     <param>
       <key>block_size</key>
@@ -257,7 +238,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(872, 267)</value>
+      <value>(488, 635)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -265,7 +246,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_encoder</value>
+      <value>polar_encoder_stream</value>
     </param>
     <param>
       <key>is_packed</key>
@@ -277,7 +258,7 @@
     </param>
   </block>
   <block>
-    <key>variable_polar_decoder_sc_list_def</key>
+    <key>variable_polar_encoder_def</key>
     <param>
       <key>num_info_bits</key>
       <value>n_info_bits</value>
@@ -300,7 +281,7 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>0</value>
+      <value>True</value>
     </param>
     <param>
       <key>frozen_bit_positions</key>
@@ -312,7 +293,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(960, 59)</value>
+      <value>(840, 635)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -320,11 +301,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>polar_scld</value>
+      <value>polar_encoder_tagged</value>
     </param>
     <param>
-      <key>max_list_size</key>
-      <value>8</value>
+      <key>is_packed</key>
+      <value>False</value>
     </param>
     <param>
       <key>ndim</key>
@@ -343,7 +324,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(8, 107)</value>
+      <value>(8, 91)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -355,7 +336,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>350e3</value>
+      <value>int(50e3)</value>
     </param>
   </block>
   <block>
@@ -374,15 +355,15 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>False</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(512, 419)</value>
+      <value>(208, 483)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
     <param>
       <key>id</key>
@@ -406,7 +387,7 @@
     </param>
     <param>
       <key>num_samps</key>
-      <value>2 ** 10 +1</value>
+      <value>1000</value>
     </param>
     <param>
       <key>type</key>
@@ -418,6 +399,52 @@
     </param>
   </block>
   <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value>codeword size of polar codes.
+
+MUST be a power of 2!
+MUST be greater than 'frame_size'.</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(296, 11)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>block_size</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>Block size</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>intx</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>512</value>
+    </param>
+  </block>
+  <block>
     <key>blocks_char_to_float</key>
     <param>
       <key>alias</key>
@@ -433,11 +460,11 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(952, 475)</value>
+      <value>(1064, 499)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -445,7 +472,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0</value>
+      <value>blocks_char_to_float_0_1</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -457,7 +484,7 @@
     </param>
     <param>
       <key>scale</key>
-      <value>1.0</value>
+      <value>1</value>
     </param>
     <param>
       <key>vlen</key>
@@ -480,11 +507,11 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(952, 443)</value>
+      <value>(1064, 259)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -492,7 +519,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_1</value>
+      <value>blocks_char_to_float_1_0_0</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -504,7 +531,7 @@
     </param>
     <param>
       <key>scale</key>
-      <value>1.0</value>
+      <value>1</value>
     </param>
     <param>
       <key>vlen</key>
@@ -527,11 +554,11 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(440, 651)</value>
+      <value>(1064, 339)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -539,7 +566,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_2</value>
+      <value>blocks_char_to_float_1_0_0_1</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -559,7 +586,38 @@
     </param>
   </block>
   <block>
-    <key>blocks_pack_k_bits_bb</key>
+    <key>blocks_ctrlport_monitor_performance</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>en</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(496, 11)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>blocks_ctrlport_monitor_performance_0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_pdu_to_tagged_stream</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -574,11 +632,11 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(808, 651)</value>
+      <value>(536, 499)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -586,11 +644,15 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_pack_k_bits_bb_0</value>
+      <value>blocks_pdu_to_tagged_stream_0</value>
     </param>
     <param>
-      <key>k</key>
-      <value>8</value>
+      <key>type</key>
+      <value>byte</value>
+    </param>
+    <param>
+      <key>tag</key>
+      <value>pkt_len</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -602,7 +664,15 @@
     </param>
   </block>
   <block>
-    <key>blocks_unpack_k_bits_bb</key>
+    <key>blocks_repack_bits_bb</key>
+    <param>
+      <key>k</key>
+      <value>8</value>
+    </param>
+    <param>
+      <key>l</key>
+      <value>1</value>
+    </param>
     <param>
       <key>alias</key>
       <value></value>
@@ -617,11 +687,15 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
+    </param>
+    <param>
+      <key>endianness</key>
+      <value>gr.GR_MSB_FIRST</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(432, 547)</value>
+      <value>(736, 491)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -629,11 +703,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>blocks_unpack_k_bits_bb_0</value>
+      <value>blocks_repack_bits_bb_0</value>
     </param>
     <param>
-      <key>k</key>
-      <value>8</value>
+      <key>len_tag_key</key>
+      <value>pkt_len</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -643,9 +717,21 @@
       <key>minoutbuf</key>
       <value>0</value>
     </param>
+    <param>
+      <key>align_output</key>
+      <value>False</value>
+    </param>
   </block>
   <block>
-    <key>digital_map_bb</key>
+    <key>blocks_repack_bits_bb</key>
+    <param>
+      <key>k</key>
+      <value>8</value>
+    </param>
+    <param>
+      <key>l</key>
+      <value>1</value>
+    </param>
     <param>
       <key>alias</key>
       <value></value>
@@ -660,11 +746,15 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
+    </param>
+    <param>
+      <key>endianness</key>
+      <value>gr.GR_MSB_FIRST</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(328, 651)</value>
+      <value>(640, 331)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -672,11 +762,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>digital_map_bb_0</value>
+      <value>blocks_repack_bits_bb_0_0</value>
     </param>
     <param>
-      <key>map</key>
-      <value>[-1, 1]</value>
+      <key>len_tag_key</key>
+      <value>length_tag</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -686,17 +776,13 @@
       <key>minoutbuf</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>fec_ber_bf</key>
     <param>
-      <key>berlimit</key>
-      <value>-7.0</value>
-    </param>
-    <param>
-      <key>berminerrors</key>
-      <value>10000</value>
+      <key>align_output</key>
+      <value>False</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_stream_to_tagged_stream</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -711,11 +797,11 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(952, 625)</value>
+      <value>(424, 331)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -723,7 +809,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>fec_ber_bf_0</value>
+      <value>blocks_stream_to_tagged_stream_0</value>
+    </param>
+    <param>
+      <key>len_tag_key</key>
+      <value>length_tag</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -734,17 +824,21 @@
       <value>0</value>
     </param>
     <param>
-      <key>test_mode</key>
-      <value>False</value>
+      <key>packet_len</key>
+      <value>frame_size</value>
     </param>
-  </block>
-  <block>
-    <key>fec_extended_decoder</key>
     <param>
-      <key>ann</key>
-      <value>None</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_stream_to_tagged_stream</key>
+    <param>
       <key>alias</key>
       <value></value>
     </param>
@@ -757,16 +851,12 @@
       <value></value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>polar_decoder</value>
-    </param>
-    <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(576, 627)</value>
+      <value>(424, 411)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -774,7 +864,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>fec_extended_decoder_0</value>
+      <value>blocks_stream_to_tagged_stream_0_0</value>
+    </param>
+    <param>
+      <key>len_tag_key</key>
+      <value>pkt_len</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -785,20 +879,20 @@
       <value>0</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>'11'</value>
+      <key>packet_len</key>
+      <value>frame_size</value>
     </param>
     <param>
-      <key>threadtype</key>
-      <value>none</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>value</key>
-      <value>fec_extended_decoder</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
   </block>
   <block>
-    <key>fec_extended_encoder</key>
+    <key>blocks_tagged_stream_to_pdu</key>
     <param>
       <key>alias</key>
       <value></value>
@@ -813,15 +907,58 @@
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>1</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>polar_encoder</value>
+      <key>_coordinate</key>
+      <value>(648, 419)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>blocks_tagged_stream_to_pdu_0</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>byte</value>
+    </param>
+    <param>
+      <key>tag</key>
+      <value>pkt_len</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_throttle</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(576, 531)</value>
+      <value>(216, 355)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -829,7 +966,11 @@
     </param>
     <param>
       <key>id</key>
-      <value>fec_extended_encoder_0</value>
+      <value>blocks_throttle_0</value>
+    </param>
+    <param>
+      <key>ignoretag</key>
+      <value>True</value>
     </param>
     <param>
       <key>maxoutbuf</key>
@@ -840,25 +981,64 @@
       <value>0</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>'11'</value>
+      <key>samples_per_second</key>
+      <value>samp_rate</value>
     </param>
     <param>
-      <key>threadtype</key>
-      <value>none</value>
+      <key>type</key>
+      <value>byte</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
     </param>
   </block>
   <block>
-    <key>qtgui_number_sink</key>
+    <key>blocks_unpack_k_bits_bb</key>
     <param>
-      <key>autoscale</key>
-      <value>False</value>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(424, 259)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>blocks_unpack_k_bits_bb_0</value>
+    </param>
+    <param>
+      <key>k</key>
+      <value>8</value>
     </param>
     <param>
-      <key>avg</key>
+      <key>maxoutbuf</key>
       <value>0</value>
     </param>
     <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_vector_source_x</key>
+    <param>
       <key>alias</key>
       <value></value>
     </param>
@@ -876,214 +1056,293 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1096, 619)</value>
-    </param>
-    <param>
-      <key>gui_hint</key>
-      <value></value>
+      <value>(176, 251)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
     <param>
-      <key>graph_type</key>
-      <value>qtgui.NUM_GRAPH_HORIZ</value>
+      <key>id</key>
+      <value>blocks_vector_source_x_0_1_0</value>
     </param>
     <param>
-      <key>id</key>
-      <value>qtgui_number_sink_0</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>type</key>
-      <value>float</value>
+      <value>byte</value>
     </param>
     <param>
-      <key>color1</key>
-      <value>("black", "black")</value>
+      <key>repeat</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>tags</key>
+      <value>[]</value>
     </param>
     <param>
-      <key>factor1</key>
+      <key>vlen</key>
       <value>1</value>
     </param>
     <param>
-      <key>label1</key>
+      <key>vector</key>
+      <value>(frame_size/15)*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0, 
127]</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_async_encoder</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit1</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color10</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor10</key>
+      <key>_enabled</key>
       <value>1</value>
     </param>
     <param>
-      <key>label10</key>
-      <value></value>
+      <key>encoder</key>
+      <value>polar_encoder_async</value>
     </param>
     <param>
-      <key>unit10</key>
-      <value></value>
+      <key>_coordinate</key>
+      <value>(872, 419)</value>
     </param>
     <param>
-      <key>color2</key>
-      <value>("black", "black")</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>factor2</key>
-      <value>1</value>
+      <key>id</key>
+      <value>fec_async_encoder_0</value>
     </param>
     <param>
-      <key>label2</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>unit2</key>
-      <value></value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>color3</key>
-      <value>("black", "black")</value>
+      <key>packed</key>
+      <value>True</value>
     </param>
     <param>
-      <key>factor3</key>
-      <value>1</value>
+      <key>rev_pack</key>
+      <value>False</value>
     </param>
     <param>
-      <key>label3</key>
+      <key>rev_unpack</key>
+      <value>False</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_encoder</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit3</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color4</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor4</key>
+      <key>_enabled</key>
       <value>1</value>
     </param>
     <param>
-      <key>label4</key>
-      <value></value>
+      <key>encoder_list</key>
+      <value>polar_encoder_stream</value>
     </param>
     <param>
-      <key>unit4</key>
-      <value></value>
+      <key>_coordinate</key>
+      <value>(568, 243)</value>
     </param>
     <param>
-      <key>color5</key>
-      <value>("black", "black")</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>factor5</key>
-      <value>1</value>
+      <key>id</key>
+      <value>fec_extended_encoder_0_0_0</value>
     </param>
     <param>
-      <key>label5</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>unit5</key>
-      <value></value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>color6</key>
-      <value>("black", "black")</value>
+      <key>puncpat</key>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>factor6</key>
-      <value>1</value>
+      <key>threadtype</key>
+      <value>none</value>
     </param>
+  </block>
+  <block>
+    <key>fec_extended_tagged_encoder</key>
     <param>
-      <key>label6</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit6</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color7</key>
-      <value>("black", "black")</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>factor7</key>
+      <key>_enabled</key>
       <value>1</value>
     </param>
     <param>
-      <key>label7</key>
+      <key>encoder_list</key>
+      <value>polar_encoder_tagged</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(824, 323)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>fec_extended_tagged_encoder_0_0</value>
+    </param>
+    <param>
+      <key>lentagname</key>
+      <value>length_tag</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit7</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>color8</key>
-      <value>("black", "black")</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>factor8</key>
-      <value>1</value>
+      <key>_coordinate</key>
+      <value>(184, 11)</value>
     </param>
     <param>
-      <key>label8</key>
-      <value></value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>unit8</key>
+      <key>id</key>
+      <value>frame_size</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>Frame Size</value>
+    </param>
+    <param>
+      <key>short_id</key>
       <value></value>
     </param>
     <param>
-      <key>color9</key>
-      <value>("black", "black")</value>
+      <key>type</key>
+      <value>intx</value>
     </param>
     <param>
-      <key>factor9</key>
-      <value>1</value>
+      <key>value</key>
+      <value>30</value>
     </param>
+  </block>
+  <block>
+    <key>parameter</key>
     <param>
-      <key>label9</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>unit9</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>max</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>min</key>
-      <value>-1</value>
+      <key>_coordinate</key>
+      <value>(408, 11)</value>
     </param>
     <param>
-      <key>name</key>
-      <value>""</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>nconnections</key>
-      <value>1</value>
+      <key>id</key>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>update_time</key>
-      <value>0.10</value>
+      <key>label</key>
+      <value></value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>string</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>'11'</value>
     </param>
   </block>
   <block>
     <key>qtgui_time_sink_x</key>
     <param>
       <key>autoscale</key>
-      <value>True</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1111,7 +1370,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1088, 443)</value>
+      <value>(1264, 313)</value>
     </param>
     <param>
       <key>gui_hint</key>
@@ -1127,7 +1386,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>qtgui_time_sink_x_0</value>
+      <value>qtgui_time_sink_x_0_0_1</value>
     </param>
     <param>
       <key>legend</key>
@@ -1143,7 +1402,7 @@
     </param>
     <param>
       <key>label1</key>
-      <value></value>
+      <value>Polar extended encoder</value>
     </param>
     <param>
       <key>marker1</key>
@@ -1183,7 +1442,7 @@
     </param>
     <param>
       <key>alpha2</key>
-      <value>1.0</value>
+      <value>0.6</value>
     </param>
     <param>
       <key>color2</key>
@@ -1191,7 +1450,7 @@
     </param>
     <param>
       <key>label2</key>
-      <value></value>
+      <value>Polar extended tagged encoder</value>
     </param>
     <param>
       <key>marker2</key>
@@ -1215,7 +1474,7 @@
     </param>
     <param>
       <key>label3</key>
-      <value></value>
+      <value>Polar async encoder</value>
     </param>
     <param>
       <key>marker3</key>
@@ -1375,15 +1634,15 @@
     </param>
     <param>
       <key>name</key>
-      <value>""</value>
+      <value></value>
     </param>
     <param>
       <key>nconnections</key>
-      <value>2</value>
+      <value>3</value>
     </param>
     <param>
       <key>size</key>
-      <value>2048</value>
+      <value>2050</value>
     </param>
     <param>
       <key>srate</key>
@@ -1411,7 +1670,7 @@
     </param>
     <param>
       <key>tr_tag</key>
-      <value>""</value>
+      <value>packet_len</value>
     </param>
     <param>
       <key>type</key>
@@ -1419,7 +1678,7 @@
     </param>
     <param>
       <key>update_time</key>
-      <value>0.10</value>
+      <value>0.05</value>
     </param>
     <param>
       <key>ylabel</key>
@@ -1431,88 +1690,118 @@
     </param>
     <param>
       <key>ymax</key>
-      <value>1</value>
+      <value>1.5</value>
     </param>
     <param>
       <key>ymin</key>
-      <value>-1</value>
+      <value>-0.5</value>
     </param>
   </block>
   <connection>
     <source_block_id>analog_random_source_x_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_0_1</sink_block_id>
+    <sink_block_id>blocks_throttle_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>analog_random_source_x_0</source_block_id>
-    <sink_block_id>blocks_unpack_k_bits_bb_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_0_1</source_block_id>
+    <sink_block_id>qtgui_time_sink_x_0_0_1</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>0</sink_key>
+    <sink_key>2</sink_key>
   </connection>
   <connection>
-    <source_block_id>analog_random_source_x_0</source_block_id>
-    <sink_block_id>fec_ber_bf_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_1_0_0</source_block_id>
+    <sink_block_id>qtgui_time_sink_x_0_0_1</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>blocks_char_to_float_1_0_0_1</source_block_id>
+    <sink_block_id>qtgui_time_sink_x_0_0_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>1</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_0_1</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
+    <source_block_id>blocks_pdu_to_tagged_stream_0</source_block_id>
+    <sink_block_id>blocks_repack_bits_bb_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_0_2</source_block_id>
-    <sink_block_id>fec_extended_decoder_0</sink_block_id>
+    <source_block_id>blocks_repack_bits_bb_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_0_1</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>blocks_char_to_float_0</sink_block_id>
+    <source_block_id>blocks_repack_bits_bb_0_0</source_block_id>
+    <sink_block_id>fec_extended_tagged_encoder_0_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_ber_bf_0</sink_block_id>
+    <source_block_id>blocks_stream_to_tagged_stream_0</source_block_id>
+    <sink_block_id>blocks_repack_bits_bb_0_0</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>1</sink_key>
+    <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
-    <sink_block_id>fec_extended_encoder_0</sink_block_id>
+    <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
+    <sink_block_id>blocks_tagged_stream_to_pdu_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_map_bb_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_0_2</sink_block_id>
+    <source_block_id>blocks_tagged_stream_to_pdu_0</source_block_id>
+    <sink_block_id>fec_async_encoder_0</sink_block_id>
+    <source_key>pdus</source_key>
+    <sink_key>in</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_throttle_0</source_block_id>
+    <sink_block_id>blocks_stream_to_tagged_stream_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_ber_bf_0</source_block_id>
-    <sink_block_id>qtgui_number_sink_0</sink_block_id>
+    <source_block_id>blocks_throttle_0</source_block_id>
+    <sink_block_id>blocks_stream_to_tagged_stream_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_decoder_0</source_block_id>
-    <sink_block_id>blocks_pack_k_bits_bb_0</sink_block_id>
+    <source_block_id>blocks_throttle_0</source_block_id>
+    <sink_block_id>blocks_unpack_k_bits_bb_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>fec_extended_encoder_0_0_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_vector_source_x_0_1_0</source_block_id>
+    <sink_block_id>blocks_throttle_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_async_encoder_0</source_block_id>
+    <sink_block_id>blocks_pdu_to_tagged_stream_0</sink_block_id>
+    <source_key>out</source_key>
+    <sink_key>pdus</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_extended_encoder_0_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_encoder_0</source_block_id>
-    <sink_block_id>digital_map_bb_0</sink_block_id>
+    <source_block_id>fec_extended_tagged_encoder_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_0_0_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
diff --git a/gr-fec/examples/polar_ber_curve_gen.grc 
b/gr-fec/examples/polar_ber_curve_gen.grc
index 5c3c5c9..19fbaba 100644
--- a/gr-fec/examples/polar_ber_curve_gen.grc
+++ b/gr-fec/examples/polar_ber_curve_gen.grc
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.8'?>
+<?grc format='1' created='3.7.9'?>
 <flow_graph>
   <timestamp>Fri Jul 17 15:23:09 2015</timestamp>
   <block>
@@ -381,7 +381,7 @@
     </param>
     <param>
       <key>channel</key>
-      <value>bsc</value>
+      <value>polar.CHANNEL_TYPE_BEC</value>
     </param>
     <param>
       <key>comment</key>
diff --git a/gr-fec/examples/polar_code_example.grc 
b/gr-fec/examples/polar_code_example.grc
index ae388d6..6ea290c 100644
--- a/gr-fec/examples/polar_code_example.grc
+++ b/gr-fec/examples/polar_code_example.grc
@@ -85,7 +85,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(560, 267)</value>
+      <value>(312, 219)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -112,7 +112,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(560, 331)</value>
+      <value>(312, 283)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -139,7 +139,7 @@
     </param>
     <param>
       <key>channel</key>
-      <value>BSC</value>
+      <value>polar.CHANNEL_TYPE_BEC</value>
     </param>
     <param>
       <key>comment</key>
@@ -151,7 +151,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(664, 267)</value>
+      <value>(416, 219)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -206,7 +206,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1040, 267)</value>
+      <value>(792, 219)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -257,7 +257,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(872, 267)</value>
+      <value>(624, 219)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -312,7 +312,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(960, 59)</value>
+      <value>(712, 11)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -378,7 +378,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(512, 419)</value>
+      <value>(264, 371)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -437,7 +437,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(952, 475)</value>
+      <value>(704, 427)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -484,7 +484,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(952, 443)</value>
+      <value>(704, 395)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -531,7 +531,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(440, 651)</value>
+      <value>(192, 603)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -578,7 +578,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(808, 651)</value>
+      <value>(560, 603)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -621,7 +621,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(432, 547)</value>
+      <value>(184, 499)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -664,7 +664,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(328, 651)</value>
+      <value>(80, 603)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -715,7 +715,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(952, 625)</value>
+      <value>(704, 577)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -766,7 +766,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(576, 627)</value>
+      <value>(328, 579)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -821,7 +821,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(576, 531)</value>
+      <value>(328, 483)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -876,7 +876,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1096, 619)</value>
+      <value>(848, 571)</value>
     </param>
     <param>
       <key>gui_hint</key>
@@ -1111,7 +1111,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1088, 443)</value>
+      <value>(840, 395)</value>
     </param>
     <param>
       <key>gui_hint</key>
diff --git a/gr-fec/include/gnuradio/fec/polar_common.h 
b/gr-fec/include/gnuradio/fec/polar_common.h
index 8bf1a61..66392cc 100644
--- a/gr-fec/include/gnuradio/fec/polar_common.h
+++ b/gr-fec/include/gnuradio/fec/polar_common.h
@@ -46,12 +46,16 @@ namespace gr {
      * \details
      * polar codes are based on this paper by Erdal Arikan
      * "Channel Polarization: A Method for Contructing Capacity-Achieving 
Codes for Symmetric Binary-Input Memoryless Channels", 2009
+     * block holds common information for encoders and decoders. All polar 
encoder/decoders inherit from polar_common.
      *
      * class holds common info. It is common to all encoders and decoders.
-     * block_size: MUST be a power of 2.
-     * num_info_bits: any integer <= block_size
-     * frozen_bit_positions: elements specify position of frozen bits in each 
frame. size MUST be equal to block_size - num_info_bits
-     * frozen_bit_values: desired frozen bit values. '0' appended if smaller 
than frozen_bit_positions.
+     * \param block_size codeword size. MUST be a power of 2.
+     * \param num_info_bits represents the number of information bits in a 
block. Also called frame_size. <= block_size
+     * \param frozen_bit_positions is an integer vector which defines the 
position of all frozen bits in a block.
+     * Its size MUST be equal to block_size - num_info_bits.
+     * Also it must be sorted and every position must only occur once.
+     * \param frozen_bit_values holds an unpacked byte for every frozen bit 
position.
+     * It defines if a frozen bit is fixed to '0' or '1'. Defaults to all ZERO.
      */
     class FEC_API polar_common
     {
diff --git a/gr-fec/include/gnuradio/fec/polar_decoder_common.h 
b/gr-fec/include/gnuradio/fec/polar_decoder_common.h
index 6f192e5..2376e8f 100644
--- a/gr-fec/include/gnuradio/fec/polar_decoder_common.h
+++ b/gr-fec/include/gnuradio/fec/polar_decoder_common.h
@@ -34,6 +34,13 @@ namespace gr {
     /*!
      * \brief Class holds common methods and attributes for different decoder 
implementations
      *
+     * \param block_size codeword size. MUST be a power of 2.
+     * \param num_info_bits represents the number of information bits in a 
block. Also called frame_size. <= block_size
+     * \param frozen_bit_positions is an integer vector which defines the 
position of all frozen bits in a block.
+     * Its size MUST be equal to block_size - num_info_bits.
+     * Also it must be sorted and every position must only occur once.
+     * \param frozen_bit_values holds an unpacked byte for every frozen bit 
position.
+     * It defines if a frozen bit is fixed to '0' or '1'. Defaults to all ZERO.
      */
     class FEC_API polar_decoder_common : public generic_decoder, public 
polar_common
     {
@@ -42,7 +49,7 @@ namespace gr {
       ~polar_decoder_common();
 
       // FECAPI
-      double rate(){return (1.0 * get_input_size() / get_output_size());};
+      double rate(){return (1.0 * get_output_size() / get_input_size());};
       int get_input_size(){return block_size();};
       int get_output_size(){return num_info_bits();};
       bool set_frame_size(unsigned int frame_size){return false;};
diff --git a/gr-fec/include/gnuradio/fec/polar_decoder_sc.h 
b/gr-fec/include/gnuradio/fec/polar_decoder_sc.h
index 35f22dd..d32c1c9 100644
--- a/gr-fec/include/gnuradio/fec/polar_decoder_sc.h
+++ b/gr-fec/include/gnuradio/fec/polar_decoder_sc.h
@@ -33,6 +33,8 @@ namespace gr {
 
     /*!
      * \brief Standard successive cancellation (SC) decoder for POLAR codes
+     *
+     * \details
      * It expects float input with bits mapped 1 --> 1, 0 --> -1
      * Or: f = 2.0 * bit - 1.0
      *
@@ -40,6 +42,15 @@ namespace gr {
     class FEC_API polar_decoder_sc : public polar_decoder_common
     {
     public:
+      /*!
+       * \param block_size codeword size. MUST be a power of 2.
+       * \param num_info_bits represents the number of information bits in a 
block. Also called frame_size. <= block_size
+       * \param frozen_bit_positions is an integer vector which defines the 
position of all frozen bits in a block.
+       * Its size MUST be equal to block_size - num_info_bits.
+       * Also it must be sorted and every position must only occur once.
+       * \param frozen_bit_values holds an unpacked byte for every frozen bit 
position.
+       * It defines if a frozen bit is fixed to '0' or '1'. Defaults to all 
ZERO.
+       */
       static generic_decoder::sptr make(int block_size, int num_info_bits, 
std::vector<int> frozen_bit_positions, std::vector<char> frozen_bit_values);
       ~polar_decoder_sc();
 
diff --git a/gr-fec/include/gnuradio/fec/polar_decoder_sc_list.h 
b/gr-fec/include/gnuradio/fec/polar_decoder_sc_list.h
index 5dbad0e..1bd9d91 100644
--- a/gr-fec/include/gnuradio/fec/polar_decoder_sc_list.h
+++ b/gr-fec/include/gnuradio/fec/polar_decoder_sc_list.h
@@ -40,15 +40,25 @@ namespace gr {
      * LLR version: Balatsoukas-Stimming, Parizi, Burg "LLR-based Successive 
Cancellation List Decoding of Polar Codes", 2015
      *
      * \details
-     * max_list_size: specifies the maximum number of code paths to follow.
+     * decoder is based on Tal, Vardy "List Decoding of Polar Codes", 2012
+     * LLR version: Balatsoukas-Stimming, Parizi, Burg "LLR-based Successive 
Cancellation List Decoding of Polar Codes", 2015
      *
      * Block expects float input with bits mapped 1 --> 1, 0 --> -1
      * Or: f = 2.0 * bit - 1.0
-     *
      */
     class FEC_API polar_decoder_sc_list : public polar_decoder_common
     {
     public:
+      /*!
+       * \param max_list_size caps number of followed decoding paths.
+       * \param block_size codeword size. MUST be a power of 2.
+       * \param num_info_bits represents the number of information bits in a 
block. Also called frame_size. <= block_size
+       * \param frozen_bit_positions is an integer vector which defines the 
position of all frozen bits in a block.
+       * Its size MUST be equal to block_size - num_info_bits.
+       * Also it must be sorted and every position must only occur once.
+       * \param frozen_bit_values holds an unpacked byte for every frozen bit 
position.
+       * It defines if a frozen bit is fixed to '0' or '1'. Defaults to all 
ZERO.
+       */
       static generic_decoder::sptr make(int max_list_size, int block_size, int 
num_info_bits, std::vector<int> frozen_bit_positions, std::vector<char> 
frozen_bit_values);
       ~polar_decoder_sc_list();
 
diff --git a/gr-fec/include/gnuradio/fec/polar_encoder.h 
b/gr-fec/include/gnuradio/fec/polar_encoder.h
index 530a6de..4ce1b11 100644
--- a/gr-fec/include/gnuradio/fec/polar_encoder.h
+++ b/gr-fec/include/gnuradio/fec/polar_encoder.h
@@ -37,14 +37,24 @@ namespace gr {
      * \ingroup error_coding_blk
      *
      * \details
-     * Additional parameters
-     * is_packed: choose 1 active bit/byte or 8 active bit/byte.
-     *            if false, VOLK polar encoder is used.
-     *
+     * expects values with MSB first. It needs a full information word and 
encodes it in one pass.
+     * Output is a codeword of block_size.
      */
     class FEC_API polar_encoder : public generic_encoder, public polar_common
     {
     public:
+      /*!
+       * Factory for a polar code encoder object.
+       *
+       * \param block_size defines the codeword size. It MUST be a power of 2.
+       * \param num_info_bits represents the number of information bits in a 
block. Also called frame_size.
+       * \param frozen_bit_positions is an integer vector which defines the 
position of all frozen bits in a block.
+       * Its size MUST be equal to block_size - num_info_bits.
+       * Also it must be sorted and every position must only occur once.
+       * \param frozen_bit_values holds an unpacked byte for every frozen bit 
position.
+       * It defines if a frozen bit is fixed to '0' or '1'. Defaults to all 
ZERO.
+       * \param is_packed, choose 1 active bit/byte or 8 active bit/byte. if 
false, VOLK polar encoder is used.
+       */
       static generic_encoder::sptr make(int block_size, int num_info_bits, 
std::vector<int> frozen_bit_positions, std::vector<char> frozen_bit_values, 
bool is_packed = false);
       ~polar_encoder();
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]