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 (in other words, they polarize), and the data bits are allocated to the most reliable channels. Polar codes were described by Erdal Arıkan in 2009.[1] It is the first code with an explicit construction to provably achieve the channel capacity for symmetric binary-input, discrete, memoryless channels (B-DMC) with polynomial dependence on the gap to capacity. Notably, polar codes have modest encoding and decoding complexity O(n log n), 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 O(nε polylog n) factor for any ε > 0.[2]

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 (such as AWGN, BSC, BEC), and a code-construction module.

An example MATLAB implementation is available,[3] including a series of introductory video tutorials.

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.[4]

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.[5]

In November 2016, 3GPP agreed to adopt polar codes for the eMBB (Enhanced Mobile Broadband) control channels for the 5G NR (New Radio) interface. At the same meeting, 3GPP agreed to use LDPC for the corresponding data channel.[6]

See also

  • Category:Capacity-achieving codes
  • Category:Capacity-approaching codes

References

  1. Arikan, E. (July 2009). "Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels". IEEE Transactions on Information Theory. 55 (7): 3051–73. arXiv:0807.3917. doi:10.1109/TIT.2009.2021379.
  2. Blake, Christopher G. (2017). "Energy Consumption of Error Control Coding Circuits" (PDF). University of Toronto. Retrieved 2019-10-18.
  3. "www.polarcodes.com". Resources on Polar Codes.
  4. Arikan, Erdal, et al. "Challenges and some new directions in channel coding." arXiv:1504.03916 (2015).
  5. "Huawei achieves 27Gbps 5G speeds with Polar Code". Retrieved 2016-10-10.
  6. "3GPP RAN1 meeting #87 final report". 3GPP. Retrieved 31 August 2017.
  • AFF3CT Home Page (A Fast Forward Error Correction Toolbox) for high speed polar codes simulations in software
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.