{ "cells": [ { "cell_type": "markdown", "id": "520abdd0", "metadata": {}, "source": [ "# Polar Codes in 5G\n", "Polar codes in 5G are used for forward error correction for small to medium payload sizes which is typically the case for broadcast and control channels. The broadcast channel and control channel are used to carry the *master information block* (MIB) and *downlink control information* (DCI) repsectively. This tutorial covers the following content:\n", "\n", "\n", "## Table of content:\n", "* [Symbol Mapping Configurations](#Symbol-Mapping-Configurations)\n", "* [Simulation Parameters](#Polar-Coder-Configurations)\n", "* [Simulation for BER vs SNR](#Simulation:-AWGN-Channel)\n", "* [Performance Evaluation](#Performance-Evaluations)\n" ] }, { "cell_type": "markdown", "id": "3d444d3c", "metadata": {}, "source": [ "## Import libraries\n", "### Python Libraries" ] }, { "cell_type": "code", "execution_count": 1, "id": "b3247ee3", "metadata": {}, "outputs": [], "source": [ "import os\n", "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \n", "\n", "# %matplotlib widget\n", "import matplotlib.pyplot as plt\n", "import matplotlib as mpl\n", "from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes \n", "from mpl_toolkits.axes_grid1.inset_locator import mark_inset\n", "\n", "import numpy as np" ] }, { "cell_type": "markdown", "id": "08bfdb09", "metadata": {}, "source": [ "### 5G Toolkit libraries" ] }, { "cell_type": "code", "execution_count": 2, "id": "862a2654", "metadata": { "scrolled": false }, "outputs": [], "source": [ "from toolkit5G.SymbolMapping import Demapper\n", "from toolkit5G.SymbolMapping import Mapper\n", "from toolkit5G.ChannelCoder import PolarEncoder5G\n", "from toolkit5G.ChannelCoder import PolarDecoder5G" ] }, { "cell_type": "code", "execution_count": 3, "id": "8c0082d1", "metadata": {}, "outputs": [], "source": [ "# from IPython.display import display, HTML\n", "# display(HTML(\"\"))" ] }, { "cell_type": "markdown", "id": "e8522b72", "metadata": {}, "source": [ "## Symbol Mapping Configurations\n", "Symbol mapping/Demapping is performed for:\n", "\n", "- **QPSK** constellation defined by ``constellation_type`` which encodes\n", "- 1 bit per contellation symbol defined by ``num_bits_per_symbol``.\n", "- The demapper generates log likelihood ratios configured by ``hard_out`` \n", "- using a Log-Map (**\"app\"**) decoder defined using ``demapping_method``." ] }, { "cell_type": "code", "execution_count": 4, "id": "c9243d31", "metadata": {}, "outputs": [], "source": [ "constellation_type = \"qam\"\n", "num_bits_per_symbol = 2\n", "hard_out = False\n", "demapping_method = \"app\"\n", "\n", "mapper = Mapper(constellation_type, num_bits_per_symbol)\n", "demapper= Demapper(demapping_method, constellation_type, num_bits_per_symbol, hard_out = hard_out)" ] }, { "cell_type": "markdown", "id": "3b3bb65b", "metadata": {}, "source": [ "## Polar Coder Configurations\n", "The simulations parameters are:\n", "\n", "- ``K`` defines block-length.\n", "- ``SNRdB`` defines Signal to noise ratio (SNR) in dB.\n", "- ``purpose`` defines the physical channel for which the Polar coder is used.\n", "- ``verbose`` displays the details of the simulation if configured to True.\n", "- ``decoderType`` defines the type of Polar Decoder used." ] }, { "cell_type": "code", "execution_count": 5, "id": "a00b20e2", "metadata": {}, "outputs": [], "source": [ "K = 56 # Number of bits to encode\n", "E = 864 # Rate matching bits\n", "purpose = \"PDCCH\" # The channel for which the Polar Encoder\n", "verbose = False \n", "decoderType ='SC'" ] }, { "cell_type": "markdown", "id": "877f2045", "metadata": {}, "source": [ "## Simulation: AWGN Channel\n", "This subsection performs the simulation which involve following steps:\n", "\n", "* Bits generation of length ``k``\n", "* Polar Encoding\n", "* BPSK Symbol Mapping of encoded bits\n", "* Passing through the AWGN Channel\n", " * Adding noise to BPSK symbols with a given SNR\n", "* Symbol De-mapping using **Log Map** Demapper defined by ``\"app\"``.\n", " * Generates Log likelihood values as ``hard_out`` is set to ``False``.\n", "* Polar Decoding\n", "* BER computation\n", "\n", "The flow of the implementation can be understood using folowing diagram:\n", "![PolarCodes](Polar.png)\n", "\n", "The bit error rate (BER) is computed for every combination of K $= \\{20, 50, 80, 110, 140\\}$ and SNR $= \\{-10, -8, -6, -4, -2, 0\\}$ dB and averaged over $500000$ batches (monteCarloIterations)." ] }, { "cell_type": "code", "execution_count": 6, "id": "fe137e11", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Warning: 5G Polar codes use an integrated CRC that cannot be materialized with SC decoding and, thus, causes a degraded performance. Please consider SCL decoding instead.\n", "For K=20, At SNR(dB): -10.0 | Bit Error Rate: 0.2743000090122223\n", "For K=20, At SNR(dB): -7.5 | Bit Error Rate: 0.08980000019073486\n", "For K=20, At SNR(dB): -5.0 | Bit Error Rate: 0.003100000089034438\n", "For K=20, At SNR(dB): -2.5 | Bit Error Rate: 0.0\n", "For K=20, At SNR(dB): 0.0 | Bit Error Rate: 0.0\n", "Warning: 5G Polar codes use an integrated CRC that cannot be materialized with SC decoding and, thus, causes a degraded performance. Please consider SCL decoding instead.\n", "For K=50, At SNR(dB): -10.0 | Bit Error Rate: 0.41582000255584717\n", "For K=50, At SNR(dB): -7.5 | Bit Error Rate: 0.18559999763965607\n", "For K=50, At SNR(dB): -5.0 | Bit Error Rate: 0.007199999876320362\n", "For K=50, At SNR(dB): -2.5 | Bit Error Rate: 0.0\n", "For K=50, At SNR(dB): 0.0 | Bit Error Rate: 0.0\n", "Warning: 5G Polar codes use an integrated CRC that cannot be materialized with SC decoding and, thus, causes a degraded performance. Please consider SCL decoding instead.\n", "For K=80, At SNR(dB): -10.0 | Bit Error Rate: 0.48739999532699585\n", "For K=80, At SNR(dB): -7.5 | Bit Error Rate: 0.4479624927043915\n", "For K=80, At SNR(dB): -5.0 | Bit Error Rate: 0.18539999425411224\n", "For K=80, At SNR(dB): -2.5 | Bit Error Rate: 0.004937500227242708\n", "For K=80, At SNR(dB): 0.0 | Bit Error Rate: 0.0\n", "Warning: 5G Polar codes use an integrated CRC that cannot be materialized with SC decoding and, thus, causes a degraded performance. Please consider SCL decoding instead.\n", "For K=110, At SNR(dB): -10.0 | Bit Error Rate: 0.49500909447669983\n", "For K=110, At SNR(dB): -7.5 | Bit Error Rate: 0.48929092288017273\n", "For K=110, At SNR(dB): -5.0 | Bit Error Rate: 0.4067363739013672\n", "For K=110, At SNR(dB): -2.5 | Bit Error Rate: 0.060045454651117325\n", "For K=110, At SNR(dB): 0.0 | Bit Error Rate: 0.0\n", "Warning: 5G Polar codes use an integrated CRC that cannot be materialized with SC decoding and, thus, causes a degraded performance. Please consider SCL decoding instead.\n", "For K=140, At SNR(dB): -10.0 | Bit Error Rate: 0.49880000948905945\n", "For K=140, At SNR(dB): -7.5 | Bit Error Rate: 0.49350714683532715\n", "For K=140, At SNR(dB): -5.0 | Bit Error Rate: 0.4741571545600891\n", "For K=140, At SNR(dB): -2.5 | Bit Error Rate: 0.22966428101062775\n", "For K=140, At SNR(dB): 0.0 | Bit Error Rate: 0.002707142848521471\n" ] } ], "source": [ "K = np.int32(np.linspace(20,140,5))\n", "SNRdB = np.linspace(-10,0,5)\n", "SNR = 10**(SNRdB/10)\n", "numBatches = 1000\n", "BER = np.zeros((K.size, SNR.size))\n", "\n", "kIndex = 0\n", "snrIndex = 0\n", "for k in K:\n", " #######################################################\n", " ################ Generate UCI Payload #################\n", " #######################################################\n", " bits = np.float32(np.random.randint(2, size = (numBatches, k)))\n", "\n", " #######################################################\n", " ################### Polar Encoder #####################\n", " #######################################################\n", " encoder = PolarEncoder5G(k, E, purpose,verbose)\n", " encBits = encoder(bits)\n", "\n", " #######################################################\n", " ################### Rate Matching #####################\n", " #######################################################\n", " encoder = PolarEncoder5G(k, E, purpose,verbose)\n", "\n", "\n", " #######################################################\n", " ################### Symbol Mapping ####################\n", " #######################################################\n", " symbols = mapper(encBits)\n", "\n", " decoder = PolarDecoder5G(K = k, E = E, purpose = purpose, dec_type = decoderType)\n", " snrIndex = 0\n", " for snr in SNR:\n", "\n", " #######################################################\n", " ################ Add Noise at Receiver ################\n", " #######################################################\n", " symbs = symbols + np.sqrt(0.5/snr)*(np.random.standard_normal(size=symbols.shape)+1j*np.random.standard_normal(size=symbols.shape)).astype(np.complex64)\n", "\n", " #######################################################\n", " ################## Symbol Demapping ###################\n", " #######################################################\n", " llrEst = demapper([symbs, np.float32(1/snr)])\n", "\n", " #######################################################\n", " ################ Reed Muller Decoder ##################\n", " #######################################################\n", " rxBits = decoder(llrEst)\n", "\n", " #######################################################\n", " ############## Key Performance Metrics ################\n", " #######################################################\n", " BER[kIndex, snrIndex] = np.mean(np.abs(rxBits-bits))\n", "\n", " print(\"For K=\"+str(k)+\", At SNR(dB): \"+str(SNRdB[snrIndex])+\" | Bit Error Rate: \"+str(BER[kIndex, snrIndex]))\n", "\n", " snrIndex = snrIndex + 1\n", " kIndex = kIndex + 1" ] }, { "cell_type": "markdown", "id": "8e3d0719", "metadata": {}, "source": [ "## Performance Evaluations\n", "The script plots SNR in dB vs BER performance for different code-block lengths $\\text{K} \\in \\{20, 50, 80, 110, 140\\}$. It can be observed that the Polar codes can provide the reliablilty of \n", "\n", "- $99.99990 \\text{ or BER = } 10^{-4}$ for all the block-sizes supported in downlink even at low SNR value of 0 dB. " ] }, { "cell_type": "code", "execution_count": 7, "id": "962dac92", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "color_tuple = ['blue', 'orange', 'green', 'red', 'purple', 'brown', 'pink', 'gray', 'olive', 'cyan', 'black']\n", "markcolor_tuple = ['gold', 'navy', 'crimson', 'yellow', 'line', 'springgreen', 'black', 'aqua', 'royalblue', 'red', 'green']\n", "linestyle_tuple = ['-', '--', '-.', ':', 'solid', 'dashed', 'dashdot', 'dotted']\n", "marker_tuple = [\".\", \"o\", \">\", \"2\", \"8\", \"s\", \"p\", \"*\", \"P\", \"X\", \"D\"]\n", "\n", "kIndex = K.size-1\n", "for k in np.flip(K):\n", " ax.semilogy(SNRdB, BER[kIndex], color=color_tuple[kIndex%len(color_tuple)], \n", " linestyle=linestyle_tuple[kIndex%len(linestyle_tuple)], lw = 2,\n", " marker=marker_tuple[kIndex%len(marker_tuple)], markersize = 6, label=\"K = \"+str(k))\n", " \n", " kIndex = kIndex - 1\n", "\n", "ax.legend(loc=\"lower left\")\n", "ax.set_xlabel(\"Signal to Noise Ratio (dB)\", fontsize = 9)\n", "ax.set_ylabel(\"Bit Error Rate\", fontsize = 9)\n", "ax.set_title(\"[Polar Codes]: BER vs SNR(dB) for different block-lengths\", fontsize = 12)\n", "plt.rcParams.update({'font.size': 9})\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "3ef5d530", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.0" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }