Polar subcodes

This page presents specifications of some polar subcodes. If you need codes with other parameters, please do not hesitate to send a message to  polar(at)dcn.icc.spbstu.ru.

Code specification file format

A polar subcode specification represents a text file with the following format:

  • The first line contains four integers: base-2 logarithm of non-shortened Arikan polar code (m), code dimension (k), minimum distance d, length of the shortened code (n=2m-s-p), the number of shortened symbols (s), the number of punctured symbols (p).
  • The second line contains s integers, which specify a shortening pattern, i.e. the indices of codeword symbols which are always equal to zero and should be removed before transmission, which are followed by p integers specifying a puncturing pattern, i.e. the indices of codeword symbols which should be removed before transmission, but are not necessary equal to zero. For non-shortened codes (2m=n) this line is empty and may be omitted.
  • The following 2m-k  lines contain the dynamic freezing constraints. The first number in a line gives the number of terms t. The following t integers i1,...,it, arranged in ascending order define an equation  u[it]=u[i1]+u[i2]+...+u[it-1]. The case of t=1 corresponds to  u[i1]=0.  Hence, symbols with indices it are frozen.

Non-systematic encoding can be implemented as follows:

  1. Place the data symbols into  k elements of vector  u of length 2m, which are not frozen.
  2. Compute the values of frozen symbols ad write them into the corresponding elements of vector u.
  3. Multiply the obtained vector by matrix (1 0;1 1)^{\otimes m}. Observe that it is not necessary to use the bit reversal permutation matrix, which appears in the description of classical Arikan polar codes, provided that this is properly taken into account at the decoder side.
  4. Remove from the obtained vector symbols with indices given in the second line of the specification file.

Each of the following  n_k_d.spec files defines a  (n,k,d) polar subcode. The corresponding simulation results are provided in file n_k_d.ber. These results were obtained with the block sequential decoding algorithm with L=32.