The remainder of the paper is organized as follows. Section \[sec:prel\] introduces the basics on polar codes, while Section \[sec:adv\] details more advanced design features, along with concepts used in the 5G encoding process, such as interleaving and rate-matching. Section \[sec:5G\] details a step-by-step guide to 5G polar code encoding. Decoding considerations are addressed in Section \[sec:dec\], while conclusions are drawn in Section \[sec:conc\].

Preliminaries {#sec:prel}
=============

In this section, we describe the fundamental concepts necessary to familiarize with the structure, the encoding and the decoding of polar codes. This section can be skipped by readers having basic knowledge on the field, while we refer readers interested in further details and examples to [@polar_intro].

Channel polarization
--------------------

The channel polarization phenomenon, introduced in [@arikan], consists of a transformation which produces $N$ “synthetic” bit-channels from $N$ independent copies of a binary-input discrete memoryless channel (B-DMC). The new synthetic channels are then “polarized” in the sense that each of them can transmit a single bit at a different *reliability*, i.e. with a different probability of being decoded correctly. If $N$ is large enough, the mutual information of the synthetic channels is either close to 0 (completely noisy channels) or close to 1 