Polar code (coding theory)


In information theory, a polar code is a linear block error correcting code. The code construction is based on a multiple recursive concatenation of a short kernel code which transforms the physical channel into virtual outer channels. When the number of recursions becomes large, the virtual channels tend to either have high reliability or low reliability, and the data bits are allocated to the most reliable channels. Polar codes were described by Erdal Arıkan in 2009. There is work suggesting this is equivalent to an earlier optimised code for bitwise multistage decoding, a code originally described by Norbert Stolte. It is the first code with an explicit construction to provably achieve the channel capacity for symmetric binary-input, discrete, memoryless channels with polynomial dependence on the gap to capacity. Notably, polar codes have modest encoding and decoding complexity, which renders them attractive for many applications. Moreover, the encoding and decoding energy complexity of generalized polar codes can reach the fundamental lower bounds for energy consumption of two dimensional circuitry to within an factor for any.

Simulating polar codes

One can implement a simulation environment of polar codes in any programming language such as MATLAB, C++, etc.
It typically involves modelling an encoder, a decoder, a channel, and a code-construction module.
An example MATLAB implementation is available, including a series of introductory video tutorials.
The equivalence between Stolte's and Arikan's methods for construction and decoding of Polar codes has been verified by simulations.

Industrial applications

There are many aspects that polar codes should investigate further before considering for industry applications. Especially, the original design of the polar codes achieves capacity when block sizes are asymptotically large with successive cancellation decoder. However, in block sizes that industry applications are operating, the performance of the successive cancellation is poor compared to the well-defined and implemented coding schemes such as LDPC and Turbo. Polar performance can be improved with successive cancellation list decoding, but their usability in real applications are still questionable due to very poor implementation efficiencies.
In October 2016, Huawei announced that it had achieved 27Gbps in 5G field trial tests using polar codes for channel coding. The improvements have been introduced so that the channel performance has now almost closed the gap to the Shannon limit, which sets the bar for the maximum rate for a given bandwidth and a given noise level.
In November 2016, 3GPP agreed to adopt polar codes for the eMBB control channels for the 5G NR interface. At the same meeting, 3GPP agreed to use LDPC for the corresponding data channel.