Polar coding tutorial

Objectives of this tutorial:

Polar coding overview

Polar codes are error-correcting codes, which are able to achieve the capacity of binary-input memoryless symmetric (BMS) channels. This means that one can transmit at the highest possible rate over that class of channels. In addition, the encoding and decoding operations can be performed with low complexity, thanks to recursive techniques.
Formally, a specific polar code is fully defined by a 4-tuple (N, R, A, $u_A$) where:

High-level transmission scheme

Transmission scheme
Fig. 1 - High-level transmission scheme, using polar encoding and successive cancellation (SC) decoding.

The transmission process works as follow:

Code

We provide a simple implementation in MATLAB, in order to complement the material referenced below.
The implementation contains a polar encoder-decoder pair for a binary erasure channel (BEC). Please start with the readme file as entry point.

Download zip

References and links

Polar codes have been introduced in:
[1] E. Arıkan, "Channel polarization: a method for constructing capacity-achieving codes for symmetric binary-input memoryless channels", IEEE Trans. Inf. Theory, vol. 55, no. 7, pp. 3051-3073, July 2009.

An interactive demonstration of transmission schemes using polar coding can be found here.