This tutorial treats the fundamentals of polarization theory and polar coding. Arıkan's original results on binary source and channel polarization methods are studied. Error probability and complexity analyses are offered. The original results are generalized in several directions. Early developments in the field are discussed, pointers to some of the important work omitted from this tutorial are given.
Despite remarkable advances in the algebraic and iterative codes used in modern communication systems, finding codes that operate at rates close to capacity; have low computational complexity; and have provable reliability guarantees was an elusive goal until recently. Polar Codes have all of these desirable properties. The design philosophy of polar codes is fundamentally different from those of both algebraic codes and iterative codes. The technique underlying polar codes is 'channel polarization': creating extremal channels those that are either noiseless or useless from mediocre ones.
Polarization and Polar Codes: A Tutorial is the first in-depth tutorial on this exciting new technique that promises to offer major improvements in digital communications systems. The tutorial is clearly written and is accessible for all researchers and engineers who want to understand the fundamental concepts used in polar codes. A whole chapter is devoted to demonstrating how polar codes prove reliability using low-complexity. Generalizations of the theory are then discussed that show how discrete memoryless processes of arbitrary alphabet sizes, not just binary ones, can be polarized by recursive transforms; how stronger codes can be obtained by combining more than two random variables in each recursion of a polarizing construction; and how polar coding theorems can be used in multi-user settings.