# Polar code[1]

## Description

In its basic version, a binary linear polar code encodes \(K\) message bits into \(N=2^n\) bits. The linear transformation that defines the code is given by the matrix \(G^{(n)}=B_N G^{\otimes n}\), where \(B_N\) is a certain \(N\times N\) permutation matrix, and \(G^{\otimes n}\) is the \(n\)th Kronecker power of the \(2\times 2\) kernel matrix \(G=\left[\begin{smallmatrix}1 & 0\\ 1 & 1 \end{smallmatrix}\right]\). To encode \(K\) message bits, one forms an \(N\)-vector \(u\) in which \(K\) coordinates represent the message bits. The remaining \(N-K\) coordinates are set to some fixed values and are said to be frozen. The codeword \(x \in \{0,1\}^N\) is obtained as \(x=u G^{\otimes n}\).

The choice of the frozen coordinates depends on the communication channel, and they correspond to the least reliable bits on the output of the channel under a particular decoding procedure called successive cancellation decoding. If the communication channel is input-symmetric, the values of the frozen bits can be set to zero.

There are multiple variants of the above basic construction, in particular relying on other kernel matrices. The codes can be defined for nonbinary alphabets, and they can be adjusted to support tasks such as lossless and lossy compression, successive refinement, communication over the mulitple access channel, communication over the wiretap channel, and many others.

## Protection

## Rate

## Decoding

## Realizations

## Notes

## Parents

- Linear binary code
- Generalized concatenated code — Polar codes can be represented as generalized concatenations of their kernels.

## Cousins

- Reed-Muller (RM) code — RM codes rely on the same generator matrix, but place message bits in different coordinates.
- Polar c-q code — Quantum-classical polar codes generalize polar codes for transmission through channels with quantum output.
- Quantum polar code — Without entanglement assistance, quantum polar codes are just CSS codes constructed out of polar codes.

## References

- [1]
- E. Arikan, “Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels”, IEEE Transactions on Information Theory 55, 3051 (2009) DOI
- [2]
- I. Tal and A. Vardy, “List Decoding of Polar Codes”, IEEE Transactions on Information Theory 61, 2213 (2015) DOI
- [3]
- Y. Ren et al., “A Sequence Repetition Node-Based Successive Cancellation List Decoder for 5G Polar Codes: Algorithm and Implementation”, IEEE Transactions on Signal Processing 70, 5592 (2022) arXiv:2205.08857 DOI
- [4]
- U. U. Fayyaz and J. R. Barry, “Low-Complexity Soft-Output Decoding of Polar Codes”, IEEE Journal on Selected Areas in Communications 32, 958 (2014) DOI
- [5]
- U. U. Fayyaz and J. R. Barry, “Polar codes for partial response channels”, 2013 IEEE International Conference on Communications (ICC) (2013) DOI
- [6]
- E. Arkan, “A performance comparison of polar codes and Reed-Muller codes”, IEEE Communications Letters 12, 447 (2008) DOI
- [7]
- S. Kasi et al., “Decoding Polar Codes via Noisy Quantum Gates: Quantum Circuits and Insights”, (2022) arXiv:2210.10854
- [8]
- 3rd Generation Partnership Project (3GPP), Technical specification group radio access network, 3GPP TS 38.212 V.15.0.0, 2017.
- [9]
- W. C. Huffman, J.-L. Kim, and P. Solé, Concise Encyclopedia of Coding Theory (Chapman and Hall/CRC, 2021) DOI
- [10]
- Michael Helmling, Stefan Scholl, Florian Gensheimer, Tobias Dietz, Kira Kraft, Stefan Ruzika, and Norbert Wehn. Database of Channel Codes and ML Simulation Results. URL, 2022.
- [11]
- G. Liva, F. Steiner. “pretty-good-codes.org: Online library of good channel codes”, URL: http://pretty-good-codes.org/
- [12]
- A. Cassagne et al., “AFF3CT: A Fast Forward Error Correction Toolbox!”, SoftwareX 10, 100345 (2019) DOI

## Page edit log

- Victor V. Albert (2022-07-12) — most recent
- Alexander Barg (2021-11-10)
- Victor V. Albert (2021-11-04)

## Cite as:

“Polar code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/polar

Github: https://github.com/errorcorrectionzoo/eczoo_data/tree/main/codes/classical/bits/polar.yml.