diff --git a/GettingStarted.html b/GettingStarted.html index 027fa4ba..82c9d35d 100644 --- a/GettingStarted.html +++ b/GettingStarted.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_10_1.png b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_10_1.png new file mode 100644 index 00000000..aa5b0f45 Binary files /dev/null and b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_10_1.png differ diff --git a/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_15_1.png b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_15_1.png new file mode 100644 index 00000000..4aacf9a2 Binary files /dev/null and b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_15_1.png differ diff --git a/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_15_3.png b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_15_3.png new file mode 100644 index 00000000..a313ef21 Binary files /dev/null and b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_15_3.png differ diff --git a/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_16_0.png b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_16_0.png new file mode 100644 index 00000000..a7224da8 Binary files /dev/null and b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_16_0.png differ diff --git a/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_31_0.png b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_31_0.png new file mode 100644 index 00000000..2b276d5b Binary files /dev/null and b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_31_0.png differ diff --git a/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_33_0.png b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_33_0.png new file mode 100644 index 00000000..d799ac7b Binary files /dev/null and b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_33_0.png differ diff --git a/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_7_0.png b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_7_0.png new file mode 100644 index 00000000..19267ce1 Binary files /dev/null and b/_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_7_0.png differ diff --git a/_sources/api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.ipynb.txt b/_sources/api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.ipynb.txt new file mode 100644 index 00000000..b5f400ac --- /dev/null +++ b/_sources/api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.ipynb.txt @@ -0,0 +1,1225 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d2036407", + "metadata": {}, + "source": [ + "# CSI Compression and Reconstruction using CSINet for TDD Massive MIMO 5G Networks\n", + "\n", + "## Import Libraries\n", + "### Import Python Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b3d7831b", + "metadata": {}, + "outputs": [], + "source": [ + "# %matplotlib widget\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "\n", + "import os\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\n", + "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", + "\n", + "import numpy as np\n", + "\n", + "# from IPython.display import display, HTML\n", + "# display(HTML(\"\"))" + ] + }, + { + "cell_type": "markdown", + "id": "cdbd39e6", + "metadata": {}, + "source": [ + "### Import 5G Toolkit Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "079c39a1", + "metadata": {}, + "outputs": [], + "source": [ + "from csiNet import CSINet\n", + "\n", + "import sys\n", + "sys.path.append(\"../../\")\n", + "\n", + "from toolkit5G.PhysicalChannels.PDSCH import ComputeTransportBlockSize\n", + "from toolkit5G.PhysicalChannels import PDSCHLowerPhy, PDSCHUpperPhy, PDSCHDecoderLowerPhy, PDSCHDecoderUpperPhy\n", + "from toolkit5G.ChannelModels import AntennaArrays, SimulationLayout, ParameterGenerator, ChannelGenerator\n", + "from toolkit5G.Configurations import PDSCHLowerPhyConfiguration, PDSCHUpperPhyConfiguration\n", + "from toolkit5G.ChannelProcessing import AddNoise, ApplyChannel\n", + "from toolkit5G.SymbolMapping import Mapper, Demapper" + ] + }, + { + "cell_type": "markdown", + "id": "6637699c", + "metadata": {}, + "source": [ + "## Simulation Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "158a9ec4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Simulation Parameters *************\n", + "\n", + " numBatches: 200\n", + " numRB: 85\n", + " fft Size: 1024\n", + " numBSs: 1\n", + " numUEs: 200\n", + " scs: 30000\n", + " slotNumber: 0\n", + " terrain: CDL-A\n", + "Tx Ant Struture: [ 1 1 32 1 1]\n", + "Rx Ant Struture: [1 1 4 1 1]\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Carrier Frequency\n", + "carrierFrequency = 3.6*10**9 \n", + "delaySpread = 100*(10**-9)\n", + "numBatches = 200 # Number of batches considered for simulation\n", + "scs = 30*10**3 # Subcarrier Spacing for simulation\n", + "numBSs = 1 # Number of BSs considered for simulation\n", + "# Number of UEs considered for simulation\n", + "numUEs = numBatches # For now we are assuming that the numbatches are captured via numUEs\n", + "numRB = 85 # Number of Resource mapping considered for simulation | # 1 RB = 12 subcarrier\n", + "slotNumber = int(np.random.randint(0,2**(scs/15000)*10)) # Index of the slot considered for simulation\n", + "terrain = \"CDL-A\" # Terrain\n", + "txAntStruture = np.array([1,1,32,1,1]) # Tx Antenna Structure\n", + "rxAntStruture = np.array([1,1,4,1,1]) # Tx Antenna Structure\n", + "Nfft = 1024 # FFTSize\n", + "\n", + "print(\"************ Simulation Parameters *************\")\n", + "print()\n", + "print(\" numBatches: \"+str(numBatches))\n", + "print(\" numRB: \"+str(numRB))\n", + "print(\" fft Size: \"+str(Nfft))\n", + "print(\" numBSs: \"+str(numBSs))\n", + "print(\" numUEs: \"+str(numUEs))\n", + "print(\" scs: \"+str(scs))\n", + "print(\" slotNumber: \"+str(slotNumber))\n", + "print(\" terrain: \"+str(terrain))\n", + "print(\"Tx Ant Struture: \"+str(txAntStruture))\n", + "print(\"Rx Ant Struture: \"+str(rxAntStruture))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "0cf40c81", + "metadata": {}, + "source": [ + "## Wireless Channel Generation: CDL-A" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "74639fd2", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Number of BSs: 1\n", + " Shape of Channel: (1, 1, 1, 200, 1024, 4, 32)\n", + "*****************************************************\n", + "\n" + ] + } + ], + "source": [ + "# Antenna Array at UE side\n", + "# assuming antenna element type to be \"OMNI\"\n", + "# with 2 panel and 2 single polarized antenna element per panel.\n", + "ueAntArray = AntennaArrays(antennaType = \"OMNI\", centerFrequency = carrierFrequency, \n", + " arrayStructure = rxAntStruture)\n", + "ueAntArray()\n", + "\n", + "# # Radiation Pattern of Rx antenna element \n", + "# ueAntArray.displayAntennaRadiationPattern()\n", + "\n", + "\n", + "# Antenna Array at BS side\n", + "# assuming antenna element type to be \"3GPP_38.901\", a parabolic antenna \n", + "# with 4 panel and 4 single polarized antenna element per panel.\n", + "bsAntArray = AntennaArrays(antennaType = \"3GPP_38.901\", centerFrequency = carrierFrequency,\n", + " arrayStructure = txAntStruture)\n", + "bsAntArray()\n", + " \n", + "# # Radiation Pattern of Tx antenna element \n", + "# bsAntArray[0].displayAntennaRadiationPattern()\n", + "\n", + "# Layout Parameters\n", + "isd = 100 # inter site distance\n", + "minDist = 10 # min distance between each UE and BS \n", + "ueHt = 1.5 # UE height\n", + "bsHt = 25 # BS height\n", + "bslayoutType = \"Hexagonal\" # BS layout type\n", + "ueDropType = \"Hexagonal\" # UE drop type\n", + "htDist = \"equal\" # UE height distribution\n", + "ueDist = \"equal\" # UE Distribution per site\n", + "nSectorsPerSite = 1 # number of sectors per site\n", + "maxNumFloors = 1 # Max number of floors in an indoor object\n", + "minNumFloors = 1 # Min number of floors in an indoor object\n", + "heightOfRoom = 3 # height of room or ceiling in meters\n", + "indoorUEfract = 0.5 # Fraction of UEs located indoor\n", + "lengthOfIndoorObject = 3 # length of indoor object typically having rectangular geometry \n", + "widthOfIndoorObject = 3 # width of indoor object\n", + "# forceLOS = True # boolen flag if true forces every link to be in LOS state\n", + "forceLOS = False # boolen flag if true forces every link to be in LOS state\n", + "\n", + "# simulation layout object \n", + "simLayoutObj = SimulationLayout(numOfBS = numBSs,\n", + " numOfUE = numUEs,\n", + " heightOfBS = bsHt,\n", + " heightOfUE = ueHt, \n", + " ISD = isd,\n", + " layoutType = bslayoutType,\n", + " ueDropMethod = ueDropType, \n", + " UEdistibution = ueDist,\n", + " UEheightDistribution = htDist,\n", + " numOfSectorsPerSite = nSectorsPerSite,\n", + " ueRoute = None)\n", + "\n", + "simLayoutObj(terrain = terrain, \n", + " carrierFreq = carrierFrequency, \n", + " ueAntennaArray = ueAntArray,\n", + " bsAntennaArray = bsAntArray,\n", + " indoorUEfraction = indoorUEfract,\n", + " lengthOfIndoorObject = lengthOfIndoorObject,\n", + " widthOfIndoorObject = widthOfIndoorObject,\n", + " forceLOS = forceLOS)\n", + "\n", + "# displaying the topology of simulation layout\n", + "fig, ax = simLayoutObj.display2DTopology()\n", + "\n", + "paramGen = simLayoutObj.getParameterGenerator(delaySpread = delaySpread)\n", + "\n", + "# paramGen.displayClusters((0,0,0), rayIndex = 0)\n", + "channel = paramGen.getChannel()\n", + "Hf = channel.ofdm(scs, Nfft, normalizeChannel = True)\n", + "\n", + "Nt = bsAntArray.numAntennas # Number of BS Antennas\n", + "Nr = ueAntArray.numAntennas\n", + "\n", + "print(\" Number of BSs: \"+str(numBSs))\n", + "print(\" Shape of Channel: \"+str(Hf.shape))\n", + "print(\"*****************************************************\")\n", + "print()" + ] + }, + { + "cell_type": "markdown", + "id": "1f83b156", + "metadata": {}, + "source": [ + "## Reconstrunction Performance of CSI-Net" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6c22cda8", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7/7 [==============================] - 0s 7ms/step\n" + ] + } + ], + "source": [ + "numSubcarrier = 32\n", + "codewordSize = 512\n", + "\n", + "H = Hf[0,0,0,...,0,:].transpose(0,2,1)\n", + "csinet = CSINet()\n", + "model = csinet(Nt, numSubcarrier, codewordSize)\n", + "csinet.loadModel()\n", + "Hprep = csinet.preprocess(H)\n", + "\n", + "Hrec = csinet.predict(Hprep)\n", + "\n", + "Hest = csinet.postprocess(Hprep, Nfft)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "adf8a124", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[153 134 179 124 21]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "numChannels = 5\n", + "fig, ax = plt.subplots(2,numChannels, figsize = (12, 5))\n", + "\n", + "idx = np.random.choice(np.arange(numBatches), size=numChannels, replace = False)\n", + "print(idx)\n", + "for n in range(numChannels):\n", + " ax[0,n].imshow(np.abs(Hprep[idx[n],0])**2 + np.abs(Hprep[idx[n],1])**2, cmap = \"Greys\", aspect = \"auto\")\n", + " ax[1,n].imshow(np.abs( Hrec[idx[n],0])**2 + np.abs( Hrec[idx[n],1])**2, cmap = \"Greys\", aspect = \"auto\")\n", + " \n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d5881756", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NMSE: 0.20250736648608653\n" + ] + } + ], + "source": [ + "print(\"NMSE: \"+str(np.sqrt(np.mean(np.abs(Hest-H)**2/(np.abs(H))**2))))" + ] + }, + { + "cell_type": "markdown", + "id": "49e267dc", + "metadata": {}, + "source": [ + "## PDSCH Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "29e65b83", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ PDSCH Parameters *************\n", + "\n", + " pdschMappingType: PDSCH-mapping-type-A\n", + " startSymbol: 2\n", + " numSymbols: 12\n", + " betaDMRS: 1\n", + " rank: 1\n", + " configurationType: Configuration-type-1\n", + " maxLength: len1\n", + " dmrsTypeAPosition: pos2\n", + " dmrsAdditionalPosition: pos0\n", + " Duration, ld: 12\n", + " Start symbol, l0: 0\n", + " Start symbol-1, l1: 11\n", + " num of Layers: 1\n", + "\n", + "********************************************\n", + "********************************************\n", + " tbsize-1: 5768\n", + "\n", + " numTBs: 1\n", + " numCBs: 2\n", + " numLayers: 1 | LayerperTB: [1 0]\n", + " numRB: 85\n", + " coderate: 0.2451171875\n", + " modOrder: 2\n", + "additionalOverhead: 0\n", + "numberTargetBits: 23460\n", + "********************************************\n" + ] + } + ], + "source": [ + "########################################## PDSCH Lower Physical Layer Parameters #########################################\n", + "pdschLowerPhyConfig = PDSCHLowerPhyConfiguration(rank = 1, startSymbol=2, numSymbols=12, pdschMappingType = \"PDSCH-mapping-type-A\", \n", + " maxLength = \"len1\", dmrsAdditionalPosition = \"pos0\", l0 = 0,\n", + " configurationType = \"Configuration-type-1\")\n", + "pdschMappingType = pdschLowerPhyConfig.pdschMappingType # \"PDSCH mapping type A\" or \"PDSCH mapping type B\"\n", + "maxLength = pdschLowerPhyConfig.maxLength\n", + "startSymbol = pdschLowerPhyConfig.startSymbol\n", + "numSymbols = pdschLowerPhyConfig.numSymbols\n", + "betaDMRS = pdschLowerPhyConfig.betaDMRS\n", + "configurationType = pdschLowerPhyConfig.configurationType # \"Configuration-type-1\" or \"Configuration-type-2\"\n", + "dmrsTypeAPosition = pdschLowerPhyConfig.dmrsTypeAPosition # \"pos2\" or \"pos3\"\n", + "dmrsAdditionalPosition = pdschLowerPhyConfig.dmrsAdditionalPosition # \"pos2\" or \"pos3\"\n", + "ld = pdschLowerPhyConfig.ld\n", + "l0 = pdschLowerPhyConfig.l0\n", + "l1 = pdschLowerPhyConfig.l1\n", + "rank = pdschLowerPhyConfig.rank\n", + "scramblingID = pdschLowerPhyConfig.scramblingID\n", + "nSCID = pdschLowerPhyConfig.nSCID\n", + "\n", + "mcsIndex = 3\n", + "mcsTable = \"pdschTable1\"\n", + "\n", + "########################################## PDSCH Parameters #########################################\n", + "pdschUpperPhyConfig = PDSCHUpperPhyConfiguration(pdschMappingType = pdschMappingType, configurationType = configurationType, \n", + " dmrsTypeAPosition = dmrsTypeAPosition, maxLength = maxLength, mcsIndex = mcsIndex,\n", + " mcsTable = mcsTable, dmrsAdditionalPosition = dmrsAdditionalPosition, l0 = l0, \n", + " ld = ld, l1 = l1, startSymbol = startSymbol, numSymbols = numSymbols, rank = rank, \n", + " numRB = numRB)\n", + "\n", + "numTBs = pdschUpperPhyConfig.numTBs\n", + "numRB = pdschUpperPhyConfig.numRB\n", + "tbLen1 = pdschUpperPhyConfig.tbLen1\n", + "\n", + "codeRate = pdschUpperPhyConfig.codeRate\n", + "modOrder = pdschUpperPhyConfig.modOrder\n", + "mcsIndex = pdschUpperPhyConfig.mcsIndex\n", + "mcsTable = pdschUpperPhyConfig.mcsTable\n", + "numlayers = pdschUpperPhyConfig.numlayers\n", + "scalingField = pdschUpperPhyConfig.scalingField\n", + "additionalOverhead = pdschUpperPhyConfig.additionalOverhead\n", + "dmrsREs = pdschUpperPhyConfig.dmrsREs\n", + "additionalOverhead = pdschUpperPhyConfig.additionalOverhead\n", + "\n", + "numTargetBits1 = pdschUpperPhyConfig.numTargetBits1\n", + "if(numTBs == 2):\n", + " numTargetBits1 = pdschUpperPhyConfig.numTargetBits1\n", + " numTargetBits2 = pdschUpperPhyConfig.numTargetBits2\n", + " tbLen2 = pdschUpperPhyConfig.tbLen2\n", + "\n", + "numTargetBits = pdschUpperPhyConfig.numTargetBits" + ] + }, + { + "cell_type": "markdown", + "id": "029b60e8", + "metadata": {}, + "source": [ + "## PDSCH: Transmitter" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "abb12e69", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "(
    ,\n", + " )" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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+Mc/0L9/f/h8Phx00EG4++67E35PzeU///kPDMPACy+8gFNOOQV5eXk4+uijsWrVqgbHLV68GD169EBeXh7OPffcuAvEf/7znzj22GORk5OD3r17Y9asWbG7fLNnz0ZpaWmDzzvjjDNwyimnIBQKOfoedHT2q6RlZKyOjg5lfvrpJ2UYhrrtttvifvzSSy9VHTp0UKFQSCml1EknnaSmTJliez67j1uWpTp06KAmTZoUex8AtXTpUnXUUUepp59+Wiml1Lfffqt8Pp/avHlzwmnagUBAFRQUqKlTp6ra2tq4x7z77rvKNE21bdu22PteeOEFlZ+fr/bt2xfzFhYWqjlz5qjNmzerOXPmKNM01ahRo9TChQvV5s2b1aRJk1SnTp1UVVWVUurnadx9+/ZVy5cvVxs2bFCjR49WBx10kPL7/UoppT788EPlcrnU7Nmz1aZNm9SiRYtUbm6uWrRoUczSs2dPde+999o+lvUfI6VUbOp4nz591LJly9SmTZvUb37zG9WzZ08VCASUUkq9//77yuVyqXnz5qlNmzap++67T7Vv314VFRXFzvn222+rdu3aqcWLF6uvvvpKLV++XB100EHq5ptvVkopFQwG1dChQ9U555yjlFLqwQcfVO3bt1fffvttQquOTmuLXhDp6LShvP/++w3+0m2ce+65RwFQO3bsUEqFFxAej0fl5+fH/kybNi12fKIF0+DBg9WoUaNi/x39uvPnz1ennHKKUkqpWbNmqXPPPVft2bMn4YJIKaX+/ve/qw4dOqicnBx1wgknqBkzZqiPP/64wTH9+vVT8+bNi/33mWeeqS666KIG3hNPPDH238FgUOXn56s//OEPsfdt375dAVCrVq1SSv28IFqyZEnsmJ9++knl5uaq5557Timl1IUXXqh+/etfN7Bcd911ql+/frH/TnVB9Pjjj8c+/tlnnykAauPGjUoppX73u9+p008/vcE5LrjgggYLolNPPbXJAvjpp59W3bp1i/33V199pQoLC9X06dNVbm6ueuaZZxI6dXRaY/SWmY5OG4xSKuljx40bh/Xr18f+zJgxI+mvYRhGk/f//ve/x6pVq/D1119j8eLFmDhxYlLnGzNmDLZt24Z//etfOO200/Dmm2/i2GOPxeLFi2PHXHLJJbEapR07duDll19ucv6jjjoq9v9N00SnTp1w5JFHxt5XXFwMANi5c2eDzxs6dGjs/3fs2BGHH344Nm7cCADYuHEjhg0b1uD4YcOGYcuWLbAsq8n38v/+3/9DQUFB7E+i1Pd269atgW3jxo0YPHiwrRMAPv74Y8yePbvB14vWfVVXVwMAevfujbvuugvz5s3DWWedhQsvvDChSUenNUYviHR02lAOOeQQGIYR+4u8cTZu3IgOHTqgS5cusfcVFRXhkEMOif3p3Llzs1/Hsixs2bIFvXr1avKxTp06YfTo0bj44otRW1uLUaNGJe3PycnBr3/9a8ycORPvvfceLrroItx0002xj//xj3/E119/jVWrVuEvf/kLevXqhV/84hcNzuHxeBr8t2EYDd4XXcSls35m9uzZDRaZieLUVllZiVmzZjX4ep988gm2bNmCnJyc2HFvv/02TNPEf/7zn1h9kY5OW4peEOnotKF06tQJv/71r/Hwww83KGwGgLKyMjzzzDO44IIL4t7ZaUmeeuop7NmzB2PGjIn78YkTJ+LNN9/EH//4R5immfLX6devH6qqqmL/3alTJ5xzzjlYtGgRFi9ejAkTJqR87sap3y5gz5492Lx5M/r27QsA6Nu3b5OX/7/77rs47LDD4n5/Xbt2bbDITDV9+/bF6tWrbZ0AcOyxx2LTpk0Nvl70j8sV/ivgueeewwsvvIA333wTW7duxZw5c1I26ejsr3E3f4iOjk5ryoMPPogTTjgBI0eOxC233IJevXrhs88+w3XXXYcDDjgAt956a4vOV11djbKyMgSDQXz//fdYunQp7r33XkyaNAmnnHJK3M857bTT8OOPP6Jdu3ZJfY2ffvoJv/3tbzFx4kQcddRRKCwsxIcffog77rgDZ599doNjL7nkEowePRqWZTX76rWWZPbs2ejUqROKi4tx/fXXo3PnzjjnnHMAANdeey2OP/54zJkzBxdccAFWrVqFBx98EA8//LDY14+Xq6++GsOGDcNdd92Fs88+G6+++ipeeeWVBsfceOONGD16NHr06IHf/OY3cLlc+Pjjj/Hpp5/illtuwffff49JkyZh3rx5OPHEE7Fo0SKMHj0ao0aNwpAhQ9Lq19Fhir5DpKPTxnLooYfiww8/RO/evXH++efj4IMPxmWXXYZTTjkFq1atQseOHVt0vsceewzdunXDwQcfjPPOOw+ff/45nnvuuYSLAcMw0LlzZ3i93qS+RkFBAQYPHox7770Xv/zlL3HEEUdg5syZuPTSS/Hggw82OHb48OHo1q0bRo4cidLS0hZ9L4ly++23Y8qUKTjuuONQVlaGl156KeY/9thj8fzzz2PJkiU44ogjcOONN2L27Nm46KKLxL5+vAwZMgSPPfYY7rvvPhx99NFYvnw5brjhhgbHjBw5EsuWLcPy5ctx/PHHY8iQIbj33nvRs2dPKKVw0UUXYdCgQbjyyitjx0+aNAm///3vUVlZmVa/jg5TDNWS6kodHR0d8lRWVuKAAw7AokWLcN5552Wbo6Ojs59Eb5np6Oi0ioRCIezatQt333032rdvH2vYqKOjo5NM9IJIR0enVWTr1q3o1asXDjzwQCxevLjBeBEdHR2d5qK3zHR0dHR0dHTafHRRtY6Ojo6Ojk6bj14Q6ejo6Ojo6LT56AWRjo6Ojo6OTpuPXhDp6Ojo6OjotPnoBZGOjo6Ojo5Om49eEOno6Ojo6Oi0+egFkY6Ojo6Ojk6bj14Q6ejo6Ojo6LT5/H+7EFfJZawc/AAAAABJRU5ErkJggg==", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "pdschUpperPhy = PDSCHUpperPhy(symbolsPerSlot = numSymbols, numRB = numRB, mcsIndex = mcsIndex, \n", + " numlayers = numlayers, scalingField = scalingField, \n", + " additionalOverhead = additionalOverhead, dmrsREs = dmrsREs, \n", + " numTBs=numTBs, pdschTable = mcsTable, verbose = False)\n", + "\n", + "codeword = pdschUpperPhy(tblock = [None, None], rvid = [0, 0], enableLBRM = [False, False], \n", + " numBatch = numBatches, numBSs = numBSs)\n", + "\n", + "rnti = np.random.randint(65536, size=numBSs*numBatches)\n", + "nID = np.random.randint(1024, size=numBSs*numBatches)\n", + "bits2 = codeword[1] if numTBs == 2 else None\n", + "\n", + "pdschLowerPhyChain = PDSCHLowerPhy(pdschMappingType, configurationType, dmrsTypeAPosition, \n", + " maxLength, dmrsAdditionalPosition, l0, ld, l1)\n", + "resourceGrid = pdschLowerPhyChain(codeword[0], numRB, rank, slotNumber, scramblingID, \n", + " nSCID, rnti, nID, modOrder, startSymbol, bits2 = bits2)\n", + "\n", + "## Load the resource Grid into the transmision Grid\n", + "txGrid = np.zeros(resourceGrid.shape[0:-1]+(Nfft,), dtype= np.complex64)\n", + "bwpOffset = np.random.randint(Nfft-numRB*12)\n", + "txGrid[...,bwpOffset:bwpOffset+numRB*12] = resourceGrid\n", + "\n", + "fig, ax = pdschLowerPhyChain.displayDMRSGrid()\n", + "pdschLowerPhyChain.displayResourceGrid()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "5730f5b9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,2)\n", + "\n", + "ax[0].plot(np.abs(Hf[0,0,0,0,:,0,5]))\n", + "ax[0].grid()\n", + "ax[1].plot(np.abs(Hf[0,0,0,0,:,0,3]))\n", + "ax[1].grid()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "f06ed8b1", + "metadata": {}, + "source": [ + "## SVD Based Beamforming: Perfect CSI" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "c7d0f32f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Beamforming Parameters *************\n", + "\n", + " Precoder Shape: (200, 1, 1, 1, 1024, 32, 1)\n", + " Combiner Shape: (200, 1, 1, 1, 1024, 1, 4)\n", + " Channel Shape: (1, 1, 1, 200, 1024, 4, 32)\n", + "Eigen Matrix Shape: (1, 1, 1, 200, 1024, 4)\n", + "Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Digital Beamforming\n", + "[U, S, Vh] = np.linalg.svd(Hf)\n", + "precoder = np.conj(Vh.transpose(3,0,1,2,4,6,5)[...,0:rank])\n", + "combiner = np.conj((U*(1/S[...,np.newaxis,:].repeat(S.shape[-1], axis = -2)))[...,0:rank].transpose(3,0,1,2,4,6,5))\n", + "xBeam = (precoder@txGrid.transpose(0,1,3,4,2)[:,np.newaxis,...,np.newaxis])[...,0]\n", + "\n", + "print(\"************ Beamforming Parameters *************\")\n", + "print()\n", + "print(\" Precoder Shape: \"+str(precoder.shape))\n", + "print(\" Combiner Shape: \"+str(combiner.shape))\n", + "print(\" Channel Shape: \"+str(Hf.shape))\n", + "print(\"Eigen Matrix Shape: \"+str(S.shape))\n", + "print(\"Beamformed Grid sh: \"+str(xBeam.shape))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "25a2e828", + "metadata": {}, + "source": [ + "## Pass through Channel" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "2a97e864", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Channel Parameters *************\n", + "\n", + " Channel Shape: (1, 1, 1, 200, 1024, 4, 32)\n", + "Received Grid shape: (200, 1, 14, 1, 1024, 4)\n", + " Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Channel Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numUEs, numSamples/numFFTpoints, numRxAntennas, numTxAntennas\n", + "# Tx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numSamples/numFFTpoints, numTxAntennas\n", + "# Rx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), -- numUEs, numSamples/numFFTpoints, numRxAntennas\n", + "\n", + "ptc = ApplyChannel(isFrequencyDomain = True, enableInterTxInterference = True, memoryConsumptionLevel = 0)\n", + "y = ptc(Hf[np.newaxis].transpose(4,0,1,2,3,5,6,7), xBeam.transpose(0,1,3,2,4,5))\n", + "\n", + "print(\"************ Channel Parameters *************\")\n", + "print()\n", + "print(\" Channel Shape: \"+str(Hf.shape))\n", + "print(\"Received Grid shape: \"+str(y.shape))\n", + "print(\" Beamformed Grid sh: \"+str(xBeam.shape))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "b11aa3cf", + "metadata": {}, + "source": [ + "## Link Level Simulation: SVD based Beamforming using Perfect CSI" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "84467cf4", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "********************************************************\n", + "Simulation: [0] for SNRdB = -10.5\n", + "Simulation: [0] for codedBER = 0.003271497919556172\n", + "Simulation: [0] for uncodedBER = 0.004089940323955669\n", + "Simulation: [0] for BLER = 1.0\n", + "Simulation: [0] for Throughput = 0.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [1] for SNRdB = -9.88888888888889\n", + "Simulation: [1] for codedBER = 0.0019166088765603328\n", + "Simulation: [1] for uncodedBER = 0.002438832054560955\n", + "Simulation: [1] for BLER = 1.0\n", + "Simulation: [1] for Throughput = 0.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [2] for SNRdB = -9.277777777777779\n", + "Simulation: [2] for codedBER = 0.0011243065187239944\n", + "Simulation: [2] for uncodedBER = 0.001499147485080989\n", + "Simulation: [2] for BLER = 0.955\n", + "Simulation: [2] for Throughput = 519120.00000000047\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [3] for SNRdB = -8.666666666666666\n", + "Simulation: [3] for codedBER = 0.0005989944521497919\n", + "Simulation: [3] for uncodedBER = 0.0008077578857630008\n", + "Simulation: [3] for BLER = 0.8425\n", + "Simulation: [3] for Throughput = 1816919.9999999995\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [4] for SNRdB = -8.055555555555555\n", + "Simulation: [4] for codedBER = 0.0002869278779472954\n", + "Simulation: [4] for uncodedBER = 0.00043350383631713557\n", + "Simulation: [4] for BLER = 0.5549999999999999\n", + "Simulation: [4] for Throughput = 5133520.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [5] for SNRdB = -7.444444444444445\n", + "Simulation: [5] for codedBER = 0.00013262829403606102\n", + "Simulation: [5] for uncodedBER = 0.00022953964194373402\n", + "Simulation: [5] for BLER = 0.3125\n", + "Simulation: [5] for Throughput = 7931000.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [6] for SNRdB = -6.833333333333333\n", + "Simulation: [6] for codedBER = 7.628294036061026e-05\n", + "Simulation: [6] for uncodedBER = 0.00012510656436487638\n", + "Simulation: [6] for BLER = 0.19499999999999995\n", + "Simulation: [6] for Throughput = 9286480.000000002\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [7] for SNRdB = -6.222222222222221\n", + "Simulation: [7] for codedBER = 2.340499306518724e-05\n", + "Simulation: [7] for uncodedBER = 6.457800511508951e-05\n", + "Simulation: [7] for BLER = 0.06499999999999995\n", + "Simulation: [7] for Throughput = 10786160.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [8] for SNRdB = -5.611111111111111\n", + "Simulation: [8] for codedBER = 0.0\n", + "Simulation: [8] for uncodedBER = 3.836317135549872e-05\n", + "Simulation: [8] for BLER = 0.0\n", + "Simulation: [8] for Throughput = 11536000.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [9] for SNRdB = -5.0\n", + "Simulation: [9] for codedBER = 0.0\n", + "Simulation: [9] for uncodedBER = 2.3231031543052003e-05\n", + "Simulation: [9] for BLER = 0.0\n", + "Simulation: [9] for Throughput = 11536000.0\n", + "********************************************************\n", + "\n" + ] + } + ], + "source": [ + "numPoints = 10\n", + "SNRdB = np.linspace(-10.5, -5, numPoints, endpoint=True)\n", + "# SNRdB = np.linspace(-13.5, -7.5, numPoints, endpoint=True)\n", + "SNR = 10**(SNRdB/10)\n", + "\n", + "codedBER = np.zeros(numPoints)\n", + "uncodedBER = np.zeros(numPoints)\n", + "bler = np.zeros(numPoints)\n", + "throughput = np.zeros(numPoints)\n", + "\n", + "for i in range(numPoints):\n", + " print(\"********************************************************\")\n", + " print(\"Simulation: [\"+str(i)+\"] for SNRdB = \"+str(SNRdB[i]))\n", + " \n", + " ## Add noise to the received grid\n", + " yGrid = AddNoise(False)(y, 1/SNR[i], 0)\n", + "\n", + " ## Receiver Combining\n", + " rGrid = ((combiner@yGrid[...,np.newaxis])[:,0,...,0]).transpose(0,2,4,1,3)\n", + "\n", + " ## Extracting the Received Grid\n", + " rxGrid = rGrid[...,bwpOffset:bwpOffset+12*numRB]\n", + "\n", + " ## Receiver: Lower Physical layer\n", + " isChannelPerfect = False\n", + " pdschDecLowerPhy = PDSCHDecoderLowerPhy(modOrder, isChannelPerfect, isEqualized = True)\n", + " descrBits = pdschDecLowerPhy(rxGrid, pdschLowerPhyChain.pdschIndices, rnti, \n", + " nID, SNR[i], None, numTBs, hard_out = False)\n", + "\n", + " ## Receiver: Upper Physical layer\n", + " pdschUpPhyDec = PDSCHDecoderUpperPhy(numTBs = numTBs, mcsIndex = mcsIndex, symbolsPerSlot= numSymbols, \n", + " numRB = numRB, numLayers = numlayers, scalingField = scalingField, \n", + " additionalOverhead = additionalOverhead, dmrsREs = dmrsREs, \n", + " enableLBRM = [False, False], pdschTable = mcsTable, rvid = [0, 0], verbose=False)\n", + "\n", + " bits = pdschUpPhyDec(descrBits)\n", + "\n", + " ## KPI computation\n", + " codedBER[i] = np.mean(np.abs(bits-pdschUpperPhy.tblock1))\n", + " uncodedBER[i] = np.mean(np.abs(codeword[0] - np.where(descrBits[0]>0,1,0)))\n", + " bler[i] = 1-np.mean(pdschUpPhyDec.crcCheckforCBs)\n", + " throughput[i] = (1-bler[i])*tbLen1*2000\n", + " \n", + " print(\"Simulation: [\"+str(i)+\"] for codedBER = \"+str(codedBER[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for uncodedBER = \"+str(uncodedBER[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for BLER = \"+str(bler[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for Throughput = \"+str(throughput[i]))\n", + " \n", + " print(\"********************************************************\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "5c5d5f1c", + "metadata": {}, + "source": [ + "## SVD Based Beamforming: CSI Reconstructed using CSINet" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "01adb788", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7/7 [==============================] - 0s 6ms/step\n", + "7/7 [==============================] - 0s 6ms/step\n", + "7/7 [==============================] - 0s 7ms/step\n", + "7/7 [==============================] - 0s 6ms/step\n", + "************ Beamforming Parameters *************\n", + "\n", + " Precoder Shape: (200, 1, 1, 1, 1024, 32, 1)\n", + " Combiner Shape: (200, 1, 1, 1, 1024, 1, 4)\n", + " Channel Shape: (1, 1, 1, 200, 1024, 4, 32)\n", + "Eigen Matrix Shape: (1, 1, 1, 200, 1024, 4)\n", + "Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Digital Beamforming\n", + "\n", + "shape = Hf[0,0,0].shape\n", + "Hest = np.zeros((shape[0], shape[2], shape[3], shape[1]), dtype = np.complex64)\n", + "\n", + "for nr in range(Nr):\n", + " H = Hf[0,0,0,...,nr,:].transpose(0,2,1)\n", + " Hprep = csinet.preprocess(H)\n", + " Hrec = csinet.predict(Hprep)\n", + " Hest[:,nr] = csinet.postprocess(Hprep, Nfft)\n", + "\n", + "[U, S, Vh] = np.linalg.svd(Hest.transpose(0,3,1,2)[np.newaxis, np.newaxis,np.newaxis])\n", + "precoder = np.conj(Vh.transpose(3,0,1,2,4,6,5)[...,0:rank])\n", + "combiner = np.conj((U*(1/S[...,np.newaxis,:].repeat(S.shape[-1], axis = -2)))[...,0:rank].transpose(3,0,1,2,4,6,5))\n", + "xBeam = (precoder@txGrid.transpose(0,1,3,4,2)[:,np.newaxis,...,np.newaxis])[...,0]\n", + "\n", + "print(\"************ Beamforming Parameters *************\")\n", + "print()\n", + "print(\" Precoder Shape: \"+str(precoder.shape))\n", + "print(\" Combiner Shape: \"+str(combiner.shape))\n", + "print(\" Channel Shape: \"+str(Hf.shape))\n", + "print(\"Eigen Matrix Shape: \"+str(S.shape))\n", + "print(\"Beamformed Grid sh: \"+str(xBeam.shape))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "aba9a9a7", + "metadata": {}, + "source": [ + "## Pass through Wireless Channel" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "99b43407", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Channel Parameters *************\n", + "\n", + " Channel Shape: (1, 1, 1, 200, 1024, 4, 32)\n", + "Received Grid shape: (200, 1, 14, 1, 1024, 4)\n", + " Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Channel Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numUEs, numSamples/numFFTpoints, numRxAntennas, numTxAntennas\n", + "# Tx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numSamples/numFFTpoints, numTxAntennas\n", + "# Rx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), -- numUEs, numSamples/numFFTpoints, numRxAntennas\n", + "\n", + "ptc = ApplyChannel(isFrequencyDomain = True, enableInterTxInterference = True, memoryConsumptionLevel = 0)\n", + "y = ptc(Hf[np.newaxis].transpose(4,0,1,2,3,5,6,7), xBeam.transpose(0,1,3,2,4,5))\n", + "\n", + "print(\"************ Channel Parameters *************\")\n", + "print()\n", + "print(\" Channel Shape: \"+str(Hf.shape))\n", + "print(\"Received Grid shape: \"+str(y.shape))\n", + "print(\" Beamformed Grid sh: \"+str(xBeam.shape))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "80898329", + "metadata": {}, + "source": [ + "## Link Level Simulation: SVD based Beamforming using Imperfect CSI" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "b20c4922", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "********************************************************\n", + "Simulation: [0] for SNRdB = -10.0\n", + "Simulation: [0] for codedBER = 0.002643030513176144\n", + "Simulation: [0] for uncodedBER = 0.0033248081841432226\n", + "Simulation: [0] for BLER = 1.0\n", + "Simulation: [0] for Throughput = 0.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [1] for SNRdB = -9.483333333333333\n", + "Simulation: [1] for codedBER = 0.0017995839112343967\n", + "Simulation: [1] for uncodedBER = 0.002294543904518329\n", + "Simulation: [1] for BLER = 0.99\n", + "Simulation: [1] for Throughput = 115360.0000000001\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [2] for SNRdB = -8.966666666666667\n", + "Simulation: [2] for codedBER = 0.0012274618585298197\n", + "Simulation: [2] for uncodedBER = 0.001603154305200341\n", + "Simulation: [2] for BLER = 0.975\n", + "Simulation: [2] for Throughput = 288400.00000000023\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [3] for SNRdB = -8.45\n", + "Simulation: [3] for codedBER = 0.0008538488210818308\n", + "Simulation: [3] for uncodedBER = 0.0011327791986359761\n", + "Simulation: [3] for BLER = 0.9125\n", + "Simulation: [3] for Throughput = 1009400.0000000002\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [4] for SNRdB = -7.933333333333334\n", + "Simulation: [4] for codedBER = 0.0005799237170596394\n", + "Simulation: [4] for uncodedBER = 0.0008459079283887468\n", + "Simulation: [4] for BLER = 0.8325\n", + "Simulation: [4] for Throughput = 1932279.9999999998\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [5] for SNRdB = -7.416666666666666\n", + "Simulation: [5] for codedBER = 0.0004342926490984743\n", + "Simulation: [5] for uncodedBER = 0.0006432225063938619\n", + "Simulation: [5] for BLER = 0.7224999999999999\n", + "Simulation: [5] for Throughput = 3201240.000000001\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [6] for SNRdB = -6.8999999999999995\n", + "Simulation: [6] for codedBER = 0.00031206657420249653\n", + "Simulation: [6] for uncodedBER = 0.0005051150895140665\n", + "Simulation: [6] for BLER = 0.6074999999999999\n", + "Simulation: [6] for Throughput = 4527880.000000001\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [7] for SNRdB = -6.383333333333333\n", + "Simulation: [7] for codedBER = 0.00022798196948682387\n", + "Simulation: [7] for uncodedBER = 0.0004360613810741688\n", + "Simulation: [7] for BLER = 0.48750000000000004\n", + "Simulation: [7] for Throughput = 5912200.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [8] for SNRdB = -5.866666666666666\n", + "Simulation: [8] for codedBER = 6.934812760055479e-06\n", + "Simulation: [8] for uncodedBER = 0.0003923699914748508\n", + "Simulation: [8] for BLER = 0.020000000000000018\n", + "Simulation: [8] for Throughput = 11305280.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [9] for SNRdB = -5.35\n", + "Simulation: [9] for codedBER = 0.0\n", + "Simulation: [9] for uncodedBER = 0.0003610400682011935\n", + "Simulation: [9] for BLER = 0.0\n", + "Simulation: [9] for Throughput = 11536000.0\n", + "********************************************************\n", + "\n" + ] + } + ], + "source": [ + "numPoints = 10\n", + "SNRdB2 = np.linspace(-10, -5.35, numPoints, endpoint=True)\n", + "# SNRdB = np.linspace(-13.5, -7.5, numPoints, endpoint=True)\n", + "SNR2 = 10**(SNRdB2/10)\n", + "\n", + "codedBER2 = np.zeros(numPoints)\n", + "uncodedBER2 = np.zeros(numPoints)\n", + "bler2 = np.zeros(numPoints)\n", + "throughput2 = np.zeros(numPoints)\n", + "\n", + "for i in range(numPoints):\n", + " print(\"********************************************************\")\n", + " print(\"Simulation: [\"+str(i)+\"] for SNRdB = \"+str(SNRdB2[i]))\n", + " \n", + " ## Add noise to the received grid\n", + " yGrid = AddNoise(False)(y, 1/SNR2[i], 0)\n", + "\n", + " ## Receiver Combining\n", + " rGrid = ((combiner@yGrid[...,np.newaxis])[:,0,...,0]).transpose(0,2,4,1,3)\n", + "\n", + " ## Extracting the Received Grid\n", + " rxGrid = rGrid[...,bwpOffset:bwpOffset+12*numRB]\n", + "\n", + " ## Receiver: Lower Physical layer\n", + " isChannelPerfect = False\n", + " pdschDecLowerPhy = PDSCHDecoderLowerPhy(modOrder, isChannelPerfect, isEqualized = True)\n", + " descrBits = pdschDecLowerPhy(rxGrid, pdschLowerPhyChain.pdschIndices, rnti, \n", + " nID, SNR2[i], None, numTBs, hard_out = False)\n", + "\n", + " ## Receiver: Upper Physical layer\n", + " pdschUpPhyDec = PDSCHDecoderUpperPhy(numTBs = numTBs, mcsIndex = mcsIndex, symbolsPerSlot= numSymbols, \n", + " numRB = numRB, numLayers = numlayers, scalingField = scalingField, \n", + " additionalOverhead = additionalOverhead, dmrsREs = dmrsREs, \n", + " enableLBRM = [False, False], pdschTable = mcsTable, rvid = [0, 0], verbose=False)\n", + "\n", + " bits = pdschUpPhyDec(descrBits)\n", + "\n", + " ## KPI computation\n", + " codedBER2[i] = np.mean(np.abs(bits-pdschUpperPhy.tblock1))\n", + " uncodedBER2[i] = np.mean(np.abs(codeword[0] - np.where(descrBits[0]>0,1,0)))\n", + " bler2[i] = 1 - np.mean(pdschUpPhyDec.crcCheckforCBs)\n", + " throughput2[i] = (1-bler2[i])*tbLen1*2000\n", + " \n", + " print(\"Simulation: [\"+str(i)+\"] for codedBER = \"+str(codedBER2[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for uncodedBER = \"+str(uncodedBER2[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for BLER = \"+str(bler2[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for Throughput = \"+str(throughput2[i]))\n", + " \n", + " print(\"********************************************************\")\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "2703a39b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.0" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.mean(pdschUpPhyDec.crcCheckforCBs)" + ] + }, + { + "cell_type": "markdown", + "id": "afa435f2", + "metadata": {}, + "source": [ + "# Performance Evaluations\n", + "\n", + "## Throughput Evaluations" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "4a32c773", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1185f/48Tz/9dIH2axsfUlrx9/cnKioKf39/q2zBggV06dKFqKgo1q5dy+HDh0lISCA1NZUZM2YAsGTJEiZMmMATTzzBgQMH2LFjB88++yxp2j3hhICAAD788MNcsXGeQK/XExUVZY2bLY1IZ0gikUgKw+XL1o/u33/tvnP5MhiNlp6fhx4Cm2BSO7KzLcuPHwctZunKldz7unzZLdWioqKsn7CwMBRFISoqigoVKuR6+f322280b96coKAg2rRpw9GjR63LtJ6KxYsX28VN/f333/Tq1YuQkBDKlClD//79SUpKsm43dOhQevfubafThAkT6Nixo/X79evXGTx4MMHBwURHRzNr1iw6duxoHRLTMBgMDB8+nNDQUKpUqcLChQuty06fPo2iKKxYsYI2bdoQEBBA/fr12bJli3Wdjz76iPDwcLt9fvnll9ahmY8++ojXXnuNgwcPWnvRPvroI5fP9YULF6xOzpIlS+jYsSPVqlWjffv2LF68mFdeeQWAr7/+mv79+zNixAhq1KjB7bffzqBBg3j99dfz3H/t2rXp1KkTL774Yp7r/fHHH9xzzz2EhIQQGRnJww8/bE1oGDZsGLt27WLOnDlWG93pVfovI50hiUQiKQwVK0LFiuiioqjWsiW6qCirjGbNwM8PZs927ghpZGdb1tOoW/fmfmw/RcSLL77IjBkz2Lt3Lz4+PgwfPtxu+YkTJ1i7di1ffPEFBw4cQFVVevXqRXJyMlu2bGHDhg0kJiYyYMAAt447ceJEduzYwddff82GDRvYtm0b+/bty7XejBkzaN68Ofv37+exxx7j0UcftXPYAJ555hkmTZrE/v37ad26NT179uTff/91SY8BAwYwadIkbr/9dmtvmju2/PDDD2RlZfHss886XK45YlFRUfz6668FyoR66623WLt2LXv37nW4/OrVq3Tu3JkmTZqwd+9e1q9fT1JSEv379wdg9uzZNGnShJEjR1ptjImJcVuP/yLSGZJIJJKi4q67QK+Hzz5zbf3lywsdSF1QXn/9dTp06EC9evWYPHkyO3futEuvzsrK4uOPP6ZJkyY0bNiQn376iUOHDvHZZ5/RrFkzWrVqxccff8yWLVvYs2ePS8e8fv06y5YtY/r06dx1113Ur1+fpUuX5soYBOjRowePPfYYNWrU4LnnniMiIoJNmzbZrTNu3Dj69u1L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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.semilogy(SNRdB, throughput, \"b\", marker = \"*\", lw = 3, mec = \"k\", mfc = \"r\", ms = 12, label=\"Throughput [Perfect-CSI]\")\n", + "ax.semilogy(SNRdB2, throughput2, \"--r\", marker = \"o\", lw = 3, mec = \"w\", mfc = \"r\", ms = 9, label=\"Throughput [CSINet]\")\n", + "\n", + "ax.set_xlabel(\"Signal to Noise Ratio (dB)\")\n", + "ax.set_ylabel(\"Throughput (bits per second)\")\n", + "ax.set_title(\"Data-rate Evaluation: SNR (dB) vs Throughput\", fontsize = 16)\n", + "ax.legend(loc=\"best\")\n", + "\n", + "ax.set_xticks(SNRdB2, minor=False)\n", + "ax.xaxis.set_major_formatter(mpl.ticker.FormatStrFormatter('%.2f'))\n", + "ytck = 10**(np.arange(2, 9)).repeat(10)*np.tile(np.arange(1, 11), [7])\n", + "ax.set_yticks(ytck, minor=True)\n", + "ax.set_yticks(10**(np.arange(2, 8)), minor=False)\n", + "ax.set_ylim([10**2, 10**8])\n", + "# ax.set_xlim([0.999*SNRdB[0], 1.05*SNRdB[-1]])\n", + "ax.grid(which = 'minor', alpha = 0.5, linestyle = '--')\n", + "ax.grid(which = 'major', alpha = 0.65, color = \"k\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "d76d9dca", + "metadata": {}, + "source": [ + "## BLER Evaluations" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "61ffbf26", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.semilogy(SNRdB, bler, \"g\", marker = \"X\", lw = 3, mec = \"k\", mfc = \"w\", ms = 9, label=\"BLER [Perfect-CSI]\")\n", + "ax.semilogy(SNRdB2, bler2, \"--b\", marker = \"o\", lw = 3, mec = \"w\", mfc = \"r\", ms = 9, label=\"BLER [CSI-Net]\")\n", + "\n", + "ax.legend(loc=\"best\")\n", + "ax.set_xlabel(\"Signal to Noise Ratio (dB)\")\n", + "ax.set_ylabel(\"Block (Bit) Error Rate\")\n", + "ax.set_title(\"Reliability Evaluation: SNR (dB) vs B(L)ER\", fontsize = 16)\n", + "\n", + "# ax.set_xticks(SNRdB1)\n", + "ax.xaxis.set_major_formatter(mpl.ticker.FormatStrFormatter('%.2f'))\n", + "ytck = (0.1**(np.arange(1, 10))).repeat(9)*np.tile(np.arange(10, 1,-1), [9])\n", + "ytck = np.concatenate([[1],ytck])\n", + "ax.set_yticks(ytck, minor=True)\n", + "ax.set_yticks(0.1**(np.arange(0, 9)), minor=False)\n", + "ax.set_ylim([0.5*10**-5,1.2])\n", + "\n", + "ax.grid(which = 'minor', alpha = 0.5, linestyle = '--')\n", + "ax.grid(which = 'major', alpha = 0.65, color = \"k\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "ace29977", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "1. [Deep Learning for Massive MIMO CSI Feedback](https://arxiv.org/pdf/1712.08919)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "654ffcda", + "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" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_sources/api/Projects/Project3/Generate_Channel_Datasets.ipynb.txt b/_sources/api/Projects/Project3/Generate_Channel_Datasets.ipynb.txt new file mode 100644 index 00000000..4b1a8228 --- /dev/null +++ b/_sources/api/Projects/Project3/Generate_Channel_Datasets.ipynb.txt @@ -0,0 +1,390 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "080069f0", + "metadata": {}, + "source": [ + "# Wireless Channel Dataset Generation for Training the AI based Models\n", + "\n", + "Wireless channel dataset generation and preprocessing involve the creation and preparation of datasets containing information about the wireless communication channel. Here's an overview of the process:\n", + "\n", + "1. **Dataset Generation**:\n", + "\n", + " - **Simulation** (``We are using this``): One common approach is to use channel modeling and simulation software to generate synthetic datasets. This involves modeling various channel characteristics such as path loss, shadowing, multipath propagation, and fading effects.\n", + " \n", + " - **Measurement**: Real-world measurements can be collected using specialized hardware and equipment deployed in different environments. These measurements capture the characteristics of the wireless channel under various conditions and scenarios.\n", + "\n", + "2. **Data Collection**:\n", + "\n", + " - In simulation-based approaches, data is generated by simulating the propagation of electromagnetic waves through the environment and computing channel parameters such as signal strength, delay spread, and Doppler shift.\n", + " - In measurement-based approaches, data is collected by measuring the received signal strength and other relevant parameters at multiple locations in the environment over time.\n", + "\n", + "3. **Data Preprocessing**:\n", + "\n", + " - **Cleaning**: The collected data may contain errors, outliers, or missing values that need to be identified and corrected. Cleaning involves removing or correcting these inconsistencies to ensure the quality of the dataset.\n", + " - **Normalization**: Data normalization involves scaling the values of features to a standard range to ensure uniformity and comparability across different features.\n", + " - **Feature Extraction**: Relevant features such as signal strength, delay spread, angle of arrival, and Doppler shift are extracted from the raw data. Feature extraction may involve signal processing techniques such as Fourier transforms, wavelet analysis, or machine learning algorithms.\n", + " - **Dimensionality Reduction**: In some cases, datasets may contain a large number of features, leading to computational complexity and overfitting. Dimensionality reduction techniques such as Principal Component Analysis (PCA) or feature selection methods are applied to reduce the number of features while preserving the most relevant information.\n", + "\n", + "\n", + "Wireless channel dataset generation and preprocessing are crucial steps in the development of machine learning models, algorithms, and systems for wireless communication. A well-prepared dataset ensures the accuracy, reliability, and generalizability of the models and systems built upon it.\n", + "\n", + "\n", + "## Import Python Libraries\n", + "\n", + "### Import Basic Python LIbraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7eb02cb4", + "metadata": {}, + "outputs": [], + "source": [ + "# %matplotlib widgets\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "\n", + "import os\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\n", + "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \n", + "\n", + "import numpy as np\n", + "\n", + "# from IPython.display import display, HTML\n", + "# display(HTML(\"\"))" + ] + }, + { + "cell_type": "markdown", + "id": "37306fc7", + "metadata": {}, + "source": [ + "### Import 5G Toolkit Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9934198e", + "metadata": {}, + "outputs": [], + "source": [ + "from csiNet import CSINet\n", + "\n", + "import sys\n", + "sys.path.append(\"../../\")\n", + "\n", + "from toolkit5G.PhysicalChannels.PDSCH import ComputeTransportBlockSize\n", + "from toolkit5G.PhysicalChannels import PDSCHLowerPhy, PDSCHUpperPhy, PDSCHDecoderLowerPhy, PDSCHDecoderUpperPhy\n", + "from toolkit5G.ChannelModels import AntennaArrays, SimulationLayout, ParameterGenerator, ChannelGenerator\n", + "from toolkit5G.Configurations import PDSCHLowerPhyConfiguration, PDSCHUpperPhyConfiguration\n", + "from toolkit5G.ChannelProcessing import AddNoise, ApplyChannel\n", + "from toolkit5G.SymbolMapping import Mapper, Demapper" + ] + }, + { + "cell_type": "markdown", + "id": "6a234109", + "metadata": {}, + "source": [ + "## Simulation Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c42e12d3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Simulation Parameters *************\n", + "\n", + " numBatches: 10000\n", + " numRB: 85\n", + " fft Size: 1024\n", + " numBSs: 1\n", + " numUEs: 10000\n", + " scs: 30000\n", + " slotNumber: 9\n", + " terrain: CDL-A\n", + "Tx Ant Struture: [ 1 1 32 1 1]\n", + "Rx Ant Struture: [1 1 1 1 1]\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Carrier Frequency\n", + "carrierFrequency = 3.6*10**9 \n", + "delaySpread = 100*(10**-9)\n", + "numBatches = 10000 # Number of batches considered for simulation\n", + "scs = 30*10**3 # Subcarrier Spacing for simulation\n", + "numBSs = 1 # Number of BSs considered for simulation\n", + "# Number of UEs considered for simulation\n", + "numUEs = numBatches # For now we are assuming that the numbatches are captured via numUEs\n", + "numRB = 85 # Number of Resource mapping considered for simulation | # 1 RB = 12 subcarrier\n", + "slotNumber = int(np.random.randint(0,2**(scs/15000)*10)) # Index of the slot considered for simulation\n", + "terrain = \"CDL-A\" # Terrain\n", + "txAntStruture = np.array([1,1,32,1,1]) # Tx Antenna Structure\n", + "rxAntStruture = np.array([1,1,1,1,1]) # Tx Antenna Structure\n", + "Nfft = 1024 # FFTSize\n", + "\n", + "print(\"************ Simulation Parameters *************\")\n", + "print()\n", + "print(\" numBatches: \"+str(numBatches))\n", + "print(\" numRB: \"+str(numRB))\n", + "print(\" fft Size: \"+str(Nfft))\n", + "print(\" numBSs: \"+str(numBSs))\n", + "print(\" numUEs: \"+str(numUEs))\n", + "print(\" scs: \"+str(scs))\n", + "print(\" slotNumber: \"+str(slotNumber))\n", + "print(\" terrain: \"+str(terrain))\n", + "print(\"Tx Ant Struture: \"+str(txAntStruture))\n", + "print(\"Rx Ant Struture: \"+str(rxAntStruture))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "4116f8ad", + "metadata": {}, + "source": [ + "## Set Channel Parameters and Generate Common Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8e7ba9fc", + "metadata": {}, + "outputs": [], + "source": [ + "# Antenna Array at UE side\n", + "# assuming antenna element type to be \"OMNI\"\n", + "# with 2 panel and 2 single polarized antenna element per panel.\n", + "ueAntArray = AntennaArrays(antennaType = \"OMNI\", centerFrequency = carrierFrequency, \n", + " arrayStructure = rxAntStruture)\n", + "ueAntArray()\n", + "\n", + "# # Radiation Pattern of Rx antenna element \n", + "# ueAntArray.displayAntennaRadiationPattern()\n", + "\n", + "\n", + "# Antenna Array at BS side\n", + "# assuming antenna element type to be \"3GPP_38.901\", a parabolic antenna \n", + "# with 4 panel and 4 single polarized antenna element per panel.\n", + "bsAntArray = AntennaArrays(antennaType = \"3GPP_38.901\", centerFrequency = carrierFrequency,\n", + " arrayStructure = txAntStruture)\n", + "bsAntArray()\n", + " \n", + "# # Radiation Pattern of Tx antenna element \n", + "# bsAntArray[0].displayAntennaRadiationPattern()\n", + "\n", + "# Layout Parameters\n", + "isd = 200 # inter site distance\n", + "minDist = 10 # min distance between each UE and BS \n", + "ueHt = 1.5 # UE height\n", + "bsHt = 25 # BS height\n", + "bslayoutType = \"Hexagonal\" # BS layout type\n", + "ueDropType = \"Hexagonal\" # UE drop type\n", + "htDist = \"equal\" # UE height distribution\n", + "ueDist = \"equal\" # UE Distribution per site\n", + "nSectorsPerSite = 1 # number of sectors per site\n", + "maxNumFloors = 1 # Max number of floors in an indoor object\n", + "minNumFloors = 1 # Min number of floors in an indoor object\n", + "heightOfRoom = 3 # height of room or ceiling in meters\n", + "indoorUEfract = 0.5 # Fraction of UEs located indoor\n", + "lengthOfIndoorObject = 3 # length of indoor object typically having rectangular geometry \n", + "widthOfIndoorObject = 3 # width of indoor object\n", + "# forceLOS = True # boolen flag if true forces every link to be in LOS state\n", + "forceLOS = False # boolen flag if true forces every link to be in LOS state\n", + "\n", + "Nt = bsAntArray.numAntennas # Number of BS Antennas\n", + "Nr = ueAntArray.numAntennas\n" + ] + }, + { + "cell_type": "markdown", + "id": "45c69959", + "metadata": {}, + "source": [ + "## Generate the Wireless Channels Databases and Preprocess it before storage.\n", + "\n", + "1. Generate OFDM Wireless Channels.\n", + "2. Preprocess the OFDM Channel\n", + "3. Store the preprocessed wireless channels\n", + "\n", + "``Important``: Make sure you have **Databases** directory/folder where datasets will be stored." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f421b76", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Number of BSs: 1\n", + " Shape of Channel: (10000, 32, 1024)\n", + "*****************************************************\n", + "\n", + " Number of BSs: 1\n", + " Shape of Channel: (10000, 32, 1024)\n", + "*****************************************************\n", + "\n", + " Number of BSs: 1\n", + " Shape of Channel: (10000, 32, 1024)\n", + "*****************************************************\n", + "\n", + " Number of BSs: 1\n", + " Shape of Channel: (10000, 32, 1024)\n", + "*****************************************************\n", + "\n" + ] + } + ], + "source": [ + "MonteCarloIterations = 10\n", + "\n", + "numTaps = 32\n", + "codewordSize = 512\n", + "\n", + "for mci in range(4,MonteCarloIterations):\n", + " # simulation layout object \n", + " simLayoutObj = SimulationLayout(numOfBS = numBSs,\n", + " numOfUE = numUEs,\n", + " heightOfBS = bsHt,\n", + " heightOfUE = ueHt, \n", + " ISD = isd,\n", + " layoutType = bslayoutType,\n", + " ueDropMethod = ueDropType, \n", + " UEdistibution = ueDist,\n", + " UEheightDistribution = htDist,\n", + " numOfSectorsPerSite = nSectorsPerSite,\n", + " ueRoute = None)\n", + "\n", + " simLayoutObj(terrain = terrain, \n", + " carrierFreq = carrierFrequency, \n", + " ueAntennaArray = ueAntArray,\n", + " bsAntennaArray = bsAntArray,\n", + " indoorUEfraction = indoorUEfract,\n", + " lengthOfIndoorObject = lengthOfIndoorObject,\n", + " widthOfIndoorObject = widthOfIndoorObject,\n", + " forceLOS = forceLOS)\n", + "\n", + " # displaying the topology of simulation layout\n", + "# fig, ax = simLayoutObj.display2DTopology()\n", + "\n", + " paramGen = simLayoutObj.getParameterGenerator(delaySpread = delaySpread)\n", + "\n", + " # paramGen.displayClusters((0,0,0), rayIndex = 0)\n", + " channel = paramGen.getChannel()\n", + " \n", + " # Generate OFDM Channel\n", + " Hf = channel.ofdm(scs, Nfft, normalizeChannel = True)[0,0,0,...,0,:].transpose(0,2,1)\n", + "\n", + " # Preprocess the Frequency Domain channel\n", + " csinet = CSINet()\n", + " model = csinet(Nt, numTaps, codewordSize)\n", + " Hprep = csinet.preprocess(Hf)\n", + " \n", + " np.savez(\"Databases/PreprocessedChannel-dB-\"+str(mci)+\".npz\",\n", + " Hprep = Hprep, Nfft = Nfft, Nt = Nt, codewordSize = codewordSize, numTaps = numTaps,\n", + " carrierFrequency = carrierFrequency, terrain = terrain, delaySpread = delaySpread, \n", + " isd = isd, txAntStruture = txAntStruture, rxAntStruture = rxAntStruture)\n", + "\n", + " print(\" Number of BSs: \"+str(numBSs))\n", + " print(\" Shape of Channel: \"+str(Hf.shape))\n", + " print(\"*****************************************************\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "8f4dcdbc", + "metadata": {}, + "source": [ + "## Aggregate all the Datasets into a single Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97ab88bc", + "metadata": {}, + "outputs": [], + "source": [ + "filename = \"Databases/PreprocessedChannel-dB-\"+str(0)+\".npz\"\n", + "db = np.load(filename)\n", + "Hp = db[\"Hprep\"]\n", + "for mci in range(1,10):\n", + " filename = \"Databases/PreprocessedChannel-dB-\"+str(mci)+\".npz\"\n", + " db = np.load(filename)\n", + " Hp = np.concatenate([Hp, db[\"Hprep\"]], axis=0)\n", + " \n", + "np.savez(\"Databases/PreprocessedChannel-dB.npz\", Hp = Hp, Nfft = 1024, Nt = 32)" + ] + }, + { + "cell_type": "markdown", + "id": "24ee3125", + "metadata": {}, + "source": [ + "## Display Sparsity of Wireless Channels" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cd99db8a", + "metadata": {}, + "outputs": [], + "source": [ + "numChannels = 10\n", + "numBatches = Hp.shape[0]\n", + "idx = np.random.choice(np.arange(numBatches), size=numChannels, replace = False)\n", + "\n", + "fig, ax = plt.subplots(2,10, figsize = (17.5, 5))\n", + "\n", + "print(idx)\n", + "for n in range(numChannels):\n", + " ax[0,n].imshow(np.abs(Hp[idx[n],0])**2 + np.abs(Hp[idx[n],1])**2, cmap = \"Greys\", aspect = \"auto\")\n", + "# ax[1,n].imshow(np.abs( Hrec[idx[n],0])**2 + np.abs( Hrec[idx[n],1])**2, cmap = \"Greys\", aspect = \"auto\")\n", + " \n", + "plt.show()" + ] + } + ], + "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" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_sources/api/Projects/Project3/project3.rst.txt b/_sources/api/Projects/Project3/project3.rst.txt index ecb80225..0e6f63a8 100644 --- a/_sources/api/Projects/Project3/project3.rst.txt +++ b/_sources/api/Projects/Project3/project3.rst.txt @@ -1,4 +1,11 @@ -Channel Interpolation based on SRCNN and DnCNN -============================================== -Project-3 +Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +=============================================================================================================== + +.. toctree:: + :maxdepth: 4 + + + CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.ipynb + Generate_Channel_Datasets.ipynb + trainCSINet.ipynb diff --git a/_sources/api/Projects/Project3/trainCSINet.ipynb.txt b/_sources/api/Projects/Project3/trainCSINet.ipynb.txt new file mode 100644 index 00000000..39cd1e84 --- /dev/null +++ b/_sources/api/Projects/Project3/trainCSINet.ipynb.txt @@ -0,0 +1,1047 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "073df96d", + "metadata": {}, + "source": [ + "# Training the CSINet\n", + "\n", + "## Import Libraries\n", + "\n", + "### Import Python Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "acc4abd6", + "metadata": {}, + "outputs": [], + "source": [ + "# %matplotlib widget\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "\n", + "import os\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\n", + "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \n", + "\n", + "import numpy as np\n", + "\n", + "# from IPython.display import display, HTML\n", + "# display(HTML(\"\"))" + ] + }, + { + "cell_type": "markdown", + "id": "57eb8d37", + "metadata": {}, + "source": [ + "## Important AI-ML Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4392fe8e", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import numpy as np\n", + "\n", + "from keras.layers import Input, Dense, BatchNormalization, Reshape, Conv2D, add, LeakyReLU\n", + "from keras.models import Model, load_model\n", + "from keras.callbacks import TensorBoard, Callback\n", + "\n", + "from csiNet import CSINet" + ] + }, + { + "cell_type": "markdown", + "id": "25a16e12", + "metadata": {}, + "source": [ + "## Load Datasets" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b91c9b54", + "metadata": {}, + "outputs": [], + "source": [ + "db = np.load(\"Databases/PreprocessedChannel-dB.npz\")" + ] + }, + { + "cell_type": "markdown", + "id": "8a5df3dd", + "metadata": {}, + "source": [ + "## Set Training Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5aacef92", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "**************************\n", + "Number of subcarriers: 32\n", + "Number of encoded bits: 512\n", + "Number of antennas: 32\n", + "Number of batches: 110000\n", + "**************************\n" + ] + } + ], + "source": [ + "numTaps = 32\n", + "codewordSize = 512\n", + "Hp = db[\"Hp\"]\n", + "Nt = db[\"Nt\"]\n", + "numBatches = Hp.shape[0]\n", + "\n", + "\n", + "print(\"**************************\")\n", + "print(\"Number of subcarriers: \"+str(numTaps))\n", + "print(\"Number of encoded bits: \"+str(codewordSize))\n", + "print(\"Number of antennas: \"+str(Nt))\n", + "print(\"Number of batches: \"+str(numBatches))\n", + "print(\"**************************\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e491b89e", + "metadata": {}, + "outputs": [], + "source": [ + "csinet = CSINet()\n", + "model = csinet(Nt, numSubcarrier, codewordSize)\n", + "\n", + "i = int(0.9*numBatches)\n", + "k = int(numBatches)\n", + "\n", + "Htrain = Hp[0:i]\n", + "Hval = Hp[i:k]\n", + "# Htest = Hprep[k:numBatches]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "14cf3332", + "metadata": {}, + "outputs": [], + "source": [ + "# model = load_model('models/CSINet.keras')\n", + "# csinet.model = model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eea28f44", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/1000\n", + "20/20 [==============================] - 71s 4s/step - loss: 1.7742e-04 - val_loss: 0.0043\n", + "Epoch 2/1000\n", + "20/20 [==============================] - 71s 4s/step - loss: 1.7259e-04 - val_loss: 0.0037\n", + "Epoch 3/1000\n", + "20/20 [==============================] - 70s 4s/step - loss: 1.6864e-04 - val_loss: 0.0029\n", + "Epoch 4/1000\n", + "20/20 [==============================] - 70s 4s/step - loss: 1.6530e-04 - val_loss: 0.0022\n", + "Epoch 5/1000\n", + "20/20 [==============================] - 71s 4s/step - loss: 1.6243e-04 - val_loss: 0.0017\n", + "Epoch 6/1000\n", + "20/20 [==============================] - 71s 4s/step - loss: 1.6001e-04 - val_loss: 0.0015\n", + "Epoch 7/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5802e-04 - val_loss: 0.0013\n", + "Epoch 8/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5634e-04 - val_loss: 0.0011\n", + "Epoch 9/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5492e-04 - val_loss: 8.7465e-04\n", + "Epoch 10/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.5370e-04 - val_loss: 6.8815e-04\n", + "Epoch 11/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5262e-04 - val_loss: 5.2990e-04\n", + "Epoch 12/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5167e-04 - val_loss: 4.0591e-04\n", + "Epoch 13/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.5085e-04 - val_loss: 3.1419e-04\n", + "Epoch 14/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.5011e-04 - val_loss: 2.5195e-04\n", + "Epoch 15/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4947e-04 - val_loss: 2.1186e-04\n", + "Epoch 16/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4891e-04 - val_loss: 1.8665e-04\n", + "Epoch 17/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4841e-04 - val_loss: 1.7138e-04\n", + "Epoch 18/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4796e-04 - val_loss: 1.6209e-04\n", + "Epoch 19/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4754e-04 - val_loss: 1.5635e-04\n", + "Epoch 20/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4717e-04 - val_loss: 1.5279e-04\n", + "Epoch 21/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4683e-04 - val_loss: 1.5035e-04\n", + "Epoch 22/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4653e-04 - val_loss: 1.4878e-04\n", + "Epoch 23/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4625e-04 - val_loss: 1.4770e-04\n", + "Epoch 24/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4599e-04 - val_loss: 1.4683e-04\n", + "Epoch 25/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4575e-04 - val_loss: 1.4617e-04\n", + "Epoch 26/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4553e-04 - val_loss: 1.4551e-04\n", + "Epoch 27/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4533e-04 - val_loss: 1.4505e-04\n", + "Epoch 28/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4512e-04 - val_loss: 1.4463e-04\n", + "Epoch 29/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4493e-04 - val_loss: 1.4427e-04\n", + "Epoch 30/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4475e-04 - val_loss: 1.4402e-04\n", + "Epoch 31/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4457e-04 - val_loss: 1.4354e-04\n", + "Epoch 32/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4440e-04 - val_loss: 1.4335e-04\n", + "Epoch 33/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4423e-04 - val_loss: 1.4307e-04\n", + "Epoch 34/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4407e-04 - val_loss: 1.4283e-04\n", + "Epoch 35/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4391e-04 - val_loss: 1.4230e-04\n", + "Epoch 36/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4376e-04 - val_loss: 1.4228e-04\n", + "Epoch 37/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4361e-04 - val_loss: 1.4194e-04\n", + "Epoch 38/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4346e-04 - val_loss: 1.4173e-04\n", + "Epoch 39/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4332e-04 - val_loss: 1.4149e-04\n", + "Epoch 40/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4318e-04 - val_loss: 1.4133e-04\n", + "Epoch 41/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4304e-04 - val_loss: 1.4106e-04\n", + "Epoch 42/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4289e-04 - val_loss: 1.4086e-04\n", + "Epoch 43/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4274e-04 - val_loss: 1.4061e-04\n", + "Epoch 44/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4261e-04 - val_loss: 1.4033e-04\n", + "Epoch 45/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4249e-04 - val_loss: 1.4021e-04\n", + "Epoch 46/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4235e-04 - val_loss: 1.4001e-04\n", + "Epoch 47/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4221e-04 - val_loss: 1.3973e-04\n", + "Epoch 48/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4211e-04 - val_loss: 1.3967e-04\n", + "Epoch 49/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4198e-04 - val_loss: 1.3946e-04\n", + "Epoch 50/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4185e-04 - val_loss: 1.3920e-04\n", + "Epoch 51/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4172e-04 - val_loss: 1.3910e-04\n", + "Epoch 52/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4156e-04 - val_loss: 1.3889e-04\n", + "Epoch 53/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4144e-04 - val_loss: 1.3886e-04\n", + "Epoch 54/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4130e-04 - val_loss: 1.3855e-04\n", + "Epoch 55/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4118e-04 - val_loss: 1.3846e-04\n", + "Epoch 56/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4106e-04 - val_loss: 1.3834e-04\n", + "Epoch 57/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4092e-04 - val_loss: 1.3812e-04\n", + "Epoch 58/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4080e-04 - val_loss: 1.3790e-04\n", + "Epoch 59/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4067e-04 - val_loss: 1.3776e-04\n", + "Epoch 60/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4056e-04 - val_loss: 1.3763e-04\n", + "Epoch 61/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4044e-04 - val_loss: 1.3736e-04\n", + "Epoch 62/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4029e-04 - val_loss: 1.3737e-04\n", + "Epoch 63/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4013e-04 - val_loss: 1.3721e-04\n", + "Epoch 64/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4004e-04 - val_loss: 1.3699e-04\n", + "Epoch 65/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3984e-04 - val_loss: 1.3682e-04\n", + "Epoch 66/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3969e-04 - val_loss: 1.3674e-04\n", + "Epoch 67/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3956e-04 - val_loss: 1.3660e-04\n", + "Epoch 68/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3942e-04 - val_loss: 1.3652e-04\n", + "Epoch 69/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.3928e-04 - val_loss: 1.3637e-04\n", + "Epoch 70/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3915e-04 - val_loss: 1.3635e-04\n", + "Epoch 71/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3897e-04 - val_loss: 1.3625e-04\n", + "Epoch 72/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3884e-04 - val_loss: 1.3625e-04\n", + "Epoch 73/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3883e-04 - val_loss: 1.3603e-04\n", + "Epoch 74/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3857e-04 - val_loss: 1.3597e-04\n", + "Epoch 75/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3841e-04 - val_loss: 1.3604e-04\n", + "Epoch 76/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3821e-04 - val_loss: 1.3579e-04\n", + "Epoch 77/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3795e-04 - val_loss: 1.3555e-04\n", + "Epoch 78/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3775e-04 - val_loss: 1.3563e-04\n", + "Epoch 79/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3756e-04 - val_loss: 1.3545e-04\n", + "Epoch 80/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3738e-04 - val_loss: 1.3547e-04\n", + "Epoch 81/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3722e-04 - val_loss: 1.3548e-04\n", + "Epoch 82/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3710e-04 - val_loss: 1.3555e-04\n", + "Epoch 83/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3696e-04 - val_loss: 1.3547e-04\n", + "Epoch 84/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3697e-04 - val_loss: 1.3563e-04\n", + "Epoch 85/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3651e-04 - val_loss: 1.3530e-04\n", + "Epoch 86/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3612e-04 - val_loss: 1.3516e-04\n", + "Epoch 87/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3613e-04 - val_loss: 1.3505e-04\n", + "Epoch 88/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.3574e-04 - val_loss: 1.3499e-04\n", + "Epoch 89/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3578e-04 - val_loss: 1.3540e-04\n", + "Epoch 90/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3549e-04 - val_loss: 1.3534e-04\n", + "Epoch 91/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3534e-04 - val_loss: 1.3487e-04\n", + "Epoch 92/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3491e-04 - val_loss: 1.3490e-04\n", + "Epoch 93/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3475e-04 - val_loss: 1.3490e-04\n", + "Epoch 94/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3442e-04 - val_loss: 1.3471e-04\n", + "Epoch 95/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3440e-04 - val_loss: 1.3496e-04\n", + "Epoch 96/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3414e-04 - val_loss: 1.3508e-04\n", + "Epoch 97/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3431e-04 - val_loss: 1.3493e-04\n", + "Epoch 98/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3403e-04 - val_loss: 1.3515e-04\n", + "Epoch 99/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3323e-04 - val_loss: 1.3469e-04\n", + "Epoch 100/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3297e-04 - val_loss: 1.3585e-04\n", + "Epoch 101/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3307e-04 - val_loss: 1.3581e-04\n", + "Epoch 102/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3270e-04 - val_loss: 1.3471e-04\n", + "Epoch 103/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3247e-04 - val_loss: 1.3364e-04\n", + "Epoch 104/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 2.7186e-04 - val_loss: 5.9999e-04\n", + "Epoch 105/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 2.4725e-04 - val_loss: 8.0587e-04\n", + "Epoch 106/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4827e-04 - val_loss: 6.0315e-04\n", + "Epoch 107/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3956e-04 - val_loss: 3.6259e-04\n", + "Epoch 108/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3717e-04 - val_loss: 2.5379e-04\n", + "Epoch 109/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3604e-04 - val_loss: 2.0073e-04\n", + "Epoch 110/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3526e-04 - val_loss: 1.7553e-04\n", + "Epoch 111/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3462e-04 - val_loss: 1.6115e-04\n", + "Epoch 112/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3404e-04 - val_loss: 1.5349e-04\n", + "Epoch 113/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3351e-04 - val_loss: 1.4661e-04\n", + "Epoch 114/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3302e-04 - val_loss: 1.4291e-04\n", + "Epoch 115/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3255e-04 - val_loss: 1.4210e-04\n", + "Epoch 116/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3211e-04 - val_loss: 1.4070e-04\n", + "Epoch 117/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3170e-04 - val_loss: 1.3908e-04\n", + "Epoch 118/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3131e-04 - val_loss: 1.3821e-04\n", + "Epoch 119/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3093e-04 - val_loss: 1.3706e-04\n", + "Epoch 120/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3058e-04 - val_loss: 1.3630e-04\n", + "Epoch 121/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3024e-04 - val_loss: 1.3509e-04\n", + "Epoch 122/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2990e-04 - val_loss: 1.3495e-04\n", + "Epoch 123/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2958e-04 - val_loss: 1.3444e-04\n", + "Epoch 124/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2927e-04 - val_loss: 1.3385e-04\n", + "Epoch 125/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2897e-04 - val_loss: 1.3401e-04\n", + "Epoch 126/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2869e-04 - val_loss: 1.3360e-04\n", + "Epoch 127/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2841e-04 - val_loss: 1.3312e-04\n", + "Epoch 128/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2815e-04 - val_loss: 1.3210e-04\n", + "Epoch 129/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2788e-04 - val_loss: 1.3211e-04\n", + "Epoch 130/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2762e-04 - val_loss: 1.3188e-04\n", + "Epoch 131/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2736e-04 - val_loss: 1.3199e-04\n", + "Epoch 132/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2712e-04 - val_loss: 1.3122e-04\n", + "Epoch 133/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2690e-04 - val_loss: 1.3178e-04\n", + "Epoch 134/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2663e-04 - val_loss: 1.3107e-04\n", + "Epoch 135/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2638e-04 - val_loss: 1.3061e-04\n", + "Epoch 136/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2614e-04 - val_loss: 1.3039e-04\n", + "Epoch 137/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2590e-04 - val_loss: 1.3072e-04\n", + "Epoch 138/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2567e-04 - val_loss: 1.2932e-04\n", + "Epoch 139/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2542e-04 - val_loss: 1.3050e-04\n", + "Epoch 140/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2519e-04 - val_loss: 1.2852e-04\n", + "Epoch 141/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2502e-04 - val_loss: 1.2818e-04\n", + "Epoch 142/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2473e-04 - val_loss: 1.2908e-04\n", + "Epoch 143/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2453e-04 - val_loss: 1.3138e-04\n", + "Epoch 144/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2444e-04 - val_loss: 1.2780e-04\n", + "Epoch 145/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2419e-04 - val_loss: 1.2681e-04\n", + "Epoch 146/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2402e-04 - val_loss: 1.2615e-04\n", + "Epoch 147/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2369e-04 - val_loss: 1.2638e-04\n", + "Epoch 148/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2352e-04 - val_loss: 1.2830e-04\n", + "Epoch 149/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2314e-04 - val_loss: 1.2605e-04\n", + "Epoch 150/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2286e-04 - val_loss: 1.2743e-04\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 151/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2271e-04 - val_loss: 1.2598e-04\n", + "Epoch 152/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 0.0011 - val_loss: 0.0030\n", + "Epoch 153/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 8.0737e-04 - val_loss: 7.5406e-04\n", + "Epoch 154/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 2.2217e-04 - val_loss: 4.4022e-04\n", + "Epoch 155/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.6454e-04 - val_loss: 2.8927e-04\n", + "Epoch 156/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.5252e-04 - val_loss: 2.2517e-04\n", + "Epoch 157/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4766e-04 - val_loss: 1.9435e-04\n", + "Epoch 158/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4478e-04 - val_loss: 1.7687e-04\n", + "Epoch 159/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4276e-04 - val_loss: 1.6398e-04\n", + "Epoch 160/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4121e-04 - val_loss: 1.5581e-04\n", + "Epoch 161/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.4001e-04 - val_loss: 1.5050e-04\n", + "Epoch 162/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3907e-04 - val_loss: 1.4714e-04\n", + "Epoch 163/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3830e-04 - val_loss: 1.4454e-04\n", + "Epoch 164/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3767e-04 - val_loss: 1.4247e-04\n", + "Epoch 165/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3711e-04 - val_loss: 1.4100e-04\n", + "Epoch 166/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3661e-04 - val_loss: 1.3959e-04\n", + "Epoch 167/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3615e-04 - val_loss: 1.3854e-04\n", + "Epoch 168/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.3572e-04 - val_loss: 1.3760e-04\n", + "Epoch 169/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3533e-04 - val_loss: 1.3684e-04\n", + "Epoch 170/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3495e-04 - val_loss: 1.3616e-04\n", + "Epoch 171/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3460e-04 - val_loss: 1.3561e-04\n", + "Epoch 172/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3425e-04 - val_loss: 1.3502e-04\n", + "Epoch 173/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3392e-04 - val_loss: 1.3455e-04\n", + "Epoch 174/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3358e-04 - val_loss: 1.3413e-04\n", + "Epoch 175/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3325e-04 - val_loss: 1.3369e-04\n", + "Epoch 176/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3293e-04 - val_loss: 1.3329e-04\n", + "Epoch 177/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3260e-04 - val_loss: 1.3295e-04\n", + "Epoch 178/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3227e-04 - val_loss: 1.3262e-04\n", + "Epoch 179/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3195e-04 - val_loss: 1.3225e-04\n", + "Epoch 180/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3163e-04 - val_loss: 1.3183e-04\n", + "Epoch 181/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3131e-04 - val_loss: 1.3149e-04\n", + "Epoch 182/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3098e-04 - val_loss: 1.3120e-04\n", + "Epoch 183/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3064e-04 - val_loss: 1.3091e-04\n", + "Epoch 184/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3031e-04 - val_loss: 1.3061e-04\n", + "Epoch 185/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2998e-04 - val_loss: 1.3030e-04\n", + "Epoch 186/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2967e-04 - val_loss: 1.2996e-04\n", + "Epoch 187/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2935e-04 - val_loss: 1.2962e-04\n", + "Epoch 188/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2905e-04 - val_loss: 1.2936e-04\n", + "Epoch 189/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2875e-04 - val_loss: 1.2912e-04\n", + "Epoch 190/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2843e-04 - val_loss: 1.2879e-04\n", + "Epoch 191/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2811e-04 - val_loss: 1.2853e-04\n", + "Epoch 192/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2781e-04 - val_loss: 1.2833e-04\n", + "Epoch 193/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2751e-04 - val_loss: 1.2804e-04\n", + "Epoch 194/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2720e-04 - val_loss: 1.2780e-04\n", + "Epoch 195/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2690e-04 - val_loss: 1.2748e-04\n", + "Epoch 196/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2660e-04 - val_loss: 1.2726e-04\n", + "Epoch 197/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2631e-04 - val_loss: 1.2693e-04\n", + "Epoch 198/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2602e-04 - val_loss: 1.2667e-04\n", + "Epoch 199/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2573e-04 - val_loss: 1.2636e-04\n", + "Epoch 200/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2544e-04 - val_loss: 1.2612e-04\n", + "Epoch 201/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2515e-04 - val_loss: 1.2579e-04\n", + "Epoch 202/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2487e-04 - val_loss: 1.2556e-04\n", + "Epoch 203/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2458e-04 - val_loss: 1.2523e-04\n", + "Epoch 204/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2428e-04 - val_loss: 1.2499e-04\n", + "Epoch 205/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2400e-04 - val_loss: 1.2467e-04\n", + "Epoch 206/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2372e-04 - val_loss: 1.2451e-04\n", + "Epoch 207/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2344e-04 - val_loss: 1.2414e-04\n", + "Epoch 208/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2316e-04 - val_loss: 1.2387e-04\n", + "Epoch 209/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2288e-04 - val_loss: 1.2359e-04\n", + "Epoch 210/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2261e-04 - val_loss: 1.2337e-04\n", + "Epoch 211/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2236e-04 - val_loss: 1.2307e-04\n", + "Epoch 212/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2208e-04 - val_loss: 1.2280e-04\n", + "Epoch 213/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2182e-04 - val_loss: 1.2255e-04\n", + "Epoch 214/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.2157e-04 - val_loss: 1.2229e-04\n", + "Epoch 215/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2131e-04 - val_loss: 1.2206e-04\n", + "Epoch 216/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2107e-04 - val_loss: 1.2184e-04\n", + "Epoch 217/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2080e-04 - val_loss: 1.2160e-04\n", + "Epoch 218/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2056e-04 - val_loss: 1.2135e-04\n", + "Epoch 219/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2031e-04 - val_loss: 1.2108e-04\n", + "Epoch 220/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2006e-04 - val_loss: 1.2086e-04\n", + "Epoch 221/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1980e-04 - val_loss: 1.2061e-04\n", + "Epoch 222/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1956e-04 - val_loss: 1.2034e-04\n", + "Epoch 223/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1932e-04 - val_loss: 1.2015e-04\n", + "Epoch 224/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1907e-04 - val_loss: 1.1992e-04\n", + "Epoch 225/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1883e-04 - val_loss: 1.1964e-04\n", + "Epoch 226/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1859e-04 - val_loss: 1.1946e-04\n", + "Epoch 227/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1836e-04 - val_loss: 1.1924e-04\n", + "Epoch 228/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1812e-04 - val_loss: 1.1901e-04\n", + "Epoch 229/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1788e-04 - val_loss: 1.1873e-04\n", + "Epoch 230/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1762e-04 - val_loss: 1.1849e-04\n", + "Epoch 231/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1739e-04 - val_loss: 1.1824e-04\n", + "Epoch 232/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1716e-04 - val_loss: 1.1801e-04\n", + "Epoch 233/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1693e-04 - val_loss: 1.1782e-04\n", + "Epoch 234/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1669e-04 - val_loss: 1.1772e-04\n", + "Epoch 235/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1644e-04 - val_loss: 1.1742e-04\n", + "Epoch 236/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1620e-04 - val_loss: 1.1717e-04\n", + "Epoch 237/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.1600e-04 - val_loss: 1.1697e-04\n", + "Epoch 238/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1574e-04 - val_loss: 1.1671e-04\n", + "Epoch 239/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1550e-04 - val_loss: 1.1646e-04\n", + "Epoch 240/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1526e-04 - val_loss: 1.1627e-04\n", + "Epoch 241/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1501e-04 - val_loss: 1.1614e-04\n", + "Epoch 242/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1479e-04 - val_loss: 1.1579e-04\n", + "Epoch 243/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1453e-04 - val_loss: 1.1561e-04\n", + "Epoch 244/1000\n", + "20/20 [==============================] - 76s 4s/step - loss: 1.1430e-04 - val_loss: 1.1536e-04\n", + "Epoch 245/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1407e-04 - val_loss: 1.1516e-04\n", + "Epoch 246/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1384e-04 - val_loss: 1.1494e-04\n", + "Epoch 247/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1361e-04 - val_loss: 1.1468e-04\n", + "Epoch 248/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1338e-04 - val_loss: 1.1452e-04\n", + "Epoch 249/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1312e-04 - val_loss: 1.1422e-04\n", + "Epoch 250/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1291e-04 - val_loss: 1.1400e-04\n", + "Epoch 251/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1267e-04 - val_loss: 1.1378e-04\n", + "Epoch 252/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1242e-04 - val_loss: 1.1359e-04\n", + "Epoch 253/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1221e-04 - val_loss: 1.1342e-04\n", + "Epoch 254/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1198e-04 - val_loss: 1.1317e-04\n", + "Epoch 255/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1179e-04 - val_loss: 1.1296e-04\n", + "Epoch 256/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1158e-04 - val_loss: 1.1277e-04\n", + "Epoch 257/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1134e-04 - val_loss: 1.1292e-04\n", + "Epoch 258/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1103e-04 - val_loss: 1.1229e-04\n", + "Epoch 259/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1094e-04 - val_loss: 1.1236e-04\n", + "Epoch 260/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1069e-04 - val_loss: 1.1202e-04\n", + "Epoch 261/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1052e-04 - val_loss: 1.1211e-04\n", + "Epoch 262/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1020e-04 - val_loss: 1.1182e-04\n", + "Epoch 263/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0999e-04 - val_loss: 1.1120e-04\n", + "Epoch 264/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0988e-04 - val_loss: 1.1105e-04\n", + "Epoch 265/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0971e-04 - val_loss: 1.1073e-04\n", + "Epoch 266/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0925e-04 - val_loss: 1.1168e-04\n", + "Epoch 267/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0918e-04 - val_loss: 1.1021e-04\n", + "Epoch 268/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0899e-04 - val_loss: 1.1207e-04\n", + "Epoch 269/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0908e-04 - val_loss: 1.1036e-04\n", + "Epoch 270/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0850e-04 - val_loss: 1.1063e-04\n", + "Epoch 271/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0808e-04 - val_loss: 1.0979e-04\n", + "Epoch 272/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0885e-04 - val_loss: 1.1182e-04\n", + "Epoch 273/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0896e-04 - val_loss: 1.0897e-04\n", + "Epoch 274/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0755e-04 - val_loss: 1.0890e-04\n", + "Epoch 275/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0726e-04 - val_loss: 1.0942e-04\n", + "Epoch 276/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0698e-04 - val_loss: 1.0837e-04\n", + "Epoch 277/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0682e-04 - val_loss: 1.1710e-04\n", + "Epoch 278/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1099e-04 - val_loss: 1.0862e-04\n", + "Epoch 279/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0679e-04 - val_loss: 1.0775e-04\n", + "Epoch 280/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0615e-04 - val_loss: 1.0787e-04\n", + "Epoch 281/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0580e-04 - val_loss: 1.0705e-04\n", + "Epoch 282/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0551e-04 - val_loss: 1.0705e-04\n", + "Epoch 283/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0542e-04 - val_loss: 1.0673e-04\n", + "Epoch 284/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0500e-04 - val_loss: 1.0644e-04\n", + "Epoch 285/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0506e-04 - val_loss: 1.0654e-04\n", + "Epoch 286/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0493e-04 - val_loss: 1.0618e-04\n", + "Epoch 287/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0476e-04 - val_loss: 1.0601e-04\n", + "Epoch 288/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0445e-04 - val_loss: 1.0588e-04\n", + "Epoch 289/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0439e-04 - val_loss: 1.1388e-04\n", + "Epoch 290/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 0.0033 - val_loss: 0.0015\n", + "Epoch 291/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 6.8803e-04 - val_loss: 4.5921e-04\n", + "Epoch 292/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 2.5436e-04 - val_loss: 3.2132e-04\n", + "Epoch 293/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.8278e-04 - val_loss: 2.6234e-04\n", + "Epoch 294/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.6361e-04 - val_loss: 2.2145e-04\n", + "Epoch 295/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.5566e-04 - val_loss: 1.9489e-04\n", + "Epoch 296/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.5087e-04 - val_loss: 1.7818e-04\n", + "Epoch 297/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.4780e-04 - val_loss: 1.6677e-04\n", + "Epoch 298/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4506e-04 - val_loss: 1.5912e-04\n", + "Epoch 299/1000\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20/20 [==============================] - 75s 4s/step - loss: 1.4321e-04 - val_loss: 1.5355e-04\n", + "Epoch 300/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4175e-04 - val_loss: 1.4977e-04\n", + "Epoch 301/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4046e-04 - val_loss: 1.4725e-04\n", + "Epoch 302/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3919e-04 - val_loss: 1.4475e-04\n", + "Epoch 303/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3819e-04 - val_loss: 1.4305e-04\n", + "Epoch 304/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3741e-04 - val_loss: 1.4133e-04\n", + "Epoch 305/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3681e-04 - val_loss: 1.4008e-04\n", + "Epoch 306/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3607e-04 - val_loss: 1.3953e-04\n", + "Epoch 307/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3530e-04 - val_loss: 1.3845e-04\n", + "Epoch 308/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3476e-04 - val_loss: 1.3803e-04\n", + "Epoch 309/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3423e-04 - val_loss: 1.3714e-04\n", + "Epoch 310/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3372e-04 - val_loss: 1.3652e-04\n", + "Epoch 311/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3321e-04 - val_loss: 1.3604e-04\n", + "Epoch 312/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3306e-04 - val_loss: 1.3567e-04\n", + "Epoch 313/1000\n", + "20/20 [==============================] - 76s 4s/step - loss: 1.3240e-04 - val_loss: 1.3451e-04\n", + "Epoch 314/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3208e-04 - val_loss: 1.3424e-04\n", + "Epoch 315/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3160e-04 - val_loss: 1.3382e-04\n", + "Epoch 316/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3120e-04 - val_loss: 1.3358e-04\n", + "Epoch 317/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3088e-04 - val_loss: 1.3309e-04\n", + "Epoch 318/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3050e-04 - val_loss: 1.3270e-04\n", + "Epoch 319/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3017e-04 - val_loss: 1.3238e-04\n", + "Epoch 320/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2989e-04 - val_loss: 1.3204e-04\n", + "Epoch 321/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2962e-04 - val_loss: 1.3130e-04\n", + "Epoch 322/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2926e-04 - val_loss: 1.3111e-04\n", + "Epoch 323/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2894e-04 - val_loss: 1.3055e-04\n", + "Epoch 324/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2852e-04 - val_loss: 1.3025e-04\n", + "Epoch 325/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2838e-04 - val_loss: 1.2969e-04\n", + "Epoch 326/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2781e-04 - val_loss: 1.2949e-04\n", + "Epoch 327/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2745e-04 - val_loss: 1.2937e-04\n", + "Epoch 328/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2715e-04 - val_loss: 1.2914e-04\n", + "Epoch 329/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2690e-04 - val_loss: 1.2808e-04\n", + "Epoch 330/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2680e-04 - val_loss: 1.2834e-04\n", + "Epoch 331/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2634e-04 - val_loss: 1.2769e-04\n", + "Epoch 332/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2582e-04 - val_loss: 1.2695e-04\n", + "Epoch 333/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2542e-04 - val_loss: 1.2670e-04\n", + "Epoch 334/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2497e-04 - val_loss: 1.2688e-04\n", + "Epoch 335/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2454e-04 - val_loss: 1.2615e-04\n", + "Epoch 336/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2421e-04 - val_loss: 1.2562e-04\n", + "Epoch 337/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2386e-04 - val_loss: 1.2582e-04\n", + "Epoch 338/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2343e-04 - val_loss: 1.2498e-04\n", + "Epoch 339/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2306e-04 - val_loss: 1.2484e-04\n", + "Epoch 340/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2273e-04 - val_loss: 1.2452e-04\n", + "Epoch 341/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2228e-04 - val_loss: 1.2410e-04\n", + "Epoch 342/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2190e-04 - val_loss: 1.2347e-04\n", + "Epoch 343/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2163e-04 - val_loss: 1.2318e-04\n", + "Epoch 344/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2135e-04 - val_loss: 1.2322e-04\n", + "Epoch 345/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2114e-04 - val_loss: 1.2283e-04\n", + "Epoch 346/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2067e-04 - val_loss: 1.2238e-04\n", + "Epoch 347/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2042e-04 - val_loss: 1.2186e-04\n", + "Epoch 348/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2004e-04 - val_loss: 1.2154e-04\n", + "Epoch 349/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1972e-04 - val_loss: 1.2112e-04\n", + "Epoch 350/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1937e-04 - val_loss: 1.2095e-04\n", + "Epoch 351/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1906e-04 - val_loss: 1.2064e-04\n", + "Epoch 352/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1887e-04 - val_loss: 1.2023e-04\n", + "Epoch 353/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1848e-04 - val_loss: 1.1981e-04\n", + "Epoch 354/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1839e-04 - val_loss: 1.1967e-04\n", + "Epoch 355/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1819e-04 - val_loss: 1.1985e-04\n", + "Epoch 356/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1771e-04 - val_loss: 1.1919e-04\n", + "Epoch 357/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1737e-04 - val_loss: 1.1905e-04\n", + "Epoch 358/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1710e-04 - val_loss: 1.1872e-04\n", + "Epoch 359/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1681e-04 - val_loss: 1.1836e-04\n", + "Epoch 360/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1669e-04 - val_loss: 1.1834e-04\n", + "Epoch 361/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1627e-04 - val_loss: 1.1765e-04\n", + "Epoch 362/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1601e-04 - val_loss: 1.1751e-04\n", + "Epoch 363/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1577e-04 - val_loss: 1.1766e-04\n", + "Epoch 364/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1562e-04 - val_loss: 1.1697e-04\n", + "Epoch 365/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1522e-04 - val_loss: 1.1711e-04\n", + "Epoch 366/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1494e-04 - val_loss: 1.1649e-04\n", + "Epoch 367/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1469e-04 - val_loss: 1.1652e-04\n", + "Epoch 368/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1453e-04 - val_loss: 1.1623e-04\n", + "Epoch 369/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1437e-04 - val_loss: 1.1564e-04\n", + "Epoch 370/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1409e-04 - val_loss: 1.1576e-04\n", + "Epoch 371/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1377e-04 - val_loss: 1.1534e-04\n", + "Epoch 372/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1357e-04 - val_loss: 1.1498e-04\n", + "Epoch 373/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1338e-04 - val_loss: 1.1499e-04\n", + "Epoch 374/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1300e-04 - val_loss: 1.1487e-04\n", + "Epoch 375/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1315e-04 - val_loss: 1.1486e-04\n", + "Epoch 376/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1264e-04 - val_loss: 1.1431e-04\n", + "Epoch 377/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1249e-04 - val_loss: 1.1441e-04\n", + "Epoch 378/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1215e-04 - val_loss: 1.1364e-04\n", + "Epoch 379/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1187e-04 - val_loss: 1.1359e-04\n", + "Epoch 380/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1176e-04 - val_loss: 1.1313e-04\n", + "Epoch 381/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1202e-04 - val_loss: 1.1292e-04\n", + "Epoch 382/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1164e-04 - val_loss: 1.1271e-04\n", + "Epoch 383/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1137e-04 - val_loss: 1.1249e-04\n", + "Epoch 384/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1119e-04 - val_loss: 1.1263e-04\n", + "Epoch 385/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1053e-04 - val_loss: 1.1232e-04\n", + "Epoch 386/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1043e-04 - val_loss: 1.1188e-04\n", + "Epoch 387/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1014e-04 - val_loss: 1.1179e-04\n", + "Epoch 388/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0998e-04 - val_loss: 1.1144e-04\n", + "Epoch 389/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0969e-04 - val_loss: 1.1139e-04\n", + "Epoch 390/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0942e-04 - val_loss: 1.1118e-04\n", + "Epoch 391/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0932e-04 - val_loss: 1.1173e-04\n", + "Epoch 392/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0985e-04 - val_loss: 1.1075e-04\n", + "Epoch 393/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0881e-04 - val_loss: 1.1055e-04\n", + "Epoch 394/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0861e-04 - val_loss: 1.1052e-04\n", + "Epoch 395/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0847e-04 - val_loss: 1.1021e-04\n", + "Epoch 396/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0827e-04 - val_loss: 1.0983e-04\n", + "Epoch 397/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0802e-04 - val_loss: 1.0977e-04\n", + "Epoch 398/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0783e-04 - val_loss: 1.0934e-04\n", + "Epoch 399/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0756e-04 - val_loss: 1.0930e-04\n", + "Epoch 400/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0741e-04 - val_loss: 1.0930e-04\n", + "Epoch 401/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0714e-04 - val_loss: 1.0883e-04\n", + "Epoch 402/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0708e-04 - val_loss: 1.0862e-04\n", + "Epoch 403/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0690e-04 - val_loss: 1.0862e-04\n", + "Epoch 404/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0714e-04 - val_loss: 1.0834e-04\n", + "Epoch 405/1000\n", + " 9/20 [============>.................] - ETA: 41s - loss: 1.0775e-04" + ] + } + ], + "source": [ + "csinet.fit(Htrain, epochs=1000, batch_size=5000, hval = Hval)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e9e07494", + "metadata": {}, + "outputs": [], + "source": [ + "csinet.model.save('models/CSINet.keras') # The file needs to end with the .keras extension" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "1ab0d957", + "metadata": {}, + "outputs": [], + "source": [ + "# model = load_model('models/CSINet.keras')\n", + "# model.fit(Htrain, Htrain, epochs=1000, batch_size=5000, shuffle= True, validation_data=(Hval, Hval))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9c4e4215", + "metadata": {}, + "outputs": [], + "source": [ + "# self.model.fit(Htrain, Htrain, \n", + "# epochs=1000, batch_size=5000, shuffle= True, \n", + "# validation_data=(Hval, Hval))" + ] + } + ], + "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" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/api/5G_Toolkit/5Gtoolkit.html b/api/5G_Toolkit/5Gtoolkit.html index c28e7e9d..8c1b5ad7 100644 --- a/api/5G_Toolkit/5Gtoolkit.html +++ b/api/5G_Toolkit/5Gtoolkit.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/CRC/crc.crcDecoder.html b/api/5G_Toolkit/CRC/crc.crcDecoder.html index ddedad23..1e89771b 100644 --- a/api/5G_Toolkit/CRC/crc.crcDecoder.html +++ b/api/5G_Toolkit/CRC/crc.crcDecoder.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/CRC/crc.crcEncoder.html b/api/5G_Toolkit/CRC/crc.crcEncoder.html index ba8d3843..036110e2 100644 --- a/api/5G_Toolkit/CRC/crc.crcEncoder.html +++ b/api/5G_Toolkit/CRC/crc.crcEncoder.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/CRC/crc.html b/api/5G_Toolkit/CRC/crc.html index b207108c..5f03a7c2 100644 --- a/api/5G_Toolkit/CRC/crc.html +++ b/api/5G_Toolkit/CRC/crc.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelCoder/HammingCoder/channelCoder.hamming.html b/api/5G_Toolkit/ChannelCoder/HammingCoder/channelCoder.hamming.html index a3678529..ef098740 100644 --- a/api/5G_Toolkit/ChannelCoder/HammingCoder/channelCoder.hamming.html +++ b/api/5G_Toolkit/ChannelCoder/HammingCoder/channelCoder.hamming.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingReceiver.html b/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingReceiver.html index 591e973c..b8856e17 100644 --- a/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingReceiver.html +++ b/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingReceiver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingTransmitter.html b/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingTransmitter.html index 4e6c31e4..a17073d2 100644 --- a/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingTransmitter.html +++ b/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingTransmitter.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.html b/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.html index a0976013..83bfb358 100644 --- a/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.html +++ b/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.ldpcParameters.html b/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.ldpcParameters.html index ce476c39..98361d5e 100644 --- a/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.ldpcParameters.html +++ b/api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.ldpcParameters.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.components.html b/api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.components.html index d7d01cd0..ea8cd5f8 100644 --- a/api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.components.html +++ b/api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.components.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.html b/api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.html index 9ac1eed8..beed8c2d 100644 --- a/api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.html +++ b/api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelCoder/ReedMullerCoder/channelCoder.reedMuller.html b/api/5G_Toolkit/ChannelCoder/ReedMullerCoder/channelCoder.reedMuller.html index 7f8c0a7a..801db073 100644 --- a/api/5G_Toolkit/ChannelCoder/ReedMullerCoder/channelCoder.reedMuller.html +++ b/api/5G_Toolkit/ChannelCoder/ReedMullerCoder/channelCoder.reedMuller.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelCoder/channelCoder.html b/api/5G_Toolkit/ChannelCoder/channelCoder.html index 2ea50373..8ecc13cd 100644 --- a/api/5G_Toolkit/ChannelCoder/channelCoder.html +++ b/api/5G_Toolkit/ChannelCoder/channelCoder.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelModels/antennaArray.html b/api/5G_Toolkit/ChannelModels/antennaArray.html index 7271cdea..642c9792 100644 --- a/api/5G_Toolkit/ChannelModels/antennaArray.html +++ b/api/5G_Toolkit/ChannelModels/antennaArray.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelModels/channelGenerator.html b/api/5G_Toolkit/ChannelModels/channelGenerator.html index a3540e35..508d58e9 100644 --- a/api/5G_Toolkit/ChannelModels/channelGenerator.html +++ b/api/5G_Toolkit/ChannelModels/channelGenerator.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelModels/channelModels.html b/api/5G_Toolkit/ChannelModels/channelModels.html index ea39b6d9..b619d56a 100644 --- a/api/5G_Toolkit/ChannelModels/channelModels.html +++ b/api/5G_Toolkit/ChannelModels/channelModels.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelModels/nodeMobility.html b/api/5G_Toolkit/ChannelModels/nodeMobility.html index a016d64b..1ee6393d 100644 --- a/api/5G_Toolkit/ChannelModels/nodeMobility.html +++ b/api/5G_Toolkit/ChannelModels/nodeMobility.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelModels/parameterGenerator.html b/api/5G_Toolkit/ChannelModels/parameterGenerator.html index ef82440e..bf36d8db 100644 --- a/api/5G_Toolkit/ChannelModels/parameterGenerator.html +++ b/api/5G_Toolkit/ChannelModels/parameterGenerator.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelModels/simulationLayout.html b/api/5G_Toolkit/ChannelModels/simulationLayout.html index 2f6e83eb..a7c62196 100644 --- a/api/5G_Toolkit/ChannelModels/simulationLayout.html +++ b/api/5G_Toolkit/ChannelModels/simulationLayout.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelProcessing/channelProcessing.addNoise.html b/api/5G_Toolkit/ChannelProcessing/channelProcessing.addNoise.html index e3d71d78..f0dc327a 100644 --- a/api/5G_Toolkit/ChannelProcessing/channelProcessing.addNoise.html +++ b/api/5G_Toolkit/ChannelProcessing/channelProcessing.addNoise.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelProcessing/channelProcessing.applyChannel.html b/api/5G_Toolkit/ChannelProcessing/channelProcessing.applyChannel.html index 64dad168..2f40a1f1 100644 --- a/api/5G_Toolkit/ChannelProcessing/channelProcessing.applyChannel.html +++ b/api/5G_Toolkit/ChannelProcessing/channelProcessing.applyChannel.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ChannelProcessing/channelProcessing.html b/api/5G_Toolkit/ChannelProcessing/channelProcessing.html index d9885e5a..dee8877c 100644 --- a/api/5G_Toolkit/ChannelProcessing/channelProcessing.html +++ b/api/5G_Toolkit/ChannelProcessing/channelProcessing.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Interleaver/interleavers.html b/api/5G_Toolkit/Interleaver/interleavers.html index 14629c9d..cbc8aa29 100644 --- a/api/5G_Toolkit/Interleaver/interleavers.html +++ b/api/5G_Toolkit/Interleaver/interleavers.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Interleaver/interleavers.lpdc.bitInterleaver.html b/api/5G_Toolkit/Interleaver/interleavers.lpdc.bitInterleaver.html index d3719196..e81b1652 100644 --- a/api/5G_Toolkit/Interleaver/interleavers.lpdc.bitInterleaver.html +++ b/api/5G_Toolkit/Interleaver/interleavers.lpdc.bitInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Interleaver/interleavers.pbchInterleavers.html b/api/5G_Toolkit/Interleaver/interleavers.pbchInterleavers.html index cad39bd5..5c3021a9 100644 --- a/api/5G_Toolkit/Interleaver/interleavers.pbchInterleavers.html +++ b/api/5G_Toolkit/Interleaver/interleavers.pbchInterleavers.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Interleaver/interleavers.polar.channelInterleaver.html b/api/5G_Toolkit/Interleaver/interleavers.polar.channelInterleaver.html index df9a0472..1d9800fe 100644 --- a/api/5G_Toolkit/Interleaver/interleavers.polar.channelInterleaver.html +++ b/api/5G_Toolkit/Interleaver/interleavers.polar.channelInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Interleaver/interleavers.polar.inputBitInterleaver.html b/api/5G_Toolkit/Interleaver/interleavers.polar.inputBitInterleaver.html index c8fe6ee9..44c9f6fd 100644 --- a/api/5G_Toolkit/Interleaver/interleavers.polar.inputBitInterleaver.html +++ b/api/5G_Toolkit/Interleaver/interleavers.polar.inputBitInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Interleaver/interleavers.polar.subBlockInterleaver.html b/api/5G_Toolkit/Interleaver/interleavers.polar.subBlockInterleaver.html index 528b1e0b..518533c7 100644 --- a/api/5G_Toolkit/Interleaver/interleavers.polar.subBlockInterleaver.html +++ b/api/5G_Toolkit/Interleaver/interleavers.polar.subBlockInterleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/MIMOProcessing/codeBooks.html b/api/5G_Toolkit/MIMOProcessing/codeBooks.html index c8e5ac67..054efa78 100644 --- a/api/5G_Toolkit/MIMOProcessing/codeBooks.html +++ b/api/5G_Toolkit/MIMOProcessing/codeBooks.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/MIMOProcessing/mimoProcessing.html b/api/5G_Toolkit/MIMOProcessing/mimoProcessing.html index f0171d2e..dd9a9e41 100644 --- a/api/5G_Toolkit/MIMOProcessing/mimoProcessing.html +++ b/api/5G_Toolkit/MIMOProcessing/mimoProcessing.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/OFDM/ofdm.demodulator.html b/api/5G_Toolkit/OFDM/ofdm.demodulator.html index 1bb1b097..50025a1a 100644 --- a/api/5G_Toolkit/OFDM/ofdm.demodulator.html +++ b/api/5G_Toolkit/OFDM/ofdm.demodulator.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/OFDM/ofdm.html b/api/5G_Toolkit/OFDM/ofdm.html index 12a33424..f19cd66e 100644 --- a/api/5G_Toolkit/OFDM/ofdm.html +++ b/api/5G_Toolkit/OFDM/ofdm.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/OFDM/ofdm.modulator.html b/api/5G_Toolkit/OFDM/ofdm.modulator.html index 7456655a..ddd8838b 100644 --- a/api/5G_Toolkit/OFDM/ofdm.modulator.html +++ b/api/5G_Toolkit/OFDM/ofdm.modulator.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/OFDM/ofdm.transformDecoding.html b/api/5G_Toolkit/OFDM/ofdm.transformDecoding.html index 2b29c473..928b801f 100644 --- a/api/5G_Toolkit/OFDM/ofdm.transformDecoding.html +++ b/api/5G_Toolkit/OFDM/ofdm.transformDecoding.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/OFDM/ofdm.transformDecoding5G.html b/api/5G_Toolkit/OFDM/ofdm.transformDecoding5G.html index f3cc2a8c..638b8764 100644 --- a/api/5G_Toolkit/OFDM/ofdm.transformDecoding5G.html +++ b/api/5G_Toolkit/OFDM/ofdm.transformDecoding5G.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/OFDM/ofdm.transformprecoding.html b/api/5G_Toolkit/OFDM/ofdm.transformprecoding.html index 5709eeaa..ee60ac23 100644 --- a/api/5G_Toolkit/OFDM/ofdm.transformprecoding.html +++ b/api/5G_Toolkit/OFDM/ofdm.transformprecoding.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/OFDM/ofdm.transformprecoding5G.html b/api/5G_Toolkit/OFDM/ofdm.transformprecoding5G.html index eb158f77..826d12b4 100644 --- a/api/5G_Toolkit/OFDM/ofdm.transformprecoding5G.html +++ b/api/5G_Toolkit/OFDM/ofdm.transformprecoding5G.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PayloadGeneration/DCI/payloadGeneration.dci.html b/api/5G_Toolkit/PayloadGeneration/DCI/payloadGeneration.dci.html index e5c65480..199e78a5 100644 --- a/api/5G_Toolkit/PayloadGeneration/DCI/payloadGeneration.dci.html +++ b/api/5G_Toolkit/PayloadGeneration/DCI/payloadGeneration.dci.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PayloadGeneration/MIB/payloadGeneration.mib.html b/api/5G_Toolkit/PayloadGeneration/MIB/payloadGeneration.mib.html index e5b2d0f4..caa5870f 100644 --- a/api/5G_Toolkit/PayloadGeneration/MIB/payloadGeneration.mib.html +++ b/api/5G_Toolkit/PayloadGeneration/MIB/payloadGeneration.mib.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PayloadGeneration/payloadGeneration.html b/api/5G_Toolkit/PayloadGeneration/payloadGeneration.html index 8225a5f9..d7f7e7bd 100644 --- a/api/5G_Toolkit/PayloadGeneration/payloadGeneration.html +++ b/api/5G_Toolkit/PayloadGeneration/payloadGeneration.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.crc.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.crc.html index 797d66db..71781eec 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.crc.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.crc.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.html index de35971d..39a6f18c 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.html index e9d4ec24..b4c3c90d 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.inputBitInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.inputBitInterleaver.html index 9b8c6550..5f168d77 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.inputBitInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.inputBitInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.html index c88430e6..8d8442f1 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.mib.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.mib.html index c94dec3b..bf18e268 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.mib.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.mib.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.html index f61d8c5f..0aa6557d 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolDemapping.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolDemapping.html index 2fe6bcdd..515cd8cd 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolDemapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolDemapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolMapping.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolMapping.html index f4d7333f..4e9ef02a 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolMapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.html index cdc836cb..207ae6b4 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.pbchInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.pbchInterleaver.html index 86ca9517..a0e05381 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.pbchInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.pbchInterleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.html index b4b06b6c..a4ba9d00 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.pbchScrambler.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.pbchScrambler.html index 86ca9517..a0e05381 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.pbchScrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.pbchScrambler.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.html index db44caad..0d821124 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.polarCoder.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.polarCoder.html index f1671597..3bdcadcf 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.polarCoder.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.polarCoder.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.bitSelection.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.bitSelection.html index 4a78fcb5..a7938a16 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.bitSelection.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.bitSelection.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.channelInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.channelInterleaver.html index 17aaf6c1..3eea7842 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.channelInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.channelInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.html index 5772eb85..e35ae003 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.subblockInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.subblockInterleaver.html index 662bc248..d05ef0aa 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.subblockInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.subblockInterleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.resourceMapping.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.resourceMapping.html index cc86f343..f6ce77ba 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.resourceMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.resourceMapping.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.html index db8ced8c..cbacaa7a 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rnti.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rnti.html index 11a85e62..c49ddb4c 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rnti.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rnti.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.descrambler.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.descrambler.html index 9aba6ab6..6986034a 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.descrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.descrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.html index 8a8993fd..643f1786 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.scrambler.html b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.scrambler.html index cc7858ed..4cbe4301 100644 --- a/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.scrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.scrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.html index 4fddf97e..023aa81f 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.html index 4361f66a..0a1149eb 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.html index 47513016..9cbfdec8 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.html index b8ed4b77..3df060d8 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.html index bd82751b..34e0e3c0 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.html index f99419b8..26a25b09 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.html index 0492c353..ac78ab9a 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.html index 10a34cb3..52c72c0a 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.html index a02076d1..d7cd4de2 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.html index 8bf7654d..04e26d8d 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.html index de4ca802..1a55dc8a 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.html index 3ecd794a..7103dffa 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.html index 66fc1adb..947f4814 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.html index b5b25d9f..7867c48f 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.html index 292e31a7..4e396371 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.html index 026e099e..b46e0f70 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.html index c06fa0c4..fbd5a9ab 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.html index 1c367ee8..8308d1fc 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.html b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.html index c8adfbce..c402ba2d 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhy.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhy.html index 530c3eec..c4c6aea9 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhy.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhy.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhyDecoder.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhyDecoder.html index e1df531f..c8cc55e5 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhyDecoder.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhyDecoder.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhy.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhy.html index 6f17856a..173d1de3 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhy.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhy.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhyDecoder.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhyDecoder.html index b9bd74a1..99e1e998 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhyDecoder.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhyDecoder.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/PDSCH.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/PDSCH.html index f6e198ed..849b9145 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/PDSCH.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/PDSCH.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/ReceiverUpperPHY.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/ReceiverUpperPHY.html index c1a427ba..24b67eb9 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/ReceiverUpperPHY.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/ReceiverUpperPHY.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/TransmitterUpperPHY.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/TransmitterUpperPHY.html index 06d4f4c1..c8b2c552 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/TransmitterUpperPHY.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/TransmitterUpperPHY.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockConcatenation.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockConcatenation.html index 0d75b35c..208e7951 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockConcatenation.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockConcatenation.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockSegmentation.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockSegmentation.html index f7770553..8bb09eab 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockSegmentation.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockSegmentation.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.computeTBsize.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.computeTBsize.html index f06339a4..bf03dc89 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.computeTBsize.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.computeTBsize.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.layermapping.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.layermapping.html index 5fd05008..ab030008 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.layermapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.layermapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ldpcCodec.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ldpcCodec.html index 96f709a3..2ad1974f 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ldpcCodec.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ldpcCodec.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.html index dad8e281..80ae0b3c 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolDemapping.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolDemapping.html index 6267288d..e7201242 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolDemapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolDemapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolMapping.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolMapping.html index 6c5e7223..5e1b468b 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolMapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitInterleaver.html index 5d45d443..a92b8def 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitSelection.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitSelection.html index 236dbed5..edef1b60 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitSelection.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitSelection.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.html index 733b5d99..5cf8e77d 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMapping.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMapping.html index 53eb3897..315b1e68 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMappingDMRS.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMappingDMRS.html index 0951cb7c..7e48f491 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMappingDMRS.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMappingDMRS.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.descrambler.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.descrambler.html index 1842e1e8..cc8f9fe8 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.descrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.descrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.html index 0b36aace..31f88fac 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.scrambler.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.scrambler.html index b556534e..0b6e93d8 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.scrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.scrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.transportblockProcessing.html b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.transportblockProcessing.html index b4c4329d..140d44f6 100644 --- a/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.transportblockProcessing.html +++ b/api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.transportblockProcessing.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.html index aa873d44..93a08f91 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.html index 72ccb3b2..ebb6132e 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.html index e80306c2..480b73d7 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.html index 99a308fb..d1dbfa00 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.html index d581c8b1..98056840 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.html index b2592fea..2816fd10 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.html index 6dfd5354..ced4da16 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.html index 42decd57..740d6171 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.html index 56e4e20f..a4045f18 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.html index 184ee156..25ea8a95 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.html index b180749f..07198f3d 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.html index 89194006..de7a02ee 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.html index 2b508c1f..528afbfa 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.html index 4c2ac69b..21173e44 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.html index 3affe4fc..c765c450 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.html index f36346ab..0faf8b3d 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.html index c85c4de1..0b9fb7ed 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.html index 30b70947..bd3609c0 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.html b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.html index 316b0d00..d448a11c 100644 --- a/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0.html index b8f3ab67..5ddf4ed8 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/Format0.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/Format0.html index 687f3801..324c1c20 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/Format0.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/Format0.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceDemappingFormat0.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceDemappingFormat0.html index efcec2b7..8f8b24fd 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceDemappingFormat0.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceDemappingFormat0.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceMappingFormat0.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceMappingFormat0.html index 5d691ee0..d40154cb 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceMappingFormat0.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceMappingFormat0.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/SequenceGenerationFormat0.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/SequenceGenerationFormat0.html index 0dcf575f..20fb9a9b 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/SequenceGenerationFormat0.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/SequenceGenerationFormat0.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1.html index 85cbacd7..69c61ff1 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/DespreadingFormat1.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/DespreadingFormat1.html index a5228241..d1c8c170 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/DespreadingFormat1.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/DespreadingFormat1.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/Format1.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/Format1.html index 8a2d67a6..e9ecdd40 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/Format1.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/Format1.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceDemappingFormat1.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceDemappingFormat1.html index 42e584b7..2646d1c3 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceDemappingFormat1.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceDemappingFormat1.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceMappingFormat1.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceMappingFormat1.html index 3fa48c43..348b3a61 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceMappingFormat1.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceMappingFormat1.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SequenceGenerationFormat1.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SequenceGenerationFormat1.html index c0bee357..0cf99ae0 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SequenceGenerationFormat1.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SequenceGenerationFormat1.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SpreadingFormat1.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SpreadingFormat1.html index 367050e1..a6ba4d5b 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SpreadingFormat1.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SpreadingFormat1.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2.html index 298b85e7..ebb24b78 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/Format2_3_4.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/Format2_3_4.html index 4a3e0af9..6d105aa4 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/Format2_3_4.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/Format2_3_4.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.components.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.components.html index 9499f547..71dd814e 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.components.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.components.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.html index c196f604..090acbb0 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/SBL/channelCoder.sbl.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/SBL/channelCoder.sbl.html index f580f785..2085d6a5 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/SBL/channelCoder.sbl.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/SBL/channelCoder.sbl.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.ChannelCoding.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.ChannelCoding.html index 97fb1f20..d6068d0e 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.ChannelCoding.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.ChannelCoding.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.polarCodec.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.polarCodec.html index 9c0e2937..937fd3ec 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.polarCodec.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.polarCodec.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.sblCodec.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.sblCodec.html index 235b42b2..cf0f48e0 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.sblCodec.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.sblCodec.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockConcatenation/physicalChannels.pucch.components.CodeBlockConcatenation.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockConcatenation/physicalChannels.pucch.components.CodeBlockConcatenation.html index deba3f5e..32994582 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockConcatenation/physicalChannels.pucch.components.CodeBlockConcatenation.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockConcatenation/physicalChannels.pucch.components.CodeBlockConcatenation.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockSegmentation/physicalChannels.pucch.components.CodeBlockSegmentation.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockSegmentation/physicalChannels.pucch.components.CodeBlockSegmentation.html index e3e184d8..cfc432f9 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockSegmentation/physicalChannels.pucch.components.CodeBlockSegmentation.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockSegmentation/physicalChannels.pucch.components.CodeBlockSegmentation.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/PUCCHComponents.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/PUCCHComponents.html index a3acd9dd..f5bd3cdf 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/PUCCHComponents.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/PUCCHComponents.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ChannelCodingOfSmallBlockLength/ratematcher.ChannelCodingOfSmallBlockLength.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ChannelCodingOfSmallBlockLength/ratematcher.ChannelCodingOfSmallBlockLength.html index 4ce001de..56dab6ca 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ChannelCodingOfSmallBlockLength/ratematcher.ChannelCodingOfSmallBlockLength.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ChannelCodingOfSmallBlockLength/ratematcher.ChannelCodingOfSmallBlockLength.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.html index a09956ad..ffe47937 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.html index 4722931c..8a07062d 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.html index 04a0498a..affb4caf 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/ratematcher.polarcoder.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/ratematcher.polarcoder.html index ab2c5574..0987c6c3 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/ratematcher.polarcoder.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/ratematcher.polarcoder.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ratematcher.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ratematcher.html index 86c77999..3ccc8f2d 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ratematcher.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ratematcher.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.Interleaver.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.Interleaver.html index f36a2845..9b5f022f 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.Interleaver.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.Interleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.bitSelection.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.bitSelection.html index 60c7742e..d7967eb6 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.bitSelection.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.bitSelection.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.html index a36765e2..963f1e80 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.polarCodec.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.polarCodec.html index 654e57f2..8e85d886 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.polarCodec.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.polarCodec.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.sbl.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.sbl.html index 5097bbc8..03e2251c 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.sbl.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.sbl.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.deScrambler.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.deScrambler.html index 8ea0dbb2..3252a533 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.deScrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.deScrambler.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.html index 3ffa8631..50e4e1cf 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rntiMasking.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rntiMasking.html index a72e9443..8d775cf0 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rntiMasking.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rntiMasking.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.scrambler.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.scrambler.html index 2fd71e6e..cbc7db88 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.scrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.scrambler.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.descrambler.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.descrambler.html index 8c6dfa85..2a1a7c47 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.descrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.descrambler.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.html index 6840f59d..67d16b54 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.scrambler.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.scrambler.html index c6cb73ca..3921ca49 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.scrambler.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.scrambler.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.demapper.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.demapper.html index 6e2bbaa8..fd69fe91 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.demapper.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.demapper.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.html index 75c71ba1..9318c39e 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.mapper.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.mapper.html index 0f87f4f0..0a31e070 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.mapper.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.mapper.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.html index f8875a60..99323fab 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolDemapping.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolDemapping.html index 60b8ee09..4c16e207 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolDemapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolDemapping.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolMapping.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolMapping.html index 316ca8d2..4851d72f 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolMapping.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolMapping.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHReceiver/PUCCHReceiver.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHReceiver/PUCCHReceiver.html index 75bf48fa..3ce307d5 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHReceiver/PUCCHReceiver.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHReceiver/PUCCHReceiver.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHTransmitter/PUCCHTransmitter.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHTransmitter/PUCCHTransmitter.html index 79f4e6da..fa1e6edd 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHTransmitter/PUCCHTransmitter.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHTransmitter/PUCCHTransmitter.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format3.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format3.html index d4bdd44f..c1127554 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format3.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format3.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format4.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format4.html index e498858f..7317f5dd 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/Format4.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/Format4.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUCCH/PUCCH.html b/api/5G_Toolkit/PhysicalChannels/PUCCH/PUCCH.html index c28c4c1a..5c2fad30 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUCCH/PUCCH.html +++ b/api/5G_Toolkit/PhysicalChannels/PUCCH/PUCCH.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCH.html b/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCH.html index ef3a079c..5fd5d495 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCH.html +++ b/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCH.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHDecoderUpperPhy.html b/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHDecoderUpperPhy.html index 8eebaac9..a62e4240 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHDecoderUpperPhy.html +++ b/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHDecoderUpperPhy.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHUpperPhy.html b/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHUpperPhy.html index 1684c349..99613132 100644 --- a/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHUpperPhy.html +++ b/api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHUpperPhy.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/physicalChannels.html b/api/5G_Toolkit/PhysicalChannels/physicalChannels.html index b249b440..43d5ee68 100644 --- a/api/5G_Toolkit/PhysicalChannels/physicalChannels.html +++ b/api/5G_Toolkit/PhysicalChannels/physicalChannels.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pbch.html b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pbch.html index c2ff7ef6..4091b682 100644 --- a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pbch.html +++ b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pbch.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pdcch.html b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pdcch.html index df33dc3b..c8680d6d 100644 --- a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pdcch.html +++ b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pdcch.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pdsch.html b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pdsch.html index 0c0faaf2..1b1cbdcc 100644 --- a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pdsch.html +++ b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pdsch.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/physicalChannels.prach.html b/api/5G_Toolkit/PhysicalChannels/physicalChannels.prach.html index 339040f9..c828354f 100644 --- a/api/5G_Toolkit/PhysicalChannels/physicalChannels.prach.html +++ b/api/5G_Toolkit/PhysicalChannels/physicalChannels.prach.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/physicalChannels.psbch.html b/api/5G_Toolkit/PhysicalChannels/physicalChannels.psbch.html index 5380d00b..8636c8a3 100644 --- a/api/5G_Toolkit/PhysicalChannels/physicalChannels.psbch.html +++ b/api/5G_Toolkit/PhysicalChannels/physicalChannels.psbch.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pscch.html b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pscch.html index 0cf4047a..ee0a45b6 100644 --- a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pscch.html +++ b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pscch.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pucch.html b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pucch.html index 8e30924a..b8d45742 100644 --- a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pucch.html +++ b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pucch.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pusch.html b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pusch.html index 6ec5aea2..d5bce9cc 100644 --- a/api/5G_Toolkit/PhysicalChannels/physicalChannels.pusch.html +++ b/api/5G_Toolkit/PhysicalChannels/physicalChannels.pusch.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.dftDoA.html b/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.dftDoA.html index 284d4fc3..9c438313 100644 --- a/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.dftDoA.html +++ b/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.dftDoA.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.espritDoA.html b/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.espritDoA.html index ed883bc8..2607b4d4 100644 --- a/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.espritDoA.html +++ b/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.espritDoA.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.musicDoA.html b/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.musicDoA.html index 36c38890..7747bc1e 100644 --- a/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.musicDoA.html +++ b/api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.musicDoA.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Angle_Estimation/positioning.doaEstimation.html b/api/5G_Toolkit/Positioning/Angle_Estimation/positioning.doaEstimation.html index e23bc2d2..89a04464 100644 --- a/api/5G_Toolkit/Positioning/Angle_Estimation/positioning.doaEstimation.html +++ b/api/5G_Toolkit/Positioning/Angle_Estimation/positioning.doaEstimation.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Optimization_Algorithms/DoA/positioning.optimization_Algorithms.DoA.html b/api/5G_Toolkit/Positioning/Optimization_Algorithms/DoA/positioning.optimization_Algorithms.DoA.html index add778c4..cf173731 100644 --- a/api/5G_Toolkit/Positioning/Optimization_Algorithms/DoA/positioning.optimization_Algorithms.DoA.html +++ b/api/5G_Toolkit/Positioning/Optimization_Algorithms/DoA/positioning.optimization_Algorithms.DoA.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Optimization_Algorithms/Hybrid/positioning.optimization_Algorithms.Hybrid.html b/api/5G_Toolkit/Positioning/Optimization_Algorithms/Hybrid/positioning.optimization_Algorithms.Hybrid.html index dd16b59b..44262cd0 100644 --- a/api/5G_Toolkit/Positioning/Optimization_Algorithms/Hybrid/positioning.optimization_Algorithms.Hybrid.html +++ b/api/5G_Toolkit/Positioning/Optimization_Algorithms/Hybrid/positioning.optimization_Algorithms.Hybrid.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Optimization_Algorithms/TDoA/positioning.optimization_Algorithms.TDoA.html b/api/5G_Toolkit/Positioning/Optimization_Algorithms/TDoA/positioning.optimization_Algorithms.TDoA.html index 46395571..8a93dc5c 100644 --- a/api/5G_Toolkit/Positioning/Optimization_Algorithms/TDoA/positioning.optimization_Algorithms.TDoA.html +++ b/api/5G_Toolkit/Positioning/Optimization_Algorithms/TDoA/positioning.optimization_Algorithms.TDoA.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Optimization_Algorithms/ToA/positioning.optimization_Algorithms.leastSquareToA.html b/api/5G_Toolkit/Positioning/Optimization_Algorithms/ToA/positioning.optimization_Algorithms.leastSquareToA.html index 3cfdc190..62bd238a 100644 --- a/api/5G_Toolkit/Positioning/Optimization_Algorithms/ToA/positioning.optimization_Algorithms.leastSquareToA.html +++ b/api/5G_Toolkit/Positioning/Optimization_Algorithms/ToA/positioning.optimization_Algorithms.leastSquareToA.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Optimization_Algorithms/positioning.optimization_Algorithms.html b/api/5G_Toolkit/Positioning/Optimization_Algorithms/positioning.optimization_Algorithms.html index 63f9c4a5..2c46747b 100644 --- a/api/5G_Toolkit/Positioning/Optimization_Algorithms/positioning.optimization_Algorithms.html +++ b/api/5G_Toolkit/Positioning/Optimization_Algorithms/positioning.optimization_Algorithms.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Position_Estimation/positioning.position_Estimation.html b/api/5G_Toolkit/Positioning/Position_Estimation/positioning.position_Estimation.html index a43cfaa4..4b5f01df 100644 --- a/api/5G_Toolkit/Positioning/Position_Estimation/positioning.position_Estimation.html +++ b/api/5G_Toolkit/Positioning/Position_Estimation/positioning.position_Estimation.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.dftToA.html b/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.dftToA.html index 105e7ef4..a1875c70 100644 --- a/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.dftToA.html +++ b/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.dftToA.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.espritToA.html b/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.espritToA.html index ff826b03..a0cdec2a 100644 --- a/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.espritToA.html +++ b/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.espritToA.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.musicToA.html b/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.musicToA.html index f82f9b76..8a21a840 100644 --- a/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.musicToA.html +++ b/api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.musicToA.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/Time_Estimation/positioning.toaEstimation.html b/api/5G_Toolkit/Positioning/Time_Estimation/positioning.toaEstimation.html index 3d4f4b58..a807a639 100644 --- a/api/5G_Toolkit/Positioning/Time_Estimation/positioning.toaEstimation.html +++ b/api/5G_Toolkit/Positioning/Time_Estimation/positioning.toaEstimation.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Positioning/positioning.html b/api/5G_Toolkit/Positioning/positioning.html index b8d1c968..bb79dee9 100644 --- a/api/5G_Toolkit/Positioning/positioning.html +++ b/api/5G_Toolkit/Positioning/positioning.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Ratematcher/LDPC/BitSelection/ratematcher.ldpc.bitSelection.html b/api/5G_Toolkit/Ratematcher/LDPC/BitSelection/ratematcher.ldpc.bitSelection.html index a3e3b560..8e35e076 100644 --- a/api/5G_Toolkit/Ratematcher/LDPC/BitSelection/ratematcher.ldpc.bitSelection.html +++ b/api/5G_Toolkit/Ratematcher/LDPC/BitSelection/ratematcher.ldpc.bitSelection.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Ratematcher/LDPC/Interleavers/ratematcher.ldpc.bitInterleaver.html b/api/5G_Toolkit/Ratematcher/LDPC/Interleavers/ratematcher.ldpc.bitInterleaver.html index 1b66de87..92973f24 100644 --- a/api/5G_Toolkit/Ratematcher/LDPC/Interleavers/ratematcher.ldpc.bitInterleaver.html +++ b/api/5G_Toolkit/Ratematcher/LDPC/Interleavers/ratematcher.ldpc.bitInterleaver.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Ratematcher/LDPC/ratematcher.ldpc.html b/api/5G_Toolkit/Ratematcher/LDPC/ratematcher.ldpc.html index dcc8c2cc..4ac6b5b0 100644 --- a/api/5G_Toolkit/Ratematcher/LDPC/ratematcher.ldpc.html +++ b/api/5G_Toolkit/Ratematcher/LDPC/ratematcher.ldpc.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.html b/api/5G_Toolkit/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.html index 5cea35a2..89ee1a6c 100644 --- a/api/5G_Toolkit/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.html +++ b/api/5G_Toolkit/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.html b/api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.html index d17d638d..f552f641 100644 --- a/api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.html +++ b/api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.html b/api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.html index f11fcea0..f1a17dd5 100644 --- a/api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.html +++ b/api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Ratematcher/PolarCoder/ratematcher.polarcoder.html b/api/5G_Toolkit/Ratematcher/PolarCoder/ratematcher.polarcoder.html index b6034571..bfbeb691 100644 --- a/api/5G_Toolkit/Ratematcher/PolarCoder/ratematcher.polarcoder.html +++ b/api/5G_Toolkit/Ratematcher/PolarCoder/ratematcher.polarcoder.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Ratematcher/ratematcher.html b/api/5G_Toolkit/Ratematcher/ratematcher.html index 4e6774a0..e30d5f23 100644 --- a/api/5G_Toolkit/Ratematcher/ratematcher.html +++ b/api/5G_Toolkit/Ratematcher/ratematcher.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceDemappingFormat0.html b/api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceDemappingFormat0.html index 66463e9f..afbd792d 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceDemappingFormat0.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceDemappingFormat0.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceMappingFormat0.html b/api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceMappingFormat0.html index 3469f2c1..51d4c709 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceMappingFormat0.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceMappingFormat0.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/DespreadingFormat1.html b/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/DespreadingFormat1.html index 69771467..0e29c89e 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/DespreadingFormat1.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/DespreadingFormat1.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceDemappingFormat1.html b/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceDemappingFormat1.html index 5d5df103..75767e4f 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceDemappingFormat1.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceDemappingFormat1.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceMappingFormat1.html b/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceMappingFormat1.html index 13e89e4d..caa40dba 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceMappingFormat1.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceMappingFormat1.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/SpreadingFormat1.html b/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/SpreadingFormat1.html index db9b5459..b3abf9e6 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/SpreadingFormat1.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/Format1/SpreadingFormat1.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format0.html b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format0.html index 680eb3af..efab924e 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format0.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format0.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format1.html b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format1.html index 26c1df50..5899d95e 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format1.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format1.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format2.html b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format2.html index 64476cb3..781a2eba 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format2.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format2.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format3.html b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format3.html index 603a8ce1..dcde0f88 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format3.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format3.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format4.html b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format4.html index 1251e1f9..764aead6 100644 --- a/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format4.html +++ b/api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format4.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.coreset.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.coreset.html index fe0a0f10..b4be5ae4 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.coreset.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.coreset.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.csirs.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.csirs.html index 5f868613..9da51b8d 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.csirs.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.csirs.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.dmrsPDSCH.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.dmrsPDSCH.html index eee67bc0..e2c42bf1 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.dmrsPDSCH.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.dmrsPDSCH.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.html index b2f761d4..a7c4480e 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.pdcch.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.pdcch.html index 6e1ef9a1..80832494 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.pdcch.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.pdcch.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.prs.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.prs.html index 7fcfecf2..9033f78b 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.prs.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.prs.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.pscch.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.pscch.html index dafaf315..813c4a7c 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.pscch.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.pscch.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.ptrsPDSCH.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.ptrsPDSCH.html index 5fd7c90e..699eae95 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.ptrsPDSCH.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.ptrsPDSCH.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.pucch.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.pucch.html index 693abba6..d38bc193 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.pucch.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.pucch.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.s_ssb.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.s_ssb.html index 8b16c6b1..58098cc5 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.s_ssb.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.s_ssb.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.searchSpace.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.searchSpace.html index c6db99a6..8ebc39fe 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.searchSpace.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.searchSpace.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.ssb.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.ssb.html index 87f438b0..45e733ee 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.ssb.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.ssb.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/ResourceMapping/resourceMapping.ssbGeneration.html b/api/5G_Toolkit/ResourceMapping/resourceMapping.ssbGeneration.html index 1608f558..debbf3fd 100644 --- a/api/5G_Toolkit/ResourceMapping/resourceMapping.ssbGeneration.html +++ b/api/5G_Toolkit/ResourceMapping/resourceMapping.ssbGeneration.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Scrambler/scrambler.deScrambler.html b/api/5G_Toolkit/Scrambler/scrambler.deScrambler.html index 004d8a02..6d0a9491 100644 --- a/api/5G_Toolkit/Scrambler/scrambler.deScrambler.html +++ b/api/5G_Toolkit/Scrambler/scrambler.deScrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Scrambler/scrambler.html b/api/5G_Toolkit/Scrambler/scrambler.html index b894a78b..9e92d29f 100644 --- a/api/5G_Toolkit/Scrambler/scrambler.html +++ b/api/5G_Toolkit/Scrambler/scrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Scrambler/scrambler.rntiMasking.html b/api/5G_Toolkit/Scrambler/scrambler.rntiMasking.html index dd76fbea..d69187e5 100644 --- a/api/5G_Toolkit/Scrambler/scrambler.rntiMasking.html +++ b/api/5G_Toolkit/Scrambler/scrambler.rntiMasking.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/Scrambler/scrambler.scrambler.html b/api/5G_Toolkit/Scrambler/scrambler.scrambler.html index 76ded06a..9e7919be 100644 --- a/api/5G_Toolkit/Scrambler/scrambler.scrambler.html +++ b/api/5G_Toolkit/Scrambler/scrambler.scrambler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration1.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration1.html index b7cb63b8..318dc54e 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration1.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration1.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration2.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration2.html index 9c1734e0..41e2df75 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration2.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration2.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat0.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat0.html index d5c703a8..fc55401b 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat0.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat0.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat1.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat1.html index 2d73b4f6..bdae490c 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat1.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat1.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.csirs.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.csirs.html index 004f71fa..47ccd5b0 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.csirs.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.csirs.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.dmrs.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.dmrs.html index 940ce7c5..34aa5b04 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.dmrs.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.dmrs.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.html index bee7d347..570b3d58 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pnSequence.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pnSequence.html index baa00b90..b82058b0 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pnSequence.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pnSequence.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.prs.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.prs.html index 57188684..d859318d 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.prs.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.prs.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pss.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pss.html index 237fcfac..d17889b8 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pss.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pss.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.spss.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.spss.html index 6a7f497e..8a7a8ac7 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.spss.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.spss.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.srs.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.srs.html index 665328a1..17a420ea 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.srs.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.srs.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.sss.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.sss.html index 17c032a6..a88c0487 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.sss.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.sss.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.ssss.html b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.ssss.html index 19675711..eea72ed5 100644 --- a/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.ssss.html +++ b/api/5G_Toolkit/SequenceGeneration/sequenceGeneration.ssss.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SymbolMapping/symbolMapping.demapper.html b/api/5G_Toolkit/SymbolMapping/symbolMapping.demapper.html index 4229bcef..96753118 100644 --- a/api/5G_Toolkit/SymbolMapping/symbolMapping.demapper.html +++ b/api/5G_Toolkit/SymbolMapping/symbolMapping.demapper.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SymbolMapping/symbolMapping.html b/api/5G_Toolkit/SymbolMapping/symbolMapping.html index 59acf651..5efa0ab9 100644 --- a/api/5G_Toolkit/SymbolMapping/symbolMapping.html +++ b/api/5G_Toolkit/SymbolMapping/symbolMapping.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/SymbolMapping/symbolMapping.mapper.html b/api/5G_Toolkit/SymbolMapping/symbolMapping.mapper.html index 37a0751e..48d87a64 100644 --- a/api/5G_Toolkit/SymbolMapping/symbolMapping.mapper.html +++ b/api/5G_Toolkit/SymbolMapping/symbolMapping.mapper.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Configurations/configurations.csiConfiguration.html b/api/5G_Toolkit/[N]Configurations/configurations.csiConfiguration.html index 30af3fe8..ad5ad69b 100644 --- a/api/5G_Toolkit/[N]Configurations/configurations.csiConfiguration.html +++ b/api/5G_Toolkit/[N]Configurations/configurations.csiConfiguration.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Configurations/configurations.generateValidSSBParameters.html b/api/5G_Toolkit/[N]Configurations/configurations.generateValidSSBParameters.html index d205a46b..7e65dd0e 100644 --- a/api/5G_Toolkit/[N]Configurations/configurations.generateValidSSBParameters.html +++ b/api/5G_Toolkit/[N]Configurations/configurations.generateValidSSBParameters.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Configurations/configurations.html b/api/5G_Toolkit/[N]Configurations/configurations.html index 39dec5cc..d9ad9e25 100644 --- a/api/5G_Toolkit/[N]Configurations/configurations.html +++ b/api/5G_Toolkit/[N]Configurations/configurations.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Configurations/configurations.pdschLowerPhyConfiguration.html b/api/5G_Toolkit/[N]Configurations/configurations.pdschLowerPhyConfiguration.html index 33d529f1..6c64f1b5 100644 --- a/api/5G_Toolkit/[N]Configurations/configurations.pdschLowerPhyConfiguration.html +++ b/api/5G_Toolkit/[N]Configurations/configurations.pdschLowerPhyConfiguration.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Configurations/configurations.pdschUpperPhyConfiguration.html b/api/5G_Toolkit/[N]Configurations/configurations.pdschUpperPhyConfiguration.html index 426257ba..08f563c8 100644 --- a/api/5G_Toolkit/[N]Configurations/configurations.pdschUpperPhyConfiguration.html +++ b/api/5G_Toolkit/[N]Configurations/configurations.pdschUpperPhyConfiguration.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Configurations/configurations.srsConfiguration.html b/api/5G_Toolkit/[N]Configurations/configurations.srsConfiguration.html index efbb0d8d..232617bb 100644 --- a/api/5G_Toolkit/[N]Configurations/configurations.srsConfiguration.html +++ b/api/5G_Toolkit/[N]Configurations/configurations.srsConfiguration.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Configurations/configurations.ssbConfiguration.html b/api/5G_Toolkit/[N]Configurations/configurations.ssbConfiguration.html index 911929ff..6dcfff43 100644 --- a/api/5G_Toolkit/[N]Configurations/configurations.ssbConfiguration.html +++ b/api/5G_Toolkit/[N]Configurations/configurations.ssbConfiguration.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Configurations/configurations.timeFrequency_5GParameters.html b/api/5G_Toolkit/[N]Configurations/configurations.timeFrequency_5GParameters.html index 88a1aee4..e25e8220 100644 --- a/api/5G_Toolkit/[N]Configurations/configurations.timeFrequency_5GParameters.html +++ b/api/5G_Toolkit/[N]Configurations/configurations.timeFrequency_5GParameters.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/CFOEstimation/cfoEstimation.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/CFOEstimation/cfoEstimation.html index 23c7bad9..2c76e814 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/CFOEstimation/cfoEstimation.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/CFOEstimation/cfoEstimation.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPBCH.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPBCH.html index 317ecf83..67bca23b 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPBCH.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPBCH.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDCCH.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDCCH.html index 13425fa9..50bf28c9 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDCCH.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDCCH.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDSCH.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDSCH.html index 01647101..8ccc5558 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDSCH.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDSCH.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.dmrsParameterDetection.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.dmrsParameterDetection.html index 9e755f57..c698655a 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.dmrsParameterDetection.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.dmrsParameterDetection.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.pssDetection.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.pssDetection.html index 45c9ada7..61af37a6 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.pssDetection.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.pssDetection.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.sssDetection.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.sssDetection.html index a9c08ead..a681a214 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.sssDetection.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.sssDetection.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/Downlink_CSI_Acquisition/channelEstimationCSIRS.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/Downlink_CSI_Acquisition/channelEstimationCSIRS.html index 8fe34308..73757aa5 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/Downlink_CSI_Acquisition/channelEstimationCSIRS.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/Downlink_CSI_Acquisition/channelEstimationCSIRS.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/Positioning/channelEstimationSRS.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/Positioning/channelEstimationSRS.html index 25c642fe..48500503 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/Positioning/channelEstimationSRS.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/Positioning/channelEstimationSRS.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]ReceiverAlgorithms/receiverAlgorithms.html b/api/5G_Toolkit/[N]ReceiverAlgorithms/receiverAlgorithms.html index 4d4a42fb..9a1f1b05 100644 --- a/api/5G_Toolkit/[N]ReceiverAlgorithms/receiverAlgorithms.html +++ b/api/5G_Toolkit/[N]ReceiverAlgorithms/receiverAlgorithms.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Scheduler/PDCCHScheduler/pdcchScheduler.html b/api/5G_Toolkit/[N]Scheduler/PDCCHScheduler/pdcchScheduler.html index 45f7ee5e..e5dfd2ae 100644 --- a/api/5G_Toolkit/[N]Scheduler/PDCCHScheduler/pdcchScheduler.html +++ b/api/5G_Toolkit/[N]Scheduler/PDCCHScheduler/pdcchScheduler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/ResourceAllocation/roundRobinScheduler.html b/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/ResourceAllocation/roundRobinScheduler.html index 2a1c0997..e53797be 100644 --- a/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/ResourceAllocation/roundRobinScheduler.html +++ b/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/ResourceAllocation/roundRobinScheduler.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/linkAdpatation.html b/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/linkAdpatation.html index 9b8df915..449596f7 100644 --- a/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/linkAdpatation.html +++ b/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/linkAdpatation.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/rankAdaptation.html b/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/rankAdaptation.html index 982e4d51..2ca43634 100644 --- a/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/rankAdaptation.html +++ b/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/rankAdaptation.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/resourceAllocation.html b/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/resourceAllocation.html index ea5f07c8..336a36d2 100644 --- a/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/resourceAllocation.html +++ b/api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/resourceAllocation.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/5G_Toolkit/[N]Scheduler/scheduler.html b/api/5G_Toolkit/[N]Scheduler/scheduler.html index bca1f784..d7683f4b 100644 --- a/api/5G_Toolkit/[N]Scheduler/scheduler.html +++ b/api/5G_Toolkit/[N]Scheduler/scheduler.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Built_using_5G_Toolkit/builtUsing5GToolkit.html b/api/Built_using_5G_Toolkit/builtUsing5GToolkit.html index fb1674dd..854bbdf7 100644 --- a/api/Built_using_5G_Toolkit/builtUsing5GToolkit.html +++ b/api/Built_using_5G_Toolkit/builtUsing5GToolkit.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/DL_Time(Frame)_Synchronization_using_PSS_in_5G.html b/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/DL_Time(Frame)_Synchronization_using_PSS_in_5G.html index 1c3a5df5..6bb1cc82 100644 --- a/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/DL_Time(Frame)_Synchronization_using_PSS_in_5G.html +++ b/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/DL_Time(Frame)_Synchronization_using_PSS_in_5G.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/Time_Synchronization.html b/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/Time_Synchronization.html index 3bbf5e8e..353e7a63 100644 --- a/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/Time_Synchronization.html +++ b/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/Time_Synchronization.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[BS-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.html b/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[BS-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.html index 23f57d94..5f83411a 100644 --- a/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[BS-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.html +++ b/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[BS-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[UE-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.html b/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[UE-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.html index 91abb51d..d7a7ecd4 100644 --- a/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[UE-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.html +++ b/api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[UE-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.html b/api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.html index eb2980f6..bc96aae2 100644 --- a/api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.html +++ b/api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.html @@ -1750,7 +1750,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/CFO_Correction.html b/api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/CFO_Correction.html index 49b07b23..1bf233c0 100644 --- a/api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/CFO_Correction.html +++ b/api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/CFO_Correction.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.html b/api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.html index 855da1de..99fe8b3b 100644 --- a/api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.html +++ b/api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/Downlink_Synchronization.html b/api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/Downlink_Synchronization.html index 7ed4e8c8..f5112bf5 100644 --- a/api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/Downlink_Synchronization.html +++ b/api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/Downlink_Synchronization.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication.html b/api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication.html index 5dc3dc5b..3db630d6 100644 --- a/api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication.html +++ b/api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication_using_PDSCH.html b/api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication_using_PDSCH.html index 17e2c478..b6c9f769 100644 --- a/api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication_using_PDSCH.html +++ b/api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication_using_PDSCH.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Integration_with_SDR/Integration_with_SDRs.html b/api/Integration_with_SDR/Integration_with_SDRs.html index 02b15944..98756a66 100644 --- a/api/Integration_with_SDR/Integration_with_SDRs.html +++ b/api/Integration_with_SDR/Integration_with_SDRs.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/LearningResources/GW-IC5GS.html b/api/LearningResources/GW-IC5GS.html index 343bcfb4..fbea40c0 100644 --- a/api/LearningResources/GW-IC5GS.html +++ b/api/LearningResources/GW-IC5GS.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/LearningResources/LearningResources.html b/api/LearningResources/LearningResources.html index 9cc4807c..476cb7ca 100644 --- a/api/LearningResources/LearningResources.html +++ b/api/LearningResources/LearningResources.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/License/license.html b/api/License/license.html index 9f56661a..c8d64a2c 100644 --- a/api/License/license.html +++ b/api/License/license.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Preview_of_Next_Release/FeatureList.html b/api/Preview_of_Next_Release/FeatureList.html index 42c48e6b..47a242fa 100644 --- a/api/Preview_of_Next_Release/FeatureList.html +++ b/api/Preview_of_Next_Release/FeatureList.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Previous_Versions/PreviousVersions.html b/api/Previous_Versions/PreviousVersions.html index 1fa5a1c9..96e35a93 100644 --- a/api/Previous_Versions/PreviousVersions.html +++ b/api/Previous_Versions/PreviousVersions.html @@ -1748,7 +1748,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project1/learning2Demap.html b/api/Projects/Project1/learning2Demap.html index 776f2625..56b4097d 100644 --- a/api/Projects/Project1/learning2Demap.html +++ b/api/Projects/Project1/learning2Demap.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project10/[SLS]Hybrid_Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA_AoA.html b/api/Projects/Project10/[SLS]Hybrid_Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA_AoA.html index 94aaee5e..8a0125cd 100644 --- a/api/Projects/Project10/[SLS]Hybrid_Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA_AoA.html +++ b/api/Projects/Project10/[SLS]Hybrid_Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA_AoA.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project10/project10.html b/api/Projects/Project10/project10.html index fdc4b876..54cb060c 100644 --- a/api/Projects/Project10/project10.html +++ b/api/Projects/Project10/project10.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project2/Blocking Probability for Different AL distributions.html b/api/Projects/Project2/Blocking Probability for Different AL distributions.html index da8a1cf1..31b03d88 100644 --- a/api/Projects/Project2/Blocking Probability for Different AL distributions.html +++ b/api/Projects/Project2/Blocking Probability for Different AL distributions.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project2/Blocking Probability for Different ALs.html b/api/Projects/Project2/Blocking Probability for Different ALs.html index ad422045..aec19899 100644 --- a/api/Projects/Project2/Blocking Probability for Different ALs.html +++ b/api/Projects/Project2/Blocking Probability for Different ALs.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project2/Blocking Probability vs Number of Candidates per Aggregation Level.html b/api/Projects/Project2/Blocking Probability vs Number of Candidates per Aggregation Level.html index 0963cd10..384d2ea7 100644 --- a/api/Projects/Project2/Blocking Probability vs Number of Candidates per Aggregation Level.html +++ b/api/Projects/Project2/Blocking Probability vs Number of Candidates per Aggregation Level.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project2/Impact of Scheduling Strategy on Blocking Probability.html b/api/Projects/Project2/Impact of Scheduling Strategy on Blocking Probability.html index c171445b..fd71ee99 100644 --- a/api/Projects/Project2/Impact of Scheduling Strategy on Blocking Probability.html +++ b/api/Projects/Project2/Impact of Scheduling Strategy on Blocking Probability.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project2/Impact of UEs Capability on Blocking Probability.html b/api/Projects/Project2/Impact of UEs Capability on Blocking Probability.html index ec3a10a7..3bec77ea 100644 --- a/api/Projects/Project2/Impact of UEs Capability on Blocking Probability.html +++ b/api/Projects/Project2/Impact of UEs Capability on Blocking Probability.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project2/Minimum CORESET Size for a Target Blocking Probability.html b/api/Projects/Project2/Minimum CORESET Size for a Target Blocking Probability.html index 7a5dc354..dffa02d0 100644 --- a/api/Projects/Project2/Minimum CORESET Size for a Target Blocking Probability.html +++ b/api/Projects/Project2/Minimum CORESET Size for a Target Blocking Probability.html @@ -29,7 +29,7 @@ - + @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • @@ -2369,7 +2419,7 @@

    References - +
    diff --git a/api/Projects/Project2/project2.html b/api/Projects/Project2/project2.html index 009d65bd..557fb6f1 100644 --- a/api/Projects/Project2/project2.html +++ b/api/Projects/Project2/project2.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.html b/api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.html new file mode 100644 index 00000000..e5514293 --- /dev/null +++ b/api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.html @@ -0,0 +1,3141 @@ + + + + + + + CSI Compression and Reconstruction using CSINet for TDD Massive MIMO 5G Networks — 5G Toolkit R24a documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + + +
    +

    CSI Compression and Reconstruction using CSINet for TDD Massive MIMO 5G Networks

    +
    +

    Import Libraries

    +
    +

    Import Python Libraries

    +
    +
    [1]:
    +
    +
    +
    # %matplotlib widget
    +import matplotlib.pyplot as plt
    +import matplotlib as mpl
    +
    +import os
    +os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
    +os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
    +
    +import numpy as np
    +
    +# from IPython.display import display, HTML
    +# display(HTML("<style>.container { width:80% !important; }</style>"))
    +
    +
    +
    +
    +
    +

    Import 5G Toolkit Libraries

    +
    +
    [2]:
    +
    +
    +
    from csiNet import CSINet
    +
    +import sys
    +sys.path.append("../../")
    +
    +from toolkit5G.PhysicalChannels.PDSCH import ComputeTransportBlockSize
    +from toolkit5G.PhysicalChannels       import PDSCHLowerPhy, PDSCHUpperPhy, PDSCHDecoderLowerPhy, PDSCHDecoderUpperPhy
    +from toolkit5G.ChannelModels          import AntennaArrays, SimulationLayout, ParameterGenerator, ChannelGenerator
    +from toolkit5G.Configurations         import PDSCHLowerPhyConfiguration, PDSCHUpperPhyConfiguration
    +from toolkit5G.ChannelProcessing      import AddNoise, ApplyChannel
    +from toolkit5G.SymbolMapping          import Mapper, Demapper
    +
    +
    +
    +
    +
    +
    +

    Simulation Parameters

    +
    +
    [3]:
    +
    +
    +
    # Carrier Frequency
    +carrierFrequency = 3.6*10**9
    +delaySpread      = 100*(10**-9)
    +numBatches       = 200       # Number of batches considered for simulation
    +scs              = 30*10**3  # Subcarrier Spacing for simulation
    +numBSs           = 1 # Number of BSs considered for simulation
    +# Number of UEs considered for simulation
    +numUEs           = numBatches # For now we are assuming that the numbatches are captured via numUEs
    +numRB            = 85 # Number of Resource mapping considered for simulation | # 1 RB = 12 subcarrier
    +slotNumber       = int(np.random.randint(0,2**(scs/15000)*10)) # Index of the slot considered for simulation
    +terrain          = "CDL-A" # Terrain
    +txAntStruture    = np.array([1,1,32,1,1]) # Tx Antenna Structure
    +rxAntStruture    = np.array([1,1,4,1,1]) # Tx Antenna Structure
    +Nfft             = 1024 # FFTSize
    +
    +print("************ Simulation Parameters *************")
    +print()
    +print("     numBatches: "+str(numBatches))
    +print("          numRB: "+str(numRB))
    +print("       fft Size: "+str(Nfft))
    +print("         numBSs: "+str(numBSs))
    +print("         numUEs: "+str(numUEs))
    +print("            scs: "+str(scs))
    +print("     slotNumber: "+str(slotNumber))
    +print("        terrain: "+str(terrain))
    +print("Tx Ant Struture: "+str(txAntStruture))
    +print("Rx Ant Struture: "+str(rxAntStruture))
    +print()
    +print("********************************************")
    +
    +
    +
    +
    +
    +
    +
    +
    +************ Simulation Parameters *************
    +
    +     numBatches: 200
    +          numRB: 85
    +       fft Size: 1024
    +         numBSs: 1
    +         numUEs: 200
    +            scs: 30000
    +     slotNumber: 0
    +        terrain: CDL-A
    +Tx Ant Struture: [ 1  1 32  1  1]
    +Rx Ant Struture: [1 1 4 1 1]
    +
    +********************************************
    +
    +
    +
    +
    +

    Wireless Channel Generation: CDL-A

    +
    +
    [4]:
    +
    +
    +
    # Antenna Array at UE side
    +# assuming antenna element type to be "OMNI"
    +# with 2 panel and 2 single polarized antenna element per panel.
    +ueAntArray = AntennaArrays(antennaType = "OMNI",  centerFrequency = carrierFrequency,
    +                           arrayStructure  = rxAntStruture)
    +ueAntArray()
    +
    +# # Radiation Pattern of Rx antenna element
    +# ueAntArray.displayAntennaRadiationPattern()
    +
    +
    +# Antenna Array at BS side
    +# assuming antenna element type to be "3GPP_38.901", a parabolic antenna
    +# with 4 panel and 4 single polarized antenna element per panel.
    +bsAntArray = AntennaArrays(antennaType = "3GPP_38.901", centerFrequency = carrierFrequency,
    +                           arrayStructure  = txAntStruture)
    +bsAntArray()
    +
    +# # Radiation Pattern of Tx antenna element
    +# bsAntArray[0].displayAntennaRadiationPattern()
    +
    +# Layout Parameters
    +isd                  = 100         # inter site distance
    +minDist              = 10          # min distance between each UE and BS
    +ueHt                 = 1.5         # UE height
    +bsHt                 = 25          # BS height
    +bslayoutType         = "Hexagonal" # BS layout type
    +ueDropType           = "Hexagonal" # UE drop type
    +htDist               = "equal"     # UE height distribution
    +ueDist               = "equal"     # UE Distribution per site
    +nSectorsPerSite      = 1           # number of sectors per site
    +maxNumFloors         = 1           # Max number of floors in an indoor object
    +minNumFloors         = 1           # Min number of floors in an indoor object
    +heightOfRoom         = 3           # height of room or ceiling in meters
    +indoorUEfract        = 0.5         # Fraction of UEs located indoor
    +lengthOfIndoorObject = 3           # length of indoor object typically having rectangular geometry
    +widthOfIndoorObject  = 3           # width of indoor object
    +# forceLOS             = True       # boolen flag if true forces every link to be in LOS state
    +forceLOS             = False       # boolen flag if true forces every link to be in LOS state
    +
    +# simulation layout object
    +simLayoutObj = SimulationLayout(numOfBS = numBSs,
    +                                numOfUE = numUEs,
    +                                heightOfBS = bsHt,
    +                                heightOfUE = ueHt,
    +                                ISD = isd,
    +                                layoutType = bslayoutType,
    +                                ueDropMethod = ueDropType,
    +                                UEdistibution = ueDist,
    +                                UEheightDistribution = htDist,
    +                                numOfSectorsPerSite = nSectorsPerSite,
    +                                ueRoute = None)
    +
    +simLayoutObj(terrain = terrain,
    +             carrierFreq = carrierFrequency,
    +             ueAntennaArray = ueAntArray,
    +             bsAntennaArray = bsAntArray,
    +             indoorUEfraction = indoorUEfract,
    +             lengthOfIndoorObject = lengthOfIndoorObject,
    +             widthOfIndoorObject = widthOfIndoorObject,
    +             forceLOS = forceLOS)
    +
    +# displaying the topology of simulation layout
    +fig, ax = simLayoutObj.display2DTopology()
    +
    +paramGen = simLayoutObj.getParameterGenerator(delaySpread = delaySpread)
    +
    +# paramGen.displayClusters((0,0,0), rayIndex = 0)
    +channel = paramGen.getChannel()
    +Hf      = channel.ofdm(scs, Nfft, normalizeChannel = True)
    +
    +Nt        = bsAntArray.numAntennas # Number of BS Antennas
    +Nr        = ueAntArray.numAntennas
    +
    +print("             Number of BSs: "+str(numBSs))
    +print("          Shape of Channel: "+str(Hf.shape))
    +print("*****************************************************")
    +print()
    +
    +
    +
    +
    +
    +
    +
    +../../../_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_7_0.png +
    +
    +
    +
    +
    +
    +
    +             Number of BSs: 1
    +          Shape of Channel: (1, 1, 1, 200, 1024, 4, 32)
    +*****************************************************
    +
    +
    +
    +
    +
    +

    Reconstrunction Performance of CSI-Net

    +
    +
    [5]:
    +
    +
    +
    numSubcarrier = 32
    +codewordSize  = 512
    +
    +H      = Hf[0,0,0,...,0,:].transpose(0,2,1)
    +csinet = CSINet()
    +model  = csinet(Nt, numSubcarrier, codewordSize)
    +csinet.loadModel()
    +Hprep  = csinet.preprocess(H)
    +
    +Hrec   = csinet.predict(Hprep)
    +
    +Hest   = csinet.postprocess(Hprep, Nfft)
    +
    +
    +
    +
    +
    +
    +
    +
    +7/7 [==============================] - 0s 7ms/step
    +
    +
    +
    +
    [6]:
    +
    +
    +
    numChannels = 5
    +fig, ax = plt.subplots(2,numChannels, figsize = (12, 5))
    +
    +idx = np.random.choice(np.arange(numBatches), size=numChannels, replace = False)
    +print(idx)
    +for n in range(numChannels):
    +    ax[0,n].imshow(np.abs(Hprep[idx[n],0])**2 + np.abs(Hprep[idx[n],1])**2, cmap = "Greys", aspect = "auto")
    +    ax[1,n].imshow(np.abs( Hrec[idx[n],0])**2 + np.abs( Hrec[idx[n],1])**2, cmap = "Greys", aspect = "auto")
    +
    +plt.show()
    +
    +
    +
    +
    +
    +
    +
    +
    +[153 134 179 124  21]
    +
    +
    +
    +
    +
    +
    +../../../_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_10_1.png +
    +
    +
    +
    [7]:
    +
    +
    +
    print("NMSE: "+str(np.sqrt(np.mean(np.abs(Hest-H)**2/(np.abs(H))**2))))
    +
    +
    +
    +
    +
    +
    +
    +
    +NMSE: 0.20250736648608653
    +
    +
    +
    +
    +

    PDSCH Parameters

    +
    +
    [8]:
    +
    +
    +
    ########################################## PDSCH Lower Physical Layer Parameters #########################################
    +pdschLowerPhyConfig    = PDSCHLowerPhyConfiguration(rank = 1, startSymbol=2, numSymbols=12, pdschMappingType = "PDSCH-mapping-type-A",
    +                                                    maxLength = "len1", dmrsAdditionalPosition = "pos0", l0 = 0,
    +                                                    configurationType = "Configuration-type-1")
    +pdschMappingType       = pdschLowerPhyConfig.pdschMappingType   # "PDSCH mapping type A" or "PDSCH mapping type B"
    +maxLength              = pdschLowerPhyConfig.maxLength
    +startSymbol            = pdschLowerPhyConfig.startSymbol
    +numSymbols             = pdschLowerPhyConfig.numSymbols
    +betaDMRS               = pdschLowerPhyConfig.betaDMRS
    +configurationType      = pdschLowerPhyConfig.configurationType   # "Configuration-type-1" or "Configuration-type-2"
    +dmrsTypeAPosition      = pdschLowerPhyConfig.dmrsTypeAPosition                                   # "pos2" or "pos3"
    +dmrsAdditionalPosition = pdschLowerPhyConfig.dmrsAdditionalPosition  # "pos2" or "pos3"
    +ld                     = pdschLowerPhyConfig.ld
    +l0                     = pdschLowerPhyConfig.l0
    +l1                     = pdschLowerPhyConfig.l1
    +rank                   = pdschLowerPhyConfig.rank
    +scramblingID           = pdschLowerPhyConfig.scramblingID
    +nSCID                  = pdschLowerPhyConfig.nSCID
    +
    +mcsIndex               = 3
    +mcsTable               = "pdschTable1"
    +
    +########################################## PDSCH Parameters #########################################
    +pdschUpperPhyConfig    = PDSCHUpperPhyConfiguration(pdschMappingType = pdschMappingType, configurationType = configurationType,
    +                                                    dmrsTypeAPosition = dmrsTypeAPosition, maxLength = maxLength, mcsIndex = mcsIndex,
    +                                                    mcsTable = mcsTable, dmrsAdditionalPosition = dmrsAdditionalPosition, l0 = l0,
    +                                                    ld = ld, l1 = l1, startSymbol = startSymbol, numSymbols = numSymbols, rank = rank,
    +                                                    numRB = numRB)
    +
    +numTBs                 = pdschUpperPhyConfig.numTBs
    +numRB                  = pdschUpperPhyConfig.numRB
    +tbLen1                 = pdschUpperPhyConfig.tbLen1
    +
    +codeRate               = pdschUpperPhyConfig.codeRate
    +modOrder               = pdschUpperPhyConfig.modOrder
    +mcsIndex               = pdschUpperPhyConfig.mcsIndex
    +mcsTable               = pdschUpperPhyConfig.mcsTable
    +numlayers              = pdschUpperPhyConfig.numlayers
    +scalingField           = pdschUpperPhyConfig.scalingField
    +additionalOverhead     = pdschUpperPhyConfig.additionalOverhead
    +dmrsREs                = pdschUpperPhyConfig.dmrsREs
    +additionalOverhead     = pdschUpperPhyConfig.additionalOverhead
    +
    +numTargetBits1         = pdschUpperPhyConfig.numTargetBits1
    +if(numTBs == 2):
    +    numTargetBits1     = pdschUpperPhyConfig.numTargetBits1
    +    numTargetBits2     = pdschUpperPhyConfig.numTargetBits2
    +    tbLen2             = pdschUpperPhyConfig.tbLen2
    +
    +numTargetBits          = pdschUpperPhyConfig.numTargetBits
    +
    +
    +
    +
    +
    +
    +
    +
    +************ PDSCH Parameters *************
    +
    +       pdschMappingType: PDSCH-mapping-type-A
    +            startSymbol: 2
    +             numSymbols: 12
    +               betaDMRS: 1
    +                   rank: 1
    +      configurationType: Configuration-type-1
    +              maxLength: len1
    +      dmrsTypeAPosition: pos2
    + dmrsAdditionalPosition: pos0
    +           Duration, ld: 12
    +       Start symbol, l0: 0
    +     Start symbol-1, l1: 11
    +          num of Layers: 1
    +
    +********************************************
    +********************************************
    +          tbsize-1: 5768
    +
    +            numTBs: 1
    +            numCBs: 2
    +         numLayers: 1 | LayerperTB: [1 0]
    +             numRB: 85
    +          coderate: 0.2451171875
    +          modOrder: 2
    +additionalOverhead: 0
    +numberTargetBits: 23460
    +********************************************
    +
    +
    +
    +
    +

    PDSCH: Transmitter

    +
    +
    [9]:
    +
    +
    +

    pdschUpperPhy = PDSCHUpperPhy(symbolsPerSlot = numSymbols, numRB = numRB, mcsIndex = mcsIndex, + numlayers = numlayers, scalingField = scalingField, + additionalOverhead = additionalOverhead, dmrsREs = dmrsREs, + numTBs=numTBs, pdschTable = mcsTable, verbose = False) + +codeword = pdschUpperPhy(tblock = [None, None], rvid = [0, 0], enableLBRM = [False, False], + numBatch = numBatches, numBSs = numBSs) + +rnti = np.random.randint(65536, size=numBSs*numBatches) +nID = np.random.randint(1024, size=numBSs*numBatches) +bits2 = codeword[1] if numTBs == 2 else None + +pdschLowerPhyChain = PDSCHLowerPhy(pdschMappingType, configurationType, dmrsTypeAPosition, + maxLength, dmrsAdditionalPosition, l0, ld, l1) +resourceGrid = pdschLowerPhyChain(codeword[0], numRB, rank, slotNumber, scramblingID, + nSCID, rnti, nID, modOrder, startSymbol, bits2 = bits2) + +## Load the resource Grid into the transmision Grid +txGrid = np.zeros(resourceGrid.shape[0:-1]+(Nfft,), dtype= np.complex64) +bwpOffset = np.random.randint(Nfft-numRB*12) +txGrid[...,bwpOffset:bwpOffset+numRB*12] = resourceGrid + +fig, ax = pdschLowerPhyChain.displayDMRSGrid() +pdschLowerPhyChain.displayResourceGrid() +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +../../../_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_15_1.png +
    +
    +
    +
    [9]:
    +
    +
    +
    +
    +(<Figure size 640x480 with 1 Axes>,
    + <Axes: xlabel='OFDM Symbol-Index', ylabel='Subcarrier-Index'>)
    +
    +
    +
    +
    +
    +
    +../../../_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_15_3.png +
    +
    +
    +
    [10]:
    +
    +
    +
    fig, ax = plt.subplots(1,2)
    +
    +ax[0].plot(np.abs(Hf[0,0,0,0,:,0,5]))
    +ax[0].grid()
    +ax[1].plot(np.abs(Hf[0,0,0,0,:,0,3]))
    +ax[1].grid()
    +plt.show()
    +
    +
    +
    +
    +
    +
    +
    +../../../_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_16_0.png +
    +
    +
    +
    +

    SVD Based Beamforming: Perfect CSI

    +
    +
    [11]:
    +
    +
    +
    # Digital Beamforming
    +[U, S, Vh] = np.linalg.svd(Hf)
    +precoder   = np.conj(Vh.transpose(3,0,1,2,4,6,5)[...,0:rank])
    +combiner   = np.conj((U*(1/S[...,np.newaxis,:].repeat(S.shape[-1], axis = -2)))[...,0:rank].transpose(3,0,1,2,4,6,5))
    +xBeam      = (precoder@txGrid.transpose(0,1,3,4,2)[:,np.newaxis,...,np.newaxis])[...,0]
    +
    +print("************ Beamforming Parameters *************")
    +print()
    +print("    Precoder Shape: "+str(precoder.shape))
    +print("    Combiner Shape: "+str(combiner.shape))
    +print("     Channel Shape: "+str(Hf.shape))
    +print("Eigen Matrix Shape: "+str(S.shape))
    +print("Beamformed Grid sh: "+str(xBeam.shape))
    +print()
    +print("********************************************")
    +
    +
    +
    +
    +
    +
    +
    +
    +************ Beamforming Parameters *************
    +
    +    Precoder Shape: (200, 1, 1, 1, 1024, 32, 1)
    +    Combiner Shape: (200, 1, 1, 1, 1024, 1, 4)
    +     Channel Shape: (1, 1, 1, 200, 1024, 4, 32)
    +Eigen Matrix Shape: (1, 1, 1, 200, 1024, 4)
    +Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)
    +
    +********************************************
    +
    +
    +
    +
    +

    Pass through Channel

    +
    +
    [12]:
    +
    +
    +
    # Channel Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numUEs, numSamples/numFFTpoints, numRxAntennas, numTxAntennas
    +# Tx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs,         numSamples/numFFTpoints,                numTxAntennas
    +# Rx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots),   --    numUEs, numSamples/numFFTpoints, numRxAntennas
    +
    +ptc = ApplyChannel(isFrequencyDomain = True, enableInterTxInterference = True, memoryConsumptionLevel = 0)
    +y   = ptc(Hf[np.newaxis].transpose(4,0,1,2,3,5,6,7), xBeam.transpose(0,1,3,2,4,5))
    +
    +print("************ Channel Parameters *************")
    +print()
    +print("      Channel Shape: "+str(Hf.shape))
    +print("Received Grid shape: "+str(y.shape))
    +print(" Beamformed Grid sh: "+str(xBeam.shape))
    +print()
    +print("********************************************")
    +
    +
    +
    +
    +
    +
    +
    +
    +************ Channel Parameters *************
    +
    +      Channel Shape: (1, 1, 1, 200, 1024, 4, 32)
    +Received Grid shape: (200, 1, 14, 1, 1024, 4)
    + Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)
    +
    +********************************************
    +
    +
    +
    + +
    +

    SVD Based Beamforming: CSI Reconstructed using CSINet

    +
    +
    [14]:
    +
    +
    +
    # Digital Beamforming
    +
    +shape      = Hf[0,0,0].shape
    +Hest = np.zeros((shape[0], shape[2], shape[3], shape[1]), dtype = np.complex64)
    +
    +for nr in range(Nr):
    +    H          = Hf[0,0,0,...,nr,:].transpose(0,2,1)
    +    Hprep      = csinet.preprocess(H)
    +    Hrec       = csinet.predict(Hprep)
    +    Hest[:,nr] = csinet.postprocess(Hprep, Nfft)
    +
    +[U, S, Vh] = np.linalg.svd(Hest.transpose(0,3,1,2)[np.newaxis, np.newaxis,np.newaxis])
    +precoder   = np.conj(Vh.transpose(3,0,1,2,4,6,5)[...,0:rank])
    +combiner   = np.conj((U*(1/S[...,np.newaxis,:].repeat(S.shape[-1], axis = -2)))[...,0:rank].transpose(3,0,1,2,4,6,5))
    +xBeam      = (precoder@txGrid.transpose(0,1,3,4,2)[:,np.newaxis,...,np.newaxis])[...,0]
    +
    +print("************ Beamforming Parameters *************")
    +print()
    +print("    Precoder Shape: "+str(precoder.shape))
    +print("    Combiner Shape: "+str(combiner.shape))
    +print("     Channel Shape: "+str(Hf.shape))
    +print("Eigen Matrix Shape: "+str(S.shape))
    +print("Beamformed Grid sh: "+str(xBeam.shape))
    +print()
    +print("********************************************")
    +
    +
    +
    +
    +
    +
    +
    +
    +7/7 [==============================] - 0s 6ms/step
    +7/7 [==============================] - 0s 6ms/step
    +7/7 [==============================] - 0s 7ms/step
    +7/7 [==============================] - 0s 6ms/step
    +************ Beamforming Parameters *************
    +
    +    Precoder Shape: (200, 1, 1, 1, 1024, 32, 1)
    +    Combiner Shape: (200, 1, 1, 1, 1024, 1, 4)
    +     Channel Shape: (1, 1, 1, 200, 1024, 4, 32)
    +Eigen Matrix Shape: (1, 1, 1, 200, 1024, 4)
    +Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)
    +
    +********************************************
    +
    +
    +
    +
    +

    Pass through Wireless Channel

    +
    +
    [15]:
    +
    +
    +
    # Channel Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numUEs, numSamples/numFFTpoints, numRxAntennas, numTxAntennas
    +# Tx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs,         numSamples/numFFTpoints,                numTxAntennas
    +# Rx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots),   --    numUEs, numSamples/numFFTpoints, numRxAntennas
    +
    +ptc = ApplyChannel(isFrequencyDomain = True, enableInterTxInterference = True, memoryConsumptionLevel = 0)
    +y   = ptc(Hf[np.newaxis].transpose(4,0,1,2,3,5,6,7), xBeam.transpose(0,1,3,2,4,5))
    +
    +print("************ Channel Parameters *************")
    +print()
    +print("      Channel Shape: "+str(Hf.shape))
    +print("Received Grid shape: "+str(y.shape))
    +print(" Beamformed Grid sh: "+str(xBeam.shape))
    +print()
    +print("********************************************")
    +
    +
    +
    +
    +
    +
    +
    +
    +************ Channel Parameters *************
    +
    +      Channel Shape: (1, 1, 1, 200, 1024, 4, 32)
    +Received Grid shape: (200, 1, 14, 1, 1024, 4)
    + Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)
    +
    +********************************************
    +
    +
    +
    + +
    +
    +

    Performance Evaluations

    +
    +

    Throughput Evaluations

    +
    +
    [18]:
    +
    +
    +
    fig, ax = plt.subplots()
    +
    +ax.semilogy(SNRdB,  throughput,  "b",   marker = "*", lw = 3, mec = "k", mfc = "r", ms = 12, label="Throughput [Perfect-CSI]")
    +ax.semilogy(SNRdB2, throughput2, "--r", marker = "o", lw = 3, mec = "w", mfc = "r", ms = 9, label="Throughput [CSINet]")
    +
    +ax.set_xlabel("Signal to Noise Ratio (dB)")
    +ax.set_ylabel("Throughput (bits per second)")
    +ax.set_title("Data-rate Evaluation: SNR (dB) vs Throughput", fontsize = 16)
    +ax.legend(loc="best")
    +
    +ax.set_xticks(SNRdB2, minor=False)
    +ax.xaxis.set_major_formatter(mpl.ticker.FormatStrFormatter('%.2f'))
    +ytck = 10**(np.arange(2, 9)).repeat(10)*np.tile(np.arange(1, 11), [7])
    +ax.set_yticks(ytck, minor=True)
    +ax.set_yticks(10**(np.arange(2, 8)), minor=False)
    +ax.set_ylim([10**2, 10**8])
    +# ax.set_xlim([0.999*SNRdB[0], 1.05*SNRdB[-1]])
    +ax.grid(which = 'minor', alpha = 0.5, linestyle = '--')
    +ax.grid(which = 'major', alpha = 0.65, color = "k")
    +
    +plt.show()
    +
    +
    +
    +
    +
    +
    +
    +../../../_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_31_0.png +
    +
    +
    +
    +

    BLER Evaluations

    +
    +
    [19]:
    +
    +
    +
    fig, ax = plt.subplots()
    +
    +ax.semilogy(SNRdB,  bler,    "g", marker = "X", lw = 3, mec = "k", mfc = "w", ms = 9, label="BLER [Perfect-CSI]")
    +ax.semilogy(SNRdB2, bler2, "--b", marker = "o", lw = 3, mec = "w", mfc = "r", ms = 9, label="BLER [CSI-Net]")
    +
    +ax.legend(loc="best")
    +ax.set_xlabel("Signal to Noise Ratio (dB)")
    +ax.set_ylabel("Block (Bit) Error Rate")
    +ax.set_title("Reliability Evaluation: SNR (dB) vs B(L)ER", fontsize = 16)
    +
    +# ax.set_xticks(SNRdB1)
    +ax.xaxis.set_major_formatter(mpl.ticker.FormatStrFormatter('%.2f'))
    +ytck = (0.1**(np.arange(1, 10))).repeat(9)*np.tile(np.arange(10, 1,-1), [9])
    +ytck = np.concatenate([[1],ytck])
    +ax.set_yticks(ytck, minor=True)
    +ax.set_yticks(0.1**(np.arange(0, 9)), minor=False)
    +ax.set_ylim([0.5*10**-5,1.2])
    +
    +ax.grid(which = 'minor', alpha = 0.5, linestyle = '--')
    +ax.grid(which = 'major', alpha = 0.65, color = "k")
    +
    +plt.show()
    +
    +
    +
    +
    +
    +
    +
    +../../../_images/api_Projects_Project3_CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks_33_0.png +
    +
    +
    +
    +

    References

    +
      +
    1. Deep Learning for Massive MIMO CSI Feedback

    2. +
    +
    +
    [ ]:
    +
    +
    +
    
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.ipynb b/api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.ipynb new file mode 100644 index 00000000..b5f400ac --- /dev/null +++ b/api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.ipynb @@ -0,0 +1,1225 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d2036407", + "metadata": {}, + "source": [ + "# CSI Compression and Reconstruction using CSINet for TDD Massive MIMO 5G Networks\n", + "\n", + "## Import Libraries\n", + "### Import Python Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b3d7831b", + "metadata": {}, + "outputs": [], + "source": [ + "# %matplotlib widget\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "\n", + "import os\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\n", + "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", + "\n", + "import numpy as np\n", + "\n", + "# from IPython.display import display, HTML\n", + "# display(HTML(\"\"))" + ] + }, + { + "cell_type": "markdown", + "id": "cdbd39e6", + "metadata": {}, + "source": [ + "### Import 5G Toolkit Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "079c39a1", + "metadata": {}, + "outputs": [], + "source": [ + "from csiNet import CSINet\n", + "\n", + "import sys\n", + "sys.path.append(\"../../\")\n", + "\n", + "from toolkit5G.PhysicalChannels.PDSCH import ComputeTransportBlockSize\n", + "from toolkit5G.PhysicalChannels import PDSCHLowerPhy, PDSCHUpperPhy, PDSCHDecoderLowerPhy, PDSCHDecoderUpperPhy\n", + "from toolkit5G.ChannelModels import AntennaArrays, SimulationLayout, ParameterGenerator, ChannelGenerator\n", + "from toolkit5G.Configurations import PDSCHLowerPhyConfiguration, PDSCHUpperPhyConfiguration\n", + "from toolkit5G.ChannelProcessing import AddNoise, ApplyChannel\n", + "from toolkit5G.SymbolMapping import Mapper, Demapper" + ] + }, + { + "cell_type": "markdown", + "id": "6637699c", + "metadata": {}, + "source": [ + "## Simulation Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "158a9ec4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Simulation Parameters *************\n", + "\n", + " numBatches: 200\n", + " numRB: 85\n", + " fft Size: 1024\n", + " numBSs: 1\n", + " numUEs: 200\n", + " scs: 30000\n", + " slotNumber: 0\n", + " terrain: CDL-A\n", + "Tx Ant Struture: [ 1 1 32 1 1]\n", + "Rx Ant Struture: [1 1 4 1 1]\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Carrier Frequency\n", + "carrierFrequency = 3.6*10**9 \n", + "delaySpread = 100*(10**-9)\n", + "numBatches = 200 # Number of batches considered for simulation\n", + "scs = 30*10**3 # Subcarrier Spacing for simulation\n", + "numBSs = 1 # Number of BSs considered for simulation\n", + "# Number of UEs considered for simulation\n", + "numUEs = numBatches # For now we are assuming that the numbatches are captured via numUEs\n", + "numRB = 85 # Number of Resource mapping considered for simulation | # 1 RB = 12 subcarrier\n", + "slotNumber = int(np.random.randint(0,2**(scs/15000)*10)) # Index of the slot considered for simulation\n", + "terrain = \"CDL-A\" # Terrain\n", + "txAntStruture = np.array([1,1,32,1,1]) # Tx Antenna Structure\n", + "rxAntStruture = np.array([1,1,4,1,1]) # Tx Antenna Structure\n", + "Nfft = 1024 # FFTSize\n", + "\n", + "print(\"************ Simulation Parameters *************\")\n", + "print()\n", + "print(\" numBatches: \"+str(numBatches))\n", + "print(\" numRB: \"+str(numRB))\n", + "print(\" fft Size: \"+str(Nfft))\n", + "print(\" numBSs: \"+str(numBSs))\n", + "print(\" numUEs: \"+str(numUEs))\n", + "print(\" scs: \"+str(scs))\n", + "print(\" slotNumber: \"+str(slotNumber))\n", + "print(\" terrain: \"+str(terrain))\n", + "print(\"Tx Ant Struture: \"+str(txAntStruture))\n", + "print(\"Rx Ant Struture: \"+str(rxAntStruture))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "0cf40c81", + "metadata": {}, + "source": [ + "## Wireless Channel Generation: CDL-A" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "74639fd2", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAHHCAYAAACoU7/YAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACvw0lEQVR4nOydd3gUVReH39mSQktooQkJBBIk9CoighRBFEVUxEYLfqCAEIooKk2KFClipEioKiAKiIpSFEEpUkOH0AJICxBCgCRky3x/xF2zySbZMrMt8/LwsMzOzO/eO3fn3HLuuYIoiiIKCgoKCgo2onJ3AhQUFBQUvAvFcCgoKCgo2IViOBQUFBQU7EIxHAoKCgoKdqEYDgUFBQUFu1AMh4KCgoKCXSiGQ0FBQUHBLhTDoaCgoKBgF4rhUFBQUFCwC8VwKHgcYWFh9OrVyy3aY8eORRAESe/5xx9/IAgCf/zxh6T3VVBwF4rhUHAZR44c4cUXXyQ0NJSAgAAqVapE+/btmTNnjruTJglffPEFS5YscXcyLGjdujW1a9d2dzKcZtKkSaxbt87dyVD4F0GJVaXgCnbu3MkTTzxBlSpV6NmzJ+XLl+fSpUvs3r2bs2fPcubMGfO5Dx48QKVSodVqXZ7OsWPHMm7cOBz5WdSuXZsyZcrk6lkYjUYyMzPx8/NDpXJtW61169bcvHmTo0ePulRXaooVK8aLL77ocYa5sKJxdwIUCgcTJ04kKCiIvXv3EhwcbPFdUlKSxf/9/f1dmDL5UalUBAQEuDsZCgqSoQxVKbiEs2fPEhUVlctoAISEhFj8P+ccx5IlSxAEgb/++ot33nmHsmXLEhwcTL9+/cjMzCQlJYUePXpQsmRJSpYsybvvvmvRY8hrjiExMRFBEApsxS5evJg2bdoQEhKCv78/tWrVYu7cubnSfOzYMbZt24YgCAiCQOvWrfPVX716NY0aNSIwMJAyZcrw+uuvc/nyZYtzevXqRbFixbh8+TJdunShWLFilC1bluHDh2MwGPJNt60cPnyYXr16Ua1aNQICAihfvjx9+vTh1q1b5nO2bt2KIAisXbs21/XffPMNgiCwa9cu87Hff/+dli1bUrRoUYKDg3nuuec4ceJErryFhYXlul/OeSZBELh//z5Lly41l6275sAUslB6HAouITQ0lF27dnH06FGHx9wHDRpE+fLlGTduHLt372bBggUEBwezc+dOqlSpwqRJk9iwYQPTpk2jdu3a9OjRQ5K0z507l6ioKJ599lk0Gg0//vgjb7/9NkajkQEDBgAwa9YsBg0aRLFixfjggw8AKFeuXJ73XLJkCb1796ZJkyZMnjyZ69evM3v2bHbs2MHBgwctDKzBYKBDhw40a9aM6dOns2XLFj799FPCw8N56623nM7f5s2bOXfuHL1796Z8+fIcO3aMBQsWcOzYMXbv3m02gpUrV+brr7/m+eeft7j+66+/Jjw8nObNmwOwZcsWnnrqKapVq8bYsWNJT09nzpw5tGjRggMHDlg1FvmxfPly+vbtS9OmTfnf//4HQHh4uNP5VnACUUHBBWzatElUq9WiWq0WmzdvLr777rvixo0bxczMzFznhoaGij179jT/f/HixSIgdujQQTQajebjzZs3FwVBEPv3728+ptfrxYceekhs1aqV+djWrVtFQNy6dauFzvnz50VAXLx4sfnYmDFjxJw/i7S0tFxp7NChg1itWjWLY1FRURa6eelnZmaKISEhYu3atcX09HTzeT/99JMIiKNHjzYf69mzpwiI48ePt7hngwYNxEaNGuXSykmrVq3EqKiofM+xlr8VK1aIgLh9+3bzsffff1/09/cXU1JSzMeSkpJEjUYjjhkzxnysfv36YkhIiHjr1i3zsUOHDokqlUrs0aOHRd5CQ0NzaVt7BkWLFrWoEwruRRmqUnAJ7du3Z9euXTz77LMcOnSIqVOn0qFDBypVqsT69ettukd0dLTFEEazZs0QRZHo6GjzMbVaTePGjTl37pxkaQ8MDDR/vnPnDjdv3qRVq1acO3eOO3fu2H2/ffv2kZSUxNtvv20x9/H0009Ts2ZNfv7551zX9O/f3+L/LVu2lCyP2fOXkZHBzZs3eeSRRwA4cOCA+bsePXrw4MEDvvvuO/OxVatWodfref311wG4evUq8fHx9OrVi1KlSpnPq1u3Lu3bt2fDhg2SpFnBvSiGQ8FlNGnShDVr1nD79m327NnD+++/z927d3nxxRc5fvx4gddXqVLF4v9BQUEAVK5cOdfx27dvS5buHTt20K5dO/N4fdmyZRk1ahSAQ4bjwoULAERGRub6rmbNmubvTQQEBFC2bFmLYyVLlpQsj8nJyQwePJhy5coRGBhI2bJlqVq1KmCZv5o1a9KkSRO+/vpr87Gvv/6aRx55hOrVqxeYt4cffpibN29y//59SdKt4D6UOQ4Fl+Pn50eTJk1o0qQJERER9O7dm9WrVzNmzJh8r1Or1TYfF7NNjue1oM+WyeWzZ8/Stm1batasyYwZM6hcuTJ+fn5s2LCBmTNnYjQaC7yHs+SVb6no1q0bO3fuZMSIEdSvX59ixYphNBrp2LFjrvz16NGDwYMH888///DgwQN2797N559/7pCuM89Fwb0ohkPBrTRu3BjIGuKQi5IlSwKQkpJicTxny94aP/74Iw8ePGD9+vUWPZ6tW7fmOtfWFeehoaEAnDp1ijZt2lh8d+rUKfP3ruD27dv89ttvjBs3jtGjR5uPnz592ur53bt3Z+jQoaxYsYL09HS0Wi0vv/yy+fvsecvJyZMnKVOmDEWLFgWynkvOZwLWn4vUq/kVnEMZqlJwCVu3brW6qM405m1taEMqQkNDUavVbN++3eL4F198UeC1ptZ+9rTfuXOHxYsX5zq3aNGiVl+EOWncuDEhISHMmzePBw8emI//8ssvnDhxgqeffrrAe0iFtfxBlpeYNcqUKcNTTz3FV199xddff03Hjh0pU6aM+fsKFSpQv359li5dalEWR48eZdOmTXTq1Ml8LDw8nDt37nD48GHzsatXr1p1+bW1bBVcg9LjUHAJgwYNIi0tjeeff56aNWuSmZnJzp07WbVqFWFhYfTu3Vs27aCgIF566SXmzJmDIAiEh4fz008/5Vp4aI0nn3wSPz8/OnfuTL9+/bh37x5ffvklISEhuXpJjRo1Yu7cuUyYMIHq1asTEhKSq0cBoNVqmTJlCr1796ZVq1a88sorZnfcsLAwYmJiJMs7wI0bN5gwYUKu41WrVuW1117j8ccfZ+rUqeh0OipVqsSmTZs4f/58nvfr0aMHL774IgAff/xxru+nTZvGU089RfPmzYmOjja74wYFBTF27Fjzed27d2fkyJE8//zzvPPOO6SlpTF37lwiIiIsJuUhq2y3bNnCjBkzqFixIlWrVqVZs2YOloiC07jVp0uh0PDLL7+Iffr0EWvWrCkWK1ZM9PPzE6tXry4OGjRIvH79usW5ebnj7t271+I8k9vmjRs3LI737NlTLFq0qMWxGzduiC+88IJYpEgRsWTJkmK/fv3Eo0eP2uSOu379erFu3bpiQECAGBYWJk6ZMkVctGiRCIjnz583n3ft2jXx6aefFosXLy4CZtfcvNyBV61aJTZo0ED09/cXS5UqJb722mviP//8U2Be8kqnNVq1aiUCVv+2bdtWFEVR/Oeff8Tnn39eDA4OFoOCgsSXXnpJvHLlighYuNmaePDggViyZEkxKCjIwp04O1u2bBFbtGghBgYGiiVKlBA7d+4sHj9+PNd5mzZtEmvXri36+fmJkZGR4ldffWU1bydPnhQff/xxMTAwUAQU11w3o8SqUlBQsAu9Xk/FihXp3LkzcXFx7k6OghtQ5jgUFBTsYt26ddy4cUOylfkK3ofS41BQULCJv//+m8OHD/Pxxx9TpkyZXPMQCoUHpcehoKBgE3PnzuWtt94iJCSEZcuWuTs5Cm5E6XEoKCgoKNiF0uNQUFBQULALxXAoKCgoKNiFsgAwG0ajkStXrlC8eHElxIGCgkKhQhRF7t69S8WKFQvc4lgxHNm4cuVKrkirCgquIurff4+5NRUKhZ1Lly7x0EMP5XuOYjiyUbx4cSCr4EqUKGHzdXq9no0bNwLQoUMHNBrXFKtOpwOyQli4CkVTPoz/xmxS1a3rMk0oPOVbGDSdeRelpqZSuXJl83swPxTDkQ3T8FSJEiXsNhxFihQxX+sqw6HX6wFcpqdoyqxZrFiWph11TxLdwlK+hUBTineRLcP0iuHwYtzhSa1o+pamu3QVTe9G8apSUFBQULALxXAoKCgoKNiFMlSloOAijEYjmZmZeX6v+3dYw5CR4aokZen+O4Hryi1bFU150Ov15nmNjIyMXHMcWq1Wkq2IFcPhxbhjrYmi6RiZmZmcP38+3z3KxX9/0EI+myjJgWkc3pXlrGjKp1e+fHkALl68aFU3ODiY8uXLO5UmxXB4MYVlss/bNUVR5OrVq6jVaipXrpzn4ipjejoAqsBAybRtwWTMClr0pWh6vqZpER+QayGzKIqkpaWZd76sUKGCwzqK4VBQkBm9Xk9aWhoVK1Y0u0paw/ySCQhwVdIsdX34hVpYNEVRNO9jHxAQkKtXEfhvoyQpKYmQkBCHh60Uw+HF+MIQTmHQNI1v+/n55a8pmaJ9eHv5Kpr2YWq86HQ6xXAURrx9CKewaRb0EjEpuvpVUxjG/guTZkFIkRbFHVdBQUFBwS4Uw+HFCILg8paMoimjJu4ZrpI7r4IgsG7dOpdq5pWOwqDpChTD4cWIoujyYRxFU0ZN/huucqluHnnt1asXXbp0cammlPzxxx8IgkBUVBQGg8FCMzg4mCVLlpjPDQsLY9asWQ5rHTp0iGeffZaQkBACAgIICwvj5Zdf5vr163nmMy/NsWPHUr9+ffP/e/XqZTZA2f927NjR4fQ6i2I4FBQ8BKPRSOqdO/mu9VCwjmmhnTXOnTsn6x7pN27coG3btpQqVYqNGzdy4sQJFi9eTMWKFbl//74kGh07duTq1asWf1esWCHJvR1BMRxeTGHpevu6piiK3Lp1i7NnznD58mWOHTtGSkqKy3o8tua1devWvPPOO7z77ruUKlWK8uXLM3bsWItzTp8+zeOPP05AQAC1atVi8+bNue5z5MgR2rVrR9GiRSldujT/+9//uHfvnvl7o9HI+PHjeeihh/D396d+/fr8+uuv5u8TExMRBIFVq1bRqlUrAgIC+Prrr/NM96BBgxgzZgyZmZkOP9O5c+cSHh6On58fkZGRLF++3Pzdjh07uHPnDgsXLqRBgwZUrVqVJ554gpkzZ1KtWjVJ6pG/vz/ly5e3+FuyZEkgq/6MHTuWKlWqEBAQwMMPP8zIkSOd1swPxXB4MYVmCMeHNe/fv8/Jkyc5f/68OQT3gwcPOHPmDKdPnyb930WBAOm6dGbumsmgDYOYuWsm6br0vG5rF/bkdenSpRQtWpS///6bqVOnMn78eLNxMBqNdO3aFT8/P/7++2/mzZuX6wV2//59OnToQHBwMH///TerV69my5YtDBw40HzO7Nmz+fTTT5k+fTqHDx+mQ4cOPPvss5w+fdriXu+99x6DBw/mxIkTdOjQIc80DxkyBL1ez5w5cxx6pmvXrmXw4MEMGzaMo0eP0q9fP3r37s3WrVsBKF++PHq9nrVr1+a6vyvq0ffff8/MmTOZP38+CQkJfPXVV9SqVUtWTcVweDG+3hL3ZU1TCJITJ06YhzP8/PwICQkxb/qTmprKsWPHuHjxInfT79JiUQuGbx7O/P3zGb55OC0WtZDEeNiT17p16zJmzBhq1KhBjx49aNy4Mb/99hsAW7Zs4eTJkyxbtox69erx+OOPM2nSJIvrv/nmGzIyMli2bBl16tShTZs2fP755yxfvpzr168DMH36dEaOHEn37t2JjIxkypQp1K9fP9d8wJAhQ+jatStVq1bNdxV0kSJFGDNmDJ988gmpqal2lAzm9PTq1Yu3336biIgIhg4dSteuXZk+fToAjzzyCKNGjeLVV1+lTJkyPPXUU0ybNo3r169LVo9++uknihUrZvHXVLYXL16kfPnytGvXjipVqtCoUSN69uzptGZ+KIbDi/HllrivahqNRq5evcrRo0e5desWAGq1moceeohq4eGULlOG2rVrU6FCBfMLJykpiXEbxnHo2iGMohGdUYdRNHLo+iHm7ZvndJrsyWvdHLsTVqhQwRzC4sSJE1SuXJmKFSuav2/evLnF+SdOnKBevXoUKVLErNmiRQuMRiOnTp0iNTWVK1eu0KJFC4vrWrRowYkTJyyONW7c2Pw5KirK/EJ96qmncqU7Ojqa0qVLM2XKFJvymTPNBaVn4sSJXLt2jXnz5hEVFcW8efOoWbMmhw8flqQePfHEE8THx1v87d+/PwAvvfQS6enpVKtWjTfffJOffvrJ3HuVC2UBoIKCi7hz5w5JSUnmkBAAZcuWpWLFimi1WoxpaUCWIalUqRJlypThn3/+4fbt21y6ewmVoMIo/jdxrhbUnLt9zqV5yLkFqiAIbpvML1q0qPnzhg0bzBPkgVZifWk0Gj7++GP69OnDoEGDZElP6dKleemll3jppZeYNGkSDRo04NNPP7Xw3spOiRIluHPnTq7jKSkpBAUFWRwrWrQo1atXt3qfypUrc+rUKbZs2cKmTZsYPnw4n332GX/99VeB0QocRelxeDG+OITji5qnTp3i+vXrXLp0yWw0ihUrRq1atQgNDTW/jHOu4/D39yc8PJzIyEjCgsIwiJahuQ2igWolqzmdPqny+vDDD3Pp0iWuXr1qPrZ79+5c5xw6dIi0tDSz5o4dO1CpVERGRlKiRAkqVqzIjh07LK7bsWNHvuP2oaGhVK9enerVq1OpUiWr53Tr1o2oqCjGjRtnd77sTY+fnx/h4eEW+cxJZGQk+/fvz3X8wIEDRERE2JXGwMBAOnfuzGeffcaPP/7I3r17OXLkiF33sAelx+HF+EooDl/VvHnzJqNHj+bXX3/liy++oFixYvj5+fHQQw9RsmTJXC+UvEKOFC9enDFPj+GXK79w9OZR1IIag2igRvEadK7YGYPB4NQeC1KFxWjXrh0RERH07NmTadOmkZqaygcffGBxzmuvvcaYMWPo2bMnY8aM4datWwwaNIg33niDcuXKATBixAjGjBlDeHg49evXZ/HixcTHx+frOWULoigyadIkq0NZAJcvXyY+Pt7iWGhoKCNGjKBbt240aNCAdu3a8eOPP7JmzRq2bNkCZM0/rFy5ku7duxMREYEoivz4449s2LCBuLg4RFG0WrYxMTG0bNmSiRMn0rVrVwwGAytWrGDXrl188cUXFuc+ePCAa9euWRzTaDSUKVOGJUuWYDAYaNasGYGBgXz77bcEBgYSGhrqRGkVgKhg5s6dOyIg3rlzx67rdDqduG7dOnHdunWiTqeTKXW5yczMFDMzM12mp2jafu2sWbPE4OBgERBDQ0PFX3/9Vbxw4YJoMBjyvM5w/75ouH8/z+/TMtPEaX9NE3ut6iXGfBsj/rn7T3Hv3r1ifHy8eOPGDdFoNDqUXoPBYDVdPXv2FJ977jnz/1u1aiUOHjzY4pznnntO7Nmzp/n/p06dEh977DHRz89PjIiIEH/99VcRENeuXWs+5/Dhw+ITTzwhBgQEiKVKlRLffPNN8e7duxbpGTt2rFipUiVRq9WK9erVE3/55Rfz9+fPnxcB8eDBg/nma+vWrSIg3r592yKfTz75pAiIixcvNp8bGhpqWn9p8Xf58uWiKIriF198IVarVk3UarViRESEuGzZMvO1Z8+eFd98800xIiJCDAwMFIODg8UmTZqIixcvzrNsTWzcuFFs0aKFWLJkSbF06dJi69atxW3btlmc07NnT6tpi4yMFEVRFNeuXSs2a9ZMLFGihFi0aFGxSZMm4rp16/KsD+np6eLx48fF9PR0i+P2vP8EUfTR3dQdIDU1laCgIO7cuUOJEiVsvk6v1/Pzzz8D8PTTT+fadUsuTBNgrtJTNAtm48aNDBkyhJMnT5qPDRw4kP/973/UqFGDgHxCpov/znEI+YReN5GRkcGlS5csxsiLFi1K5cqVKVasmF1pFiXqcSia7tcURdFcJ4KCgqzqZmRkcP78eapWrWpRH+15/ylzHF6M6EPeRt6umZCQQOfOnenYsaPZaDRu3JgdO3Ywbdo0mwyQPSFHAgICqFGjhoUxMq0JOXfuXL5b1ObS9YLyVTQ9C8VwKCg4wZ07dxg+fDi1a9fmp59+ArIWhC1ZsoS///6bRx99VFb9oKAgatWqReXKlc3zHMnJyRw9epSrV68q4UsUZEGZHPdiCsvGNJ6oaTAYWLx4MaNGjeLGjRtAlifN0KFDGTVqFMWLF7df06GUZu0uV65cOUqVKsWVK1e4ceMGRqORy5cvc+PGjTwn4826Hli+iqZnoxgOL8YdXeDCppmuS2fevnmcu32OaiWr0b9xf/bu2svgwYMtPHC6dOnC9OnTCQ8Pd1zz338dfdVotVpCQ0MpW7Ysly5d4u7du2RmZnLu3DmKFy9O5cqVrW5dWxjG/guTpitQDIeCQh5k6DNotawVh64fQi2o0d/WM37QeFL2p5jPiYqKYtasWbRr167A+7nKABYpUoSIiAhSUlK4dOkSmZmZ3L17l+PHj1ssOFQonEhRDxXD4cUUlq63uzTjDsRx6PohjA+MGHcYYQek6FMAKFWqFB9//DH/+9//Cpz4Ns09ZGZmWl3VbNZ0MK1Go5EbaTd4YHiAv9qfskXKolKpKFmyJEFBQVy/ft0833Hjxg2Sk5OpWLEiZctmnVeYnmlh0CyItH+995xpPCiGw4spbMNGrtY8f/s8whEBNgGm2HgqqPt0XbYu2UqpUqVsupdGo6FIkSLcuHEDrVaLSmXdJ8X476ryvL63eo3RyLmUc2ToMxAQEBG5kXqDasHVzPcpWbIkRYsWJSkpiZSUFAwGA5cuXeL69etUqFDBHLrDHl1nMU3aK5rSIoqi2aMuIyPDwnCJokhaWhpJSUkEBwc7tWhUMRxeTGFpQblDc//+/awftR7DkWxhPqqB8JRAr9d62Ww0ICv9FSpU4Pz581y4cCHP88R/f/CCHfGFUh+kcjv9dq7j95PuU8L/P198URS5m3mXB4YHPLj3AIMuK19XrlwhMDCQkiVLunT4qrDMN7hjHYcpFH9gYKBV3eDgYMqXL++UjmI4vJjC1Pp3FdeuXWPUqFEsXrz4v4OlQN1RjTHCSIPyDejfuL/d9/Xz86NGjRr5rq/QHT8OgLZqVZvvO2HbBFYdW4XO+N8OeFqVlpejXubDVh8CkKHL4NU1r3Ly5smsuRqjngqXK6DboeNGUpZHmEaj4fXXX+ftt9+2a/Gro5gCErrSWBUGTb1ez7Zt2wBo1apVrmFUrVbrVE/DhGI4FBTIigU0e/ZsPv74Y/NudMWLF+e9Ue+hba7l4v2LZq+qQG3e8xT5oVKp8l05rv63dajN55yclC5RmnP3zllEzVUJKkqXKG3WmntwLhsvbLQ452LJi0yYNIG7v9/l008/JTMzk3HjxhEbG8vEiROJjo6W5AWTF6Z7u/IlXhg09Xq9OepBQECAbNEWvGYB4NixY3Nt1l6zZk3z9xkZGQwYMIDSpUtTrFgxXnjhBfPGML6Kt0eN9QRNURT54YcfiIqKYuTIkdy7dw9BEOjVqxfHjx9n1HujGNFqBHM6zSGmeYzDRsMWHMln/8b9qVeuHipBhValRSWoqF+uvkWv6Nztc6gFSyOgFtRcybzCpEmTOHLkCM8//zyQFZixX79+NGrUyNxylQNfq0eepOkKvMZwQJbrY/bN2v/66y/zdzExMfz444+sXr2abdu2ceXKFbp27erG1MpPYQmhIJfm0aNHefLJJ+nSpQtnz54Fsjbo2bt3LwsWLDBHa7VGcloyXVZ2oe7cunRZ2YXktGSn0+NIPgO1gezos4Pp7afTr1E/prefzl99/rIwcNVKVss3JHvVqlVZtWoVv/32G3Xq1AHg0KFDtG7dmm7dupGYmOhcxqzgS/XI0zRdgVcNVWk0GquTOnfu3CEuLo5vvvmGNm3aALB48WIefvhhdu/ezSOPPGKXTvbunq3nW/ssNyYtV7ZofEHz1q1bjBs3jgULFmAwZL1Qg0OCmTFtBq+/8jqCIJjHpq1p3k6/TcScCNINWZOQCTcTCJ8VTsKgBEoGlnQ4Xaa0CHbWIa2gZVATy82JstfD12u/zpzdc7hy7woqQYUoitQrV4++9fta1PXHH3+cPXv2sHDhQsaOHcutW7dYvXo169evZ9iwYbz77rsWmyc5gy/UI0/UdOZdZM/5XhMdd+zYsUybNo2goCACAgJo3rw5kydPpkqVKvz++++0bduW27dvExwcbL4mNDSUIUOGEBMTY5OGKTrkN998Y3WFrYJ3YzAY+PXXX1mxYoV5HsPPz4+uXbvy/PPP4+/v79b0Ff/X4+qunPso2Mi9e/dYuXIlGzZsMLuUli5dmh49evD444/75PBLYSctLY1XX33Vpui4XtPjaNasGUuWLCEyMpKrV68ybtw4WrZsydGjR7l27Rp+fn4WRgOgXLlyuTY/USicxMfHs2jRIi5evGg+1rJlS3r06EHZsmXdmDLPpFixYvTt25cOHToQFxdHfHw8t27dYubMmWzYsIHo6Gi7d6lT8B28pseRk5SUFEJDQ5kxYwaBgYH07t3bYi9ngKZNm/LEE0/YvEG9qcdx69Ytu/fj2LhxIwAdOnRw2b4RhcG90FnNM2fO8O677/Ljjz+ajzVo0IBqL1djo24jOjGbG6ugpU+DPnza4VN0Oh0P9A9YcmQJ52+fp2rJqkQ3iCZQG0j377rz0+mfcmk9U+MZVr640oEcZqH/N/aVpn59h++Rk2Ebh7Ho4KI88wkFl68oimzYsIERI0Zw+vRp8/E33niDiRMnUqFCBbvT5W31yFs0nXkXpaamUrp0ad/qceQkODiYiIgIzpw5Q/v27cnMzCQlJcWi13H9+nWHFrpoNBqHX/7OXOsortbzBs3U1FQmTpzIzJkzzT/ekJAQJk+eTM+ePflsz2es3bzWwkVVJ+gIKxWGRqMhXZdOhxUd2Hdtn3mr1mVHlrGjzw4WPLuAh2Y+RLo+3XxtoCaQBc8ucK5c/r1WyrINKxVGmjEtz3xayuet+9xzz/HUU08xZ84cxo8fT2pqKsuXL2ft2rV88MEHDBkyJF9X47zw9Hrk7Zr26Npzrld5VWXn3r17nD17lgoVKtCoUSO0Wi2//fab+ftTp05x8eJFmjdv7sZUykth8RKxR9NoNLJo0SIiIiKYOnUqOp0OrVZrbi336dMHtVpdoBtr3IE4jiUdwyga0Rl1GEUjh64fYt6+eZQqUop/Yv7hucjnqBNSh+cin+OfmH8oVcT21eTO5tNWbHHXtVXXz8+PYcOGkZCQQN++fREEgXv37vH+++8TFRXF2rVrbU6/p9cjb9Z0BV7T4xg+fDidO3cmNDSUK1euMGbMGNRqNa+88gpBQUFER0czdOhQSpUqRYkSJRg0aBDNmze326NKwXvZsWMHgwcPZv/+/eZjnTt35tNPP6VGjRoW55rcWHOGTDe5sSamJKISLNtVakHNudvnAChVpBTruq+TJR/WQrk7un6koHw6Qrly5fjyyy95++23GTx4MH/++Sfnzp2ja9eutGnThlmzZpndehV8E68xHP/88w+vvPIKt27domzZsjz22GPs3r3bPLE5c+ZMVCoVL7zwAg8ePKBDhw588cUXbk61vBSWuFEFaV66dImRI0eyYsUK87GHH36YWbNm8eSTT+Z5XaA2kJjm1j3uwoLD8l37IAeCIPBA/4CWi1qYQ7kbRAPLDy9nR58dThmPvPJp0nWEBg0asG3bNlavXs3w4cO5dOkSv//+O/Xr16d///6MGzeOMmXKSKrpDIVF0xV4zVDVypUruXLlCg8ePOCff/5h5cqVFpvmBAQEEBsbS3JyMvfv32fNmjVOB/LydApL1zsvzbS0NMaNG0dkZKTZaAQHB/PZZ59x6NChfI1GQUQ3iKZOSJ18h3ikRhRF1pxYkxXK3coQmZy6jj5TQRDo1q0bJ0+eZNy4cQQGBmI0Gvniiy+oUaMGn332mXmOSSpNRyksmq7AawyHQm4KSwiFnJqiKLJq1Spq1qzJ2LFjSU9PR6VS8fbbb3P69GkGDRrktBdLoF8gm9/YzPT204luEE3niM40rdSUefvmka5LL/gGDiAIApdTL1sND2IaIpNL19lnWqRIEUaPHs2pU6d49dVXgSzPx8GDB1OvXj02bdokuaa9FBZNV6AYDi+msLSgsmseOHCAxx9/nO7du3Pp0iUA2rRpQ3x8PLGxsXkOjTiiGaAJoH/j/vx9+W9+TPiRuINxDN88nBaLWshiPERRpFKJSi4fIpPymVauXJmvv/6av/76i0aNGgFw4sQJOnTowLPPPmt253V3PfJlTVegGA4Fr+D69eu8+eabNG7c2ByjrFq1aqxdu5YtW7bINhk7b988lw4dda3ZtUAvKClI16Uzc9dMBm0YROyeWDJ0GZLev0WLFuzZs4dFixaZY379+OOPREVFMWLECO7cuSOpnoJrUQyHF1MYut6ZmZnMnDmTWrVqsXDhQkRRpGjRokyePJljx47RpUsXWdJjymdekWXlGDoSBAF/rX+BQQudJV2XTotFLRi+eTjz989n1NZRtPuqneS9KJVKRe/evUlISGDkyJH4+fmh0+mYPn06UVFRLF682ByfyxUUht+Lq1AMhxfjy11vURT56aefqF27NiNHjuTu3bsA9OrVi9OnT/Pee+85tODMHn1RFAuMLAuWrfeZu2Y6/AI2aZq8oOQK5Z6zF4UIx5KOydaLKlGiBJ988gnHjh3jueeeAyApKYl+/frRtGlTiyjXcuLLvxdXoxgOBY/j+PHjdOzYkc6dO5vHxJs1a8aePXtYvHixQyEuHKWgBXQ5W+9yzoFIRc5elICARtDIOgEPUL16ddatW8emTZt4+OGHgaw5q5YtW9K9e3eLOGIKno1iOLwYX+t63759m8GDB1O3bl2zF06lSpVYunQpf/75J02aNJFF1xqmfBa034WUcyCuep45e1F6Uc8D4wNZJ+Cz0759ew4cOMCsWbMoWTIrDP2qVauIjIxk7NixpKWlyaLra78Xd6IYDi/GV7reer2euXPnmv3+DQYDAQEBfPTRR5w6dYpXXnlFUj1byJ7P/IaOpJwDcdXzzNmL0qq0sq9RyYlarTa7Tw8cOBC1Wk1GRoZ5Xc7KlSslLwtf+b14AorhUHArv//+Ow0bNuTtt9/m1q1bALz00kucOHGC8ePHS7ZxkFzYMgfiaeTsRU14YgKbXt8k67a4eVG6dGnmzJlDfHw8bdu2Bf6LEtGyZUuL8DEKnoNiOLwYb+56m2IbtW3bliNHjgBQr149/vjjD7799lvCwsLMk87DNw0ndm+sS+cNbM2nLUEEpdaUguy9qIHNBhLo51qjkTOvtWvXZvPmzaxbt84cEWLHjh00adKE6OhoSfbV8ebfi6ehGA4vxhu73nfv3mXUqFE8/PDDrF27FoAyZcqwYMEC9u/fT6tWrQDLSecl8Uv48PcPXTrpbGs+bdnzW2pNqfGUeiQIAs899xzHjh1jypQpFCtWDFEULaId59xzx1lNuVGGqhQUnMBoNLJ06VIiIiKYPHkymZmZaDQahg4dyunTp3nzzTdRq/+bK8g+6ZxpzMQgGoi/Fs+Ty590yuVVDuR2ny1s+Pv78+6773L69Gl69+4NZDU4Ro4cSVRUFOvXr/fJl7E3oRgOBdnZvXs3jzzyCL169TIPOXTq1ImjR4/y6aef5tryF6xPOouI7Pxnp1e4vCo4T/ny5Vm0aBF79+7l0UcfBeDs2bM899xzdOjQgWPHjrk5hYUXxXAoyMbly5d54403aN68OXv37gUgMjKSDRs28PPPPxMZGZnntdknnYV//wAYRaNLIsZ6GlItMvRGTGFmvvnmGx566CEANm/eTL169Rg0aBDJycluTmHhQzEcXoynTvalp6czYcIEIiIi+OqrrwAICgpi5syZHDlyhKeeeqpAneyTzgBGjBbfe0PEWKk05V5k6El5ze/8V155hZMnTzJ69GgCAgIwGAx8/vnnVK5amVZvt2L6n9PzLRNvyKe3oBgOL8bTJvtEUeS7777j4Ycf5qOPPiItLQ2VSkW/fv04ffo0Q4YMsTncefZJ5+YPNUeN5bCVN0WMdVZT7kCLnpTXgihatCjjxo3j5MmTvPjSiwCkpaaxfe52Rrw4gjoj6uRpPLwpn56OYjgUJCE+Pp4nnniCl156iQsXLgDQqlUrDhw4wLx588w7NdqDadJ53cvrqFNO3k2Vcg4FSR0t1hlcGWjRWwgNDeXRmEcR+ghg2q8tCc7OPkvTtk05e/asW9Pn63jN1rEKufGErTBv3LjBhx9+yJdffmluWYWFhTF9+nS6du0qSRoD/QLZ0mMLXx78UrJ9s7NjGgrKvl3risMr+L3n705vCGUPeZWV3IsMPaEeOcK52+fQhGnQ/U8HB4HfgDQ4+udRatWqRUxMDB988AHFixeXTNNefHGYCpQeh1fjzq63Kdx5jRo1WLBgAaIoUqRIESZMmMDx48d54YUXJPvRiKKIv9pfNpdXa0NBJ26cYOH+hZJp2EJez1PKRYb26DpLfhP6UmiaDaoKaAS8AzwKao2azMxMpkyZQkREBEuWLMFoNCpDVRKiGA4Fu/n111+pW7cuQ4cONW/I88Ybb5CQkMAHH3xAYKB3rWOwNhSkElQkpiS6J0E5kHKRoauwdULfGW+xXAY1UEXDHg05EH+AZ555BoBr167Ru3dvmjVrxq5duyTNY2FGGaryYlzdDT558iQxMTH8+uuv5mNNmzZl9uzZPPLII7Lpyp1Pa0NBOlFHWMkwWXVzkl8+TfM9rtZ1lOy9OKOY5RFnmtCPaR6DIAik69JptayVxRDh8sPL2dFnh01G0WRQ5+2bl2sI88cff+TXX38lJiaGkydPsm/fPlq1akX37t2ZNm2a2a1XbpShKgWPw1Xd4JSUFIYOHUqdOnXMRqNChQosXbqUXbt2yWo0QP58WhsKqhdSj+j60bJpWsOXQo4UNKEviiJxB+Kc9hbLb9V+x44dOXz4MLNnzzYvMl25ciWRkZF8/PHHpKfLvxbGV4eqlB6HFXQ6HXq93vzABUFAFEXzv9mPARbbX9pzXUGfC/pep9NZbdFIpaHX61m0aBFjxozh5s2bQFY4iHfeeYdRo0ZRtGhRDAaDefxYijzl/Gx6HtnzKbWGVtDyxxt/sOjgIhJTEgkLDqNX3V6oUZu1pc5TXuUNILiwDoE0dTZnnsKDwlGjRqvSIiJixIhG0BAeFI5er0en03Hp9iWKqouiN+oxYkRFluFOTE5Ep9NJVt5vv/02L730EmPGjCEuLo60tDRGjx7NwoULmTx5Mi+99JLVZ5LXc7KnvPPLhxzP16QHWb+bnOfkl6fs1xaE0uMAYmNjqVWrlks3CpICORcXbdu2jWbNmjFgwACz0ejSpQsHDx5k3LhxFCtWTBZda7hiEVWgNpCBzQYy7clpDGg6gABtQKFZLCaHbnSDaOqEWLpQ1wmpQ3TDaLNmleAqVr3FqpasKmlaICuQ5meffcbu3btp3bo1ABcvXuS1116jTZs2HDx4UHJN8N0FgILoi/0oB0lNTSUoKIg7d+5QokQJm6/T6/X8/PPPADz99NNoNK7pyJlaCFK6jCYmJjJixAi+++4787E6deowe/ZsnnjiCVk0C6LQaP778tI2aOAyTZAvr+m6dKvzDybNDF0GrZZbznHUL1dftol/Uz41Gg1r165l+PDhnD9/Hsh6wfft25cJEyYQEhIiuaar6pEz7yJ73n/KUJUXI2VL5t69e3zyySdMnz7dHLq6dOnSTJgwgb59+5oroDOa+b1I8qOw+N+7q2Vqr66tzzG/CX1BEAj0y3tyWw5M+RQEga5du9KpUydmzpzJxIkTuX//Pl9++SWrVq1i9OjRDBo0CD8/P8k0fQ3FcHgxUnQWjUYj33zzDSNHjuTKlStA1raeAwcOZMyYMeY9oZ3VtLbIzlYPGndNGBcGTXt1nXmO1jTl9BbLS9NEQEAA77//Pj179uT9999n2bJlpKamMnz4cObPn8/MmTPp1KmTUy9/Xx3QUeY4CjHbd26nWt1qvPHGG2aj0aFDBw4fPsysWbNyGQ1nkDvekoJr8MXnWLFiRZYuXcru3btp1qwZAKdPn+aZZ56hU6dOnDhxws0p9DwUw+HFODrxduXKFV5/43VatWjFhWNZcaUoDdUGVGPN+jXUqlVLck1n4i05oulsGHJ3TGrKqZlfedijK1XcLE8s32bNmrFz506WL19OxYoVgazFrnXq1GHIkCHcvn1bck1vRRmq8mLs7QZnZGRYjOkC4A+0AppCojaR+fvn5zt04GjX25l4S/ZqSjGc4ktDVQWVhz26zjzH7HMj4UHhRDeIprimuN35cRRb8qlSqXj99dfp0qWLxZzf7Nmz+eqrr3LN+Umh6Y0oPY5CgCiKrF27llq1ajFq1KgsoyGA0EiAQcCjgEbeiKtyx1vKji8OpziDlOXh6HPMGYLkw60f0v6r9h67IVWxYsWYMGECJ06c4MUXs8K337p1i7feeouGDRuydetWN6fQvSiGw4uxpRt85MgR2rVrR9euXc2uhy1btmTooqEIzwqQbTmGLS1HR7vezsRbsldTiuEUTxxKcZSCysMeXUefY07jpRf1HE467FJj7kj5Vq1aldWrV7N161bq1q0LZP2m2rRpwwsvvGD+TUmp6Q0oQ1VeTH7d4Js3bzJ69Gjmz5+P0ZgVK6hKlSpMmzaNl156iQx9BlsXbbUYvqgbUhedUcegDYPydI10puvtqAeNvZpShCH3paGqgsrDXl1HnqPJeJniVqlQoRW0Lt1TJK982uJe3Lp1aw4cOMDChQv58MMPuXnzJmvWrOHnn39m2LBhvP/++1YXxSpDVQpegU6n47PPPqNGjRrMnTsXo9FIYGAg48aN48SJE3Tr1i3Lhz5Hy3FSm0mIiLz/2/uybE/qSlw5LOYNe4G7sjzyQu49RRzFnm151Wq1eTfLmJgYNBoNDx48YNKkSURERLBs2TJzI83XUVaOZ8PbVo6bYhuZ9DZu3EhMTIyF++Crr77KJ598QuXKlfO918xdMxm+ebi5RQhZocWnt59u0brMqekKHNF0dLGhPZrWJp3rlatn95oGs2Z8fJZm/fqS5qWge7jimeYsK42goW5IXbb23uqy8PDW8mlrvbfGyZMnGTp0KL/88ov5WM5o0a7+vSgrxxUKxGTzExISGDZsGD/99JP5u0aNGjF79mxatGhh071yDiWA9XkBdw7h2PMCdXZhmS35LCh0uBSaUi24y688XPFMc4ZAN3lVuXJPEWv5tLXeW6NmzZps2LCBDRs2EBMTQ0JCAnv27KF58+a88cYbTJ48WdLwJZ6EMlTlxdy5c4f33nuP2rVrm41GuXLlWLRoEXv27LHZaIDnDiWYyNBn2Dyk4CpcsRe4L3mIZQ+Bbgok6W6kqPedOnXiyJEjzJgxw9xSX758OZGRkXzyySdkZHjO/vVSoRgOL8RgMLBw4UKioqKYMWMGOp0OPz8/Ro4cSUJCAr1790alsu/R2joO7i5vIyn2brBXs6B8Sm1srWm6wjj5kgeZvZp51fue9XraNXfl5+dHTEwMp0+f5n//+x+CIHD//n1Gjx5N3bp1+f77731qolwZqvIy/vzzTwYPHmwRBvq5555j+vTpVK9e3eH75rebWnbcNVSVmJKY75CCFPMAOTULon/j/iw/vDxXdFdHJ52tabqiJ+hLHmT2alqr9z3r9aTd8nYODQ+GhIQwf/583nrrLQYPHsz27dtJTEzkxRdfpHXr1syaNYt69erJlUWXoRgOL+HixYu8++67rFq1ynysVq1afPrpp3Ts2FESDVvmBdwVNTYsOCzPF6hU8wA5NQvCVmPrjKbUxslWXbnxJM2c9X7mrplOz13Vr1+fP/74g2+//ZaRI0dy4cIF/vjjDxo2bMibb77Jxx9/TNmyZZ3PlJtQhqo8nPv37zNmzBgiIyPNRqNkyZLMmTOHffv20bZtW5emRxTl3wrTmotrdMPoPIfS5JgHsDWf+W1dKoWmMwsnndGVG0/WlDIeV9euXTl8+DAff/wxRYoUwWg0Mn/+fGrUqMGsWbPs2nXPk1B6HB6KKIqsXLmSd999l3/++QfI8iN/6623GDt2LKVLl/baSpcf1noPq46sYvPrm/Ns3TvjGeMNuDL0uIJ0w4PpunTm75lPYkoioW1DiX8tnnEfjePrr7/mzp07xMTEMH/+fGbMmMFTTz0lZRZkRzEcHsi+ffsYPHgwO3fuNB9r164dM2fOpHbt2uZjntTdlwprLq6Hkw4TFx/HkEeHWH2ByjEP4Itl60m6nqwpxfCgqQF08sZJ1KhJM6axvNxydizewYABAxg8eDB79+7l5MmTdOrUiU6dOjFjxgwiIyMdzZ5LUYaqPIhr167Rp08fmjZtajYa4eHh/PDDD2zatMnCaIBnd/cdxdowgVbQkng7Mc9r5FgZ7Ytl60m6nqwpxfCgqQGEmNWIyT582rx5c3bv3s2SJUsoX748ABs2bKB27doMGzaMlJQUR7PoMpQehwdgCts8YcIE7t69C2RF5/zoo48YPHgw/v7+bk6h68ir9xAWHJbnNVJPUitYIrXHmjfg7PBgQfMkKpWKnj170rVrVyZNmsSMGTPIzMxkxowZLF++nAkTJhAdHY1arbZ2e7ej9DjciCiK/PDDD0RFRTFy5Eju3r2LIAj07t2b06dP8+677+ZrNDzFF15KrPUeaofUJrphdL7XSTlJDb5Zto7o2hPLSSpNuXClpqkBZPz3D1gfPi1evDiTJ0/m+PHjPP/88wDcuHGDfv360ahRI7Zt2+aS9NqLYjjcxNGjR3nyySfp0qULZ8+eBeDRRx9lz549LFq0yNyFzQ9P7u47irVhgs2vbyZA49pVxr5Yto7oyrVy3dfL19QA0gga/FX+BQ6fhoeHs2bNGrZs2WIekj506BCtW7emW7duJCYmuiTdtqIMVbmY5ORkxowZw9y5czEYsoZkHnroIaZOnUr37t19Mna/veQcJvBF7zFX4+hwk697rMmFqQFk9qoqFWpTmbdt25aDBw+yYMECPvroI5KTk1m9ejU//vgjw4cP57333qNo0aIuykXeKIbDRej1eubPn8/o0aNJTk4GICAggJEjRzJixAiHKoMne6YUZk1HX9Jy7jee3wLJ/HTlWrkudV5tKXNHNZ2a4xFAxL5ejkaj4e2336Z79+6MGzeO2NhYMjIymDBhAnPmz6Fpz6Z0fL4jbzV5y21zTUpY9WzIFVZ9y5YtDBkyhGPHjpmPvfzyy0yZMoXQ0FCLc+2ppKaWuFartTmtzuIJmq6YrHU0n86EWtf9G0ZG26CBY4nOg4JCh+eXV2v5qV+uvtOLEKWsR7aWuSOajj5P03UJNxJQC2ruGe45HHL/+PHjvDP4HX7b8tt/BytDxGsRxI+Pt7ifq8KqK3McMnLmzBm6dOlC+/btzUajQYMGbN++nZUrV1o1Gp4WAdbT8PQy8sRots6shHbFynVnkbPMHb236TqDaCDTmOlUmmrVqkWncZ0QXhWg1L8HL0HCJwm06tKKq1evOpAz53BoqOrixYtcuHCBtLQ0ypYtS1RUlE+5jOp0OvR6vXkiTRAERFE0/5v9GGCeq4Asi3/nzh0mT57MnDlzyMzMBLKCn40fP55evXqhUqnQ6XS57jd/z3xO3TiFn+CHgIBaUHPqxinm75nPwGYDc2nr9Xqr3e+80mntsz3nmvLqyHWO6pnK1JTP+XvmcyLpBAFCACIiKkFFwo0EizKSIm2mfNp7XWJyIsXUxdAb9ehFPWpBjValJTE5MddcTYY+g7gDcSSmJBJWMozeqib4a/wR7Kh7tqQtPCgcP8EPlUqFytRWFCA8KBydTmc1r9nvpRW0DGw80OL7nPXXhK1py1l3nalDF5IvUExdjAfGB+b8qQU1F5IvWKQz++/U1rp3IfkCRVRFzMN1BtFAoDqQC8kX8n1HmK7TClm9GxERf5V/gdfllZ6Lty9S9OGi6Kvr0e/Wo9+mhwewd8NeIiIieO+99xg8eLCF+65Op8t17/zyb89cos2GIzExkblz57Jy5Ur++ecfi4T4+fnRsmVL/ve///HCCy/YHdLb3cTGxhIbG2tRsRzBaDSybNkyRo8ezfXr14GsbvGgQYN4//33CQoKsvoQTeQVATYxJdHq+Z7mgSOnpglTGWU/ll8ZOaPpSD6rlqxqdU6gasmqFscydBm0+6odx5KOoRbUZBoziTdEMbvjbMknHqMbRrPy2EoOJx1GK2gxiIYsF+cGWS7O7n6mzmI1ACa51/44ohkWHIYB+9YVZb/ODz+7rivofoJGQPOYBnV9NYbfDBgOGLh37x4ffvghixYtYtKkSfj7+8s+L2jTHMc777zD0qVL6dChA507d6Zp06ZUrFiRwMBAkpOTOXr0KH/++ScrV65ErVazePFimjRpImvC5cCZOY7p06ezcOFCs2stwDPPPMOnn35KRESETfexdxtLb9nGVUpNZ7b6dFTTHmydE7CWj8Y3A3in6Tu88cYUaTKRI13u3Do2J1Jq2lrmjm5B7Mgcj+m6UzdOoRbU3Dfcd2puKK90zGkwh5HDRvLXX3+Zz61Tpw7R0dEMGDBAtjkOmwzH+++/z/DhwyldunSB4r/++itpaWl07drV5gR7Co4aju3bt9OqVSvz/2vWrMnMmTPtDndubyX1hIlqV2vKNVmbn6a92DJ5P2jDIObvn4/O+N/wQNNbRXg+8nneG/CVc4m3E3c/UymwpcydcXhwxBnDIsihje64jqRDFEW+/fZbRowYwaVLl4CsleknT56kRo0aNt9fcsNRWHDUcGzatIkOHToAMHbsWEaNGuXwD0LxqipY05O9qmzFWo+jyc1ABjUdJEuPIz884Zkqms6TlpbG8OHDmTt3LpC1yDgqKsrm6+15/9ndT0xPT0cURYoUKQLAhQsXWLt2LQ8//LD55VmY6dKli1OVxJ4YOd62vkEqTVeEGZc7n9YisFYvVZ2uD7u+p+4Jz9TTNT1tbY41ihQpwjPPPGM2HHJit+F47rnn6Nq1K/379yclJYVmzZqh1Wq5efMmM2bM4K233pIjnQpWcNfkuKLpPNYCM/5P8yh+ar+CL5YYXyxfKTWd2WHSVwd07HZ/OnDgAC1btgTgu+++o1y5cly4cIFly5bx2WefSZ5ABQVfJWdgRj+N642GQsF44tocd2N3jyMtLY3ixYsDWWP7Xbt2RaVS8cgjj3DhwgXJE6iQN97W3Vc0PU/TXbrepOlMvC5fjT1nt+GoXr0669at4/nnn2fjxo3ExGSNNSclJdk1oazgPN7U3XeVplQT556eT2/X9QRNW+uKM/G6fHWoym7DMXr0aF599VViYmJo27YtzZs3B7J6Hw0kjrGjoGAPzoxFK3gXzjYQ7KkrUmwl62vYbThefPFFHnvsMa5evUq9evXMx9u2bWveiETBNXhTd98Vmtb2KzeNRdvrheXJ+fQFXWc9nBxpIGTXtKeuOLPDpDJURZZPcmBgIPHx8bl6F02bNpU0YQoF4wndfU/SlHLvCE/Opy/oOqPpaAMhu6a9dcVRF3BfHaqyy6tKq9VSpUoVp2M6KSjIgVx7Ryh4Fs5E+zWh1BXnsNsd94MPPmDUqFHmzYgUFDwFa/uVF/axaF9Eipe+Ulecw+45js8//5wzZ85QsWJFQkNDc+1cd+DAAckSp6BgD86MRSt4D1JMVit1xTnsNhxdunSRIRkKjuBtk5qu0JQqHImn59PbdZ3RdPSl74uha9yF3YZjzJgxcqRDwQG8bVLTHrK7W4YHhRPdIJrimuIu0QbfLtu8dF0RPDKnpqM48tIvTM9UbhwKhp+SksJ3333H2bNnGTFiBKVKleLAgQOUK1eOSpUqSZ1GhUJGTndLP8GPlcdWsrX3VmUoQSYydBm0Wt5KWQOjYBN2T44fPnyYiIgIpkyZwvTp00lJSQFgzZo1vP/++1KnTyEfBEFweVfYFZo5YwPpjDqXxwby1bLNSzcuPs6l8ZgKS/m665nKjd2GY+jQofTq1YvTp08TEBBgPt6pUye2b98uaeIU8sddW37KrZnT3VIjaPBX+Tu0HsNRfLVs89JNvJ3otIurvZqFoXzd9Uzlxu6hqr179zJ//vxcxytVqsS1a9ckSZRC4Sanu6WIiF7UKz72MmJ1324fWNdgba7MlRs5+Sp2Gw5/f39SU1NzHU9ISKBs2bKSJErBNjzVG8bZSdac7pYIUDuktkt97D21bOXSjW4YzbKjy1wWj8kVec05V6YRNKw4toI/ev/hsnkbXxymAgcMx7PPPsv48eP59ttvgayCuXjxIiNHjuSFF16QPIEKeeOJXiJSBBrM6W5paim6cpLWE8tWTt0ATYBL1zW4Iq85Q5NoVBqOJR1zKHaZo1jLpyu91+TCbsPx6aef8uKLLxISEkJ6ejqtWrXi2rVrNG/enIkTJ8qRRgUvQqpAg9ndLU37NivIiyvWNbiSnPGoRERUgsqlc2U58ZUIznYbjqCgIDZv3syOHTs4dOgQ9+7do2HDhrRr106O9Cnkg7PdYEdaPgVpShlo0FZNOSgsmu7SdYWmJ8SjyplPKSM4uxO7DceyZct4+eWXadGiBS1atDAfz8zMZOXKlfTo0UPSBCrkjTPdfUdbPgVpyvFjLSzDRnJpFtRA8KW8ZifnXJlaUFMnpI5L58py5lOOhpU7sNtw9O7dm44dOxISEmJx/O7du/Tu3VsxHC7EmVaboy2fgjTl2PTGU1vEUo9Vy5FPWxoIcunmVzaueKZW58oaunauLGc+PaEXJAV2Gw5RFK0+9H/++YegoCBJElXYcPQF5EyrzdGWT0GacgSP88QWsRxj1XLk05YGgtS6tpSNq56pu+fKcubTV3YTtNlwNGjQwLwKsm3btmg0/11qMBg4f/48HTt2lCWRrkan06HX680PXRAEs8HMeQyw2J/EYDCYK2hB1wmCQHpmOu2/as/hpMNoBS16Uc/KIyvZ8voWAv0C87xOFEV0Op1VI5793AeGByzcv5DElETCSoYRXT+aAG0A4UHh+Al+qFVZi74EBBAgPCjcfF9r2qZyyS9PGjQMbDzQ7uusfTY9j+z5LOg6ezWsXWft+Wf/PH/PfE7dOIW/4I+IiFpQk3Ajgfl75zOgyYAC82Tte71en/XZjrpX0OcLyRcoqi6K3qjHiBEVWWHEE5MTzfXUnrpuS57m75lPwo0ENKY/goaTN04yf898BjQdgCAIdj9TR9KWnplO3MG4rLofHEbPOj0J0AY4lCdH05bzXaBBw7Ye24g78F+6+jTog1bQ5jrXET1THTI915y/5fzyZI9htdlwmKLixsfH06FDB4oVK2b+zs/Pj7CwMK91x42NjSU2NtYtG1TFHYzjaNLRrFAPog4RkaNJR4k7GMfAZgPzvbagcAYZugzaLm/LiRsnUAkqdKKOlUdXsvmNzUQ3jGblsZUcSTpi7nnUDqlNdIPoAjVdjbtCReRHYkrWSmu9+N8PVS2oOX/7vGyajpDXwr6qJavKpmsqGx3/vYjUqElMSbTQlPOZpuuyGmTZ6/d3x7/jx+4/UkxTrOAbSIS1PAZqAxnQNHfjwhYydBkWxjC6YTQBmoCCL5QYmw2HKSpuWFgYL7/8skW4EW9nwIABDBgwgNTUVIKCgtBqtRY9qoJQq9UWn+1ZmXr2zlkyxUx0xv9+ZFqVlrN3ztqchrz0Pt/3Ofuv77cYjtp7bS8L4xcS0zyGrb23OjykZEvarA7BaRwfsnLHit+8NENLhXLfcN+ibDPFTMJKhTmcTvHfemRP3SuIfk37WSzs04k66ofUp1+TfrnSKVX5hpYK5Z7hHkbRSKaYCYBKUBFaKtSsYXpZyvVMP9/3OXuv7bV4PvHX41l6eClDWgyRRdMapnxK8UzTdem5AlEuO7rMYggwu45Go7GrfO051+7c9OzZk5SUFL766islOq4EyDlZVtA8hpx++77ir54XjoxVu2Phlzs2LPKEcfy86n72Xo+3MW/fPOKvxSMimvMVfy3eLa68dhuOw4cP065dO4KCgkhMTOTNN9+kVKlSrFmzhosXL7Js2TI50umzOPMjK6irL4dRsnV4QUp/dU/0qrL3hewu7yZTWp3xlHNEr6CykfuZWqv7OlFHWMkwWXVzImU+E24lIGI5rCUiknArQTINW7HbcMTExNCrVy+mTp1K8eL/bazTqVMnXn31VUkTVxhwpkVY0NioHC0/W8djpfRX90SvKrCvx+YO7yZbkUO3oLKRO6/W6n69kHpE189/Dk9qpMzn1XtX7TouJ3Ybjn379rFgwYJcx5XouI4j15CRO/dV9hV/danwlYVf3oK1ut+3Xl+zV5U3UqFYBQQEi16HgECFYhVcnhYlOq4XY0s3WGqjZGvXW8rejicOVdmLLYZUCTkiLTnrfnZXVVchZT4jSkfk8sISBIGI0hGSadiK3Rs5maLjZvc5VqLjugdP3pjG1OKb3n46/Rr1Y3r76fzV5y+HejuenE9b6d+4P/XK1UMlZK2jUAmqXIbUnRs5eXv5FgZNW+qQq1Ci4yrIhq9FW3UGdw4bFkSGPoO4A3GcvXPWo9KlYIkn1SGHo+P+9ddfHD58WImO60Z8dYjBVzVd7d1kC+m6dNotb8fRpKPoRJ3L3KZ95Zm6WtNTGmMOr0p57LHHeOyxx6RMi4KdeKq3kaLpPZrz9s3jeNJxEDEvQnVFmO/CUr7u8pSTG4cMx969e9m6dStJSUkYjUaL72bMmCFJwhQKxhdaUIqm9Jr2LDQ8d/scgiC43NvLm8vX0zVdgd2GY9KkSXz44YdERkZSrly5XIHKFFxHYWlBKZq2Y++KfXe5TXtr+XqDpiuw23DMnj2bRYsW0atXLxmSo6Cg4Az2rtjv37g/q46s4mjSUbQqrdeG+VZwLXYbDpVKZbHzn4L7KCxdb0/RlDvWlBT5tHehYaA2kM1vbCbuYBxnU1znVeUpz9QXNV2BQyFHYmNjmTVrlgzJUbCHwtL19gRNVwRtlCKfjgw9BWgCGNBkgEujD3vCM/VVTVdgt+EYPnw4Tz/9NOHh4dSqVStXZVuzZo1kiVNQ8BSkDNooJ54QmVbB97HbcLzzzjts3bqVJ554gtKlS/tsV8wbKCxdb0/QdEWsKSny6cgisYJ05Rii84Rn6quarsBuw7F06VK+//57nn76aTnSo2AHhaXr7QmarvA+kiqf9i4Sy09XriE6T3imvqrpCuyOVVWqVCnCw8PlSIuCgsfiSXGCXEn2ITqdUYdRNJqH6BRyk65LZ+aumQzaMIiZu2aSoctwd5Jkwe4ex9ixYxkzZgyLFy+mSJEicqRJwUYKS9fbEzTlihNkFI3o0WPAgE5IR0RELd5D/e8fLVrZ85/f/eUaovOEZyo11npnK4+sZMsbW9yy7bGc2G04PvvsM86ePUu5cuUIC8u9v/KBAwckS5xC/hSWrrenaDobJ8goGrnNbW6IN7gp3iRJTOIWtzCS9VIuyWUAbhuOmq/RoKEMZSgrlKWsUJYyQhmCCZb0JZhf+co1ROcpz1RKrDlQHEs6RtyBOJfuc+4K7DYcXbp0kSEZCgq+SbKYTIIxgcviZZJJNhsJFSrz5/zQo+ca10gSk8wvIzVqylCGSkIlIlWRlBBKyJZ+R720pJ5Qd8d+7fZirXemElRevc95XthtOMaMGSNHOhQcwFsXqfm6ZqaYyWnxNCeMJ7jFrVy7tgE2GY28zjdg4DrXSRKTOGA4QHnKU1NVk+pCddSC2u705pdXR/ZWn7NnDtN2TuNW2q2sFylGp/ZXl2qC3h37nBtEA2HBYbLqugObDIcoij7rVubNeOsiNV/VvC/e56jxKEfFo+j5b7e5nEZDKkz3vc51rhmvsZvd1FHVoZZQiwDB9i1SC8qrrUN0pvoXfy3enDa9mFUOzuyvLtUaGnfsc143pC7RDVy7z7krsMmrKioqipUrV5KZmZnveadPn+att97ik08+kSRxCvkjCIKFQXeFB0xOTVfg6Zp6Uc/fhr/52vA1h8RDFkbDFZhe0hlksM+4j68MXxFvjLcYMskPqcrXVP+sGcqcE+r2aJqGgPK7ny3IXY+s7Xq56Y1NBPp51pCaFNjU45gzZw4jR47k7bffpn379jRu3JiKFSsSEBDA7du3OX78OH/99RfHjh1j4MCBvPXWW3KnW4HcLShXLFLzlta/qzSTxCR+N/zOHe7InCLbEBExYOBv49+c4xxt1G0IFoLzv0ai8rVW/0zknFC3R1OqCXpX1KOcvTOdTmfW9YZ5GluxyXC0bduWffv28ddff7Fq1Sq+/vprLly4QHp6OmXKlKFBgwb06NGD1157jZIlS8qdZoU8cFeI7MKIQTSwz7iPeDEeAc8cxr3JTVYbVtNU1ZQ6Qh1Ugt3LtuzCWv0DEBCcWvPiC2FUnBlG9kSDY9fkeGHZ9U+n06HX680tBUEQzPM8OY8BGAz//VjSHqQxa8csElMSCQsOo0+DPhTxK2L1uoI+F/S9Xq+36Hr3rd+XVUdWcTjpMFohK0R2VNkooutFo9PpHNKwlldHrnNUD8iVT6k1rF1nyqe1c5PEJLaxjVQhFZBvDsNZxH//7Dbs5ixneVx4nCAxCLD+TLMfd+Q59a3Xl5VHVnIs6RhqQc0DwwPKFS3HwCYD6d+kPxo05npozzPVoGFbj23EHYgz/66iG0ajQWP+nWboMoiLjyPx9n/fB2gCLO6X/Xdqa55sPTevctPrs4Yt5x+cT8KNBPwFf4wY0QgaTt04xfw98xnQdECe983QZ9B+eXuOJh01O1msOrKKzW9sJkATkKceZP1ucv7u88uTTqezVo2s4vDWsb5EbGwssbGxFhXLUQZsGECCJgGVoMIgGlh1bBXru6/n6yNfZ1X6kmFE148mQGv75GVe5KwMAZoANr++2eIH1LdRX/zV/k5rZdd09dCRu4aqrOke5zi72OWxvQyrCHBTvMla1tKa1oQRZvG1VM80QBvAlje2/PeCLxlGn/p9CNQGkqHPIHZPrPnF37NOT7t+AwGaAAY2G5jr5QyQocug/VftLRpMK46tYMvrWyw03Dnkef72eavDyAW56sYdjONo0tEsxwCMqFBxJOkIcQfiGNB0gJxJzxfFcAADBgxgwIABpKamEhQUhFarRaOxvWjU6v8m7o7fOs6DMg/M/99zbQ8NFjbg6r2r5i7qsiPLsrqoGmm6m9kXYWq1WoY8OkSS++aHPeUjFdnzabX7LlF5WtMURZGD4kH2GveC4Lm9jLwQhazex+/C77RWtSZSFZnrHClWN2u12lyL3dJ16bRa1spimGbVsVVsfH2jJEMuC/cuZO+1vRhFI+mkA7Dv2j4WHlpo1evKHeHjw0qFcc9wz3KNh6gitFRovuk5m3KWTDHTvB88gFal5eyds1avy/671Gg0duXVnnMVwyExqhyOagICl+9mrQh2Nhx3zpflmw3eNHfHXYUjXinOjtHm1HSF23F2TVEU+dv4N4fEQ5Lc2938YfyDTDKpo6oDyL++wZo7bfz1eBbFL5KkkWOrU4g71wM5Ok/jqfOWiuGQmJwLuwyiAZWgctrTydrLctWRVWx+fTPFNcUlSbst2Nvdl+Iln1PTFXtjZNfcZ9znM0bDxE7jTtSoqaWqJfsQjrUXu5/Kj8TbiZLc39aXqzuHqhyNdeapjgGK4ZCYGqVrcFw4bn7IFYpV4MrdKxbnONJisPayPJp0lLiDnh0HR46XfF5un4vjFwNI6nVy2HiYA6Jvxl/70/gnfvgRSqjN1zjSe5R7RbWnvlxz4kisM7mCazqLQ4bj7NmzLF68mLNnzzJ79mxCQkL45ZdfqFKlClFRUVKn0auI6xzHjswd5ofcs15P2i1v53SltvayFBA4n3Je6izki73dfSnWluTUtPYiMopGjt84zvDNwyUZthIEgfOcZ5dxl8P38AZ+N/5OJ6ET5Slf4LmO9h6tvdhrh9QmuqE0K6ptfbl6W+gaE84G15QDuw3Htm3beOqpp2jRogXbt29n4sSJhISEcOjQIeLi4vjuu+/kSKfX4K/xJ6aR5UOWosVg7WUpIlI1uKrTabYHe7v7UozR5tTM/iKC/+aOTDpSDFvdF+/zJ3/iTc5TjvKH+Add6YqmgNeBo71Hay/2vvX6Sjo/Z8vL1ZMXknobdhuO9957jwkTJjB06FCKF/9vbL1NmzZ8/vnnkibOV5CixWCt1VYnpI5krTa5kGMYIfuLaHH8Yo7fOG5hnJxdLS+KIjvY4fLQIe5ARCSNNPazn5a0zPdcZ3qP1lZUK3gvdhuOI0eO8M033+Q6HhISws2bNyVJlEJurLba6kvbajMh5UpVucZos7+Ihm8ebvGds14nZ8QzXBIuOZU+b0IURI5znHAxnIpCxTzP81QPHwXXY7fhCA4O5urVq1StajlEcvDgQSpVqiRZwhRy44pWmxyurnKO0Urdo7kv3udP45+FLiK0IApsNWylm7obWsG6P7+3TEIryI/dhqN79+6MHDmS1atXIwgCRqORHTt2MHz4cHr06CFHGhXyQI4XW0Hj2J42wShlj0YURbYbtqNHX6iMBmT1Ou5zn7+Nf/OY2npYISnL2tPqkS9opuvSWX9qvfn/D/QP8jnbOew2HJMmTWLAgAFUrlwZg8FArVq1MBgMvPrqq3z44YdypFEhD+SYeCtoHNsTJxil6tGcF89zkYtO38dbERE5Jh4jQowgRAixeo5UZe2J9cibNU0jBcfij5mP9fqhF3/X+lsW1127w2X6+fnx5Zdfcu7cOX766Se++uorTp48yfLlyy1Cbyh4J4V1HFsURQ4YD3hXDCoZEBA4aDjo7mQo2Il5L5RshirhVoKke/Fkx+EFgJUrV6Zy5cpSpkXBTuToBhc0ju2r3f2rXOUWt2TX8XRERBJJ5I54hyAhSDYdX61H7tK0utkV0u7Fkx27exwvvPACU6ZMyXV86tSpvPTSS5IkSsE25IhUa20Xs7/6/GXu7rorOq7cmocMhwp9b8OEgMBh42FZNXy1HrlL0+pIAfKNFNhtOLZv306nTp1yHX/qqafYvn27JIlScC+mcew5neYQ0zzG7eEN5Oa+eJ+LXPS6iLdyISKSICagE5W1Ft5C/8b9qVeunkUPJ7J0pGweb3Ybjnv37uHn55fruFarJTU1VZJEKdiGp+/F7S2aCWKC0tvIgR49iWKibPf3xXrkTk3TSEHv+r3NxxY/t1i2Rp/dhqNOnTqsWrUq1/GVK1dSq1YtSRKlYBu+3PV2laYoipw0nlR6GzkQEDhpPCnb/X2tHnmCZqA2kGcjnzX/318j3QZuObF7cvyjjz6ia9eunD17ljZt2gDw22+/sWLFClavXi15AhUKN+m6dObvmU9iSiKhpUIljwyaQgqpKD3lnIiIXOEKmWImfkLuEQYFafDE/cRtwW7D0blzZ9atW8ekSZP47rvvCAwMpG7dumzZsoVWrVrJkUaFPPBlLxH4zzf91I1TqAU19w33Jd+w6YZ4Q5L7+Co3uUlF8g5D4ii+Xndt0XTFhmRy4ZA77tNPP83TTz8tdVoU7MSXFjRZa3mZfNP9BX/0oh6jaLQajdWZVttN8SYqVLk24FLIGq66Kd7MN36VoxRUj+RoiXva78UVG5LJhcPrODIzM0lKSsJotPzBValSxelEKdiGp7WgHCWvllezSs1QC2qL+Yec0VidbbUliUlZP1plbtwqzvTI8nv5u6Ml7mm/Fyn2qnEXdhuO06dP06dPH3bu3Glx3BQUzmAw5HGlgtR4WgvKUfJqeVUJqoJBNFgsbMq5it2ZVpsoitzkpmI08kBEJElMcujagl7+7miJe9rvRaooDdkNtO6Ua1yo7TYcvXr1QqPR8NNPP1GhQoVCFwxOQXryanlVKFaBeuXqkXAjAbWgJlPMzBWN1ZlWWwopGFAaOvmRSqpDE+TOvPy9uSVuD1JEG85poIUzrnkf22044uPj2b9/PzVr1pQjPQp24Gldb0fJq+UVUTqCGR1mMH/vfM7fPk9YqbBcY93OtNpuisr+MbZwi1tUoIJd1xT08s+vHskVL03O30tew3LORHa2ZZ4np4HWitZD4kuN3YajVq1ayoZNHoKndb0dJb+WV6A2kAFNBgBZi0ztubYgUsQUBARlDUcBpIgpVBDsMxwFvfzzq0dy7fshp2NHXsNyBW3Hm1e0YVvneawZaFdgt+GYMmUK7777LpMmTaJOnTq5fswlSpSQLHEKhQNb9nnI0GXw+b7Pc33vzB4RevSK4SgAAcGhLXSdefnLtWukXOQ3LDew8UDJ75nd0Fgz0K7AbsPRrl07ANq2bWtxXJkcdz2+MlQF+e/zkKHPoN1X7dh3bZ/V1peje0QUhj3FpcDReaCXo16mqLYoAJ0jOzOo6SCbvKpAnl0j5aq7+Q3LOapp6zxPTgPtqneC3YZj69atcqTDY4gCjIcPoy9WzNy1FQTBbBhzHgMIPHuWqH+v1546he5fF+WCrivoc0Hf6/VZO9WJOfZBkVIj52eDwZD1WauVJU85PwP8cHgVmqMnaWDM6t0aRBHNjZN8t3Isr9R5xWENPzGBYP5BFDyjx1HijGMeTHIiiAIa4SQ6G56T6dgD3QPe/OlNTt06hZ/KD4No4OCFFIx+rdBp/BAEAZ1OZ1F35axDps+mRq2oVttc92y5b9NbRdidpEYUVebeq1pQ0zS5CLqD/+5tUsDvJeexpreK8HeSBr0IKlNkKAGa3sq6p+l8rSDwZ6O5rDmxhsupl8ksm8m3ZEXw0Jw8iS4z0+Y8Ge/fz7si5MBuw+GLq8NjY2OJjY3FYDDgmqklBXu4eu8qKsEyrJpaUHM59bJT91UCGxaMI2W05uQaziSfwSga0Rv1iIicTj7NmpNr6F67uwyptCRTn8maU2u4fOcylUpUouvDXfFTyxc2pevDXdlwZgNnk89mbactGqlRqgZda3bF0VHQrjW78suZX0hITkAjaDCKRqqXqp51zxz4qf3oXrs7giDwp/FPs+GQE4cXAKalpXHx4kUyMzMtjtetW9fpRLmaAQMGMGDAAFJTUwkKCkJVty4aO+Zq0m/cwLRhoy4yEm29evIkNAeCPmuoRaNx+DF6haY2vQH7b68m3fDfHsoqIY1uDRuhqV/f4ftmGu6RIho8btX47dqV3J0EMwICelVNtKr6Nl+z50oc8SF6dEY9/DscqFVp2VM6jTcaNMg6SaZ6lK5Lp2X2SeVbBmambWZHnx1oBa0smlpgUb09Vudk9A7mUwPE1f/b7nme9CtXzO8ifc2aaKOi8j0/Oyo7opvbXYI3btygd+/e/PLLL1a/V+Y4XIeveFUVRHT9aFYeXcnea3sl9bJRo2x1XBAiYoGeQTmxxZ1Wrnokx0S1LeQ1J+NMPuWY55EKu8OqDxkyhJSUFP7++28CAwP59ddfWbp0KTVq1GD9+vVypFGhkBOgDWDzG5vz3JXQUbSCVvGosgF7DYdpUyGVoEKr0qISVJIYeluwuoWqmxYPpuvSid0Ty4hNI5i5aybpunSXp0Eu7O5x/P777/zwww80btwYlUpFaGgo7du3p0SJEkyePFkJfuhCfMmrqiBNOVpfpSilGA4bKCWUsut8W9xp5apH+fV2fC2yszux23Dcv3+fkJAQAEqWLMmNGzeIiIigTp06HDhwQPIEKvxHzpWk0fWiXV4JfWl4rKxQVpb7+hICAqWwz3BAwcMscj3T/NaP5NSUcy8M05BZgBCAQTTkGdnZW7HbcERGRnLq1CnCwsKoV68e8+fPJywsjHnz5lGhgn2rSxVsx9pK0pVHVrLljS1WV1TLhS/1copRDC1adCh7a+dFMMFoBOkdIeRcD5RXb8c0UQ3y74VhXoeBb8bbsrtGDB48mKtXrwIwZswYOnbsyNdff42fnx9LliyROn0K/2Jt0u9o0lHiDsQxpMUQl6XDl3ocgiBQlrJc4Yos9/d2BARChBBZ7i1nPbJlolruvTBMQ2b5RXb2Zuw2HK+//rr5c6NGjbhw4QInT56kSpUqlClTRtLEKfyHtZWkGkFDYkqi+xLlA4QIIVwVrypzHVYQEX12OE/uCLymIbP8Ijt7M3Z7VY0fP560tDTz/4sUKULDhg0pWrQo48ePlzRxCv9hbdJPJ+oIKxnm0nQIguDy4So5NcsKZRWjkQ9lBHkag+6uR3JF4DVhGjKb0GYCver3kswT0FOw23CMGzeOe/fu5TqelpbGuHHjJEmUQm6suTjWC6lHdP1ol6ZDFEWXD1fJqemrLWopEBAoTWlZ7u3ueuQKl2FTZOfpT04npnmMzxgNcGCoyhRXJSeHDh2iVCn7vS8UrGPN4yPnpF/fen0J0Aa4O6leTXGhOGUok7UToIIZAYEwwmyaGJfTO0kuvC0Cr6dhs+EoWbKkuasXERFhYTwMBgP37t2jf3/fGL9zN/l5fGSfuMvuJeIqfMmrykRNVU3+Mv4lq4a3ISISqYos8DxHvZM8oR65YmW2SdMbjWt+2Gw4Zs2ahSiK9OnTh3HjxhEUFGT+zs/Pj7CwMJo3by5LIgsbtnp8+JKHkzs1qwvV2clOj4tZ5U788aeyULnA8xz1TvLFepSXZoYug1bLW8nm+usObDYcPXv2BKBq1aq0aNHCpUHuChvOeHz4WsvGFfgL/lQXqnNaPK1MlJM1TFVLqJUrIrE1Csv+4M4QdzBOVtdfd2D327948eKcOHGCOnXqAPDDDz+wePFiatWqxdixY/Hzky98cWHBVo+PnF1vuRc1WdN0Ba7QrKuqS4IhQXYdb6G2qrZN51n19jPquJR6iXRdep71zlfrkTXN8ynnfc642u1V1a9fPxISsn5g586d4+WXX6ZIkSKsXr2ad999V/IE+jLpunRm7prJoA2DLIKg2erxkdMzJfuwgc6oswhzIBXu9oaRi9JCaSpRqdDv0SEgEClEUkQoYtP5prqavdwEBH5M+JEWi1rkGdjPV+uRNc2qwVVldf11B3b3OBISEqj/7x4Iq1evplWrVnzzzTfs2LGD7t27M2vWLImT6JsU1DtwxONDGTZwjkbqRlw2OLc5lC9QT2X7fjKmuvrK96/ww6kfgKyJdVEUvX44piBsHRaObhjNsqPLHNp/3VNxyB3X+O/WqFu2bOGZZ54BoHLlyty8qbg02kpBk4q2eHzk7HrLvajJmqYrcJVmBaECtYRanBBPFNq5jiaqJgQLwXZdE6gNpHKJymhVWnTG/+J+5ddo8fZ6ZOuwsCmys6+5/tptOBo3bsyECRNo164d27ZtY+7cuQCcP3+ecuXKSZ5AX0WK3kHObnd+kUGlwte9YR5RPcIFwwXui/cpTKNWgihQWihNPcH+3SvTdelcSr1kYTQg/0aLt9ejOXvmEH8tHhHRJs9HT96UyRHsNhyzZs3itddeY926dXzwwQdUr14dgO+++45HH31U8gT6KlL0Dqz5pcvdsvH2lmJBaAUtT6ie4CfjTy7T9AgEaKNuY5MnVXZMLe/4a/HZbpW13iu/Ros316N0XTrTdk7L1Su11vBzRz5dgd2Go27duhw5ciTX8WnTpqFWK1tx2ooUvQNrLSi5Wzbe3lK0hUqqStQ01OQUpxCFQjBkJUIjGlFSKGn3paYh1+wvURGRZyOeZcULK/JstHhKPXLEfX3evnncSruV67jeqM/V8LM3n97iTi/ZYoyAACX0hT344rinL9GEJlziEmmk+fR8h2mjptrY5n6bE2tDrlqVlsolKnt8XbY2T7H00FJeqf0K/6T+k+dv0pRnvWgZuaFMkTJODQu7wp1eKmwyHKVKlSIhIYEyZcqYQ4/kRXJysmSJ83Wc7R14c3ff0zX9BD9a05oNbHC5tqsQEFCjprXQGjWOjRY4OuTqCfUoLweVw9cPo1Fp8nxxVytZLVeUAQGBYc2H5XrB25NPufcIkRKbDMfMmTMpXrw4gOJu60F4SnffVzXLUY726vZsNm72yV6HChVPq58mSB9kd/5MQyoJtxKoUKwCV+5eMb9sbRly9YR6ZK23BFlDbaaJfmsv7ryGmd9p9k6BmvnhTe70NhkOU7iRnJ8VFHydqqqqtKY1W41b3Z0USREQ6KDqQHmhvN1b51obUqlYvCKdIzoTUTrCa4ZcrfWWcmLtxS3XMLMr3OmlwibDkZqaavMNS5Qo4XBiFOzDE7r7hUEzQhWBESPbjNtcng6pEf7986TqSSqrsoIY2lu+1oZUrt67SkTpCJuHVNz9TCF3z0Fv1OfqeeX14rZ1mNmefLrCnV4qbDIcwcHBNheAwZC/BVeQDk/o7hcWzZqqmmjR8pvxN68dthIQUKGik6oTFVUVzcftLV851iC5gpyaOXsOlYMq882RbziSdESyF7c9+fQmhxmbDMfWrf910xMTE3nvvffo1auXOYz6rl27WLp0KZMnT5YnlS5Gp9Oh1+vND10QBPMGVjmPgaWxNBgM6HQ6m64r6HNB3+t0OqsGXUqNnJ9N5SJXnnJ+Nj2P7PmUWsPaddaefxWq8KTwJL+Lv6NH71WuuoIo4C/4015sT1lD2azWdT55za+swoPC8RP8UKlUqFAhIqISVIQHhVu9l7XP9j5TW9OW3+fs+9eYjmnQMKjJIPO5bzV8i7gDcSSmJBIWHEZ0g2i0gjbXb9rWtNl7Xc70FHSPnMey51Gv15vLOacBy+t9Yis2GY5WrVqZP48fP54ZM2bwyiuvmI89++yz1KlThwULFnjlHEhsbCyxsbFe11ty177NrsaT8vkQD/ECL/AXf/EP/+S5I6anEU44j/AIfuSOXm1v+qMbRLPy2EoOJx1GK2jRi3rqhtQluoHt2xh70jPNTqA2kAFNB7hU0xuxex3Hrl27mDcvd7TVxo0b07dvX0kS5WoGDBjAgAEDSE1NJSgoCK1Wa9d+I9kXPqrVarRarRzJzBNn9awuOtLk3z12x34sri7XvDSDCKKT2Ik5p+cgPiSiVWs9cvGrgIA//rRWtSZUFVrg+baWb3FNcbb23urUkIqptespz1QuTPl01e8lu45Go7Err/aca3duKleuzJdffsnUqVMtji9cuJDKlQveMUzBs/CmRUeehCAInD5zmpU/r6T7U92pXb02RtFod8gOOakuVKeFqgX+gr/k9/a12EsK9mG34Zg5cyYvvPACv/zyC82aNQNgz549nD59mu+//17yBCrIizctOvI0qpWsRvLdZD5f9TnN6zana5uuFC9a3G3DVwICIiLFKEYLVQvCVGEuT4O3hMxQcA67DUenTp04ffo0c+fO5cSJEwB07tyZ/v37Kz0OL8SbFh15GtndJ/cd3ce+Y/vo2rwrzz3+HKmkml/kcmPSKUMZ6qvqEyaEuaXno/RepcEbjK9DA28PPfQQEydOlDotCnYiRavW2qIjvVFP/LV4Zu6amavSeoL/vado5uU+GaAJ4Ip4hVPiKc6KZzFilNyIqFBhxIgGDRFCBJGqSEKEEIfuJVX52tN7tUVT6heop9aj7HiL8XX9DKeCZEjhC59z0ZHOqENEZPc/u9n5z85cldYT/O9txZkXj62aeY31VxIqUYlKPCY+xjnxHFfFqySJSdzhjtmA2GpM9AY9apU6yxPp36CEIUIIFYWKhAlhaATnfsZSPVN7eq8FacrxAvWGuustQ8eK4SjkZG81rzmxhh2XdiAimiN/emKltQVPabn5CX7UFGpSk5oA6EU9t7jFTfEmN8QbJIlJpJOOAQNqUY0RI2pRTZoujQe6B9y5e4fEK4mIaSJTWkyhgqYCaiF/Dy57DWaGLoO4g3GcvXPWqZa9lCEzvOUFKjXeMnSsGA4vRqqut6nVfO72Of6+/He+2396Q3cfnH/xyJVPjaChHOUoJ+TeLVMvxGedo61POunMOzSPO7fv0KhkI/q3sO1lbq/BTNel03Z5W44kHcGAwSkDa0/IjILKV44XqDfUXW+JV6UYDi8iZ0syul60pK1nWyqtN3T3wfkXj7vz6ai7q70Gc96+eZy4cQIVKjKMGQWenx/2hMwoqHzleIG6+5nagrfEq1IMh5dgrSW56sgqNr++2bxwx9nJRG+ptLaQ14vnUuolBm0Y5LHeKs5ir8E8d/scKkFlUVbOtOylWt/hS3XRHrwlXpVNhqNBgwY2d7kOHDjgVIIUrGOtJXk46TBx8XEMeXSIJGP6tlRab+jug/UXj7/an/Wn1ue7SY8zms4il5dcfi31aiWroRN1FhsTuWJopKC8yvEC9ZZn6g2LK20yHF26dJE5GQoFYXWLTkFL4u1EQLrJxIIqrTd09yH3i+dS6iXWn1pf4CY9zmg6ixxecgW11Ps37s+qI6s4mnQUo8rospa9LXmV+gXqrc/UE7HJcIwZM0budCgUgNX1FqKesOAwwHu8MVxJ9hfPoA2D0Kg0FhP/AgIJtxLclTxZsLelHqgNZPMbm4k74LxXlULhQZnj8BKstSTrhNQhumFWRFJXeWN4S3c/J3mVz48JPzJDN8OpvaKlQmovOXvOH9hsIBqNxmWrlr25fD1d0xXYbTgMBgMzZ87k22+/5eLFi2RmZlp8n5ycLFniFP7DWkuyb72+BGgCANdNJnprd79/4/58uutTLt+9bHH8yt0rVoervDWfzuhKvfYlPyNUWMq3UA9VZWfcuHEsXLiQYcOG8eGHH/LBBx+QmJjIunXrGD16tBxpVPiXnC3J7Ju2uMobwxtabXm9sDpHdGbBgQUWw3kalcbqcJ435FNq3Xl7pVt0V5ARKizlq/Q4/uXrr7/myy+/5Omnn2bs2LG88sorhIeHU7duXXbv3s0777wjRzoVcpCuS2f+nvkkpiQSWirU/HKU2xvD01tt+b2wIkpH5Do/r+E8V+bTZOgeHNhPpRKVeDEq0qVzDKa8SjlPVpCzhqfXI2/WdAV2G45r165Rp04dAIoVK8adO3cAeOaZZ/joo4+kTZ2CVUwvx4QbCagFNfcM9zwyEJo7yO+F5YlrA7IbuiY3AzGKRmambXbLs5Rynkxx1vBt7I69/NBDD3H16lUAwsPD2bRpEwB79+7F31/6DWMUcmN6OepFPQ+MDzCKRvPLUW7cteWnrZqmF1Z2TC8s03De9PbT6deoH9PbT+evPn/luY7DFfnMbugyjZnoRb3LnqUJU177N+5PvXL1UAkqtCotKkHlsGHNK+py5aDKFpp5ka5LZ+aumQzaMIiZu2aSrku3Ow058fS6603Y3eN4/vnn+e2332jWrBmDBg3i9ddfJy4ujosXLxIT49mLVnwF08tRlc3uu6o15+nd/YJazbYO57kqn9lb5qbnqRZwacvclFcp58n6N+7P0kNLOXT90H86iHxz5BsGNR2EJp9Xj1wBKj297noTdhuOTz75xPz55ZdfJjQ0lJ07d1KjRg06d+4saeIUrGN6OWYPp+2JgdDcgScOR+WHpwW1k2qeLFAbyCu1X+Hw9cMWoeOPJB1h3r55DGw8MM9rC1NkXG/YtMkaTq/jeOSRR3jkkUekSIuCjZhejidvnESN2qkhBXvxdM8UqVrNrspndkOnErI2Z3K1oZMrr/+k/pNr0aWpZ5yfplzzI55Wdz0l9L8j2G04Jk+eTLly5ejTp4/F8UWLFnHjxg1GjhwpWeIUrGN6OVrzqrKGlK0ab+juS9FqdlU+sxs6s1dV97Fu8aqSmvx6U/lpytUL87S66809K7sNx/z58/nmm29yHY+KiqJ79+6K4XARgdpABjQdAGCOjmsNb27VFBZMhk4XcBAArY88F0eHDXvW62lerKkW1IiIHj3c6Cj29Kw8bUjLIXfcChUq5DpetmxZs7eVgmuwpestdavG07r7iqbn6uY3bJh98Wp20nXptFvejit3r5jDvVcqXonNb2x2+kXpac/U1p6VJzb+7HbHrVy5Mjt27Mh1fMeOHVSsWFGSRCnYhiiKBXa/83NPlUtTahRN79U19abmdJpDTPMYi5Aj1jRNDR0R0dzQuXrvKksPLXU6LZ72TG11f87e+NMZdS51v88Lu3scb775JkOGDEGn09GmTRsAfvvtN959912GDRsmeQIVnMPTvHYUvBdXDJcUpoWDtjpyeGKZ2G04RowYwa1bt3j77bfNAQ4DAgIYOXIk77//vuQJdAc6nQ69Xm9uKQiCgCiK5n+zH4OswI8mDAYDOp3OpusK+lzQ93q93mpXOPu5bzZ4k2+PfMuRpCMICIiI1AmpQ9/6fdHpdHanzWAwyJqnnJ+BXPmUWsPadaZ8ypUna9+b6pFgR92TIm3W8prz3PTMdJ786knir8fjp/LDIBpYeWQlW17fQoA2wOZnY/qc1zMNDwpHI2jQqLJeTUaMaAQN4UHh5t+ko2WR/XfqzHOyp7xNQ3J5XacVtAxsPNDiWM53T3hQOH6CHyqVChUqRERUgsqiTHLqme6T8zeeX55M7y1bsNtwCILAlClT+Oijjzhx4gSBgYHUqFHDq1eNx8bGEhsba1GxvAFbut0BmgA2vr6RRQcXcT7lPFWDqxLdMGuvcke67QV199N16cQdiCMxJZGwkmFE14+2eLE4gq8N3+Sn6Q5syWvcwbiszZ7+HS6BrDUZcQfjzE4a9mpaI7pBNCuOreBY0jHUghqdqLPYPsAZPM2rylaiG0Sz8thKDicdRito0Yv6rDJp4HyZOIrD6ziKFStGkyZNpEyL2xgwYAADBgwgNTWVoKAgtFotGo3tRaNWqy0+5+flJCWmFltBaS2hKcGQFkNk10zXpdNqWSuLSbxlR5ZlTeJpnN/y055n4izu0OTfeuNSTWzL69k7Z3kgPkAn6jCt59OqtJy9c9ap+p5TU6vV8kfvP2QZEnPLM/0XZzSLa4qztfdWm8oku45Go7Hr2dhzrk256dq1K0uWLKFEiRJ07do133PXrFljs7iCc3haC0ouv3RPy6cvaWbXzW8OQ+q5svzyKleUZ29+pp62D7lNhiMoKMhsrUuUKOGTQbsUnMcTJ/EUbCNDl0Gr5a3ydPn0tlAuCvJik+FYvHix+fOSJUvkSouCnXirX7qUmnJRWDRNunHxcfn2FqXeKKywlK+vNrLtXsfRpk0bUlJSch1PTU01u+cquAZv9UuXUlMuCoumSTfxdmKB633yWpPhqGZhKF93PVO5sXvG5o8//si1zzhARkYGf/75pySJUvBO5N6+1tPCLvgSYcFhynofBZux2XAcPnzY/Pn48eNcu3bN/H+DwcCvv/5KpUqVpE2dQr54Ytdbjkk8QRCsemzJGXbBE8tWTt3ohtEsO7rMZXMYhaV8fXWoymbDUb9+fQQhazcra0NSgYGBzJkzR9LEKeSPN3uJ2KsZdyD/MXg5NF2NO72qAjQBsvYWrWm6Gk/WTE5Lps/6PuayX/TsIkoVKSVz6hzHZsNx/vx5RFGkWrVq7Nmzh7Jly5q/8/PzIyQkxGI9g4KClCSmJCoeWzLjaS6fhYXktGQemvkQ6fqs7XGPJB3hoZkP8U/MPx5rPGw2HKGhoeh0Onr27Enp0qUJDQ2VM10KNlBYut6CIBBW0rVj8IWlbN2lq2j+R5/1fcxGw0S6Pp0+6/uwrvs6mVLmHHZ5VWm1WtauXStXWhTspLB4iYiiSHT9aFk8tvLTLAxl6y5dRfM/8uo1e3Jv2m533Oeee45169bJkBQFhbwJ0GaNwU9vP51+jfoxvf10/urzl+JVpeD15NVr9mSPNrvdcWvUqMH48ePZsWMHjRo1omjRohbfv/POO5Ilzltxlduop3a95dIM1LhuDL6wlK27dBXN/1j07CKLOQ7IquuLnl0kZ9Kcwm7DERcXR3BwMPv372f//v0W3wmCUOgNxwP9A5ft1uXJXiKKpndouktX0fyPUkVK8U/MP77pVWXi/PnzcqTDZ/j+xPf5uo1K2Rvx1BaUouk9mu7SVTQtKVWklMdOhFvD4Vi/mZmZnD9/nvDwcLeEKfZULqdeztNtVOq9gz21BaVoeo+mu3QVTe/G7snxtLQ0oqOjKVKkCFFRUVy8eBGAQYMG8cknn0ieQG+jUolKebqNeuLewQoKCgr2YrfheP/99zl06BB//PEHAQH/7ezWrl07Vq1aJWnivJEXHn4hT7dRU9jx7DiziM20kt+VKJq+pWlNN12XzsxdMxm0YRAzd80kXZeez9XSaLqCwqLpCuweY1q3bh2rVq3ikUcesSiQqKgozp49K2nivBF/jX+eoRtcuRmOXCiavqWZU1fq4VRbNF2FI5rOzkn66lCV3Ybjxo0bhISE5Dp+//59n7SsjpBX6AZlMxwFT0euXRzzwpMjHrvKiHojdhuOxo0b8/PPPzNo0CDgP6+BhQsX0rx5c2lT52Mom+Eomp6mmVPXVbs4CoJAhj6Dx5c+7rERj6Uwor7amLbbcEyaNImnnnqK48ePo9frmT17NsePH2fnzp1s27ZNjjT6FDl7I6bxZEcMibd0931FU+7WsSvzmT0v4UHhRDeIprimuKTDqfmVlyiKLNy/0KMjHkthRAv9UNXRo0epXbs2jz32GPHx8XzyySfUqVOHTZs20bBhQ3bt2kWdOnXkTKvPoXSFvQdfelY58+In+LHy2Eq29t4q2XCqLeXl6RGP5doK2Rew2auqbt26NGvWjC+//JKQkBC+/PJL9uzZw/Hjx/nqq68Uo+EAzrrnFhYvEU/QdIUrtbV8yuHhlDMvelHP4aTDzNs3zzyc6mxMsILKy10Rj+2pR1JshVzovaq2bdvG4sWLGTZsGDExMbz44otER0fTsmVLOdPndcyYMYPp06db7FeSF852hQuLl4gnaLpi7D+nply9nJx5UaFCK2jNeZFiX46CyssU8XjZEdftOmhvPZJiTtKVdffixYvMnTvXJVo2G46WLVvSsmVL5syZw7fffsuSJUto1aoV1atXJzo6mp49e1K+fHk50+qxlC5dGn9/fx48eMCyZctYv349Y8eO5e2330ar1eZ5nau7wr403OJq3DFsIZeHU868iIjoRb2kebGlvEwRj6WeN5JyLsobNrdKS0tj6tSpTJkyhYyMDACKFStGsWLFZNO0ewFg0aJF6d27N9u2bSMhIYGXXnqJ2NhYqlSpwrPPPitHGj2eevXqERsbS6tWrQBISUlhyJAh1K1bl19//TXP66ToCtuDsnLdcVz9rADJF4yasJaXuiF1Jc2LreVlejHP6TSHmOYxkhiNFotaMHzzcObvn8/wzcNpsaiFLIsY3Y0oiqxYsYLIyEjGjRtHRkYGarWaTp068cUXX1CpUiXZtJ0KMlW9enVGjRpFaGgo77//Pj///LNU6XIrOp0OvV5v7mYKgoAoiuZ/sx8DMBgMlClThpiYGMaMGcOIESPYv38/J0+e5KmnnqJTp05MnTqViIgIi+u0gpZtb2wj7mAc51POUzW4KtENo9EKWnQ6XZ56ps+mc3KS13WJyYkUUxcj05iZ9R0CGpWGC8kXbNIDzOViy7nWPtt7nel5ZM+n1BrWrsv5/DVosp5VfByJtxMJCw4jumE0GjRW60pBebL2vV6vz/r87/3Cg8LRClo0Kg0iWeepBTXhweHodDqHy0KDhm09thF3II7ElESqBlWlR90eFnlx5Dnl1NjeczsL9y8kMSWRsJJhRNf/r7zsfaa2Pt/5e+aTcCMBraBFhQq1oObUjVPM3zOffg372aUnRdqceU75fT5w4ABDhw5l586d5nS2adOGKVOmcPnyZSDrd5Pz3vnlyZRWW3DYcGzfvp1Fixbx/fffo1Kp6NatG9HR0Y7ezq3ExsYSGxuLwWAo+OQCaN68OTt27OCrr77iww8/5Nq1a2zYsIFNmzYxaNAgPvjgA0qUKGE+P0AbwICmA6w+3IKwd+KtasmqVocPwoLD7NJ0Ne6aHM9JgDaAgU0H5vuSkVIzumE0K46t4FjSMVSCCoNooE5IHaIbOP87C9QGMqDpACCr4SPHWHyAJsCskbOs5HqmJk8tvag3H1MLahJTEn1ibc61a9cYPXo0S5cuNZdntWrVmDp1Ks8++yx6vd5sOGRFtIPLly+LEydOFGvUqCEKgiC2aNFCXLRokXjv3j17buOx3LlzRwTEO3fu2HWdTqcT161bJ65bt07U6XTm46mpqeJ7770n+vn5iYAIiGXLlhUXLFgg6vV6p9ObmZkpZmZm2nx+Wmaa2GBeA1E1TiVqx2tF1TiV2HBeQzEtM002TSkoNJoHDoiZBw5YHEvLTBNn7JwhDvx5oDhj5wy7npXNuj5UvjN2zhBV41QiYzH/VY1TiTN2zvDqfGZkZIhTpkwRixcvbn6XFCtWTPzkk0/EjIwM83l5vYtswZ73n82Go2PHjqJGoxHLly8vvvvuu+LJkyftSpQ3ILXhMHHmzBmxS5cu5gcOiPXr1xe3bdvmVHodqZTOvoi8+cfn8ZpWDIdLdH2ofPNrHHljPo1Go/jDDz+I4eHhFu+P3r17i1euXMl1vqsMh81DVVqtlu+++45nnnkGtVpd8AUKZsLDw1m7di1btmxhyJAhHDt2jPj4eFq1asVLL73EtGnTCA0Ntfu+jnSDHfESsVhlHBxO34Z98/UWkwqTbmJyIlVLVqVfk34u8/7yhWENT9aVSzM/F1rTHJIrcSafx44dIyYmhs2bN5uPNW/enNmzZ9OkSRMpkucwNhuO9evXy5mOQkG7du2Ij49nwYIFfPTRRyQnJ7N69Wp+/PFHRowYwciRI3Pt4Z4fogt8xHO68PoL/qw6uorfe/8u60s8u25xdXEMooFlR5a5zHXYFWXrCZru0pVTM6/GkbfkMzk5mTFjxjB37lzzvOtDDz3ElClTeOWVVzxiQaHd7rgKzqHRaHj77bc5ffo0gwYNQq1Wk5GRwccff0xkZCTffPONR8W3yenCaxANHEk6IrsLb3bdTGMmBtGguA4r+DR6vZ7Y2Fhq1KjB559/jsFgICAggNGjR3Py5EleffVVjzAaoBgOt1GqVCk+++wzDh06RPv27QG4fPkyr732Go899hh79+4t8B6u8DbKuZbAiBEBQfZ4Qtl1jf/+cWUcI08Ic+LLup6sKWWYF1s1t2zZQv369Rk4cCDJyckAdOvWjZMnTzJu3Di7RiJcgbJZuJuJiopi48aN/PTTTwwdOpQzZ86wc+dOmjZtSq9evZg0aRIVKlSweq0reiY5VwCrUCEiyh7oLbuu6t/2jU7UuSzAnLcMa3irrqOazqwKt0VT6ugKBWmePXuWYcOG8cMPP5iPNWjQgNmzZ3t0OCelx+EBCIJA586dOXr0KFOnTqV48eIALFmyhIiICKZMmcKDBw/ckracK4AFQaBOSB3ZN5/KrqtRaRAEQdn0qpDjilXhroqucPfuXd577z1q1aplNhply5blyy+/ZO/evR5tNEAxHB6Fv78/I0aMICEhgT59+iAIAvfu3TNXsHXr1rlkEVV2ckZLnfjERDa9sUn2Cersun3q92HiExMditLqKJ48lOILuo5ouiKatNRhXnJqGo1GiwZhZmYmWq2WYcOGcfr0afr27esVXqvKUJUHUr58eeLi4nj77bcZPHgwO3bs4Ny5czz//PO0bduWWbNmUbt2bZcNMWT3UrEnLIFUuiZNV7gAm/Cm4Rtv1HVE0xXRpG0NZmnrkFl2zZ07dzJ48GD27dtnPvbMM8/w6aefEhERYVMePAWlx+HBNGrUiD///JMVK1bw0EMPAfDbb79Rr1498ySaN7QUFU3P1XSXriOazkYotkXTluCM9gyZCYJgdnpp0aKF2WjUrFmTX375hR9//NHrjAYohsPjEQSB7t27c+rUKcaOHUtgYCBGo5HY2FgefvhhPv/8c5f2AsSsaAMu01M0fVPXEU1nIxTbomnLRla2Dpmlp6czYcIEoqKi+OabbwAIDg5m9uzZHD58mI4dO9qVf09CGaryEooUKcKYMWPo3bs3I0eOZOXKldy+fZuYmBi+/PJLZs2aZXbrVfBeMvWZfO7gHvS+jhQbK9mqk190BVs2qVq9ejUjRozg4sWLAKhUKvr168f48eMpU6aMpOl1B4rh8DKqVKnCihUrzPMfBw8e5Pjx4zz55JM8++yzfPrpp1SvXl02fV8KT+FpmpmGTPr+1Jdv1cddutGWq/Oarktn/t75nL99nrBSYXa9/J3ZWEmqfOY3ZHbw4EEGDx7Mn3/+af6udevWzJ49m7p160qi7wkoQ1VeSsuWLdm5cycLFiwgJCQEyAoLU6tWLUaOHElqaqosut4yrOGNmmtOrOFs8lmXb7Tlyrya5gc+/P1DlsQvcelGS1Ll09qQWVRgFEfijpjnJQHCwsJYtWoVGzdu9CmjAYrh8GrUajW9evXi9OnTjBgxAq02awMo06ZRixYtwmg0FnwjpF0t6068OR+XUy+jEix/kq5cLe8KfGEXyuzzIH3r9uWZG89wYcIFFsctRhRFihYtyqRJkzhx4gTPP/+8x4QJkRJlqMqLMVXIEiVKMHXqVN58802GDRvGjz/+yPXr14mOjuaLL75g9uzZtGjRIs/72LNa1pOHjaRc9euOfFYKqmSxARHIv685uDav5vkBHHOptYatrrFS5jNAE0BEcgRzR8zl9OnT5uM9evRg8uTJVKxYEcAtEXldgdLj8GJydr1r1KjB+vXr2bhxI7Vq1QJg//79PPbYY7zyyivmibqc2NMK9ORhIylbs+7IZ9fIrkSUinDpvubg2rya5gdU//4B54yjPa6xUuXzxIkTdOrUiWeeecZsNJo1a8bu3btZunSp2WhIqelpKIbDB3nyySeJj4/ns88+Izg4GICVK1dSs2ZNxo0bR1pamsX5Uq+WdRfeng8/jR9fPvNlvq6g3o6zLrU5ceXQ1+3btxkyZAh16tTh119/BaBixYosX76cnTt30qxZM8k1PRVlqMqLya/rrdVqGTRoEK+88gpjxoxh3rx5pKenM3bsWOLi4pg2bRrdunVDEAS7FlZ58lCVswvEHNGUEkEQ8Nf6E9PEMa8hZ3RdhWl+wFGvqpzYs5rc0XwaDAa+/PJLPvzwQ27dugVkhQcaPnw47733HsWKFcvzWl+c3wClx+HV2NINLlOmDLGxscTHx9OmTRsALl26RPfu3Xn88cfZv3+/Xa1ATx6qkrI168n59HbdQG0gA5oMYPqT04lpHuNUj8qexoIj+dy6dSsNGzbkrbfeMhuNF154gRMnTjBhwoR8jYajmt6A0uMoJNSpU4ctW7bwww8/MGzYMM6dO8dff/1FkyZN6NOnD2vGrmHtpbVevfDMVQvECsKZ0N8K9tG/cX+WH15u4RAhxbzQ+fPnGT58OGvWrDEfq1u3LrNnz6Z169ZOptr7UQyHF2NvN1gQBLp06ULHjh2ZNWsWEydO5N69e8TFxfHtt9/y0UcfMf2d6fj7+1u9Pl2Xzvw980lMSSS0VKjLXoj25NOZBWKOambHGc8uZc9x+7GnsWCL5r1795g8eTKffvqpeSuDMmXKMGHCBIci1/rqUJViOLwYR7vAAQEBvPfee/Ts2ZNRo0axZMkS7t69y7vvvsuCBQuYMWMGzzzzjEWlN70QT984jVpQc9dw1yWrmsF7oreC5WStadzdNFlbkEGTOp+ORHB1FVJq2tpYyE/TaDTy1Vdf8d5773H16lUga5vnQYMGMXr0aLOTib344jAVKHMcXo2zUU0rVKjA4sWL2bNnD4888ggAZ86c4dlnn6Vjx44cP37cfK7phagX9TwwPnDpwi1vid4Kznl2SZnPvNxUk9OScy2Q9KbylUPz77//pnnz5vTs2dNsNDp27MiRI0eYMWOGw0YjP01vRzEcXoxUE29NmjRh586dfPXVV1SqVAmATZs2UbduXQYPHkxycrJbXV29aaLaGc8uKfOZl5tq3Xl1ra558JbylVLz8uXL9OjRg0ceeYQ9e/YAEBERwc8//8wvv/xCzZo1Jdf0FRTDoQBktYxee+01Tp06xUcffURAQAAGg4HPPvuMGjVqcPX3q+j1eoR//4BrVjV7G1KvU3AUa4ZeQODy3cu5jEncgTiXpCl7OJjYPbFk6DJcopuTjIwMJk2aRGRkJMuXLweyoi/MmDGDI0eO0KlTJ7eky5tQ5jisoNPp0Ov15paCIAiIomj+N/sxyPLzNmHPdQV9Luh7vV5vtRvsjIafnx8fffQRPXr04L333uP7778nOTmZ7z/9nsCKgag6qigSXgRBEKgbUpe+9fpazbOjecr52VSm2fMptYa16wwGg0PXaQUt297YRtzBOM6nnKdqcFWiG0Sj1+uZtWcWiSmJhAWHEd0gmkC/QIt7meqRIEEdCg8Kx1/wR63KMh4CAkaMBKgCsuZfMKIiy7hduH3BHBrDmeeU3/cZ+gzaL2/PkaQjqAU1WkHLd8e/45fXfyFAEyDp7yKvz3q9nnXr1jFq1CgSExPN30VHRzN27FhCQkIQBCHX/jbOpC1nuUqdp5zHsqddp9PlOie/PNmzr49iOIDY2FhiY2MtDIA3IGcXOCwsjBUrVvDnn38ydOhQDh06RPqVdFgEFZpX4H9D/sfIziMJ0ATIlgYTnra2IUOXQdzBuP+MQMNoi3II0AYwoOkA8w8yQ5dBu+XtOJZ0DJWgwiAaWHlsJZvf2GxxnZT5jG4YzapjqzicdNi8QK580fJcv3fd4jyDaCAsOEz2Mo47GMfRpKNmpwGtSsuJGyeIOxDHgKYDZNUGOHToEMOGDWP79u3mYy1btuTTTz+lQYMGsuXfF4epQDEcAAwYMIABAwaQmppKUFAQWq0Wjcb2osneGtZoNHZdKwVy7sXdpk0b9u/fz6JFi/jggw+4ceMGZ3adYdr+aRiGGhg1ahTFixeXTT87rtxzPC/NdF06rZa3snC3XXZ0Wb7eZZ/v+5x91/ZZrG7ee20vC+MXWngDif/WGynqj1ar5ffev1t4VfWs15N2y9uZ064TddQPqU+fhn3QarWylu/ZlLNkipnojFmtWgEBrUrL2TtnZdW9ceMGo0ePZsGCBeZI0aGhoUyfPp0XXnhB9olrk+Fw9TsBsPs9Zs9zUOY4vBhXeWyo1WrefPNNEhISGDJkCBqNhszMTD755BMiIiJYunSpzeHbHcGTPHAciY1kq2OB1Pk0uanO6TSHmOYxlCpSyvq2qH6BspdvTqcBI0Z0ok62OTKdTsesWbOoUaMG8+bNw2g0UqRIEcaNG8eJEyd48cUXXVKnFK8qBY/D1R4bwcHBTJ06lYMHD/L0008DcO3aNXr16sUjjzzCrl27ZNH1BA8cE454l9nqaeWKfOY0JoHaQJfo5nQa0Aga6oXUk8Vp4Ndff6Vu3brExMRw584dAF577TWOHj3K+++/T2Cg61bxK15VCgr/EhkZyU8//cSGDRuIjIwEYO/evTz66KO88cYbXL582c0plA9H3G09xdPKnWTf/Khfo35MeGICm17fJOni0YSEBJ555hmeeuopTp48CVi6mj/00EOSaRV2FMPhxbh7COepp57iyJEjzJw5k6CgIAC++uorIiIimDBhAunp0uy+5+58ZscRI5DzpZlXuHR3DWu4Sjd7b2dgs4EE+kljNFJSUhg2bBhRUVH8/PPPAJQvX54lS5awe/dumjdvDnhWPfJ2lMlxL8YTQkVotVqGDBnCa6+9Zp6ETEtL46OPPmLhwoWSTEJ6Qj5N5BcbKb8QH7aExXDXkIYnla89GAwGC6cNAD8/P4YOHWrVacNb8+mJKIZDQRLKli3L3Llz6d+/P0OGDOGPP/7gwoULvPTSSzz++OPMnj2b+vXruzuZkmDNCEi5ba1CwWzfvp3BgwcTHx9vPvb8888zffp0qlVTFqXKjTJU5cV4Yte7Xr16/P7773z33XeEhYUBWT/yhg0b0q9fP3PLUEpNObBXU4qd6Hx9qEoKzQsXLtCtWzdatWplNhq1a9dmy5YtrFmzJl+j4U359HQUw+HFeJK3UXYEQeCFF17g+PHjTJgwgaJFiyKKIgsWLKBGjRrMnDmTzMxMSTWlxl5NKWJ5ucsDxxvK9/79+4wePZqaNWuyevVqAEqVKkVsbCwHDx6kbdu2kmtKgeJVpeBxeHoLKjAwkA8++IBTp07xxhtvAHDnzh2GDh1KnTp12LBhg+SaUmGvphTb1io9jtyIosjXX39NZGQkH3/8MRkZGajVat555x1Onz7N22+/bfMiN0/Op7ehGA4vxltaUJUqVWLZsmXs2rWLpk2bAlmuk08//TSdOnUyu05Kqeks9mpK4XKr9Dgs2bt3Ly1atOD11183u3g/+eSTHD58mNmzZ1OqVCnJNaVG6XEoKDiJaZHgsmXLqFChAgC//PILderUISYmhpSUFPcm0AlsdblVKJirV6/Su3dvmjZtal5UWr16dX788Ud+/fVXatWq5eYUKiiGw4vxxq63SqXijTfeICEhgVGjRuHv758VOfbf8BDz58/HYDBYhuDeG0uG3vYQ3NmvNW1WZC+O5NPaqmy5NaXAU+pRRkaGOYzNkiVLAChevDjTpk3j6NGjuXallEJTbnx1qEpxx/VivNkvvVixYkycOJG+ffsyYsQIvv/+e27evEn//v2J/SKW9LbpnAvOmnD2E/xYeXQlW3tvLfBlLJVbrDeXrTfoZtcURZEffviBYcOGce5cljOBIAj06dOHiRMnUq5cOck1XYUvDlOB0uNQcDNVq1blu+++4/fff6dOnToAHDl8hDMzz2BcZUR3K2tPgWNJx2xybZXCLdYbkaKX5Q6OHj1K+/btef75581G47HHHmPfvn0sXLhQMqOhIC1Kj8OLcdewhhw88cQTHDhwgIULFxIzMoaM1Aw4DpyCjBYZBDweYJNrq8ktNnsIc0e2uPWmsnW2l+WOvCYnJzNu3Djmz59vjqxcuXJlpk2bRrdu3WRJkzc9U09H6XF4Mb7mJaLRaOjfvz8ffvshPEJW7TSAcbuR9NnpJP+dXGD4dincYsG2fErdyne0bJ3tZbmyHul0OubMmcPDDz/M3LlzMRqNBAYGMnbsWE6ePMnLL78s28vW134v7kTpcSh4HEPbDOX7xO+JbxwPv4J4RkS8K/LN+G84t+kcs2fPNrv15qR/4/4sP7zcovUtRyRaTwoxIlUvS242b97MkCFDOH78uPnYK6+8wpQpU6hcubIbU6ZgL4rh8GJ8teudPZDg2Y5neXDiAVvnb+XsmbPs3r2bZs2a0aNHDyZPnkzFihXzvNZasEET+QUktCWf2Vv5phe2qZVfUDDDvHC0bJ3tZVnTLah87OHMmTMMGzaM9evXm481aNCAGTNm0Lp1a4fu6Qi++ntxB4rh8GJ82UskeyBB3ZM6Mt/KZN68eYwfP57U1FSWLVvG999/zwcffEBMTAwBAQFWr7WGLb2FgvIpRyvf0bJ1tpeVU1eq3lRqaioTJkxg1qxZ6HRZW8aGhIQwefJkXnvtNVQq146U+/LvxdUocxwKXoGfnx/Dhg3j9OnTvPnmmwiCwP379xk1ahS1atVi7dq1Nv9IpfC8kmouRQqkXnzobPkYjUYWLVpEjRo1mDZtGjqdDq1Wy4gRIzh9+jR9+vRxudFQkBbl6Sl4FSEhISxYsID9+/fTsmVLAM6fP0/Xrl1p27Ythw8fLvAeUgQklCLESM7J9UyD7YEfc+Ls4sPsOFM+f/31F02aNCE6OpqkpCQAnn32WY4dO8bUqVMpUaKEw+lS8ByUoSoFr6RBgwZs27aN1atXM2LECC5evMjWrVtp0KAB/fr1Y/z48ZQpU8bqtVL0FmydS8kLa8NBew1RfPnMl2htToU8OFI+Fy9eZOTIkaxcudJ8rFatWsyaNYv27dvLllYF96D0OLyYwhJCIS9NQRDo1q0bJ0+eZPz48QQGBmI0Gpk7dy41atTgs88+M4+tZ8eW3oIt+XSmlW9tOCghOYE1p9bYfA+pyJlXe3pTaWlpjBs3jpo1a5qNRsmSJZkzZw6HDh3K02h4Uj3yNU1X4DWGIywszPwQTH8/+eQTi3MOHz5My5YtCQgIoHLlykydOtVNqXUNhcUvvSDNwMBAPvroI06dOsWrr74KZO1DPXjwYOrVq8fGjRstz7dhTkDufFobDtIIGi7fuSybZl7kzKut5bNy5Upq1qzJ2LFjSU9PR61WM2DAAE6fPs3AgQPzDXfuifXIVzRdgVcNVY0fP54333zT/P/sewqnpqby5JNP0q5dO+bNm8eRI0fo06cPwcHB/O9//3NHchVcTOXKlfn6668ZMGAAgwcPZt++fZw4cYKOHTvyzDPP8OmnnxIREQHYtge4nFgbDjKKRiqVqJTrXJNrbMKtBK7eu0qFYhWIKB3hlItsQeRXPvv372fw4MHs2LHDfKxt27bMmjWL2rVry5IeBc/CqwxH8eLFKV++vNXvvv76azIzM1m0aBF+fn5ERUURHx/PjBkz7DYcer0evV5v1/nWPsuNwZD14nFlV9gbNJs2bcqOHTtYvnw5H3zwAdevX+enn35i48aNDBo0iFGjRhEUFCSppr30rd+XlUdWciTpCGrUGDAQWSqSLpFdLOpQui6ddsvbcSTpSFbrlazWq4DAyiMr2fLGFqeNh615vX79Oh999BFLliwxt6KrVavGtGnT6Ny5M4Ig2Fz/vaEeeaOmM+8ie84XRC/pR4WFhZGRkYFOp6NKlSq8+uqrxMTEmLvDPXr0IDU1lXXr1pmv2bp1K23atCE5OZmSJUsWqJGamkpQUBDffPMNRYoUkSsrCi4kLS2N7777jvXr15t/GEFBQbz++uu0adMGtVpdwB1cR/ELFwC4Gxrq5pRYotPp+Omnn/j2229JT88KqxIQEEC3bt3o3LkzWq27p/MVpCAtLY1XX32VO3fuFOj95jU9jnfeeYeGDRtSqlQpdu7cyfvvv8/Vq1eZMWMGANeuXaNq1aoW15gia167ds0mw6HgexQpUoQePXrQvn17lixZwt9//82dO3eIjY3ll19+ITo6mqioKHcn0yMRRZG9e/eyePFirl69aj7etm1bXnvtNbt34FPwHdza43jvvfeYMmVKvuecOHGCmjVr5jq+aNEi+vXrx7179/D39+fJJ5+katWqzJ8/33zO8ePHiYqK4vjx4zz88MMFpsfU47h165Zd/uZ6vd48AduhQweb90B2FlML2lV6vqD522+/MWzYMI4dO2Y+1q1bNyZPnkyVKlXMQ0MJNxJQoyZNTKNOSB1JhoQKwnDoEADqevXMxz7f8zmjfh9lsULdhEpQManNJAY2HeiUrrXyPX78OMOHD2fz5s3mY4888ggzZsygSZMmTunlpSk3hUHTmXdRamoqpUuX9vwex7Bhw+jVq1e+51SrZt13vFmzZuj1ehITE4mMjKR8+fJcv37d4hzT//OaF8kLjUbj8IN25lp7Mdl8V/4QvF2zQ4cOtG3blgULFvDRRx+RnJzMt99+y/r163n33XcJbBXIvmv78Bf8AUg3prPv2j4Wxi+UfTJd/Hc1dfZ89mvSj2VHlnHo+qFccxwNyjegX5N+TpdL9vJNTk5m7NixfPHFF+bx+UqVKjF16lReeeUVycbqvb0eebKmCXvfRXad60iCpKJs2bKULVvWoWvj4+NRqVSEhIQA0Lx5cz744ANzeAPIisYZGRmpDFMpWKDRaHj77bfp3r27+SWZkZHB+PHjKVamGEJrAWMdo/kl6c5Is9kXGsrpVaXX6/nyyy/NxhSy5jFGjBjByJEjKVq0qCQ6Cr6BV8xx7Nq1i7///psnnniC4sWLs2vXLmJiYnj99dfNRuHVV19l3LhxREdHM3LkSI4ePcrs2bOZOXOmm1MvH4Ul2qdcmqVKleKzzz6jX79+xMTEsHnzZu7dvAffgXGPEe1TWqjguhhUeeVTbtfhrVu3MnTo0FzDd1OnTiVUpol6X6pHnqbpCrxiAaC/vz8rV66kVatWREVFMXHiRGJiYliwYIH5nKCgIDZt2sT58+dp1KgRw4YNY/To0T69hqOwLGiSWzMqKoqNGzfyww8/UC08y0CIF0UyF2TCDxAVECX5fh7WcHXZnjt3jq5du9KhQwez0ahfvz7btm1j1apVshkN8M165CmarsArehwNGzZk9+7dBZ5Xt25d/vzzTxekyDMoLC0oV2gKgsCzzz5Lhw4d+HTmp4z/eDwP0h7AQUg8k8gc5jB48GD8/f1lTYMruHv3LpMmTWLGjBlkZmYFVixbtiwTJ06kT58+LnFR9tV65AmarsArehwK1iksLShXavr7+zPqvVGcPnmaXr16IQgCd+/eZeTIkURFRfHDDz/Ilha582k0Glm6dCkRERF88sknZGZmotFoiImJ4fjx47z55psuW9fi6/XInZquQDEcCgpWKF++PAsWLGDPnj08+uijAJw9e5YuXbrw5JNPWswH2IvUe5Xbwq5du3jkkUfo1asX165dA+Dpp5/m6NGjTJkypcCV9AoK2VEMhxdTWKJ9ulOzcePG/PXXX6xYsYKHHnoIgC1btlCvXj0GDRpk9kCyFVM49eGbhzN//3yGbx5Oi0UtSNely5LPf/75h9dff51HH32UvXv3AlCzZk1++eUXfvrpJyIjIwvdM/V1TVegGA4vprB0vd2tKQgC3bt359SpU4wZM4aAgAAMBgOff/45NWrUIDY21uY4P/ntridlPtPT05kwYQKRkZF8/fXXQJYDyaxZszh8+DAdO3a0mldXoWh6N4rhUFCwkSJFijB27FhOnTpF9+7dAUhOTmbgwIHUr1+fLVu2FHgPKXYfzA9RFFm9ejUPP/wwH330EWlpaahUKvr378/p06cZPHiwEltKwWkUw+HFFJaut6dpVqlShRUrVrB9+3YaNGgAwLFjx2jfvj1dunThzJkzed43v931nM1nfHw8rVu3plu3blz4N2Bi69atOXjwIHPnzs1zsa2nla+i6fkohsOLKSxdb0/VbNmyJXv37mXhwoXmCAY//PADUVFRvPfee9y9ezfXNfntrudoPm/cuEG/fv1o2LAh27dvB7KiSX///ff8/vvv1K1b1+m8So2i6d0ohkNBwQnUajXR0dGcPn2aESNGoNVqyczMZMqUKdSoUYPFixdjNP4XoNCW3fVsJTMzkxkzZlCjRg0WLFiAKIoULVqUSZMmceLECbp27eqTrV0F96MYDi+msHS9vUGzRIkSTJ06lWPHjtG5c2cgK8hmnz59aNq0KTt37jSfm9de5fZobtiwgTp16jBs2DDu3LkDZO1Jk5CQwPvvv09AQIDNafeG8lU0PQvFcHgxhaXr7U2aNWrUYP369fz666/mUP779++nRYsWvPrqq1y6dMkpzZMnT9KpUyeefvppEhISgKxI0bt372bp0qVUrFjR7jR7U/kqmp6BYjgUFP7f3v1HRVWnfwB/D8PM8HPAHRDBhRlNB0cWyrBYdNkOho7+4a+0KFGz0nRNtxRNPWwO6q4/slWP5tk8pwRqUzLNE6aeSjZOCkhIzqCBDBA4uwkRBvJTfvl8//DLPY4MwlWEhnle53CO87n3c5/nfgbnmc+9l3sfAr1eD5PJhL1798Lb2xsAcPjwYQQHB2Pz5s1oamoStb3a2lqsWrUKoaGhOH36NADA398fH374IbKyshAREdHXu8BYt7hw2DFHmXrba0yZTIaVK1eiuLgYy5cvh5OTE5qbm2EwGKDT6XDkyBGrb6O2YnZ0dODAgQMYPXo09uzZg/b2digUCiQkJMBsNmPBggVwcnqw/8b2Or4cc+Bw4bBjjjL1tveYPj4+2L9/P4xGIyZNmgQAsFgsiI2NxVNPPYWLFy/ajJmRkYHw8HAsW7YM1dXVAIA5c+agsLAQf//73+Hh4dEn+dn7+HLM/seFw445yjeowRIzNDQUZ86cwfHjxzFixAgAwNmzZxEeHo4lS5agpqYGEokEZWVlmDt3LqKjo2H6/8fJhoWF4T//+Q+OHj0q9O0rg2V8OWb/4cJhxxzlG9RgiimRSDBr1iwUFBRg27ZtcHd3BxHh/fffx4wZM/DWW29Bp9Ph2LFjAACVSoX33nsP33//PaKjo/s8H2BwjS/H7B9cOBgbAC4uLli/fj3MZjNefPFFAEBDYyNOfPEFWlpa4OzsjDfeeAPFxcVYunRpv93unLHe4MJhxxxl6j2YYwYEBCA5ORk5OTkICw0FAEydOhWXLl3C7t27hUcjP0yDeXwdMWZ/sIsnADLbBmIKzDEfjieffBIpKSkwm80IiY3t19iOML6OFLM/8IyDsd8QrVY70Ckw1iOecdgxR3mGMsccfHE5pn3jwmHHHGXqzTEHX1yOad/4UBVjjDFReMZhxxxl6s0xB19cjmnfuHDYMUeZenPMwReXY9o3PlTFGGNMFJ5x2DFHmXpzzMEXl2PaNy4cdsxRpt4cc/DF5Zj2jQuHHXOUb1Acc/DF5Zj2jQuHHXOUb1Acc/DF5Zj2jU+OM8YYE4VnHHbMUabeHHPwxeWY9o0Lhx1zlKk3xxx8cTmmfePCcYfON7murk5Uv/b2djQ1NQl9nZ37Z1jb2toAADKZrF/iccyH61ZjIwDASeTv34NylPF1hJgP8lnU+bnXm2LHheMO9fX1AIDAwMABzoQxxgZGfX09vLy87rmOhAbrXOo+3Lp1C9euXYOnp6fdHJt84oknkJubyzE5pt3F5Zi/LUSE+vp6BAQEwMnp3tdN8YzjDk5OTvj9738/0GmIIpVKoVQqOSbHtLu4HPO3p6eZRie+HNfOvfbaaxyTY9plXI5pv/hQFWOMMVF4xsEYY0wULhyMMcZE4cLBGGNMFC4cjDHGROHCwRhjTBQuHIwxxkThwtEHNBoNJBKJ1c/27dut1snPz0dUVBRcXFwQGBiIt99+e4CyZYzZu8TExC6fOWPGjBGW37x5E6+99hpUKhU8PDwwZ84c/Pzzz30Wn/9yvI9s3rwZS5YsEV57enoK/66rq8OUKVMQExOD9957D5cuXcLLL78Mb29vvPrqqwORLmPMzoWEhODMmTPC6ztvaLhq1SqcPHkSn376Kby8vLBixQo888wzyMzM7JPYXDj6iKenJ4YNG2Zz2ccff4zW1lYcPHgQcrkcISEhMBqN2LVrFxcOxth9cXZ2tvmZc+PGDXzwwQc4dOgQJk2aBABISkqCTqfD+fPn8cc//vGBY/Ohqj6yfft2qFQqjBs3Djt37kR7e7uwLDs7G3/+858hl8uFNr1ej6KiItTU1AxEuowxO1dcXIyAgACMHDkScXFxsFgsAIC8vDy0tbUhJiZGWHfMmDEICgpCdnZ2n8TmGUcf+Otf/4rHH38cv/vd75CVlYUNGzagoqICu3btAgBUVlZixIgRVn38/PyEZUOGDOn3nBlj9isiIgLJyckIDg5GRUUFNm3ahKioKFy+fBmVlZWQy+Xw9va26uPn54fKyso+ic+Foxvr16/Hjh077rlOYWEhxowZg9WrVwttYWFhkMvlWLp0KbZt2waFQvGwU2WMOZhp06YJ/w4LC0NERATUajWOHDkCV1fXhx6fC0c34uPjsWjRonuuM3LkSJvtERERaG9vR3l5OYKDgzFs2LAuVzR0vu7uvAhjjPWWt7c3tFotSkpKMHnyZLS2tqK2ttZq1vHzzz/32ecNF45u+Pr6wtfX9776Go1GODk5YejQoQCAyMhIJCQkoK2tTXiE5Ndff43g4GA+TMUYe2ANDQ0oLS3FggULEB4eDplMhvT0dMyZMwcAUFRUBIvFgsjIyD6Jx7dVf0DZ2dnIyclBdHQ0PD09kZ2djVWrVmHatGlISUkBcPsqh+DgYEyZMgXr1q3D5cuX8fLLL2P37t18VRVjTLQ1a9Zg+vTpUKvVuHbtGgwGA4xGIwoKCuDr64u//OUvOHXqFJKTk6FUKrFy5UoAQFZWVt8kQOyB5OXlUUREBHl5eZGLiwvpdDraunUr3bx502o9k8lEf/rTn0ihUNDw4cNp+/btA5QxY8zexcbGkr+/P8nlcho+fDjFxsZSSUmJsLy5uZmWL19OQ4YMITc3N5o9ezZVVFT0WXyecTDGGBOF/46DMcaYKFw4GGOMicKFgzHGmChcOBhjjInChYMxxpgoXDgYY4yJwoWDMcaYKFw4GGOMicKFg/WL8vJySCQSGI3GgU6lR4mJiXjsscdE9cnIyIBEIkFtbS0AIDk5ucttrQeT9PR06HQ6dHR0DHQqfWb9+vXCrTnYvXHhYACARYsWYdasWV3a7/5AvF+BgYGoqKjAH/7whwfajhjd7VN/iI2Nhdls7tW69lhk3nzzTfztb3+DVCp9qHHup4jfrzVr1iAlJQU//vhjv8SzZ1w42EPX2toKqVSKYcOGWT0XeTBzdXUV7o482Jw7dw6lpaXCnVftQWtra4/r+Pj4QK/X41//+lc/ZGTfuHAw0Y4dO4aQkBAoFApoNBr885//tFqu0WiwZcsWLFy4EEqlEq+++mqXQ1WLFi2CRCLp8pORkQEAqKmpwcKFCzFkyBC4ublh2rRpKC4uFmJ0fkv/8ssvodPp4OHhgalTp6KiogLA7W+qKSkp+Pzzz7tse926ddBqtXBzc8PIkSPx1ltvoa2tTdQYnDp1ClqtFq6uroiOjkZ5ebnV8rtnESaTSbiDslKpRHh4OC5cuICMjAy89NJLuHHjhpBnYmIiAOCjjz7C+PHjhefZz5s3D1VVVcI2O2eD6enpGD9+PNzc3DBhwgQUFRVZ5XLixAk88cQTcHFxgY+PD2bPni0sa2lpwZo1azB8+HC4u7sjIiJCGKfupKamYvLkyXBxcRHaOmcGBw8eRFBQEDw8PLB8+XJ0dHTg7bffxrBhwzB06FD84x//sNpWbW0tFi9eDF9fXyiVSkyaNAkmk0kYw02bNsFkMgljk5yc3GO/O/N5//33MWLECCHXo0ePIjQ0FK6urlCpVIiJiUFjY6PQb/r06UhNTb3n/jPw3XHZbS+++CLNnDmzS/s333xDAKimpoaIiC5cuEBOTk60efNmKioqoqSkJHJ1daWkpCShj1qtJqVSSe+88w6VlJRQSUkJlZWVEQC6ePEiERHV1tZSRUWF8PP666/T0KFDhTt4zpgxg3Q6HX377bdkNBpJr9fTqFGjqLW1lYiIkpKSSCaTUUxMDOXm5lJeXh7pdDqaN28eERHV19fTc889R1OnThVitLS0EBHRli1bKDMzk8rKyigtLY38/Pxox44dQv4Gg4EeffTRbsfKYrGQQqGg1atX05UrV+jf//43+fn5WY1TUlISeXl5CX1CQkJo/vz5VFhYSGazmY4cOUJGo5FaWlpoz549pFQqhTzr6+uJiOiDDz6gU6dOUWlpKWVnZ1NkZCRNmzaty3sTERFBGRkZ9MMPP1BUVBRNmDBBWOeLL74gqVRKGzdupIKCAjIajbR161Zh+eLFi2nChAn07bffUklJCe3cuZMUCgWZzeZu9z8sLKzL3Z0NBgN5eHjQ3Llz6YcffqC0tDSSy+Wk1+tp5cqVdOXKFTp48CABoPPnzwv9YmJiaPr06ZSbm0tms5ni4+NJpVLR9evXqampieLj4ykkJEQYm6amph77debj7u5OU6dOpe+//55MJhNdu3aNnJ2dadeuXVRWVkb5+fm0f/9+YbyJiAoLCwkAlZWVdbv/jIgLByOi24VDKpWSu7u71Y+Li4vVB+K8efNo8uTJVn3Xrl1LY8eOFV6r1WqaNWuW1Tp3F447HTt2jFxcXOjcuXNERGQ2mwkAZWZmCutUV1eTq6srHTlyhIhufzADsLqV9P79+8nPz89qn2wVw7vt3LmTwsPDhdc9FY4NGzZY7S8R0bp16+5ZODw9PSk5Odnm9u5etzu5ubkEQPig6ywcZ86cEdY5efIkAaDm5mYiIoqMjKS4uDib27t69SpJpVL66aefrNqffvpp2rBhQ7d5eHl50YcffmjVZjAYyM3Njerq6oQ2vV5PGo2GOjo6hLbg4GDatm0bERGdPXuWlEpll0cQPPLII3TgwAFhu3e/F73tJ5PJqKqqSliel5dHAKi8vLzbfbtx4wYBoIyMjG7XYUSOccCZ9Up0dHSX47s5OTmYP3++8LqwsBAzZ860WmfixInYs2cPOjo6hJOl48eP71XMixcvYsGCBXj33XcxceJEIYazszMiIiKE9VQqFYKDg1FYWCi0ubm54ZFHHhFe+/v7Wx3K6c4nn3yCvXv3orS0FA0NDWhvb4dSqexVvp353ZkbgB6frLZ69WosXrwYH330EWJiYvDss89a5W5LXl4eEhMTYTKZUFNTg1u3bgEALBYLxo4dK6wXFhYm/Nvf3x8AUFVVhaCgIBiNRixZssTm9i9duoSOjg5otVqr9paWFqhUqm7zam5utjpM1Umj0cDT01N47efnB6lUCicnJ6u2zvfIZDKhoaGhS6zm5maUlpZ2G7+3/dRqtdVTPB999FE8/fTTCA0NhV6vx5QpUzB37lyrp3B2Pq+7qamp2/iMHx3L7uDu7o5Ro0ZZtf3vf/+77231pLKyEjNmzMDixYvxyiuviI7R+RjeThKJBNTD42Wys7MRFxeHTZs2Qa/Xw8vLC6mpqV3O0/S1xMREzJs3DydPnsTp06dhMBiQmppqdb7hTo2NjdDr9dDr9fj444/h6+sLi8UCvV7f5UTvneMgkUgAQCgynR+EtjQ0NEAqlSIvL6/L1VEeHh7d9vPx8UFNTU2Xdlvvh622ztwaGhrg7+9v85zKva4y622/u38HpVIpvv76a2RlZeGrr77Cvn37kJCQgJycHIwYMQIA8OuvvwLAfT822lFw4WCi6HQ6ZGZmWrVlZmZCq9WKujTz5s2bmDlzJsaMGYNdu3Z1idHe3o6cnBxMmDABAHD9+nUUFRVZfdPuiVwu7/J3BllZWVCr1UhISBDarl692uttduaXlpZm1Xb+/Pke+2m1Wmi1WqxatQovvPACkpKSMHv2bJt5XrlyBdevX8f27dsRGBgIALhw4YKoPIHbs5H09HS89NJLXZaNGzcOHR0dqKqqQlRUVK+3OW7cOBQUFIjO5W6PP/44Kisr4ezsDI1GY3MdW2PTm37dkUgkmDhxIiZOnIiNGzdCrVbj+PHjWL16NQDg8uXLkMlkCAkJuZ9dchh8VRUTJT4+Hunp6diyZQvMZjNSUlLw7rvvYs2aNaK2s3TpUvz3v//F3r178csvv6CyshKVlZVobW3F6NGjMXPmTCxZsgTnzp2DyWTC/PnzMXz48C6Hye5Fo9EgPz8fRUVFqK6uRltbG0aPHg2LxYLU1FSUlpZi7969OH78uKjcly1bhuLiYqxduxZFRUU4dOiQcLWPLc3NzVixYgUyMjJw9epVZGZmIjc3FzqdTsizoaEB6enpqK6uRlNTE4KCgiCXy7Fv3z78+OOPSEtLw5YtW0TlCQAGgwGHDx+GwWBAYWEhLl26hB07dgC4Xcji4uKwcOFCfPbZZygrK8N3332Hbdu24eTJk91uU6/X49y5c6JzuVtMTAwiIyMxa9YsfPXVVygvL0dWVhYSEhKEIqnRaFBWVgaj0Yjq6mq0tLT0qp8tOTk52Lp1Ky5cuACLxYLPPvsMv/zyi/A+AMDZs2cRFRV1z5kaA19VxW7r7VVVRERHjx6lsWPHkkwmo6CgINq5c6dVH7VaTbt377Zqu/vkuFqtJgBdfr755hsiIvr1119pwYIF5OXlRa6urqTX662u9LF1Qvn48eN05690VVUVTZ48mTw8PKy2vXbtWlKpVOTh4UGxsbG0e/duq231dHKciOjEiRM0atQoUigUFBUVJVwxZOvkeEtLCz3//PMUGBhIcrmcAgICaMWKFcIJbCKiZcuWkUqlIgBkMBiIiOjQoUOk0WhIoVBQZGQkpaWlWY2hrffm4sWLXa4KOnbsGD322GMkl8vJx8eHnnnmGWFZa2srbdy4kTQaDclkMvL396fZs2dTfn5+t/t+/fp1cnFxoStXrtxzzGz9Tj311FP0+uuvC6/r6upo5cqVFBAQQDKZjAIDAykuLo4sFgsREd28eZPmzJlD3t7eBEC4eq+nfrbyKSgoIL1eT76+vqRQKEir1dK+ffus1gkODqbDhw93u+/sNn7mOGNMtLVr16Kurg4HDhwY6FT6zOnTpxEfH4/8/HyH+UPV+8WHqhhjoiUkJECtVgsnugeDxsZGJCUlcdHoBZ5xMMYYE4VnHIwxxkThwsEYY0wULhyMMcZE4cLBGGNMFC4cjDHGROHCwRhjTBQuHIwxxkThwsEYY0wULhyMMcZE+T9MQRWvr5wAJgAAAABJRU5ErkJggg==", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Number of BSs: 1\n", + " Shape of Channel: (1, 1, 1, 200, 1024, 4, 32)\n", + "*****************************************************\n", + "\n" + ] + } + ], + "source": [ + "# Antenna Array at UE side\n", + "# assuming antenna element type to be \"OMNI\"\n", + "# with 2 panel and 2 single polarized antenna element per panel.\n", + "ueAntArray = AntennaArrays(antennaType = \"OMNI\", centerFrequency = carrierFrequency, \n", + " arrayStructure = rxAntStruture)\n", + "ueAntArray()\n", + "\n", + "# # Radiation Pattern of Rx antenna element \n", + "# ueAntArray.displayAntennaRadiationPattern()\n", + "\n", + "\n", + "# Antenna Array at BS side\n", + "# assuming antenna element type to be \"3GPP_38.901\", a parabolic antenna \n", + "# with 4 panel and 4 single polarized antenna element per panel.\n", + "bsAntArray = AntennaArrays(antennaType = \"3GPP_38.901\", centerFrequency = carrierFrequency,\n", + " arrayStructure = txAntStruture)\n", + "bsAntArray()\n", + " \n", + "# # Radiation Pattern of Tx antenna element \n", + "# bsAntArray[0].displayAntennaRadiationPattern()\n", + "\n", + "# Layout Parameters\n", + "isd = 100 # inter site distance\n", + "minDist = 10 # min distance between each UE and BS \n", + "ueHt = 1.5 # UE height\n", + "bsHt = 25 # BS height\n", + "bslayoutType = \"Hexagonal\" # BS layout type\n", + "ueDropType = \"Hexagonal\" # UE drop type\n", + "htDist = \"equal\" # UE height distribution\n", + "ueDist = \"equal\" # UE Distribution per site\n", + "nSectorsPerSite = 1 # number of sectors per site\n", + "maxNumFloors = 1 # Max number of floors in an indoor object\n", + "minNumFloors = 1 # Min number of floors in an indoor object\n", + "heightOfRoom = 3 # height of room or ceiling in meters\n", + "indoorUEfract = 0.5 # Fraction of UEs located indoor\n", + "lengthOfIndoorObject = 3 # length of indoor object typically having rectangular geometry \n", + "widthOfIndoorObject = 3 # width of indoor object\n", + "# forceLOS = True # boolen flag if true forces every link to be in LOS state\n", + "forceLOS = False # boolen flag if true forces every link to be in LOS state\n", + "\n", + "# simulation layout object \n", + "simLayoutObj = SimulationLayout(numOfBS = numBSs,\n", + " numOfUE = numUEs,\n", + " heightOfBS = bsHt,\n", + " heightOfUE = ueHt, \n", + " ISD = isd,\n", + " layoutType = bslayoutType,\n", + " ueDropMethod = ueDropType, \n", + " UEdistibution = ueDist,\n", + " UEheightDistribution = htDist,\n", + " numOfSectorsPerSite = nSectorsPerSite,\n", + " ueRoute = None)\n", + "\n", + "simLayoutObj(terrain = terrain, \n", + " carrierFreq = carrierFrequency, \n", + " ueAntennaArray = ueAntArray,\n", + " bsAntennaArray = bsAntArray,\n", + " indoorUEfraction = indoorUEfract,\n", + " lengthOfIndoorObject = lengthOfIndoorObject,\n", + " widthOfIndoorObject = widthOfIndoorObject,\n", + " forceLOS = forceLOS)\n", + "\n", + "# displaying the topology of simulation layout\n", + "fig, ax = simLayoutObj.display2DTopology()\n", + "\n", + "paramGen = simLayoutObj.getParameterGenerator(delaySpread = delaySpread)\n", + "\n", + "# paramGen.displayClusters((0,0,0), rayIndex = 0)\n", + "channel = paramGen.getChannel()\n", + "Hf = channel.ofdm(scs, Nfft, normalizeChannel = True)\n", + "\n", + "Nt = bsAntArray.numAntennas # Number of BS Antennas\n", + "Nr = ueAntArray.numAntennas\n", + "\n", + "print(\" Number of BSs: \"+str(numBSs))\n", + "print(\" Shape of Channel: \"+str(Hf.shape))\n", + "print(\"*****************************************************\")\n", + "print()" + ] + }, + { + "cell_type": "markdown", + "id": "1f83b156", + "metadata": {}, + "source": [ + "## Reconstrunction Performance of CSI-Net" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6c22cda8", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7/7 [==============================] - 0s 7ms/step\n" + ] + } + ], + "source": [ + "numSubcarrier = 32\n", + "codewordSize = 512\n", + "\n", + "H = Hf[0,0,0,...,0,:].transpose(0,2,1)\n", + "csinet = CSINet()\n", + "model = csinet(Nt, numSubcarrier, codewordSize)\n", + "csinet.loadModel()\n", + "Hprep = csinet.preprocess(H)\n", + "\n", + "Hrec = csinet.predict(Hprep)\n", + "\n", + "Hest = csinet.postprocess(Hprep, Nfft)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "adf8a124", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[153 134 179 124 21]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "numChannels = 5\n", + "fig, ax = plt.subplots(2,numChannels, figsize = (12, 5))\n", + "\n", + "idx = np.random.choice(np.arange(numBatches), size=numChannels, replace = False)\n", + "print(idx)\n", + "for n in range(numChannels):\n", + " ax[0,n].imshow(np.abs(Hprep[idx[n],0])**2 + np.abs(Hprep[idx[n],1])**2, cmap = \"Greys\", aspect = \"auto\")\n", + " ax[1,n].imshow(np.abs( Hrec[idx[n],0])**2 + np.abs( Hrec[idx[n],1])**2, cmap = \"Greys\", aspect = \"auto\")\n", + " \n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d5881756", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NMSE: 0.20250736648608653\n" + ] + } + ], + "source": [ + "print(\"NMSE: \"+str(np.sqrt(np.mean(np.abs(Hest-H)**2/(np.abs(H))**2))))" + ] + }, + { + "cell_type": "markdown", + "id": "49e267dc", + "metadata": {}, + "source": [ + "## PDSCH Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "29e65b83", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ PDSCH Parameters *************\n", + "\n", + " pdschMappingType: PDSCH-mapping-type-A\n", + " startSymbol: 2\n", + " numSymbols: 12\n", + " betaDMRS: 1\n", + " rank: 1\n", + " configurationType: Configuration-type-1\n", + " maxLength: len1\n", + " dmrsTypeAPosition: pos2\n", + " dmrsAdditionalPosition: pos0\n", + " Duration, ld: 12\n", + " Start symbol, l0: 0\n", + " Start symbol-1, l1: 11\n", + " num of Layers: 1\n", + "\n", + "********************************************\n", + "********************************************\n", + " tbsize-1: 5768\n", + "\n", + " numTBs: 1\n", + " numCBs: 2\n", + " numLayers: 1 | LayerperTB: [1 0]\n", + " numRB: 85\n", + " coderate: 0.2451171875\n", + " modOrder: 2\n", + "additionalOverhead: 0\n", + "numberTargetBits: 23460\n", + "********************************************\n" + ] + } + ], + "source": [ + "########################################## PDSCH Lower Physical Layer Parameters #########################################\n", + "pdschLowerPhyConfig = PDSCHLowerPhyConfiguration(rank = 1, startSymbol=2, numSymbols=12, pdschMappingType = \"PDSCH-mapping-type-A\", \n", + " maxLength = \"len1\", dmrsAdditionalPosition = \"pos0\", l0 = 0,\n", + " configurationType = \"Configuration-type-1\")\n", + "pdschMappingType = pdschLowerPhyConfig.pdschMappingType # \"PDSCH mapping type A\" or \"PDSCH mapping type B\"\n", + "maxLength = pdschLowerPhyConfig.maxLength\n", + "startSymbol = pdschLowerPhyConfig.startSymbol\n", + "numSymbols = pdschLowerPhyConfig.numSymbols\n", + "betaDMRS = pdschLowerPhyConfig.betaDMRS\n", + "configurationType = pdschLowerPhyConfig.configurationType # \"Configuration-type-1\" or \"Configuration-type-2\"\n", + "dmrsTypeAPosition = pdschLowerPhyConfig.dmrsTypeAPosition # \"pos2\" or \"pos3\"\n", + "dmrsAdditionalPosition = pdschLowerPhyConfig.dmrsAdditionalPosition # \"pos2\" or \"pos3\"\n", + "ld = pdschLowerPhyConfig.ld\n", + "l0 = pdschLowerPhyConfig.l0\n", + "l1 = pdschLowerPhyConfig.l1\n", + "rank = pdschLowerPhyConfig.rank\n", + "scramblingID = pdschLowerPhyConfig.scramblingID\n", + "nSCID = pdschLowerPhyConfig.nSCID\n", + "\n", + "mcsIndex = 3\n", + "mcsTable = \"pdschTable1\"\n", + "\n", + "########################################## PDSCH Parameters #########################################\n", + "pdschUpperPhyConfig = PDSCHUpperPhyConfiguration(pdschMappingType = pdschMappingType, configurationType = configurationType, \n", + " dmrsTypeAPosition = dmrsTypeAPosition, maxLength = maxLength, mcsIndex = mcsIndex,\n", + " mcsTable = mcsTable, dmrsAdditionalPosition = dmrsAdditionalPosition, l0 = l0, \n", + " ld = ld, l1 = l1, startSymbol = startSymbol, numSymbols = numSymbols, rank = rank, \n", + " numRB = numRB)\n", + "\n", + "numTBs = pdschUpperPhyConfig.numTBs\n", + "numRB = pdschUpperPhyConfig.numRB\n", + "tbLen1 = pdschUpperPhyConfig.tbLen1\n", + "\n", + "codeRate = pdschUpperPhyConfig.codeRate\n", + "modOrder = pdschUpperPhyConfig.modOrder\n", + "mcsIndex = pdschUpperPhyConfig.mcsIndex\n", + "mcsTable = pdschUpperPhyConfig.mcsTable\n", + "numlayers = pdschUpperPhyConfig.numlayers\n", + "scalingField = pdschUpperPhyConfig.scalingField\n", + "additionalOverhead = pdschUpperPhyConfig.additionalOverhead\n", + "dmrsREs = pdschUpperPhyConfig.dmrsREs\n", + "additionalOverhead = pdschUpperPhyConfig.additionalOverhead\n", + "\n", + "numTargetBits1 = pdschUpperPhyConfig.numTargetBits1\n", + "if(numTBs == 2):\n", + " numTargetBits1 = pdschUpperPhyConfig.numTargetBits1\n", + " numTargetBits2 = pdschUpperPhyConfig.numTargetBits2\n", + " tbLen2 = pdschUpperPhyConfig.tbLen2\n", + "\n", + "numTargetBits = pdschUpperPhyConfig.numTargetBits" + ] + }, + { + "cell_type": "markdown", + "id": "029b60e8", + "metadata": {}, + "source": [ + "## PDSCH: Transmitter" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "abb12e69", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "(
    ,\n", + " )" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGwCAYAAABIC3rIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACGnklEQVR4nO3deXxU5dk+8OvMmSUrYU+IAoIbiwsqsoitWimI4kqrVNoiuP0QFcTXl/IqKqAirrgjLmCtFm0rtvK+KohbVUQEERcEXCoqBEQgIevMnHl+f8xiljmTyZx7Zi6S5/p8aGpycvLNZHJ4OM89920opRR0dHR0dHR0dNpwXNkG6Ojo6Ojo6OhkO3pBpKOjo6Ojo9PmoxdEOjo6Ojo6Om0+ekGko6Ojo6Oj0+ajF0Q6Ojo6Ojo6bT56QaSjo6Ojo6PT5qMXRDo6Ojo6OjptPu5sA/aHhEIhbNu2DYWFhTAMI9scHR0dHR0dnSSilMK+fftQWloKlyvxPSC9IEoi27ZtQ/fu3bPN0NHR0dHR0Ukh3333HQ488MCEx+gFURIpLCwEEH5A27Vrl/J5KioqAMDROaK5/PKn8Oij4x2dQ8pzyak34O7h+Y7OUe3zAQDy6uocnQcArn2typGHycLmYbJIepgsbB4mi4SHycLmYbJIefbV1aH/vffG/h5PFL0gSiLRbbJ27do5Wjz4Ij/c6Fsn8XpzHS9kpDwetw/tcnIcnSPHHX4qegW2JD3uoCMPk4XNw2SR9DBZ2DxMFgkPk4XNw2SR9iRT7qIXRBlMMBgEILMgkoiU541vg+j76F5H5+jcOfyLs2tXraPzbLy8vaPPBwCrmX3mTIfJw2QBuDxMFoDLoy32YfIwWYDMe4xsDnd9++23ceedd2Lt2rXYvn07li5dinPOOSf2caUUbrrpJjz22GPYu3cvhg0bhkceeQSHHnpo7Jjdu3fjqquuwksvvQSXy4UxY8bgvvvuQ0FBQeyYDRs2YPLkyVizZg26dOmCq666Cv/93/+dtLOiogJFRUUYO/Z+eL25KX+/lmUBAEzTTPkc0Xz00VYcc0wPR+eQ8qx753Mc1dXZOSwj/MQ3VcjReQBgw07LkYfJwuZhskh6mCxsHiaLhIfJwuZhskh5AsE6/O3DB1BeXt7srkpW7xBVVVXh6KOPxsSJE3Heeec1+fgdd9yB+++/H0899RR69eqFmTNnYuTIkfj888+RE7kVN27cOGzfvh0rVqxAIBDAhAkTcNlll+HZZ58FEF7MjBgxAsOHD8eCBQvwySefYOLEiWjfvj0uu+yyFnkffXS8o22qmpoaAEBubuqLqmjGj38cTz11iaNzSHlKS6/BG98GHZ2jffvwXaq9e52dZ+Pl7XHFK5V4+LSC5g+2Sa3HAwDICQQcWQA4trB5mCySHiYLm4fJIuFhsrB5mCxSnopaN/72YXLHZnVBNGrUKIwaNSrux5RSmD9/Pm644QacffbZAIA///nPKC4uxosvvoixY8di48aNeOWVV7BmzRoMHDgQAPDAAw/g9NNPx1133YXS0lI888wz8Pv9ePLJJ+H1etG/f3+sX78e99xzj+2CqK6uDnX1iriixcd1dXWoqKiAz+dDXV0dfD4fAoFA7A6LZVnweDyxjzV+u2/fPrhcLiiloJSCaZoIBALwer1NjvX7/fB4PLAsC4ZhwDAMBIPB2LFerxGzxDu2OUsgEEBtbXh7KhQKwe12JzzWNE1bd36+B0VFXpSX+1FQ4EFNTRAejwtKAZYVQk6OicrKYOyY6NvCQg+qqgLw+Uy0b++DUoDH40JNTRDt2jU8tqjIi4oKP3Jz3QgEQjAMwDQN1NVZyM/3YN++AIqKvPCbJtp1zoPfNBF0u2FaFpRhQBkGXKEQgqYJTzAIv8cDbyAQextwu+G2LIRcLtR6PDCUQsjlgtvmWI9lwXK5YERusIYMA27LanJszGKacEWOVYYBMxRCwMYSdYcit4vr3G5YLhdcoVBCt6EUDKVgmaat25dXhxqvt4k74PHAU+/YmMU0YSoFFXHHvpc4lsbu5h7vnPyfLQbCt8fjuj0eeIJBBF2u2GMYMgy4QyFU5uSEP2aaCd3NPd5RS9Sd6DGs/7M3AFiRx7CxJZE74HbHf7zdbpihEPLa+VDj9Sb9nI3ntgwDAbcbrujXs3HHfbwjj6FLKeQWelHj9Sb1nLX7XWtsSeRu7netoEMO/KbZ5Nj6P/tEv2v1LaleI6K/a3aWllwjos+bkGGkfI2Iur25tajMyUn5GlHl88EdeTxSvUZE3fEsLb1GBFyu2LGpXiOqW1DHRFtD9M0336CsrAzDhw+Pva+oqAiDBw/GqlWrMHbsWKxatQrt27ePLYYAYPjw4XC5XFi9ejXOPfdcrFq1Cr/85S/hjVzsAGDkyJGYN28e9uzZgw4dOjT52nPnzsWsWbPEvye32y2yXSYVj8cDiR3TE7ubuGVkYVIXabuLRtDlApSCqXxxLxrJXuwg8C8b07JiX4Mh7sjWJkPMUAiKqBeX27LCF3CC2geTyAKEH5sQyc9KW+wTfd4wxAyFYJJYAMAdCiGUwWsx7YKorKwMAFBcXNzg/cXFxbGPlZWVoWvXrg0+7na70bFjxwbH9OrVq8k5oh+LtyCaMWMGpk2bFvvviooKdO/eHT6fL7ZllugVWo0/Fn0bveuUl5cXOza69Wf3OfESviukmljsjrV7W1FRAcMwkJ+f3+yxjVPf/eoXtXj1izJbQzIpLQ0btm2rcnSejZe3R8WuanitAnjj/GL7IoXk0Y81fgsAVk4OYBjIi9xBS3Rs4zQ+JpHFm4QFACpzcuAOheC1rOQsCc5bVx1Art/frFvKkujxrq1qoaXpdwq/2w3lcqHA5mfV4LwtsST5s2lgCYXiW+Ic29zPvrqiDrn+8HZBMs/ZeO7KnBx4Gv2s4qW5n33NPn/ssUn2OdvY3aylBeet3FMLr+VO+jnb2N2cpSWPd3OWeGl8TPR5k1/b9AUlLX28/TXBpH4X7B5vfygEuFzIjWdp4eOdrCXR412ZkwMXmm6ZteQakRfne7EL7YIom/H5fHEXAZdf/pSjoupQKFwY1ly3zGTy0UdbMX78447OIeXplGs4Lp4LGeEL7uE9nT0lr3ilEht2WrjilUoHlvCiTOIukVMLm4fJIulhsrB5mCwSHiYLm4fJIuUJBJPvYUS7ICopKQEA7NixA926dYu9f8eOHRgwYEDsmJ07dzb4vGAwiN27d8c+v6SkBDt27GhwTPS/o8ckG6dF1ZKNGSWKqqU844Ze57h4rjJyx6mgBat5uzgt5mOysHmYLJIeJgubh8ki4WGysHmYLFKe/aaoOlF69eqFkpISrFy5MrYAqqiowOrVqzFp0iQAwNChQ7F3716sXbsWxx13HADg9ddfRygUwuDBg2PHXH/99QgEAvBEKtZXrFiBww8/PO52WTrD0n8oGimPRB+i/Pzwz6aqylkNkEQfIq9AHZJkmDxMFoDLw2QBuDzaYh8mD5MFyLwnqwuiyspKfPnll7H//uabb7B+/Xp07NgRPXr0wNSpU3HLLbfg0EMPjb3svrS0NNarqG/fvjjttNNw6aWXYsGCBQgEArjyyisxduxYlJaWAgAuvPBCzJo1CxdffDGmT5+OTz/9FPfddx/uvffejH+/0RoiloWRlOeUnm6KfwlIxR9ZOCeqA8hkmDxMFoDLw2QBuDzaYh8mD5MFyLwnq40Z33zzTZxyyilN3j9+/HgsXrw41phx4cKF2Lt3L0488UQ8/PDDOOyww2LH7t69G1deeWWDxoz333+/bWPGzp0746qrrsL06dOTdko1ZpSuIXLamFHKs2LFZ44+Hwi/hB4ALMvZ0/GUnm7HDcGir0CR2kd3Xl/F42GySHqYLGweJouEh8nC5mGySHla0pgxqwui/SXRBVEyD2iiVFaGC8zqL9ZSjUQNkZSntPQaR58PAF26hBeaP/5Y4+g8Eo0ZqyMtGvLivAKqpZHYR2fyMFkkPUwWNg+TRcLDZGHzMFmkPBW1tehx++38narbWph6EAFyHokts587kmZ/O5GpBxHA5WGyAFweJgvA5dEW+zB5mCxA5j16QZTBsN2Mk/JIFFV36BBeCO3Zk/xLJONFoqhaR0dHR6ftRS+IMpjWuiCSuEMUHZsQr1FfpsPUiRng8jBZAC4PkwXg8miLfZg8TBYg8x5dQ5REdFF14khMuw9Fphq7CKYsM1nYPEwWSQ+Thc3DZJHwMFnYPEwWKY8uqhaOVFF1a23MKFFUXVISHmdSVlbt6DwSRdVVkTYE+XXOtu8AmcJCJg+TRdLDZGHzMFkkPEwWNg+TRcqji6pJw9J/KBopj8SWmT9S4O214k2jyWw8kdk6LGHyMFkALg+TBeDyaIt9mDxMFiDzHr0gymBaa2NGiaJqyeGuTtPWm5MlCpMF4PIwWQAuj7bYh8nDZAHaWGPG/SW6hihxZGqIeBqCMVnYPEwWSQ+Thc3DZJHwMFnYPEwWKU9Laoj0HaIWRA93jR893DV9FjYPk0XSw2Rh8zBZJDxMFjYPk0XK0yqGu7bGsGyVRaOHu8ZPWx9wmChMFoDLw2QBuDzaYh8mD5MFaGPDXdta/JEeOywLIymPRFF1dcSQJ/DqBqcJusO/Fiz76EweJgvA5WGyAFwebbEPk4fJAmTeo2uIkohcDVH4h+pyOR+ZIVNDJOORGO7qdof3ioNBhuGura8Xh5SHySLpYbKweZgsEh4mC5uHySLl0TVEaYrTGqLq6nCPnby8PMcWiRoiKY9EH6J27cJ3iHbvdrZ3/fBpBY73riW7ZkvsozN5mCySHiYLm4fJIuFhsrB5mCxSHl1DRBq2m3GcoztyJEg6Ojo6Ojotil4QZTCtddq9RFF1u3bhBVFFhbN/mUgUVbtCzm8XS4bJw2QBuDxMFoDLoy32YfIwWYDMe/SCKIMJRCrmc3I47oJIeSTuEEm2jHeaYGSh6CPp2srkYbIAXB4mC8Dl0Rb7MHmYLEDmPbqoOonoxoyJoxszps/C5mGySHqYLGweJouEh8nC5mGySHn0cFfh6OGuiSNRVC05ukM3J0ufh8ki6WGysHmYLBIeJgubh8ki5dHDXUnD0n8oGs7hrh4JkqO09eZkicJkAbg8TBaAy6Mt9mHyMFkA3ZixVUcPd7WPHu5qHyYPkwXg8jBZAC6PttiHycNkAfRwV8roGqLEkWjMaJrhvWLLYmjM2Pr20aU8TBZJD5OFzcNkkfAwWdg8TBYpj27MmKY4bcy4b98+AEBhYaFji0QNkZRHYrir5KvMnO5dM1nYPEwWSQ+Thc3DZJHwMFnYPEwWKY9uzEgajyf79TH1I+VpbX2I3CS3i6Nh8jBZAC4PkwXg8miLfZg8TBYg8x69IMpgLLInm5RHtlO185bxThMS2NKUDJOHyQJweZgsAJdHW+zD5GGyAJn36BqiJCJVQxRdgEh0iJaoIZLySPQhsiJD/EyCoYJMFjYPk0XSw2Rh8zBZJDxMFjYPk0XKo/sQCUeqD1FNTQ0AIDc39UVVNBI1RFIeiT5ERUXhO0Tl5c63zJzuXde5wzdOJbqjSuyjM3mYLJIeJgubh8ki4WGysHmYLFIe3YeINHrLzD7VkeK5PILRHVb0jhlJ+3omD5MF4PIwWQAuj7bYh8nDZAEy79ELogxGF1XbJz8/bKmqctaIS6SomuRiEA2Th8kCcHmYLACXR1vsw+RhsgCZ9+gFUQbTWhszSiS6ZeZ0QSSRtt6cLFGYLACXh8kCcHm0xT5MHiYLoBszUkY3ZkwcPdw1fRY2D5NF0sNkYfMwWSQ8TBY2D5NFyqOLqoWjh7smjh7uah+WAYdSHiaLpIfJwuZhskh4mCxsHiaLlEcXVZOGYWuqfvRw1/hp6wMOE4XJAnB5mCwAl0db7MPkYbIAerhrqw5TzQ7A5QlEXl7JsHfNZAG4PEwWgMvDZAG4PNpiHyYPkwXIvEdvmSURXUOUOK1vuGv48XCRNCdj8jBZJD1MFjYPk0XCw2Rh8zBZpDx6uGua4nS4a1VVuD4mPz/fsUWihkjKIzHcVXJ0h9O9ayYLm4fJIulhsrB5mCwSHiYLm4fJIuXRw11JI3FnSDJSHok+RB06hLft9uxx1phRog+RQXbTlMnDZAG4PEwWgMujLfZh8jBZgMx79IJIhyJkv4c6Ojo6Om0suoYoicgNdw133TRN5+tQmeGuMh6R4a6Ru1VmKPt710wWNg+TRdLDZGHzMFkkPEwWNg+TRcqj+xAJR6oPkeSruiRqiKQ8En2ICgrCL7evrHQ+usPp3vXPLQCcv7JBYh+dycNkkfQwWdg8TBYJD5OFzcNkkfLoPkSkYXqZOyDnkehDVBVpwJUv0BDMaQJk7euZPEwWgMvDZAG4PNpiHyYPkwXIvEcviDIYloVQNEweD1FDMCYLwOVhsgBcHiYLwOXRFvsweZgsQOY9ekGUwbTWO0QSrzKTHN3hNG19wGGiMFkALg+TBeDyaIt9mDxMFkAPd6WMbsyYOHq4a/osbB4mi6SHycLmYbJIeJgsbB4mi5RHF1ULRw93TRw93NU+LAMOpTxMFkkPk4XNw2SR8DBZ2DxMFimPLqomDctWWTR6uGv8tPUBh4nCZAG4PEwWgMujLfZh8jBZgMx7uFont/IEAgEEiJ5wTJ6gaSJoOru9KhUmC8DlYbIAXB4mC8Dl0Rb7MHmYLEDmPXrLLInI1RCFC8NcLuc/YJkaIhmPxHBXtzu8VxwM6uGuzB4mi6SHycLmYbJIeJgsbB4mi5RHD3dNU5wOd62urgYA5OXlObZI1BBJeSSGu9ZGXk2QI3DHyuneNZOFzcNkkfQwWdg8TBYJD5OFzcNkkfLo4a6kYbsZJ+WReNl9587h4rldu5wV80m87F5FXtnAEiYPkwXg8jBZAC6PttiHycNkATLv0QuiDMYk2psFuDx1dRx9LwCZOT6SYfIwWQAuD5MF4PJoi32YPEwWIPMeXUOURKRqiILB8DBVt5tjuKuUR6IPUTDSC8lNMFSQycLmYbJIepgsbB4mi4SHycLmYbJIeXQfIuHo4a6JI9GHKD8/vFdcVaWHuzJ7mCySHiYLm4fJIuFhsrB5mCxSHt2HiDStdXSHRB8iyYZgTtPW29cnCpMF4PIwWQAuj7bYh8nDZAEy79ELogyGZSEUDZOHqSEYkwXg8jBZAC4PkwXg8miLfZg8TBYg8x69IMpgWusdIj3cNb1h8jBZAC4PkwXg8miLfZg8TBZAD3eljB7umjh6uGv6LGweJoukh8nC5mGySHiYLGweJouURxdVC0eqqHrfvn0AgMLCQscmiaJqKY9EUXVxcXihuWNHjaPzSBRVV0fumOVF7qA5iURhIZOHySLpYbKweZgsEh4mC5uHySLl0UXVpJF4ub1kmDy1tRy3aAHAJLldHA2Th8kCcHmYLACXR1vsw+RhsgCZ9/D8jdgGwnYzTsoj8SqzGq8XAJDr90uQHCUksKUpGSYPkwXg8jBZAC6PttiHycNkATLv0VtmSUSqhsiKrHYlOkRL1BBJeSSGu3o84Sd+IOCsIZjEcFcr8kso0SVVYh+dycNkkfQwWdg8TBYJD5OFzcNkkfLo4a5pitPhrrWRHjs5kZ47TiJRQyTlkRjuWhfZvvNFumc7idO9ayYLm4fJIulhsrB5mCwSHiYLm4fJIuVpyXBXrvtjjWJZFmbOnIlevXohNzcXBx98MObMmdNgq0cphRtvvBHdunVDbm4uhg8fji1btjQ4z+7duzFu3Di0a9cO7du3x8UXX4zKyspMfzsIBAIIEPV5YPIETRNBktlqTBaAy8NkAbg8TBaAy6Mt9mHyMFmAzHuo7xDNmzcPjzzyCJ566in0798fH374ISZMmICioiJcffXVAIA77rgD999/P5566in06tULM2fOxMiRI/H555/H7nyMGzcO27dvx4oVKxAIBDBhwgRcdtllePbZZzP6/XgjdTIskfJI9CGSHN3hNB6Bfx1JhsnDZAG4PEwWgMujLfZh8jBZgMx7qGuIRo8ejeLiYjzxxBOx940ZMwa5ubn4y1/+AqUUSktLce211+K//uu/AADl5eUoLi7G4sWLMXbsWGzcuBH9+vXDmjVrMHDgQADAK6+8gtNPPx3ff/89SktLm3Xo4a6JIzPcNfz57pDzVxU4H3DIY2HzMFkkPUwWNg+TRcLDZGHzMFmkPK2mhuiEE07AwoULsXnzZhx22GH4+OOP8c477+Cee+4BAHzzzTcoKyvD8OHDY59TVFSEwYMHY9WqVRg7dixWrVqF9u3bxxZDADB8+HC4XC6sXr0a5557bpOvW1dXF+viDIQXRABw//1j4fP54PP5UFdXB5/Ph0AgECtKtiwLHo8n9rHGb6uqqmCaJjweD5RSME0TgUAAXq+3ybF+vx8ejweWZcEwDBiGgWAwGDv22mv/hrvv/q3tsc1ZAoEALMuCUgoejwdutzvhsaZpQikV133ccbdgU8CL8nI/Cgo8qKkJwuNxQSnAskLIyTFRWRlEUVH4mOjbwkIPqqoC8PlM+HwmlAICARdqaoJo167hsUVFXlRU+JGb60YgEIJhAKZpoK7OQn6+B/v2BVBU5MXL5+TgxtUBzB7sQdDthmlZUIYBZRhwhUIImiY8wSD8Hg+8gUDsbcDthtuyEHK5EHC54FIKLgBum2M9lgXL5YIR+fdEyDDgtqwmx8YsphlrLqYMA2YohICNJeqOvsLCMgwETRN5dXUJ3YZSMJSCZZq27htWVOC24YVN3AGPB556x8YspglTKaiIO5Glsbu5x3vmaxW49dSwxUC4gDKu2+OBJxhEMPJziblDIVR7vfAEg1AuV0J3c4/3DRFL1J3oMaz/szciPx+3ZaHK54O3niWRO+B2x3+83W6YoRCuf6sac07OT/o5G89thELwu93Ir6tL6I77eEceQ5dSuP7NKtxySkFSz1m737XGlkTu5n7XbnynBrec4GtybP2ffaLftfqWVK8R0d+1me/WxrW05BoRfd4YQMrXiKj7+uXluGVk+5SvEdU+H9zBIEwg5WtE1B3P0tJrhIp8fa9lpXyN2B0MJl1DRL0g+tOf/oSKigr06dMHpmnCsizceuutGDduHACgrKwMAFBcXNzg84qLi2MfKysrQ9euXRt83O12o2PHjrFjGmfu3LmYNWuW9LcDv98fWxAxJLroY/AUFnqhlMLu3c4bgjlNwO2GASCHpL7K73bDMk1AoFma0wTc7vCePoEFCHuUYcBD0D8l6HYDJBYgPPaA5WelLfaJPm98BNeb6O+TSWABwp6Qy6WHuwLA888/j2eeeQbPPvss+vfvj/Xr12Pq1KkoLS3F+PHj0/Z1Z8yYgWnTpsX+u6KiAt27d4fP54vdcovO/4o3B6zxx6JvO3To0ORzonVOdp8TL+G7QqqJxe5Yu7fRhVCiY+zOX989qLPCw6d5AEQXVvFqk6Ln8DR6Gz7Wb4b/xeC1fAmOTbRwi3xNy0LFrmp4rYK4v0TRVytEP9b4LfBzMzC7YxL9cjY+JpHFm4SlsScpS4Lz1lUH4vZ6SvZ7bakl0eNdW9VCS9PvFEVVVUm5gcSPdxNLkj+bpCxxjm3uZ19dUYdcf+T3syWWesf6I3eu6/+s4qW5n33NPn/ssUn2OdvY3aylBeet3FMLr+Vu0e+ntwWWljzezVnipfExjZ83du7mzu8LBuGvCaIg8urhVK4RCS0tfLyTtSR6vD2NPtaspel3iryIIZlQL4iuu+46/OlPf8LYsWMBAEceeSS+/fZbzJ07F+PHj0dJSQkAYMeOHejWrVvs83bs2IEBAwYAAEpKSrBz584G5w0Gg9i9e3fs8xsnui0mHX/kosIy3FXKI1FUXVKSBwAoK6t2dB6JoupApKaKZcAhk4fJAnB5mCwAl0db7MPkYbIAmfdQL4iqq6ubDB41TTM2lLRXr14oKSnBypUrYwugiooKrF69GpMmTQIADB06FHv37sXatWtx3HHHAQBef/11hEIhDB48uEWeyy9/imq46/jxjzs6h5SnU64hMMQv/C+Bvj2dPSWveKUSG3ZauOKV1NsqhIzwosylZJqTObGweZgskh4mC5uHySLhYbKweZgsUp5AMPmtUeoF0Zlnnolbb70VPXr0QP/+/fHRRx/hnnvuwcSJEwEAhmFg6tSpuOWWW3DooYfGXnZfWlqKc845BwDQt29fnHbaabj00kuxYMECBAIBXHnllRg7dmxSrzCrH6eNGasityPz8/NTPkc0Eo0ZpTwSjRklR3c4bQjGZGHzMFkkPUwWNg+TRcLDZGHzMFmkPC1pzEi9IHrggQcwc+ZMXHHFFdi5cydKS0tx+eWX48Ybb4wd89///d+oqqrCZZddhr179+LEE0/EK6+80qD78jPPPIMrr7wSp556KlwuF8aMGYP7778/49+PYRgZ/5qJIuWR2DLr2DG8bee0qFpiyyz66gqWMHmYLACXh8kCcHm0xT5MHiYLkHkP9YKosLAQ8+fPx/z5822PMQwDs2fPxuzZs22P6dixY8abMMZLa10QSQx3rYsWeBO8uoHrp8TlYbIAXB4mC8Dl0Rb7MHmYLEDmPdSNGVkiN9w1XCdjmhyNGaU8EsNdvd5wHZPfr4e7MnuYLJIeJgubh8ki4WGysHmYLFKeVtOYkS1Oa4iifX8kXmUmUUMk5SktvcbR5wOAxxP+xXG6IHr4tALHe9f1X5brNBL76EweJoukh8nC5mGySHiYLGweJouUp9XUELW2SC6IJCLlkdgyq4zUfBW0oGdEuuKPbN+xvPSUycNkAbg8TBaAy6Mt9mHyMFmAzHv0giiDYVkIRSPlaW3DXb0EdUz1w+RhsgBcHiYLwOXRFvsweZgsQOY9uoYoiejhromjh7umz8LmYbJIepgsbB4mi4SHycLmYbJIeXQNUZqia4jiR6IPEdPeNZOFzcNkkfQwWdg8TBYJD5OFzcNkkfLoGiLStNYaIokts27dwqM7tm8nGN1Bto/O5GGyAFweJgvA5dEW+zB5mCxA5j16QZTBsCyEopHySBRV+6Mza4LxxvNlNtGBgixh8jBZAC4PkwXg8miLfZg8TBYg8x69IMpgApECMZaFkZRH4g5Rly7h2qwff6xxdB6JO0TBSO+L7C/NwmHyMFkALg+TBeDyaIt9mDxMFiDzHl1UnUSkiqpDkcIwl8tZoRkgU1Qt5ZEoqraMSAMuoaGCjpqTEVnYPEwWSQ+Thc3DZJHwMFnYPEwWKY8uqk5TnBZV19SE737k5qa+qIpGoqhayiNRVF0b2SvOEXiZpdNiPiYLm4fJIulhsrB5mCwSHiYLm4fJIuXRRdWksUgK1aKR8rS2LbMQ2cw5Jg+TBeDyMFkALo+22IfJw2QBMu/RC6IMxhNZ7bJEyiNbVJ39+iq3wBwfyTB5mCwAl4fJAnB5tMU+TB4mC5B5j64hSiK6MWPiSAx39fnCe811dc7uWkkMd22NzcmkPEwWSQ+Thc3DZJHwMFnYPEwWKY+uIUpTdGPG+JEY7up2uyImZ7+Ierhrej1MFkkPk4XNw2SR8DBZ2DxMFimPriEiTWttzKiHu6Y3TB4mC8DlYbIAXB5tsQ+Th8kC6OGurTosC6Fo9HDX+GnrAw4ThckCcHmYLACXR1vsw+RhsgB6uCtldA1R4ujhrumzsHmYLJIeJgubh8ki4WGysHmYLFIeXUOUpugaovjRw13TZ2HzMFkkPUwWNg+TRcLDZGHzMFmkPLqGiDR6dId9mPoQBQUvChJh8jBZAC4PkwXg8miLfZg8TBYg8x69IMpgTNP5yA7JSHkkiqrrIsVzvkD2F4sm2S4yk4fJAnB5mCwAl0db7MPkYbIAmffoBVEGw1auJeWRuEPUoUN4IbRnT52j80jcIeL6KXF5mCwAl4fJAnB5tMU+TB4mC5B5jy6qTiJSRdXRURkSd2YkiqqlPBKNGb3ecB8iv99ZZ1KJxoxWZMKyKdAlVWTAIZGHySLpYbKweZgsEh4mC5uHySLl0UXVaYrTouraSI+dnEjPHSeRKKqW8ogUVcdGdwQdnQcQKCwksrB5mCySHiYLm4fJIuFhsrB5mCxSHl1UTZpoEbPEgkgiUh6JLbOSkjwAQFlZtaPzSGyZBaKFfAIXBYkweZgsAJeHyQJwebTFPkweJguQeY9eEGUwXq8324QGkfKIDHeNvZog+4+Rh+RiEA2Th8kCcHmYLACXR1vsw+RhsgCZ9+gaoiSiGzMmjm7MmD4Lm4fJIulhsrB5mCwSHiYLm4fJIuVpSQ2RXhAlkeiCKJkHNFFaa2NGieGukqM7dHOy9HmYLJIeJgubh8ki4WGysHmYLFKeitpa9Lj9dl1UzRY93NU+erirfZg8TBaAy8NkAbg82mIfJg+TBdDDXVt1WBZC0ejhrvHT1gccJgqTBeDyMFkALo+22IfJw2QBMu9xZfSrtfH4/X74/f5sM2Jh8hQUuFFQwLE+D7rdCArUeUmFycNkAbg8TBaAy6Mt9mHyMFmAzHt0DVESkSqqDkWaS7lcztehEkXVUh6JouqQETa4VPYbgjFZ2DxMFkkPk4XNw2SR8DBZ2DxMFimPLqoWjlRRdXV1uMdOXl6eY5NEUbWUR6KoumPHcA3R7t3OaogkiqprIu0IcgXunkkUFjJ5mCySHiYLm4fJIuFhsrB5mCxSHl1UrZPRSBRV//zE52haqaOjo6PTtqIXRBmMxFaZZJg8LoHZOVJhsgBcHiYLwOVhsgBcHm2xD5OHyQJk3qO3zJKIbsyYOHq4q31YBhxKeZgskh4mC5uHySLhYbKweZgsUh493DVNcTrctbU2ZhQZ7krUEIzJwuZhskh6mCxsHiaLhIfJwuZhskh59HBX0rTWxowSfYhKS/MBANu2VTk6j0QforbenCxRmCwAl4fJAnB5tMU+TB4mC6AbM7bqsCyEomHylJdz9EMCdHOyRGGyAFweJgvA5dEW+zB5mCxA5j26hiiJ6BqixNHDXdNnYfMwWSQ9TBY2D5NFwsNkYfMwWaQ8ug+RcPRw18TRw13tw7KPLuVhskh6mCxsHiaLhIfJwuZhskh5dB8i0kTHZLBsVUl5JPoQVUUM+ZFFWjYTiNwxY9lHZ/IwWQAuD5MF4PJoi32YPEwWIPMevSDKYDyRAjGWMHk8JL+AAJcF4PIwWQAuD5MF4PJoi32YPEwWIPMevSDKYCyyJ5uUR+JVZp07hztU79rlfHSH01hEDSsBLg+TBeDyMFkALo+22IfJw2QBMu9JqYboiy++QJ8+feJ+7NVXX8XIkSMdw5giVVQdXYCYprNCM0CmqFrKI1FUbUWG+JkEQwWZLGweJoukh8nC5mGySHiYLGweJouUJ+1F1Xl5ebjzzjsxefLk2Pvq6upw7bXX4vHHH0dtrbN/5bNFqqi6pqYGAJCbm/qiKhqJomopj0RRdVFReJaZ05ffSxRV10W2En0CL/mUKCxk8jBZJD1MFjYPk0XCw2Rh8zBZpDxpL6pevHgxJk2ahP/93//FokWLsH37dlx44YUIhUL497//nRK6LaS1bplJFFVXR4a75glMWXYayzCyTWgQJg+TBeDyMFkALo+22IfJw2QBMu9JaYPu/PPPx8cff4xAIID+/ftj6NChOOmkk7Bu3Tocf/zx0sZWE4/Hw1XITORxWxbcJAtGJgvA5WGyAFweJgvA5dEW+zB5mCxA5j2Oiqr9fj8sy4JlWejWrRtycnKkXJS5/PKnqBozjh//uKNzSHkkiqp9vvBec12dsyd/dLjrFa9UpnwO6eZkTixsHiaLpIfJwuZhskh4mCxsHiaLlCcQTL6VS0p/Ey5ZsgSTJk3CL37xC2zevBnr16/HhAkT8Oqrr+Lpp59G7969UzktffRw1/jRw13TZ2HzMFkkPUwWNg+TRcLDZGHzMFmkPGkf7nrxxRfjrrvuwqRJkwAAv/71r/HJJ5/g8ssvx4ABA1BRUZHKaVt99HBX++jhrvZh8jBZAC4PkwXg8miLfZg8TBZgPxnuum7dOhx++OEN3tehQwc8//zzePrpp0VgrTEsC6FomDx6uKt9mDxMFoDLw2QBuDzaYh8mD5MF2I+GuwaDQbz55pv46quvcOGFF6KwsBDbtm1Du3btUFDg7DYZW/Rw18TRw13TZ2HzMFkkPUwWNg+TRcLDZGHzMFmkPGnvQ/Ttt9/itNNOw9atW1FXV4fNmzejd+/emDJlCurq6rBgwYKU8YzRw10TR6IPUWFh+Nbovn0Ew12j83MiC0YnEdlHJ/IwWSQ9TBY2D5NFwsNkYfMwWaQ8ae9DNGXKFAwcOBAff/wxOnXqFHv/ueeei0svvTSVU7aJBCK3/1i2qqQ8ra0PUTDSLt6bZUc0TB4mC8DlYbIAXB5tsQ+Th8kCZN6T0oLo3//+N9577z14vQ2ZBx10EH744QcRWGuMxMgOyTB5XKnt3KYlTBaAy8NkAbg8TBaAy6Mt9mHyMFmAzHtSWhCFQqG4XY6///57FBYWOkbp7F+ReJVZhw7hu1R79iTfMyJeJF5lpqOjo6PT9pJSDdEFF1yAoqIiLFy4EIWFhdiwYQO6dOmCs88+Gz169MCiRYvSYc1a5Ia7hvdBTZOjqFrKIzLcNXJr1Axlf6ggk4XNw2SR9DBZ2DxMFgkPk4XNw2SR8qS9qPr777/HyJEjoZTCli1bMHDgQGzZsgWdO3fG22+/ja5du6aMZ4wuqk4cXVRtH5bCQikPk0XSw2Rh8zBZJDxMFjYPk0XKk/ai6gMPPBAff/wxlixZgg0bNqCyshIXX3wxxo0bJzLJvbWmtTZmlEhBgcyCSCIBwYuCRJg8TBaAy8NkAbg82mIfJg+TBci8J+W9Erfbjd///veSllYfhoVH/Uh5JF5l9nOL9uy/vsFD1pyMycNkAbg8TBaAy6Mt9mHyMFmAzHuS3jL717/+lfRJzzrrrJRBjNGNGRNnxYrPHH0+ID/cVTcnS4+HySLpYbKweZgsEh4mC5uHySLlSUsNkStS3BT7RMNA4081DAMA4r4CLdX88MMPmD59Ol5++WVUV1fjkEMOwaJFizBw4EAAgFIKN910Ex577DHs3bsXw4YNwyOPPIJDDz00do7du3fjqquuwksvvQSXy4UxY8bgvvvuS7qjtq4hShw93DV9FjYPk0XSw2Rh8zBZJDxMFjYPk0XK05IaIlfCj9ZLKBSK/Vm+fDkGDBiAl19+GXv37sXevXvx8ssv49hjj8Urr7ySMrxx9uzZg2HDhsHj8eDll1/G559/jrvvvhsdOnSIHXPHHXfg/vvvx4IFC7B69Wrk5+dj5MiRqK2tjR0zbtw4fPbZZ1ixYgWWLVuGt99+G5dddpmYM9nU1dXFFiEMYfL4PZ7YIL9sh8kCcHmYLACXh8kCcHm0xT5MHiYLkHlPSnslU6dOxYIFC3DiiSfG3jdy5Ejk5eXhsssuw8aNG0Vw8+bNQ/fu3Ru8jL9Xr16x/6+Uwvz583HDDTfg7LPPBgD8+c9/RnFxMV588UWMHTsWGzduxCuvvII1a9bE7io98MADOP3003HXXXehtLS0yddtvFCoqKiIvb+iogI+nw91dXXw+XwIBAKxBoeWZcHj8cQ+1vhtMBiEaZqorq6GUgqmaSIQCMDr9TY51u/3w+PxwLIsGIYBwzAQDAZjx3q9RswS79jmLIFAAEopKKVQVVUFt9ud8FjTNGPHN3Z/sMvAqS8FUF7uR0GBBzU1QXg8LigFWFYIOTkmKiuDKCryorzcH3tbWOhBVVUAPp8Jny8ApYBAIISamiDatWt4bFGRFxUVfuTmuhEIhGAYgGkaqKuzkJ/vwb59ARQVefHyOTlo1zkPftNE0O2GaVlQhgFlGHCFQgiaJjzBIPweD7yBQOxtwO2G27IQcrkQQrghWLXPB7fNsR7LguVywYjcJQ0ZBtyW1eTYmMU0Y03GlGHADIUQsLFE3aHoXVmlEDRN+E0zodtQCoZSsEzT1u3Lq0ON19vEHfB44Kl3bMximjCVgoq4E1kau5t7vHPyf7YYCL/ENq7b44EnGETQ5Yo9hiHDgDsUQtDlgicYRGVOTkJ3c4931BJ1J3oM6//sDQBW9DF0ueCtZ0nkDrjd8R9vtxtmKIS8dj7UeL1JP2fjuY1QCH63G37TTOiO+3hHHkOXUsgt9KLG603qOWv3u9bYksjd3O9aQYecuM+/+j/7RL9r9S2pXiOiv2t2lpZcI6LPm2qvN+VrRNTtza1t8rvQkmtEMPI76OQaEXXHs7T0GgGlEDIM1Ho8KV8jqnNy4qwu4iell93n5uZizZo1OOKIIxq8f8OGDRg8eDBqampaesq46devH0aOHInvv/8eb731Fg444ABcccUVsfEgX3/9NQ4++GB89NFHGDBgQOzzTjrpJAwYMAD33XcfnnzySVx77bXYs2dP7OPBYBA5OTn429/+hnPPPbfJ17355psxa9asJu8///z5cLt9cLlcCIVCcLlcUCoU2ypUSsEwfv5Y47fBYACAEVtAGYZhe+zP51eRY4FQSMU+9tln29C/f6ntsc1ZlArBssK9HUzTTGiJfo/RZ0rjYz9dswV9unjgUiGEDAMuBSgjcmzk/xtKIWS4Ise4mhwbMiK/ICpkc2z4bfgv5cgPxAifP2SEFzDRYzbtUTi8Q/gCZ6jI4TbHpmap9z02sDQ9tr6lOXf979Go9xiGDBeUgfBFrRmLgcSP9xc/BtG3i7tZdxNL5NhQ5C+OeJbG7uYe700/BtEnYknsDl/kmj7eQNCMXuSR0N3c4/1F1NKC52xjd9B0w1ChRpb47vB57B/vjT9Z6NPZTPo5G8+tDEAZLritYAufJw1/175IwtLc421raeHjDQCbdlvo09GV8jWiviXVa0T0MfzC1pL8NSL6vHEpldCdzO9a+HnsadZt93gHTROGUnEsyV8jEllaeo1QhgGF8CIr1WtEneXH0g/mp+9l98cffzymTZuGp59+GsXFxQCAHTt24LrrrsOgQYNSOWXcfP3113jkkUcwbdo0/M///A/WrFmDq6++Gl6vF+PHj0dZWRkAxAzRFBcXxz5WVlbWpC+S2+1Gx44dY8c0zowZMzBt2rTYf1dUVKB79+547LEJjmqIogtFidYEEjVEUp7S0mvwY6WzrbeiovC/zsvLnc0yi/UhGpmf8jnqIrdofQKvcHBqSYtnRF6rsEh6mCxsHiZLzKN/v+09I1K/njNZpDwVtS4s/SC5Y1NaED355JM499xz0aNHD3Tv3h0A8N133+HQQw/Fiy++mMop4yYUCmHgwIG47bbbAADHHHMMPv30UyxYsADjx48X+zqN4/P50vIS+RRuxqU1TB7TNLJNiIXnUQmHycNkAbg8TBaAy6Mt9mHyMFmAzHtSWhAdcsgh2LBhA1asWIEvvvgCANC3b18MHz48tn0kkW7duqFfv34N3te3b1/84x//AACUlJQACN+d6tatW+yYHTt2xLbQSkpKsHPnzgbnCAaD2L17d+zzMxWmBQgg55HoQxSt38glmHavBJ/DEmHyMFkALg+TBeDyaIt9mDxMFiDznpQb0BiGgREjRmDEiBGSngYZNmwYNm3a1OB9mzdvRs+ePQGEC6xLSkqwcuXK2AKooqICq1evxqRJkwAAQ4cOxd69e7F27Vocd9xxAIDXX38doVAIgwcPTps9XpimywNyHonhru3ahRdEFRXOt8ycxiUwx0cyTB4mC8DlYbIAXB5tsQ+Th8kCZN6TUlE1AKxcuRIrV67Ezp07EWqEfvLJJ0Vwa9aswQknnIBZs2bh/PPPxwcffIBLL70UCxcuxLhx4wCEX4l2++2346mnnkKvXr0wc+ZMbNiwAZ9//jlyItXlo0aNwo4dO7BgwQIEAgFMmDABAwcOxLPPPpuUQzdmTByJ4a7ByKsO3ARDBZksbB4mi6SHycLmYbJIeJgsbB4mi5Qn7cNdZ82ahdmzZ2PgwIHo1q1bk22ypUuXtvSUtlm2bBlmzJiBLVu2oFevXpg2bVrsVWbAz40ZFy5ciL179+LEE0/Eww8/jMMOOyx2zO7du3HllVc2aMx4//3368aMujEjvYXNw2SR9DBZ2DxMFgkPk4XNw2SR8qR9uOuCBQuwePFi/OEPf0gJ2JKMHj0ao0ePtv24YRiYPXs2Zs+ebXtMx44dk74blM4wDVMF5DwSW2alpeFXamzbVuXoPBJbZtFGYBIXBYkweZgsAJeHyQJwebTFPkweJguQeU9KCyK/348TTjhB2tLqw7IQioZzuGv2u6R6yQYcMnmYLACXh8kCcHm0xT5MHiYLkHlPSltm06dPR0FBAWbOnJkOE110DVHi6OGu9mEZcCjlYbJIepgsbB4mi4SHycLmYbJIeVpSQ5TS34S1tbVYuHAhXnvtNRx11FHwNJo1cs8996RyWvo8+uh4XUMUJ6Wl1zj6fABwu10Rk7NfxIdPK9D76Gn0MFkkPUwWNg+TRcLDZGHzMFmkPBW1bvztw+SOTWlBtGHDhtjL3D/99NMGH5PsQ9Ta4o/02GHZOpPySGyZVUUM+QTDZgORO2Ys++hMHiYLwOVhsgBcHm2xD5OHyQJk3pPSguiNN96QdrSJNL6Tlu1IeVpbHyI3ycUgGiYPkwXg8jBZAC6PttiHycNkATLvSbkPUVuKVA2RFfnhSjRElKghkvJI9CGyIv0mTIL+F0wWNg+TRdLDZGHzMFkkPEwWNg+TRcqTthqi8847L6njXnjhhZacdr+J0xqi6upqAEBenrNBiYBMDZGUR6IPkeToDqd710wWNg+TRdLDZGHzMFkkPEwWNg+TRcqTthqioqKiVDw6kbDVV0l5JLbMJKfdO01bb1+fKEwWgMvDZAG4PNpiHyYPkwXIvKdFC6JFixaly9EmEn2ZO0ukPBJF1dWRouo8gqJqK7qFSPLzYvIwWQAuD5MF4PJoi32YPEwWIPMexw1x/vrXv+Kss85Cfn6+hKdVxxu5/ccSKY/EHaL8/HCBd1WVs0ZcIkXVJBeDaJg8TBaAy8NkAbg82mIfJg+TBci8x3FRdbt27bB+/Xr07t1bykQX3ZgxcWSGu/I0BGOysHmYLJIeJgubh8ki4WGysHmYLFKetDdmrJ+29CI13ZgxfvRw1/RZ2DxMFkkPk4XNw2SR8DBZ2DxMFilP2hsz6qQWPdzVPnq4q32YPEwWgMvDZAG4PNpiHyYPkwXYD4a7BgIB5ObmYv369TjiiCPw8ssv44ADDkiHrdWFZSEUjR7uGj9tfcBhojBZAC4PkwXg8miLfZg8TBZgPxnu2rt3byxduhRHH310Okx00TVEidP6hruGm4G5SZqTMXmYLJIeJgubh8ki4WGysHmYLFKeltQQpbQgeuKJJ/DCCy/g6aefRseOHVOG7i+JLoiSeUATpba2FgCQk5Pj2CRRQyTlkRjuWlgYvjO0b5/zV5k53kePzs8ReIWDyD46kYfJIulhsrB5mCwSHiYLm4fJIuWpqK1Fj9tvT19R9YMPPogvv/wSpaWl6NmzZ5OX3K9bty6V07b6WCT7stFIeSS2zCQ7pDpNtF08S5g8TBaAy8NkAbg82mIfJg+TBci8J6UF0TnnnCPMaBvRnart06FDuJ5pzx5njRkliqoNsldOMnmYLACXh8kCcHm0xT5MHiYLkHmPHu6aRKRqiEKRXgouF8dwVymPRB+ikBH+l4BLZX/vmsnC5mGySHqYLGweJouEh8nC5mGySHky0odo7969+Pvf/46vvvoK1113HTp27Ih169ahuLi41b7qzGkfosrKSgBAQYGz7SVApoZIyiPRh6g6smWWRzBUkMnC5mGySHqYLGweJouEh8nC5mGySHnS3odow4YNGD58OIqKivCf//wHl156KTp27IgXXngBW7duxZ///OdUTtvq4/Fk/yXl9SPlaXWjO8hqvZg8TBaAy8NkAbg82mIfJg+TBci8J6UF0bRp03DRRRfhjjvuQGFhYez9p59+Oi688EIxXGtLa23MKFFUXRl5pVtB5JVv2Uxbb06WKEwWgMvDZAG4PNpiHyYPkwXYDxozAsCaNWvw6KOPNnn/AQccgLKyMseo1hqWhVA0Up7WdoeorTcnSxQmC8DlYbIAXB5tsQ+Th8kCZN6T0oLI5/OhoqKiyfs3b96MLl26OEax5vLLn6JqzDh+/OOOziHpcZpg0HkRHxDet96w08IVr1SmbhEecOjEwuZhskh6mCxsHiaLhIfJwuZhskh5AsHkX7mc0t+EZ511FmbPno3nn38eQPjl21u3bsX06dMxZsyYVE65X0QPd40fPdw1fRY2D5NF0sNkYfMwWSQ8TBY2D5NFypP2ouq7774bv/nNb9C1a1fU1NTgpJNOQllZGYYOHYpbb701lVO2ibTWGiKJLbNu3fIAANu3Vzs6j8SWWYBsH53Jw2QBuDxMFoDLoy32YfIwWYDMe1JaEBUVFWHFihV45513sGHDBlRWVuLYY4/F8OHDpX2tKiwLoWg4h7t6JUiO4iHbR2fyMFkALg+TBeDyaIt9mDxMFiDzHt2YMYlINWa0rHDNjmlyDHeV8kg0Zoy2aDcJhgoyWdg8TBZJD5OFzcNkkfAwWdg8TBYpT1qGu95///247LLLkJOTg/vvvz/hsVdffXXy2v0gUsNda2pqAAC5uakvqqKRqCGS8kgMd23fPny3au9e56M7nO5d10Zu0+YI/OtEYh+dycNkkfQwWdg8TBYJD5OFzcNkkfKkZbjrvffei3HjxiEnJwf33nuv7XGGYbS6BZFO4khsmUn+Iuro6Ojo6LQ0SS+Ivvnmm7j/Xyf5hARuQ0pGyiNRVN25c7gx465dzhozShRVK7IhvEweJgvA5WGyAFwebbEPk4fJAmTe0+IaokAggD59+mDZsmXo27dvulxUkRvuGl6AuCL7ok4iM9xVxrNixWeOPh8ATDP8xLcsZyVtp/R06wGHafQwWSQ9TBY2D5NFwsNkYfMwWaQ8aR3u6vF4UEswXiEbcdqHKNrM0sk5opGoIZLySPQhqoq84i2/zlkNEeB875rJwuZhskh6mCxsHiaLhIfJwuZhskh50t6HaPLkyZg3bx4ef/xxii7H+0ta68vuW9voDk+kgzdLmDxMFoDLw2QBuDzaYh8mD5MFyLwn5VlmK1euxPLly3HkkUciPz+/wcdfeOEFEVxrS2ttzKiHu6Y3TB4mC8DlYbIAXB5tsQ+Th8kC7CfDXdu3b9+qR3SkKywLoWiYPExDBZksAJeHyQJweZgsAJdHW+zD5GGyAJn3tLioOhgM4tlnn8WIESNQUlKSLhdVpIqqpYe7Oi2qlvJIFFX7fOHiu7o6Z/8SkCiqlh5w6LSwkMnDZJH0MFnYPEwWCQ+Thc3DZJHypKUxY/3k5eVh48aN6NmzZ8rI/SlSjRn1cFf7MA0VZLKweZgskh4mC5uHySLhYbKweZgsUp60NGasn0GDBuGjjz5qMwsiqQQit/9YtqqkPBJF1V27hu+87dxZ4+g8EkXVwcgdM5Z9dCYPkwXg8jBZAC6PttiHycNkATLvSWlBdMUVV+Daa6/F999/j+OOO65JUfVRRx0lgmttMU1ntw+lw+RxulUmGZPkYhANk4fJAnB5mCwAl0db7MPkYbIAmfektGUWr5GfYRhQSsEwDFhkD6rTyA13DT8uEgsRmeGuMh6R4a6RBlwmQUMwJgubh8ki6WGysHmYLBIeJgubh8ki5UlrY0ag7Y7ucNqYsaqqCgCa3FFLJRI1RFKe0tJr8Ma3zvpFdOoUftn9Tz/5HZ1HYrhrjdcLAMj1O7MAMvvoTB4mi6SHycLmYbJIeJgsbB4mi5Qn7Y0Zde1QamHaogLkPBJ9iOoie8W+YI4EyVFcZDPnmDxMFoDLw2QBuDzaYh8mD5MFyLzH0eutP//8c2zduhX+Rqu3s846yxGqtSZaxJyTk/2/9AEuTzCyOPMRdEplsgBcHiYLwOVhsgBcHm2xD5OHyQJk3pNSDdHXX3+Nc889F5988kmsdggI1xEB0DVENtHDXe3DNdw1bHG1/FejSWQGHPJ4mCySHiYLm4fJIuFhsrB5mCxSnrTXEE2ZMgW9evXCypUr0atXL3zwwQf46aefcO211+Kuu+5KCb0/RA93jR+JPkSSozuc7l0zWdg8TBZJD5OFzcNkkfAwWdg8TBYpT9priFatWoXXX38dnTt3hsvlgsvlwoknnoi5c+fi6quvxkcffZTKaVt9WPoPRaOHu8ZPW29fnyhMFoDLw2QBuDzaYh8mD5MFyLwnpQWRZVkoLCwEAHTu3Bnbtm3D4Ycfjp49e2LTpk2iwNYUPdzVPnq4q32YPEwWgMvDZAG4PNpiHyYPkwXYT4a7HnHEEfj444/Rq1cvDB48GHfccQe8Xi8WLlyI3r17SxtbTVgWQtEweZj+ZcJkAbg8TBaAy8NkAbg82mIfJg+TBdgPhrsCwKuvvoqqqiqcd955+PLLLzF69Ghs3rwZnTp1wnPPPYdf/epX6bBmLXq4a+JIFFV7veHiO7+fYbhruMjcLfCST5kBhzweJoukh8nC5mGySHiYLGweJouUJ+3DXeNl9+7d6NChQ+yVZq0pUsNdayPbQRIvc5coqpbySBRV/9yHyPnLK50W8zFZ2DxMFkkPk4XNw2SR8DBZ2DxMFilP2oe7lpeXw7IsdOzYMfa+jh07Yvfu3XC73SKvomqNYWtHIOWRKKr+uVO1sxoiiaLqkEBbBMkweZgsAJeHyQJwebTFPkweJguQeU9KX23s2LFYsmRJk/c///zzGDt2rGNUa41hGFR30Jg8SoX/6Ojo6OjoZCMpbZl17NgR7777Lvr27dvg/V988QWGDRuGn376SQzIELnGjOE7Mi4Xx3BXKY/EcNdQZIifi2CoIJOFzcNkkfQwWdg8TBYJD5OFzcNkkfKkvTFjXV1drCC3wRcOBFBTU5PKKfeLOG3MuG/fPgCItSxwEokaIimPxHDX4uLwQnPHjuwPd62OvPouL9KWwEkk9tGZPEwWSQ+Thc3DZJHwMFnYPEwWKU/aGzMOGjQICxcuxAMPPNDg/QsWLMBxxx2XyinbRLyRyb0skfJI9CHyR2bWeK3stwJwk8zxiYbJw2QBuDxMFoDLoy32YfIwWYDMe1JaEN1yyy0YPnw4Pv74Y5x66qkAgJUrV2LNmjVYvny5KLA1pbU2ZpQIU0MwJgvA5WGyAFweJgvA5dEW+zB5mCzAftKYcdiwYVi1ahXuuOMOPP/888jNzcVRRx2FJ554Aoceeqi0sdWEYeFRP3p0R/y09eZkicJkAbg8TBaAy6Mt9mHyMFmA/aQxY1uLbsyYOBJF1cFIYbc75PxfAs6bk/FY2DxMFkkPk4XNw2SR8DBZ2DxMFilPRhozWpaFpUuXYuPGjQCAfv364eyzzxb5y54tUo0ZJbeoJIqqpTylpdc4+nxA9g6R02K+n+uZnF8UJAoLmTxMFkkPk4XNw2SR8DBZ2DxMFilP2hszfvbZZzjrrLNQVlaGww8/HAAwb948dOnSBS+99BKOOOKIVE7b6sNUswNweQoLZRZEEglEFvUs++hMHiYLwOVhsgBcHm2xD5OHyQJk3pPSguiSSy5B//798eGHH6JDhw4AgD179uCiiy7CZZddhvfee08UGc3tt9+OGTNmYMqUKZg/fz6A8PiJa6+9FkuWLEFdXR1GjhyJhx9+GMXFxbHP27p1KyZNmoQ33ngDBQUFGD9+PObOnZvxu1n6VWb28Uef+MHsP0YekotBNEweJgvA5WGyAFwebbEPk4fJAmTek9KWWW5uLj788EP079+/wfs//fRTHH/88WnpRbRmzRqcf/75aNeuHU455ZTYgmjSpEn43//9XyxevBhFRUW48sor4XK58O677wIIb+0NGDAAJSUluPPOO7F9+3b88Y9/xKWXXorbbrstqa8tVUMUHZVhmhyNGaU8MsNdww24/H5nDcEkhrtakXbxJsmAQyYPk0XSw2Rh8zBZJDxMFjYPk0XKk/bGjIcddhh27NjRZEG0c+dOHHLIIamcMmEqKysxbtw4PPbYY7jlllti7y8vL8cTTzyBZ599Fr/61a8AAIsWLULfvn3x/vvvY8iQIVi+fDk+//xzvPbaayguLsaAAQMwZ84cTJ8+HTfffHOL7pI4bcxYXV0NAMjLy0v5HNFI1BBJeSSGu9ZGXl6ZI/CqAqd710wWNg+TRdLDZGHzMFkkPEwWNg+TRcqTlsaMFRUVsf8/d+5cXH311bj55psxZMgQAMD777+P2bNnY968eS3TJpHJkyfjjDPOwPDhwxssiNauXYtAIIDhw4fH3tenTx/06NEDq1atwpAhQ7Bq1SoceeSRDbbQRo4ciUmTJuGzzz7DMccc0+Tr1dXVxeprgJ+/97q6OlRUVMDn86Gurg4+nw+BQCB2h8WyLHg8ntjHGr+trq6OHauUgmmaCAQC8Hq9TY71+/3weDywLCs2cywYDMaO9XqNmCXesc1ZAoEAApEnmVIKbrc74bGmaUIpFdftzXWjMicH3kAAAbcbbsuKDeVzhUKwTBPuYBB+jwfeQCD2NuB2w2NZsFyu8JaZUggZBtyW1eTY6NugacIVuampDANmKISAacJT7/ztOufBb5oIut0wLQvKMKAMA65QCMFGx9a3RN1+txuGUgi5XM26jYjFzh2zJOGOfY8Rd/QxDJgmLJcLrlAoodtQCoZSCR9vX14darzeJu6AxwOPzeNtKgUVcQdcLlimGdfS2N3c452T/7PFQPhfg3HdHg88wSCCLlfsMQwZBtyhEKp9vvDHTDOhu7nHO2ppyXM25o48ho0tidwBtzv+4+12wwyFkNfOhxqvN+nnbDy3QrgGwxX9ejbuuI93vd+13EIvarzepJ6zdr9rjS2pXCOiz9mCDjnwm2bK14j6llSvEdHfNTtLS64R0edNyDBSvkZE3d7c2ti1OJVrRNSiDCPla0TUHc/S0muE5XIhFJm3mfI1Iienyd/xdkl6QdS+ffsGg0CVUjj//PNj74vuvJ155pmiU92XLFmCdevWYc2aNU0+VlZWBq/Xi/bt2zd4f3FxMcrKymLH1F8MRT8e/Vi8zJ07F7NmzRLQN0xI4DakZKR+Tu98Z+Hsv+1DebkfBQUe1NQE4fG4oBRgWSHk5JiorAyiqMiL8nJ/7G1hoQdVVQH4fCbat/dBKaCiwo+amiDatWt4bFGRFxUVfuTmuhEIhGAYgGkaqKuzkJ/vwb59ARQVefHyOck/+e0SMgxwjLwNJ2QYsYtCtqOILMDPj41J0D2EyQJwPW+0xT6x5022IQAUwPXYILOepBdEb7zxRjodcfPdd99hypQpWLFiBXJasMpzmhkzZmDatGmx/66oqED37t1x9dVLHA53DS+IXJHVsZN89NFWXHXV847OIeXJCQVxuEcBnQHAD+QA4ady7CtF3lcXOabu52N9ABBEKBgZNJungLx4x9YBnQCg0a3T/PrnqcPU/63Dhp0Wpu5yMuAw/AvoEviLzaklHZ5r/5X67WcmS9hTLuKRsVSIWGKeCmfzpKR+Vht2Wrh2n7MZg+K/U3tqW4Ul7JF93vz3i7tahSXscf6zCgST/z1KekF00kknpYRxkrVr12Lnzp049thjY++zLAtvv/02HnzwQbz66qvw+/3Yu3dvg7tEO3bsQElJCQCgpKQEH3zwQYPz7tixI/axePH5fHFfiu60hii69ebkHNFI1BBJeSSGu5aW5gMAtm2rcnQeiT5ElZHFd0GtswsdILOPzuRhskh6mCxsHiaLhIfJwuZhskh50j7c9e2330748V/+8pepnLZJTj31VHzyyScN3jdhwgT06dMH06dPR/fu3eHxeLBy5UqMGTMGALBp0yZs3boVQ4cOBQAMHToUt956K3bu3ImuXbsCAFasWIF27dqhX79+Is5kw9Dvp36YPOXlzv4FKpm23r4+UZgsAJeHyQJwebTFPkweJguQeU9KC6KTTz65yfvq1xdJ1aYUFhY2afKYn5+PTp06xd5/8cUXY9q0aejYsSPatWuHq666CkOHDo0Ve48YMQL9+vXDH/7wB9xxxx0oKyvDDTfcgMmTJ2d8QcDUCBGQ80j0IZL8l4nTtPUBh4nCZAG4PEwWgMujLfZh8jBZgP1kuOuePXsa/HcgEMBHH32EmTNn4tZbbxWBJZt7770XLpcLY8aMadCYMRrTNLFs2TJMmjQJQ4cORX5+PsaPH4/Zs2dn1AnwLISi0cNd46et/yspUZgsAJeHyQJwebTFPkweJguwnw93feuttzBt2jSsXbtW6pQU0cNdE0cPd02fhc3DZJH0MFnYPEwWCQ+Thc3DZJHypL0xo12Ki4uxadMmyVNSxWlRdWsd7irRmJFpqCCThc3DZJH0MFnYPEwWCQ+Thc3DZJHypL2oesOGDQ3+WymF7du34/bbb8eAAQNSOWWbSLQRIsvWmZRHYsusS5fwnbcff3Q29kViyywoeFGQCJOHyQJweZgsAJdHW+zD5GGyAJn3pLQgGjBgAAzDQOPdtiFDhuDJJ58UgbXGSMwwk4yUR6Ko+ucW7dlfLEr04JAMk4fJAnB5mCwAl0db7MPkYbIAmfekVEP07bffNvhvl8uFLl26ZLR5Yiajh7smjsRwV48nMqYiQDDc1YgMFFQkAw6JPEwWSQ+Thc3DZJHwMFnYPEwWKU/aaohWrVqFn376CaNHj469789//jNuuukmVFVV4ZxzzsEDDzxAsyUkHac1RFVV4aaD+fn5ji0SNURSntLSaxx9PgAUFYXnSO3a5exl9w+fVuB47zo60yrX77w3ksQ+OpOHySLpYbKweZgsEh4mC5uHySLlSVsN0ezZs3HyySfHFkSffPIJLr74Ylx00UXo27cv7rzzTpSWluLmm29uqblNROLVZZKR8khsmfkjFm8w+3cZTbKZc0weJgvA5WGyAFwebbEPk4fJAmTe06K/EdevX485c+bE/nvJkiUYPHgwHnvsMQBA9+7dcdNNN+kFkU1aa2NGiaLqkpI8AEBZWbWj80gUVQeihXxBZ+NIpMLkYbIAXB4mC8Dl0Rb7MHmYLEDmPS2qIcrJycGWLVvQvXt3AMCJJ56IUaNG4frrrwcA/Oc//8GRRx6Jffv2pUebpUjVEEkPd3VaQyTlkehDJD1w0YmHycLmYbJIepgsbB4mi4SHycLmYbJIedJWQ1RcXIxvvvkG3bt3h9/vx7p16zBr1qzYx/ft2wdP5NVCrTF6uGv8SPQhYhoqyGRh8zBZJD1MFjYPk0XCw2Rh8zBZpDxpqyE6/fTT8ac//Qnz5s3Diy++iLy8PPziF7+IfXzDhg04+OCDW4RtS2HZKotGj+6In7bevj5RmCwAl4fJAnB5tMU+TB4mC0A+3HXOnDk477zzcNJJJ6GgoABPPfUUvJEqcAB48sknMWLECHFka0lrrSHSw13TGyYPkwXg8jBZAC6PttiHycNkAciHu3bu3Blvv/02ysvLUVBQ0KR/zd/+9jcUFDj7i7E1h2UhFI2+QxQ/bf1fSYnCZAG4PEwWgMujLfZh8jBZgP18uGtrjVxjxnClvGlyDHeV8kgUVVuRwm6Jl1k6bk5GZGHzMFkkPUwWNg+TRcLDZGHzMFmkPFkb7tra47SouqYmPKcrNzf1RVU0EkXVUh6Jouq6SB8in8DLK50W8zFZ2DxMFkkPk4XNw2SR8DBZ2DxMFilP2oe76qQWtptxUh6JLbOOHcPbd7t31zk6j8SWmYq81JMlTB4mC8DlYbIAXB5tsQ+Th8kCZN6jF0QZTGtdEEkUVUu2jHeatn5RSBQmC8DlYbIAXB5tsQ+Th8kCZN6ja4iSiG7MmDgSw13d7vATPxh09nSUGO4aigwUdJEMOGTyMFkkPUwWNg+TRcLDZGHzMFmkPLqGKE1xWkMU7eBdWFjo2CJRQyTlkRju2qlTeKG5Y4ez0R0Sw12rIq++y69ztn0HyOyjM3mYLJIeJgubh8ki4WGysHmYLFIeXUNEmvo9mxgi5REZ7hqdWWNl/zHykMzxiYbJw2QBuDxMFoDLoy32YfIwWYDMe/SCKINprY0ZJYqqS0vzAQDbtlU5Oo9EUXVbb06WKEwWgMvDZAG4PNpiHyYPkwXIvEfXECURXUOUOHq4a/osbB4mi6SHycLmYbJIeJgsbB4mi5RH1xClKXq4a/zo4a7ps7B5mCySHiYLm4fJIuFhsrB5mCxSHl1DRBqWrbJo9OiO+Gnr7esThckCcHmYLACXR1vsw+RhsgDkw111nMUf6bHDsjCS8kgUVUu+usFpApHuqCz76EweJgvA5WGyAFwebbEPk4fJAmTeoxdEGYwnUiDGEimPxB2idu3Cry6rqHDWmFHiDpGb5GIQDZOHyQJweZgsAJdHW+zD5GGyAJn36KLqJCI33DX8wzVNZ4VmgNRwVxmPRGNGjydc2B0IOGsIJtGYsTUOOJTyMFkkPUwWNg+TRcLDZGHzMFmkPLqoOk1xWlRdXR1uOpiXl+fYIlFULeWRKKqujdytyhHYM3ZazMdkYfMwWSQ9TBY2D5NFwsNkYfMwWaQ8uqiaNAbZnBgpj8SWWVFReMusvDz7W2YG2U1TJg+TBeDyMFkALo+22IfJw2QBMu/RC6IMxiLbn5XySBRVV0eKqvMIiqqt6BYiSddWJg+TBeDyMFkALo+22IfJw2QBMu/RNURJRDdmTBzdmDF9FjYPk0XSw2Rh8zBZJDxMFjYPk0XK05IaIr0gSiLRBVEyD2hz5wFaX2NGieGukqM7dHOy9HmYLJIeJgubh8ki4WGysHmYLFKeitpa9Lj9dl1UzRaW/kPRSHlkh7tmvzVBW29OlihMFoDLw2QBuDzaYh8mD5MF0I0ZW3X0cFf76OGu9mHyMFkALg+TBeDyaIt9mDxMFkAPd6WMriFKHIk+RKYZ3iu2LGdPR4k+RK1xH13Kw2SR9DBZ2DxMFgkPk4XNw2SR8ug+RGmKHu4aPxJ9iCRHdzjdu2aysHmYLJIeJgubh8ki4WGysHmYLFIe3YeINCxbZdEwDXctLAzfGt23L/vDXT0kt4ujYfIwWQAuD5MF4PJoi32YPEwWIPMevSDKYIKRXgosCyMpj0RRdY033Jgx1++sMaNELIEtTckweZgsAJeHyQJwebTFPkweJguQeY9eEGUwrbVTtUSYOqQyWQAuD5MF4PIwWQAuj7bYh8nDZAEy79FF1UlErqg6fPvP5eIY7irlkSiqdrvD/xIIBgmGuxqRgYKKZMAhkYfJIulhsrB5mCwSHiYLm4fJIuXRRdVpitOi6srKSgBAQYGz7SVApqhayiNRVF0d2TLLE9gyc1rMx2Rh8zBZJD1MFjYPk0XCw2Rh8zBZpDy6qJo0Hk/2mw7Wj5RHoqi6oCBsqazMflG1m6ywkMnDZAG4PEwWgMujLfZh8jBZgMx79IIog2mtjRkl0q5d+F8CThdEEmnrzckShckCcHmYLACXR1vsw+RhsgC6MSNldGPGxNHDXdNnYfMwWSQ9TBY2D5NFwsNkYfMwWaQ8erircPRw18TRw13twzLgUMrDZJH0MFnYPEwWCQ+Thc3DZJHy6OGupGHYmqofPdw1ftr6gMNEYbIAXB4mC8Dl0Rb7MHmYLIAe7tqqw1SzA3B5mPaumSwAl4fJAnB5mCwAl0db7MPkYbIAuoaIMrqGKHH0cFf7sOyjS3mYLJIeJgubh8ki4WGysHmYLFIe3YcoTdF9iOJH9yFKn4XNw2SR9DBZ2DxMFgkPk4XNw2SR8ug+RKQxTecdqiUj5ZHoQ9S+fXjbbu9eZ1OWJfoQSfzrSDJMHiYLwOVhsgBcHm2xD5OHyQJk3qMXRBkM2+6klEeiqLo2slecQ1bUp6Ojo6PTNqIXRBlMa10QSUQRDZplsgBcHiYLwOVhsgBcHm2xD5OHyQJk3qOLqpOILqpOnNZXVB1+PFwkAw6ZPEwWSQ+Thc3DZJHwMFnYPEwWKY8uqk5TnBZVt9bGjBJF1VWRl/7n1zmrIQKcF/MxWdg8TBZJD5OFzcNkkfAwWdg8TBYpjy6qJg1Dv5/6kfJIFFXn54driKqqsj/c1RMMOj6HZJg8TBaAy8NkAbg82mIfJg+TBci8Ry+IMhimRogAl6eoKPzySqcLIom09eZkicJkAbg8TBaAy6Mt9mHyMFkA3ZiRMrqGKHH0cNf0Wdg8TBZJD5OFzcNkkfAwWdg8TBYpjx7uKhw93DVx9HBX+7AMOJTyMFkkPUwWNg+TRcLDZGHzMFmkPHq4K2kYtqbqRw93jZ+2PuAwUZgsAJeHyQJwebTFPkweJguQeY/zvRudpOP3++EXaIkuFSZP0O1G0M2xPmeyAFweJgvA5WGyAFwebbEPk4fJAmTeo7fMkohcDVG4MMzlcj4yQ6aGSMYj0YfI7Q7vFQeDug8Rs4fJIulhsrB5mCwSHiYLm4fJIuXRfYjSFKd9iKqrqwEAeXl5ji0SNURSHok+RDWRIX65BEMFmSxsHiaLpIfJwuZhskh4mCxsHiaLlKfV9CGaO3cuXnjhBXzxxRfIzc3FCSecgHnz5uHwww+PHVNbW4trr70WS5YsQV1dHUaOHImHH34YxcXFsWO2bt2KSZMm4Y033kBBQQHGjx+PuXPnwp3hW4NsN+OkPBJ9iDp1ChfP/fSTs2I+iT5EOjo6OjptL9Q1RG+99RYmT56M999/HytWrEAgEMCIESNQVfXzK5GuueYavPTSS/jb3/6Gt956C9u2bcN5550X+7hlWTjjjDPg9/vx3nvv4amnnsLixYtx4403Zvz7MU2TauI9kycQCCEQcH6bViKuUAiuEIcF4PIwWQAuD5MF4PJoi32YPEwWIPMe6jtEr7zySoP/Xrx4Mbp27Yq1a9fil7/8JcrLy/HEE0/g2Wefxa9+9SsAwKJFi9C3b1+8//77GDJkCJYvX47PP/8cr732GoqLizFgwADMmTMH06dPx8033wxv5JZcJhKIVMznRF5KmO1IeSReZSbZMt5pgpFFoo+kayuTh8kCcHmYLACXR1vsw+RhsgCZ9+xXRdVffvklDj30UHzyySc44ogj8Prrr+PUU0/Fnj170L59+9hxPXv2xNSpU3HNNdfgxhtvxL/+9S+sX78+9vFvvvkGvXv3xrp163DMMcc0+Tp1dXWxLs5AuKi6e/fuOP/8+XC7fXC5XAiFQnC5XFAqBCPSPEopBcP4+WON31pWEIZhwIgUihmGYXvsz+dXkWOBUEjFPvbZZ9vQv3+p7bHNWZQK1TveldAS/R6jz5TGx7799ma43S4EgyGYZvh99R8Tl8uAZanYMY3fmqYBlyt8fqVUs8eGQuHv0TDQ5Ngh3VzYtEfh8A4GlGHAUIACAAMwFBAywk2+QoYLLhWq99aASwHKABQMRP/XaOZYRH97jPjH1rc0PNbeEnNHBj0rhKc+m6FQsxYD4f9v5/7ixyD6dnE3625iiRybyNLY3dzjvenHIPpELIndLriUivN4A5bLgKEUACOhu7nH+4uoJeJO9BjaPd6WyxXHEt8dPo/9Y7jxJwt9OptJP2fjuQFV72fVkufJzxYo4IskLM093raWFj7eALBpt4U+HV3Nuu1+1+pbUr1GRB/DL2wtyV8jos8bA42PTf4aET02/Dz2pHyNsLckf41IZGnpNSIKiJpSuUbUWX4s/WB+6yqqDoVCmDp1KoYNG4YjjjgCAFBWVgav19tgMQQAxcXFKCsrix1Tv54o+vHox+Jl7ty5mDVrVpP3P/jghfD5fPD5fKirq4PP50MgEIhtO1mWBY/HE/tY47d79uyBaZrIz8+HUgqmaSIQCMDr9TY51u/3w+PxwLKsyCLKQDAYjB177bV/w913/9b22OYsgUAgVlSdn58Pt9ud8FjTNKGUiuuecs5c3DKyPbyBAAJuN9yWhVCk+7UrFIJlmnAHg/B7PPAGArG3AbcbHsuC5XKh2uuFASDH74fbspocG30bNM1Y19LoRS1gmvDUO/+NqwOYPdiDoNsN07KgjPCCxBUKIdjo2PqWqDtmCQSadRsRS8gw4rpjliTcse8x4o4+hjUeDyzTRFFVVUK3oVT4L+YEj/cNKypw2/DCJu6AxwOPzeNtKhVbCNV6wt9LPEtjd3OP98zXKnDrqYWxi53lcsV3ezzwBIMIulyxxzBkGHCHQijPy4PbsuCxrITu5h7vGyKWljxnY+7IY1ien9/AksgdcLvjP95uN8xQCNe/VY05J+cn/ZyN5w6YZuxnlcgd9/Gu97t2/ZtVuOWUgqSes3a/a40tqVwjos/ZG9+pwS0n+FK+RtS3pHqNiP6uzXy3Nq6lJdeI6PPGFwikfI2Iuq9fXh67FqdyjYhacgKBlK8RUXc8S0uvEX63GyGXC/m1tSlfI3YHg1j6Qdy/6ptkv1kQTZ48GZ9++ineeeedtH+tGTNmYNq0abH/jt4h8vl8sRVmtKlhvOaGjT8WfduhQ4cmnxPdrrL7nHgJL4JUE4vdsXZvPZE5MYmOsTt/fbe/JhjrJBp35kzkdmf0Y43fAoBp87FEnxONt9H5K3ZVw2sVxD3WJ2iJl8bHJLI0dtudv74nKUuC89ZVB+K+YiPZ77WllkSPd21VCy1Nv1MUReoJU3meJLQk+bNJyhLn2OZ+9tUVdcj1R34/W2Kpd+zPzU6thO7mfvY1+/yxxybZ52xjd7OWFpy3ck8tvJY75WtEc5aWPN7NWeKl8TGNnzd27ubO7wsG416LW/J4J7S08PFO1pLo8fY0+lizlqbfKfJa0OV6v1gQXXnllVi2bBnefvttHHjggbH3l5SUwO/3Y+/evQ3uEu3YsQMlJSWxYz74oOHycMeOHbGPxUv0LpB0mIapAnIeiVeZSY7ucJq2PuAwUZgsAJeHyQJwebTFPkweJgugh7s2iFIKV111FZYuXYo333wThx56aIOPl5eXo0uXLvjrX/+KMWPGAAA2bdqEPn36YNWqVRgyZAhefvlljB49Gtu3b0fXrl0BAAsXLsR1112HnTt3JrUY0MNdE0cPd02fhc3DZJH0MFnYPEwWCQ+Thc3DZJHytJrhrldccQWeffZZ/POf/2zQe6ioqAi5ueGFyaRJk/B///d/WLx4Mdq1a4errroKAPDee+8BCNf1DBgwAKWlpbjjjjtQVlaGP/zhD7jkkktw2223JeWQGu66b98+AEBhYWHK54hGojGjlEdiuGtJSbg5ZFlZtaPzSAx3lXzFm0RzMiYPk0XSw2Rh8zBZJDxMFjYPk0XK02qGuz7yyCMAgJNPPrnB+xctWoSLLroIAHDvvffC5XJhzJgxDRozRmOaJpYtW4ZJkyZh6NChyM/Px/jx4zF79uxMfRuxRGt2WMLkqa7meJknALhJbhdHw+RhsgBcHiYLwOXRFvsweZgsQOY91AuiZG5e5eTk4KGHHsJDDz1ke0zPnj3xf//3f5K0lGKRPdmkPBJ9iCRbxjtNSGBLUzJMHiYLwOVhsgBcHm2xD5OHyQJk3kO9ZcYSqRqi6AJEoju0RA2RlEdiuKvHE37iO+1WLTHc1Yr0iTJJBhwyeZgskh4mC5uHySLhYbKweZgsUh493DVNcTrctaamBgBi9U9OIlFDJOWRGO5aF5krJ9GR1OneNZOFzcNkkfQwWdg8TBYJD5OFzcNkkfK0muGurS2tdctMIlb0LhVBy3gmC8DlYbIAXB4mC8Dl0Rb7MHmYLEDmPXpBlMEwFTEDch6JPkT5+WFLVVXA0Xkk+hC5SS4G0TB5mCwAl4fJAnB5tMU+TB4mC5B5j14QZTCttTGjRFF1ZaTzdUELuoqmK229OVmiMFkALg+TBeDyaIt9mDxMFkA3ZqSMbsyYOBJF1aYZbsBlWc6ejhJF1a2xOZmUh8ki6WGysHmYLBIeJgubh8ki5dFF1WmK06LqiooKAHB0jmgkiqqlPBKNGYuLw40ZnY7uePi0AsfFfJJ3qyQKC5k8TBZJD5OFzcNkkfAwWdg8TBYpjy6qJg3LVlk0Uh6JLbOfBy5mv87KG3BWxyQdJg+TBeDyMFkALo+22IfJw2QBMu/RC6IMprXWEEkUVUuO7nCaQOSlniz76EweJgvA5WGyAFwebbEPk4fJAmTeo2uIkoiuIUocmeGuYYOLoCEYk4XNw2SR9DBZ2DxMFgkPk4XNw2SR8ugaojTFaQ1RVVW4PiY/P9+xRaKGSMoj0ZhRcnSH071rJgubh8ki6WGysHmYLBIeJgubh8ki5dE1RKSRuDMkGSmPxJZZhw7hbbs9e5xNWZbYMjPIbpoyeZgsAJeHyQJwebTFPkweJguQeY9eEOk4jkRRdW2k30QOWVGfjo6Ojk7biF4QZTBMozIAOY/EHaIuXcK1WT/+WOPoPBJ3iKK9L1jC5GGyAFweJgvA5dEW+zB5mCxA5j26qDqJ6KLqxJEpquZpCMZkYfMwWSQ9TBY2D5NFwsNkYfMwWaQ8uqg6TdGNGeNHoqi6KtKAK5+gIRiThc3DZJH0MFnYPEwWCQ+Thc3DZJHy6KJq0rD0H4pGytPahrt6yOqYmDxMFoDLw2QBuDzaYh8mD5MFyLxHL4gymNbamFEPd01vmDxMFoDLw2QBuDzaYh8mD5MF0MNdKaNriBJHD3e1D8s+upSHySLpYbKweZgsEh4mC5uHySLl0TVEaYquIYofPdzVPiwDDqU8TBZJD5OFzcNkkfAwWdg8TBYpj64hIg3LVlk0erhr/LT1AYeJwmQBuDxMFoDLoy32YfIwWQA93LVVJxD54bIsjKQ8ra0PUTC2OOPYR2fyMFkALg+TBeDyaIt9mDxMFiDzHl1DlETkaojCP1SXy9m+KiBVQyTj0cNd02dh8zBZJD1MFjYPk0XCw2Rh8zBZpDy6hihNcVpDVF1dDQDIy8tzbJGoIZLySPQhkhzd4XTvmsnC5mGySHqYLGweJouEh8nC5mGySHl0DRFp2G7GSXkktsw6dw4Xz+3a5ayYT2LLTJG1r2fyMFkALg+TBeDyaIt9mDxMFiDzHr0gymBM0/lWmWSkPCJF1e7wU9EbzJEgOYoZcn67WDJMHiYLwOVhsgBcHm2xD5OHyQJk3qMXRBlMtIg5Jyf7f+kDch6JO0QlJeFtu7KyakfnkbhDFIgW8gWDjs8lESYPkwXg8jBZAC6PttiHycNkATLv0UXVSUQ3Zkwc3ZjRPizNyaQ8TBZJD5OFzcNkkfAwWdg8TBYpjy6qTlN0Y8b4kSiqZmoIxmRh8zBZJD1MFjYPk0XCw2Rh8zBZpDy6qJo0LP2HotHDXeOnrTcnSxQmC8DlYbIAXB5tsQ+Th8kC6MaMrTp6uKt99HBX+zB5mCwAl4fJAnB5tMU+TB4mC6CHu1JG1xAljkxjRp69ayYLm4fJIulhsrB5mCwSHiYLm4fJIuVpSQ2RXhAlkeiCKJkHNFH27dsHACgsLHRskqghkvLIDHcNLzR37HA+usPp3nV15I5ZXuQOmpNI7KMzeZgskh4mC5uHySLhYbKweZgsUp6K2lr0uP12XVTNFreb6+GW8khsmdVFLL5g9rcTTZLbxdEweZgsAJeHyQJwebTFPkweJguQeQ/X39CtPGw345g6VXfsGK4h2r07+52qQwJbmpJh8jBZAC4PkwXg8miLfZg8TBYg8x69ZZZEpGqIrMhqV6JDtEQNkZRHog+RxxN+4gcCzjqTSvQhsiK/hBJdUiX20Zk8TBZJD5OFzcNkkfAwWdg8TBYpj+5DlKY47UNUG3kFlUSnaokaIimPRB+in7fMnHckdbp3zWRh8zBZJD1MFjYPk0XCw2Rh8zBZpDy6DxFp9OgO+xQXh0d37NiR/dEdwcgdM4mLgkSYPEwWgMvDZAG4PNpiHyYPkwXIvEcviDIYr9ebbUKDSHlEhrtGZ9ZY2X+MPCQXg2iYPEwWgMvDZAG4PNpiHyYPkwXIvEcviDKY1tqYUSJMDcGYLACXh8kCcHmYLACXR1vsw+RhsgC6MSNldGPGxNHDXe3D0pxMysNkkfQwWdg8TBYJD5OFzcNkkfLoouo0RQ93jR893DV9FjYPk0XSw2Rh8zBZJDxMFjYPk0XKo4uqScOwNVU/erhr/LT1AYeJwmQBuDxMFoDLoy32YfIwWQA93LVVx+/3A+BZGDF5CgtlFkQSCURe6smyj87kYbIAXB4mC8Dl0Rb7MHmYLEDmPbqGKInoGqLEkRnuGja4VPYbgjFZ2DxMFkkPk4XNw2SR8DBZ2DxMFimPHu4qHKnhrlVVVQCA/Px8xyaJGiIpj8Rw186dw3vFu3Y5H93hdO+6JtKOIDdyB81JJPbRmTxMFkkPk4XNw2SR8DBZ2DxMFimPHu5KGiNSMc8SKY9EH6LayMsrcwLZb1ppkP0bgcnDZAG4PEwWgMujLfZh8jBZgMx79IIog2mtCyKJ8Ei4LACXh8kCcHmYLACXR1vsw+RhsgCZ9+gtsyQiN9w13HXTNJ2vQ2WGu8p4JPoQeb3hvWK/Xw93ZfYwWSQ9TBY2D5NFwsNkYfMwWaQ8ug9RmuK0D5FkZ2iJGiIpj0Qfop9Hdzh/NYHTvWsmC5uHySLpYbKweZgsEh4mC5uHySLl0X2ISMM0KgOQ80j0ISotDRd2b9tW5eg8En2I2nr7+kRhsgBcHiYLwOXRFvsweZgsQOY9ekGUwbAshKKR8sgOd/VIkBylrTcnSxQmC8DlYbIAXB5tsQ+Th8kC6MaMrTqt9Q6RRJj+ZcJkAbg8TBaAy8NkAbg82mIfJg+TBdDDXSmjGzMmjh7uah+WAYdSHiaLpIfJwuZhskh4mCxsHiaLlEcXVacperhr/EgUVVdFhvjlEwwVZLKweZgskh4mC5uHySLhYbKweZgsUh5dVE0ahq2p+mEa7hqdZbZvX/aHu3qCQcfnkAyTh8kCcHmYLACXR1vsw+RhsgCZ9zjfu9FJOoFAAAGiojUmT06OGzk5HOvzoMuFoMC2plSYPEwWgMvDZAG4PNpiHyYPkwXIvEfXECURuRqicGGYy+VsXxWQqiGS8UgMd7UiQ/xMgqGCTBY2D5NF0sNkYfMwWSQ8TBY2D5NFyqOHuwpHarhrTU0NACA3N/VFVTQSNURSHonhrh06hLfv9uypc3QeieGuP89Vc373TGIfncnDZJH0MFnYPEwWCQ+Thc3DZJHy6OGupLFIXsoYjZRHog9RdWSqcZ7AlGWnCRHNeAO4PEwWgMvDZAG4PNpiHyYPkwXIvEcviDIYjyf7TQfrh8njFpidIxUmC8DlYbIAXB4mC8Dl0Rb7MHmYLEDmPXrLLIlI1RAFIxXzbjfHcFcpj0QfIp8vvNdcV+fsrpVEH6JgpKbKHXJ+B01iH53Jw2SR9DBZ2DxMFgkPk4XNw2SR8ug+RDZ56KGHcOedd6KsrAxHH300HnjgAQwaNCjpz9fDXeNHD3dNn4XNw2SR9DBZ2DxMFgkPk4XNw2SR8ug+RHHy3HPPYdq0aViwYAEGDx6M+fPnY+TIkdi0aRO6du2aEQPTqAxAD3e1S1tvX58oTBaAy8NkAbg82mIfJg+TBci8h6fhQJpzzz334NJLL8WECRPQr18/LFiwAHl5eXjyySczZvD5fDSLIYDLU17uR3l59guqgfBAQaYhh0weJgvA5WGyAFwebbEPk4fJAmTe0ybuEPn9fqxduxYzZsyIvc/lcmH48OFYtWpVk+Pr6upid08AoLy8HACwa9cuVFRUwOfzoa6uDj6fD4FAAGbktp5lWfB4PLGPNX67d+9emKaJvLw8KKVgmiYCgQC8Xm+TY/1+PzweDyzLgmEYMAwDwWAwdixQi++//9722OYsgUAg9rL7vLw8uN3uhMeapgmlVFz3KYcYmHlqEbyBAAJuN9yWhVCkmZYrFIJlmnAHg/B7PPAGArG3AbcbHsuC5XKh2uuFASDH74fbspocG30bNM3YXBtlGDBDIQRME57I+X8KBJBTZOKnQABBtxumZUEZBpRhwBUKIVjv2MaWqLva7Q5blGrWbUQsIcOI645ZmnE3+B4j7uhjWGOasEwTRbW1Cd2GUjCUSvh4G94QdoZCTdwBjwcem8fbVAoq4q41TQRtLI3dzT3eLt/PFgOA5XLFd3s88ASDCLpcsccwZBhwh0Io93rhtix4gITu5h7vqKUlz9mYO/IYNrYkcgfc7viPt9sNMxSCOw/YGQol/ZyN5w4AsZ9VInfcx7vec9bMVdgZCiX1nLX7XWtsSeUaEX3OegsM/BTnsUv2GlHfkuo1Ivq7ZmdpyTUi+rzxhUIpXyOibngsbG/0u9CSa0TUkuPgGhF1x7O09BrhBxByuZDv96d8jdgT+Xs8qXJp1Qbyww8/KADqvffea/D+6667Tg0aNKjJ8TfddJMCoP/oP/qP/qP/6D/6Tyv489133zW7VmgTd4hamhkzZmDatGmx/w6FQti9ezc6deoEw0FfhIqKCnTv3h3fffedyIBXp2HyaMv+4WGysHmYLGwebdk/PEwWKY9SCvv27UNpaWmzx7aJBVHnzp1hmiZ27NjR4P07duxASUlJk+Pj1da0b99ezNOuXTuKJ1s0TB5tsQ+Th8kCcHmYLACXR1vsw+RhsgDOPUVFRUkd1yaKqr1eL4477jisXLky9r5QKISVK1di6NChWZTp6Ojo6OjoMKRN3CECgGnTpmH8+PEYOHAgBg0ahPnz56OqqgoTJkzINk1HR0dHR0cny2kzC6ILLrgAP/74I2688UaUlZVhwIABeOWVV1BcXJwxg8/nw0033UTzUncmj7bYh8nDZAG4PEwWgMujLfZh8jBZgMx79OgOHR0dHR0dnTafNlFDpKOjo6Ojo6OTKHpBpKOjo6Ojo9PmoxdEOjo6Ojo6Om0+ekGko6Ojo6Oj0+ajF0QZzEMPPYSDDjoIOTk5GDx4MD744IOsON5++22ceeaZKC0thWEYePHFF7PiAIC5c+fi+OOPR2FhIbp27YpzzjkHmzZtyorlkUcewVFHHRVrAjZ06FC8/PLLWbE0zu233w7DMDB16tSsfP2bb745Nicv+qdPnz5ZsQDADz/8gN///vfo1KkTcnNzceSRR+LDDz/MiuWggw5q8tgYhoHJkydn3GJZFmbOnIlevXohNzcXBx98MObMmZPcHKc0ZN++fZg6dSp69uyJ3NxcnHDCCVizZk1GvnZz1zmlFG688UZ069YNubm5GD58OLZs2ZI1zwsvvIARI0bEJiKsX78+K5ZAIIDp06fjyCOPRH5+PkpLS/HHP/4R27Zty7gFCF97+vTpg/z8fHTo0AHDhw/H6tWr02LRC6IM5bnnnsO0adNw0003Yd26dTj66KMxcuRI7Ny5M+OWqqoqHH300XjooYcy/rUb56233sLkyZPx/vvvY8WKFQgEAhgxYgSqqqoybjnwwANx++23Y+3atfjwww/xq1/9CmeffTY+++yzjFvqZ82aNXj00Udx1FFHZdXRv39/bN++PfbnnXfeyYpjz549GDZsGDweD15++WV8/vnnuPvuu9GhQ4eseNasWdPgcVmxYgUA4Le//W3GLfPmzcMjjzyCBx98EBs3bsS8efNwxx134IEHHsi4BQAuueQSrFixAk8//TQ++eQTjBgxAsOHD8cPP/yQ9q/d3HXujjvuwP33348FCxZg9erVyM/Px8iRI1FbW5sVT1VVFU488UTMmzcvLV8/WUt1dTXWrVuHmTNnYt26dXjhhRewadMmnHXWWRm3AMBhhx2GBx98EJ988gneeecdHHTQQRgxYgR+/PFHeYzE8FSd5jNo0CA1efLk2H9blqVKS0vV3Llzs6hSCoBaunRpVg31s3PnTgVAvfXWW9mmKKWU6tChg3r88cez9vX37dunDj30ULVixQp10kknqSlTpmTFcdNNN6mjjz46K1+7caZPn65OPPHEbDNsM2XKFHXwwQerUCiU8a99xhlnqIkTJzZ433nnnafGjRuXcUt1dbUyTVMtW7aswfuPPfZYdf3112fU0vg6FwqFVElJibrzzjtj79u7d6/y+Xzqr3/9a8Y99fPNN98oAOqjjz5Ku6M5SzQffPCBAqC+/fbbrFvKy8sVAPXaa6+Jf319hygD8fv9WLt2LYYPHx57n8vlwvDhw7Fq1aosyvhSXl4OAOjYsWNWHZZlYcmSJaiqqsrqeJfJkyfjjDPOaPDcyVa2bNmC0tJS9O7dG+PGjcPWrVuz4vjXv/6FgQMH4re//S26du2KY445Bo899lhWLI3j9/vxl7/8BRMnTnQ0CDrVnHDCCVi5ciU2b94MAPj444/xzjvvYNSoURm3BINBWJaFnJycBu/Pzc3N2t3FaL755huUlZU1+L0qKirC4MGD9TU5TsrLy2EYhuhMz1Ti9/uxcOFCFBUV4eijjxY/f5vpVJ3N7Nq1C5ZlNemKXVxcjC+++CJLKr6EQiFMnToVw4YNwxFHHJEVwyeffIKhQ4eitrYWBQUFWLp0Kfr165cVy5IlS7Bu3bqM1VwkyuDBg7F48WIcfvjh2L59O2bNmoVf/OIX+PTTT1FYWJhRy9dff41HHnkE06ZNw//8z/9gzZo1uPrqq+H1ejF+/PiMWhrnxRdfxN69e3HRRRdl5ev/6U9/QkVFBfr06QPTNGFZFm699VaMGzcu45bCwkIMHToUc+bMQd++fVFcXIy//vWvWLVqFQ455JCMe+qnrKwMAOJek6Mf0wmntrYW06dPx+9+97usDXxdtmwZxo4di+rqanTr1g0rVqxA586dxb+OXhDp0GTy5Mn49NNPs/qvx8MPPxzr169HeXk5/v73v2P8+PF46623Mr4o+u677zBlyhSsWLGiyb+ws5H6dxiOOuooDB48GD179sTzzz+Piy++OKOWUCiEgQMH4rbbbgMAHHPMMfj000+xYMGCrC+InnjiCYwaNQqlpaVZ+frPP/88nnnmGTz77LPo378/1q9fj6lTp6K0tDQrj83TTz+NiRMn4oADDoBpmjj22GPxu9/9DmvXrs24RaflCQQCOP/886GUwiOPPJI1xymnnIL169dj165deOyxx3D++edj9erV6Nq1q+jX0VtmGUjnzp1hmiZ27NjR4P07duxASUlJllRcufLKK7Fs2TK88cYbOPDAA7Pm8Hq9OOSQQ3Dcccdh7ty5OProo3Hfffdl3LF27Vrs3LkTxx57LNxuN9xuN9566y3cf//9cLvdsCwr46b6ad++PQ477DB8+eWXGf/a3bp1a7JA7du3b9a28KL59ttv8dprr+GSSy7JmuG6667Dn/70J4wdOxZHHnkk/vCHP+Caa67B3Llzs+I5+OCD8dZbb6GyshLfffcdPvjgAwQCAfTu3Tsrnmii1119TbZPdDH07bffYsWKFVm7OwQA+fn5OOSQQzBkyBA88cQTcLvdeOKJJ8S/jl4QZSBerxfHHXccVq5cGXtfKBTCypUrs1qfwhClFK688kosXboUr7/+Onr16pVtUoOEQiHU1dVl/Oueeuqp+OSTT7B+/frYn4EDB2LcuHFYv349TNPMuKl+Kisr8dVXX6Fbt24Z/9rDhg1r0pph8+bN6NmzZ8Yt9bNo0SJ07doVZ5xxRtYM1dXVcLkaXtZN00QoFMqSKJz8/Hx069YNe/bswauvvoqzzz47q55evXqhpKSkwTW5oqICq1evbvPXZODnxdCWLVvw2muvoVOnTtkmNUi6rst6yyxDmTZtGsaPH4+BAwdi0KBBmD9/PqqqqjBhwoSMWyorKxv8y/6bb77B+vXr0bFjR/To0SOjlsmTJ+PZZ5/FP//5TxQWFsb274uKipCbm5tRy4wZMzBq1Cj06NED+/btw7PPPos333wTr776akYdQLj+onEdVX5+Pjp16pSV+qr/+q//wplnnomePXti27ZtuOmmm2CaJn73u99l3HLNNdfghBNOwG233Ybzzz8fH3zwARYuXIiFCxdm3BJNKBTCokWLMH78eLjd2busnnnmmbj11lvRo0cP9O/fHx999BHuueceTJw4MSueV199FUopHH744fjyyy9x3XXXoU+fPhm57jV3nZs6dSpuueUWHHrooejVqxdmzpyJ0tJSnHPOOVnx7N69G1u3bo31+4ku+ktKSsTvWiWydOvWDb/5zW+wbt06LFu2DJZlxa7LHTt2hNfrzZilU6dOuPXWW3HWWWehW7du2LVrFx566CH88MMP6WlrIf66NR3bPPDAA6pHjx7K6/WqQYMGqffffz8rjjfeeEMBaPJn/PjxGbfEcwBQixYtyrhl4sSJqmfPnsrr9aouXbqoU089VS1fvjzjDrtk82X3F1xwgerWrZvyer3qgAMOUBdccIH68ssvs2JRSqmXXnpJHXHEEcrn86k+ffqohQsXZs2ilFKvvvqqAqA2bdqUVUdFRYWaMmWK6tGjh8rJyVG9e/dW119/vaqrq8uK57nnnlO9e/dWXq9XlZSUqMmTJ6u9e/dm5Gs3d50LhUJq5syZqri4WPl8PnXqqaem9efXnGfRokVxP37TTTdl1BJ92X+8P2+88UZGLTU1Nercc89VpaWlyuv1qm7duqmzzjpLffDBB+IOpZQylMpSC1MdHR0dHR0dHZLoGiIdHR0dHR2dNh+9INLR0dHR0dFp89ELIh0dHR0dHZ02H70g0tHR0dHR0Wnz0QsiHR0dHR0dnTYfvSDS0dHR0dHRafPRCyIdHR0dHR2dNh+9INLR0dHR0dFp89ELIh0dHZ0EefPNN2EYBvbu3evoPAcddBDmz58vYkqUxYsXo3379mn/Ojo6rS16QaSj0wbz3XffYeLEiSgtLYXX60XPnj0xZcoU/PTTTw2OO/nkk2EYRpM/wWCwycd9Ph8OOOAAnHnmmXjhhReafM3oce+//36D99fV1aFTp04wDANvvvmmrfnHH3/EpEmT0KNHD/h8PpSUlGDkyJF49913nT8gJDEMAy+++GK2GTo6bTJ6QaSj08by9ddfY+DAgdiyZQv++te/4ssvv8SCBQuwcuVKDB06FLt3725w/KWXXort27c3+FN/gGn041999RX+8Y9/oF+/fhg7diwuu+yyJl+7e/fuWLRoUYP3LV26FAUFBc26x4wZg48++ghPPfUUNm/ejH/96184+eSTmyzidHR0dFKJXhDp6LSxTJ48GV6vF8uXL8dJJ52EHj16YNSoUXjttdfwww8/4Prrr29wfF5eXmzidrzJ29GPH3jggRgyZAjmzZuHRx99FI899hhee+21BseOHz8eS5YsQU1NTex9Tz75JMaPH5/QvHfvXvz73//GvHnzcMopp6Bnz54YNGgQZsyYgbPOOgsAMHHiRIwePbrB5wUCAXTt2hVPPPEEgPAdrauuugpTp05Fhw4dUFxcjMceewxVVVWYMGECCgsLccghh+Dll19uYnj33Xdx1FFHIScnB0OGDMGnn37a4OP/+Mc/0L9/f/h8Phx00EG4++67E35PzeU///kPDMPACy+8gFNOOQV5eXk4+uijsWrVqgbHLV68GD169EBeXh7OPffcuAvEf/7znzj22GORk5OD3r17Y9asWbG7fLNnz0ZpaWmDzzvjjDNwyimnIBQKOfoedHT2q6RlZKyOjg5lfvrpJ2UYhrrtttvifvzSSy9VHTp0UKFQSCml1EknnaSmTJliez67j1uWpTp06KAmTZoUex8AtXTpUnXUUUepp59+Wiml1Lfffqt8Pp/avHlzwmnagUBAFRQUqKlTp6ra2tq4x7z77rvKNE21bdu22PteeOEFlZ+fr/bt2xfzFhYWqjlz5qjNmzerOXPmKNM01ahRo9TChQvV5s2b1aRJk1SnTp1UVVWVUurnadx9+/ZVy5cvVxs2bFCjR49WBx10kPL7/UoppT788EPlcrnU7Nmz1aZNm9SiRYtUbm6uWrRoUczSs2dPde+999o+lvUfI6VUbOp4nz591LJly9SmTZvUb37zG9WzZ08VCASUUkq9//77yuVyqXnz5qlNmzap++67T7Vv314VFRXFzvn222+rdu3aqcWLF6uvvvpKLV++XB100EHq5ptvVkopFQwG1dChQ9U555yjlFLqwQcfVO3bt1fffvttQquOTmuLXhDp6LShvP/++w3+0m2ce+65RwFQO3bsUEqFFxAej0fl5+fH/kybNi12fKIF0+DBg9WoUaNi/x39uvPnz1ennHKKUkqpWbNmqXPPPVft2bMn4YJIKaX+/ve/qw4dOqicnBx1wgknqBkzZqiPP/64wTH9+vVT8+bNi/33mWeeqS666KIG3hNPPDH238FgUOXn56s//OEPsfdt375dAVCrVq1SSv28IFqyZEnsmJ9++knl5uaq5557Timl1IUXXqh+/etfN7Bcd911ql+/frH/TnVB9Pjjj8c+/tlnnykAauPGjUoppX73u9+p008/vcE5LrjgggYLolNPPbXJAvjpp59W3bp1i/33V199pQoLC9X06dNVbm6ueuaZZxI6dXRaY/SWmY5OG4xSKuljx40bh/Xr18f+zJgxI+mvYRhGk/f//ve/x6pVq/D1119j8eLFmDhxYlLnGzNmDLZt24Z//etfOO200/Dmm2/i2GOPxeLFi2PHXHLJJbEapR07duDll19ucv6jjjoq9v9N00SnTp1w5JFHxt5XXFwMANi5c2eDzxs6dGjs/3fs2BGHH344Nm7cCADYuHEjhg0b1uD4YcOGYcuWLbAsq8n38v/+3/9DQUFB7E+i1Pd269atgW3jxo0YPHiwrRMAPv74Y8yePbvB14vWfVVXVwMAevfujbvuugvz5s3DWWedhQsvvDChSUenNUYviHR02lAOOeQQGIYR+4u8cTZu3IgOHTqgS5cusfcVFRXhkEMOif3p3Llzs1/Hsixs2bIFvXr1avKxTp06YfTo0bj44otRW1uLUaNGJe3PycnBr3/9a8ycORPvvfceLrroItx0002xj//xj3/E119/jVWrVuEvf/kLevXqhV/84hcNzuHxeBr8t2EYDd4XXcSls35m9uzZDRaZieLUVllZiVmzZjX4ep988gm2bNmCnJyc2HFvv/02TNPEf/7zn1h9kY5OW4peEOnotKF06tQJv/71r/Hwww83KGwGgLKyMjzzzDO44IIL4t7ZaUmeeuop7NmzB2PGjIn78YkTJ+LNN9/EH//4R5immfLX6devH6qqqmL/3alTJ5xzzjlYtGgRFi9ejAkTJqR87sap3y5gz5492Lx5M/r27QsA6Nu3b5OX/7/77rs47LDD4n5/Xbt2bbDITDV9+/bF6tWrbZ0AcOyxx2LTpk0Nvl70j8sV/ivgueeewwsvvIA333wTW7duxZw5c1I26ejsr3E3f4iOjk5ryoMPPogTTjgBI0eOxC233IJevXrhs88+w3XXXYcDDjgAt956a4vOV11djbKyMgSDQXz//fdYunQp7r33XkyaNAmnnHJK3M857bTT8OOPP6Jdu3ZJfY2ffvoJv/3tbzFx4kQcddRRKCwsxIcffog77rgDZ599doNjL7nkEowePRqWZTX76rWWZPbs2ejUqROKi4tx/fXXo3PnzjjnnHMAANdeey2OP/54zJkzBxdccAFWrVqFBx98EA8//LDY14+Xq6++GsOGDcNdd92Fs88+G6+++ipeeeWVBsfceOONGD16NHr06IHf/OY3cLlc+Pjjj/Hpp5/illtuwffff49JkyZh3rx5OPHEE7Fo0SKMHj0ao0aNwpAhQ9Lq19Fhir5DpKPTxnLooYfiww8/RO/evXH++efj4IMPxmWXXYZTTjkFq1atQseOHVt0vsceewzdunXDwQcfjPPOOw+ff/45nnvuuYSLAcMw0LlzZ3i93qS+RkFBAQYPHox7770Xv/zlL3HEEUdg5syZuPTSS/Hggw82OHb48OHo1q0bRo4cidLS0hZ9L4ly++23Y8qUKTjuuONQVlaGl156KeY/9thj8fzzz2PJkiU44ogjcOONN2L27Nm46KKLxL5+vAwZMgSPPfYY7rvvPhx99NFYvnw5brjhhgbHjBw5EsuWLcPy5ctx/PHHY8iQIbj33nvRs2dPKKVw0UUXYdCgQbjyyitjx0+aNAm///3vUVlZmVa/jg5TDNWS6kodHR0d8lRWVuKAAw7AokWLcN5552Wbo6Ojs59Eb5np6Oi0ioRCIezatQt333032rdvH2vYqKOjo5NM9IJIR0enVWTr1q3o1asXDjzwQCxevLjBeBEdHR2d5qK3zHR0dHR0dHTafHRRtY6Ojo6Ojk6bj14Q6ejo6Ojo6LT56AWRjo6Ojo6OTpuPXhDp6Ojo6OjotPnoBZGOjo6Ojo5Om49eEOno6Ojo6Oi0+egFkY6Ojo6Ojk6bj14Q6ejo6Ojo6LT5/H+7EFfJZawc/AAAAABJRU5ErkJggg==", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "pdschUpperPhy = PDSCHUpperPhy(symbolsPerSlot = numSymbols, numRB = numRB, mcsIndex = mcsIndex, \n", + " numlayers = numlayers, scalingField = scalingField, \n", + " additionalOverhead = additionalOverhead, dmrsREs = dmrsREs, \n", + " numTBs=numTBs, pdschTable = mcsTable, verbose = False)\n", + "\n", + "codeword = pdschUpperPhy(tblock = [None, None], rvid = [0, 0], enableLBRM = [False, False], \n", + " numBatch = numBatches, numBSs = numBSs)\n", + "\n", + "rnti = np.random.randint(65536, size=numBSs*numBatches)\n", + "nID = np.random.randint(1024, size=numBSs*numBatches)\n", + "bits2 = codeword[1] if numTBs == 2 else None\n", + "\n", + "pdschLowerPhyChain = PDSCHLowerPhy(pdschMappingType, configurationType, dmrsTypeAPosition, \n", + " maxLength, dmrsAdditionalPosition, l0, ld, l1)\n", + "resourceGrid = pdschLowerPhyChain(codeword[0], numRB, rank, slotNumber, scramblingID, \n", + " nSCID, rnti, nID, modOrder, startSymbol, bits2 = bits2)\n", + "\n", + "## Load the resource Grid into the transmision Grid\n", + "txGrid = np.zeros(resourceGrid.shape[0:-1]+(Nfft,), dtype= np.complex64)\n", + "bwpOffset = np.random.randint(Nfft-numRB*12)\n", + "txGrid[...,bwpOffset:bwpOffset+numRB*12] = resourceGrid\n", + "\n", + "fig, ax = pdschLowerPhyChain.displayDMRSGrid()\n", + "pdschLowerPhyChain.displayResourceGrid()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "5730f5b9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,2)\n", + "\n", + "ax[0].plot(np.abs(Hf[0,0,0,0,:,0,5]))\n", + "ax[0].grid()\n", + "ax[1].plot(np.abs(Hf[0,0,0,0,:,0,3]))\n", + "ax[1].grid()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "f06ed8b1", + "metadata": {}, + "source": [ + "## SVD Based Beamforming: Perfect CSI" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "c7d0f32f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Beamforming Parameters *************\n", + "\n", + " Precoder Shape: (200, 1, 1, 1, 1024, 32, 1)\n", + " Combiner Shape: (200, 1, 1, 1, 1024, 1, 4)\n", + " Channel Shape: (1, 1, 1, 200, 1024, 4, 32)\n", + "Eigen Matrix Shape: (1, 1, 1, 200, 1024, 4)\n", + "Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Digital Beamforming\n", + "[U, S, Vh] = np.linalg.svd(Hf)\n", + "precoder = np.conj(Vh.transpose(3,0,1,2,4,6,5)[...,0:rank])\n", + "combiner = np.conj((U*(1/S[...,np.newaxis,:].repeat(S.shape[-1], axis = -2)))[...,0:rank].transpose(3,0,1,2,4,6,5))\n", + "xBeam = (precoder@txGrid.transpose(0,1,3,4,2)[:,np.newaxis,...,np.newaxis])[...,0]\n", + "\n", + "print(\"************ Beamforming Parameters *************\")\n", + "print()\n", + "print(\" Precoder Shape: \"+str(precoder.shape))\n", + "print(\" Combiner Shape: \"+str(combiner.shape))\n", + "print(\" Channel Shape: \"+str(Hf.shape))\n", + "print(\"Eigen Matrix Shape: \"+str(S.shape))\n", + "print(\"Beamformed Grid sh: \"+str(xBeam.shape))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "25a2e828", + "metadata": {}, + "source": [ + "## Pass through Channel" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "2a97e864", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Channel Parameters *************\n", + "\n", + " Channel Shape: (1, 1, 1, 200, 1024, 4, 32)\n", + "Received Grid shape: (200, 1, 14, 1, 1024, 4)\n", + " Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Channel Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numUEs, numSamples/numFFTpoints, numRxAntennas, numTxAntennas\n", + "# Tx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numSamples/numFFTpoints, numTxAntennas\n", + "# Rx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), -- numUEs, numSamples/numFFTpoints, numRxAntennas\n", + "\n", + "ptc = ApplyChannel(isFrequencyDomain = True, enableInterTxInterference = True, memoryConsumptionLevel = 0)\n", + "y = ptc(Hf[np.newaxis].transpose(4,0,1,2,3,5,6,7), xBeam.transpose(0,1,3,2,4,5))\n", + "\n", + "print(\"************ Channel Parameters *************\")\n", + "print()\n", + "print(\" Channel Shape: \"+str(Hf.shape))\n", + "print(\"Received Grid shape: \"+str(y.shape))\n", + "print(\" Beamformed Grid sh: \"+str(xBeam.shape))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "b11aa3cf", + "metadata": {}, + "source": [ + "## Link Level Simulation: SVD based Beamforming using Perfect CSI" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "84467cf4", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "********************************************************\n", + "Simulation: [0] for SNRdB = -10.5\n", + "Simulation: [0] for codedBER = 0.003271497919556172\n", + "Simulation: [0] for uncodedBER = 0.004089940323955669\n", + "Simulation: [0] for BLER = 1.0\n", + "Simulation: [0] for Throughput = 0.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [1] for SNRdB = -9.88888888888889\n", + "Simulation: [1] for codedBER = 0.0019166088765603328\n", + "Simulation: [1] for uncodedBER = 0.002438832054560955\n", + "Simulation: [1] for BLER = 1.0\n", + "Simulation: [1] for Throughput = 0.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [2] for SNRdB = -9.277777777777779\n", + "Simulation: [2] for codedBER = 0.0011243065187239944\n", + "Simulation: [2] for uncodedBER = 0.001499147485080989\n", + "Simulation: [2] for BLER = 0.955\n", + "Simulation: [2] for Throughput = 519120.00000000047\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [3] for SNRdB = -8.666666666666666\n", + "Simulation: [3] for codedBER = 0.0005989944521497919\n", + "Simulation: [3] for uncodedBER = 0.0008077578857630008\n", + "Simulation: [3] for BLER = 0.8425\n", + "Simulation: [3] for Throughput = 1816919.9999999995\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [4] for SNRdB = -8.055555555555555\n", + "Simulation: [4] for codedBER = 0.0002869278779472954\n", + "Simulation: [4] for uncodedBER = 0.00043350383631713557\n", + "Simulation: [4] for BLER = 0.5549999999999999\n", + "Simulation: [4] for Throughput = 5133520.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [5] for SNRdB = -7.444444444444445\n", + "Simulation: [5] for codedBER = 0.00013262829403606102\n", + "Simulation: [5] for uncodedBER = 0.00022953964194373402\n", + "Simulation: [5] for BLER = 0.3125\n", + "Simulation: [5] for Throughput = 7931000.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [6] for SNRdB = -6.833333333333333\n", + "Simulation: [6] for codedBER = 7.628294036061026e-05\n", + "Simulation: [6] for uncodedBER = 0.00012510656436487638\n", + "Simulation: [6] for BLER = 0.19499999999999995\n", + "Simulation: [6] for Throughput = 9286480.000000002\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [7] for SNRdB = -6.222222222222221\n", + "Simulation: [7] for codedBER = 2.340499306518724e-05\n", + "Simulation: [7] for uncodedBER = 6.457800511508951e-05\n", + "Simulation: [7] for BLER = 0.06499999999999995\n", + "Simulation: [7] for Throughput = 10786160.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [8] for SNRdB = -5.611111111111111\n", + "Simulation: [8] for codedBER = 0.0\n", + "Simulation: [8] for uncodedBER = 3.836317135549872e-05\n", + "Simulation: [8] for BLER = 0.0\n", + "Simulation: [8] for Throughput = 11536000.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [9] for SNRdB = -5.0\n", + "Simulation: [9] for codedBER = 0.0\n", + "Simulation: [9] for uncodedBER = 2.3231031543052003e-05\n", + "Simulation: [9] for BLER = 0.0\n", + "Simulation: [9] for Throughput = 11536000.0\n", + "********************************************************\n", + "\n" + ] + } + ], + "source": [ + "numPoints = 10\n", + "SNRdB = np.linspace(-10.5, -5, numPoints, endpoint=True)\n", + "# SNRdB = np.linspace(-13.5, -7.5, numPoints, endpoint=True)\n", + "SNR = 10**(SNRdB/10)\n", + "\n", + "codedBER = np.zeros(numPoints)\n", + "uncodedBER = np.zeros(numPoints)\n", + "bler = np.zeros(numPoints)\n", + "throughput = np.zeros(numPoints)\n", + "\n", + "for i in range(numPoints):\n", + " print(\"********************************************************\")\n", + " print(\"Simulation: [\"+str(i)+\"] for SNRdB = \"+str(SNRdB[i]))\n", + " \n", + " ## Add noise to the received grid\n", + " yGrid = AddNoise(False)(y, 1/SNR[i], 0)\n", + "\n", + " ## Receiver Combining\n", + " rGrid = ((combiner@yGrid[...,np.newaxis])[:,0,...,0]).transpose(0,2,4,1,3)\n", + "\n", + " ## Extracting the Received Grid\n", + " rxGrid = rGrid[...,bwpOffset:bwpOffset+12*numRB]\n", + "\n", + " ## Receiver: Lower Physical layer\n", + " isChannelPerfect = False\n", + " pdschDecLowerPhy = PDSCHDecoderLowerPhy(modOrder, isChannelPerfect, isEqualized = True)\n", + " descrBits = pdschDecLowerPhy(rxGrid, pdschLowerPhyChain.pdschIndices, rnti, \n", + " nID, SNR[i], None, numTBs, hard_out = False)\n", + "\n", + " ## Receiver: Upper Physical layer\n", + " pdschUpPhyDec = PDSCHDecoderUpperPhy(numTBs = numTBs, mcsIndex = mcsIndex, symbolsPerSlot= numSymbols, \n", + " numRB = numRB, numLayers = numlayers, scalingField = scalingField, \n", + " additionalOverhead = additionalOverhead, dmrsREs = dmrsREs, \n", + " enableLBRM = [False, False], pdschTable = mcsTable, rvid = [0, 0], verbose=False)\n", + "\n", + " bits = pdschUpPhyDec(descrBits)\n", + "\n", + " ## KPI computation\n", + " codedBER[i] = np.mean(np.abs(bits-pdschUpperPhy.tblock1))\n", + " uncodedBER[i] = np.mean(np.abs(codeword[0] - np.where(descrBits[0]>0,1,0)))\n", + " bler[i] = 1-np.mean(pdschUpPhyDec.crcCheckforCBs)\n", + " throughput[i] = (1-bler[i])*tbLen1*2000\n", + " \n", + " print(\"Simulation: [\"+str(i)+\"] for codedBER = \"+str(codedBER[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for uncodedBER = \"+str(uncodedBER[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for BLER = \"+str(bler[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for Throughput = \"+str(throughput[i]))\n", + " \n", + " print(\"********************************************************\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "5c5d5f1c", + "metadata": {}, + "source": [ + "## SVD Based Beamforming: CSI Reconstructed using CSINet" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "01adb788", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7/7 [==============================] - 0s 6ms/step\n", + "7/7 [==============================] - 0s 6ms/step\n", + "7/7 [==============================] - 0s 7ms/step\n", + "7/7 [==============================] - 0s 6ms/step\n", + "************ Beamforming Parameters *************\n", + "\n", + " Precoder Shape: (200, 1, 1, 1, 1024, 32, 1)\n", + " Combiner Shape: (200, 1, 1, 1, 1024, 1, 4)\n", + " Channel Shape: (1, 1, 1, 200, 1024, 4, 32)\n", + "Eigen Matrix Shape: (1, 1, 1, 200, 1024, 4)\n", + "Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Digital Beamforming\n", + "\n", + "shape = Hf[0,0,0].shape\n", + "Hest = np.zeros((shape[0], shape[2], shape[3], shape[1]), dtype = np.complex64)\n", + "\n", + "for nr in range(Nr):\n", + " H = Hf[0,0,0,...,nr,:].transpose(0,2,1)\n", + " Hprep = csinet.preprocess(H)\n", + " Hrec = csinet.predict(Hprep)\n", + " Hest[:,nr] = csinet.postprocess(Hprep, Nfft)\n", + "\n", + "[U, S, Vh] = np.linalg.svd(Hest.transpose(0,3,1,2)[np.newaxis, np.newaxis,np.newaxis])\n", + "precoder = np.conj(Vh.transpose(3,0,1,2,4,6,5)[...,0:rank])\n", + "combiner = np.conj((U*(1/S[...,np.newaxis,:].repeat(S.shape[-1], axis = -2)))[...,0:rank].transpose(3,0,1,2,4,6,5))\n", + "xBeam = (precoder@txGrid.transpose(0,1,3,4,2)[:,np.newaxis,...,np.newaxis])[...,0]\n", + "\n", + "print(\"************ Beamforming Parameters *************\")\n", + "print()\n", + "print(\" Precoder Shape: \"+str(precoder.shape))\n", + "print(\" Combiner Shape: \"+str(combiner.shape))\n", + "print(\" Channel Shape: \"+str(Hf.shape))\n", + "print(\"Eigen Matrix Shape: \"+str(S.shape))\n", + "print(\"Beamformed Grid sh: \"+str(xBeam.shape))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "aba9a9a7", + "metadata": {}, + "source": [ + "## Pass through Wireless Channel" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "99b43407", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Channel Parameters *************\n", + "\n", + " Channel Shape: (1, 1, 1, 200, 1024, 4, 32)\n", + "Received Grid shape: (200, 1, 14, 1, 1024, 4)\n", + " Beamformed Grid sh: (200, 1, 1, 14, 1024, 32)\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Channel Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numUEs, numSamples/numFFTpoints, numRxAntennas, numTxAntennas\n", + "# Tx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), numBSs, numSamples/numFFTpoints, numTxAntennas\n", + "# Rx-Grid Dimensions: numBatches, numFrequencies, numSymbols(numSnapshots), -- numUEs, numSamples/numFFTpoints, numRxAntennas\n", + "\n", + "ptc = ApplyChannel(isFrequencyDomain = True, enableInterTxInterference = True, memoryConsumptionLevel = 0)\n", + "y = ptc(Hf[np.newaxis].transpose(4,0,1,2,3,5,6,7), xBeam.transpose(0,1,3,2,4,5))\n", + "\n", + "print(\"************ Channel Parameters *************\")\n", + "print()\n", + "print(\" Channel Shape: \"+str(Hf.shape))\n", + "print(\"Received Grid shape: \"+str(y.shape))\n", + "print(\" Beamformed Grid sh: \"+str(xBeam.shape))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "80898329", + "metadata": {}, + "source": [ + "## Link Level Simulation: SVD based Beamforming using Imperfect CSI" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "b20c4922", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "********************************************************\n", + "Simulation: [0] for SNRdB = -10.0\n", + "Simulation: [0] for codedBER = 0.002643030513176144\n", + "Simulation: [0] for uncodedBER = 0.0033248081841432226\n", + "Simulation: [0] for BLER = 1.0\n", + "Simulation: [0] for Throughput = 0.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [1] for SNRdB = -9.483333333333333\n", + "Simulation: [1] for codedBER = 0.0017995839112343967\n", + "Simulation: [1] for uncodedBER = 0.002294543904518329\n", + "Simulation: [1] for BLER = 0.99\n", + "Simulation: [1] for Throughput = 115360.0000000001\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [2] for SNRdB = -8.966666666666667\n", + "Simulation: [2] for codedBER = 0.0012274618585298197\n", + "Simulation: [2] for uncodedBER = 0.001603154305200341\n", + "Simulation: [2] for BLER = 0.975\n", + "Simulation: [2] for Throughput = 288400.00000000023\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [3] for SNRdB = -8.45\n", + "Simulation: [3] for codedBER = 0.0008538488210818308\n", + "Simulation: [3] for uncodedBER = 0.0011327791986359761\n", + "Simulation: [3] for BLER = 0.9125\n", + "Simulation: [3] for Throughput = 1009400.0000000002\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [4] for SNRdB = -7.933333333333334\n", + "Simulation: [4] for codedBER = 0.0005799237170596394\n", + "Simulation: [4] for uncodedBER = 0.0008459079283887468\n", + "Simulation: [4] for BLER = 0.8325\n", + "Simulation: [4] for Throughput = 1932279.9999999998\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [5] for SNRdB = -7.416666666666666\n", + "Simulation: [5] for codedBER = 0.0004342926490984743\n", + "Simulation: [5] for uncodedBER = 0.0006432225063938619\n", + "Simulation: [5] for BLER = 0.7224999999999999\n", + "Simulation: [5] for Throughput = 3201240.000000001\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [6] for SNRdB = -6.8999999999999995\n", + "Simulation: [6] for codedBER = 0.00031206657420249653\n", + "Simulation: [6] for uncodedBER = 0.0005051150895140665\n", + "Simulation: [6] for BLER = 0.6074999999999999\n", + "Simulation: [6] for Throughput = 4527880.000000001\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [7] for SNRdB = -6.383333333333333\n", + "Simulation: [7] for codedBER = 0.00022798196948682387\n", + "Simulation: [7] for uncodedBER = 0.0004360613810741688\n", + "Simulation: [7] for BLER = 0.48750000000000004\n", + "Simulation: [7] for Throughput = 5912200.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [8] for SNRdB = -5.866666666666666\n", + "Simulation: [8] for codedBER = 6.934812760055479e-06\n", + "Simulation: [8] for uncodedBER = 0.0003923699914748508\n", + "Simulation: [8] for BLER = 0.020000000000000018\n", + "Simulation: [8] for Throughput = 11305280.0\n", + "********************************************************\n", + "\n", + "********************************************************\n", + "Simulation: [9] for SNRdB = -5.35\n", + "Simulation: [9] for codedBER = 0.0\n", + "Simulation: [9] for uncodedBER = 0.0003610400682011935\n", + "Simulation: [9] for BLER = 0.0\n", + "Simulation: [9] for Throughput = 11536000.0\n", + "********************************************************\n", + "\n" + ] + } + ], + "source": [ + "numPoints = 10\n", + "SNRdB2 = np.linspace(-10, -5.35, numPoints, endpoint=True)\n", + "# SNRdB = np.linspace(-13.5, -7.5, numPoints, endpoint=True)\n", + "SNR2 = 10**(SNRdB2/10)\n", + "\n", + "codedBER2 = np.zeros(numPoints)\n", + "uncodedBER2 = np.zeros(numPoints)\n", + "bler2 = np.zeros(numPoints)\n", + "throughput2 = np.zeros(numPoints)\n", + "\n", + "for i in range(numPoints):\n", + " print(\"********************************************************\")\n", + " print(\"Simulation: [\"+str(i)+\"] for SNRdB = \"+str(SNRdB2[i]))\n", + " \n", + " ## Add noise to the received grid\n", + " yGrid = AddNoise(False)(y, 1/SNR2[i], 0)\n", + "\n", + " ## Receiver Combining\n", + " rGrid = ((combiner@yGrid[...,np.newaxis])[:,0,...,0]).transpose(0,2,4,1,3)\n", + "\n", + " ## Extracting the Received Grid\n", + " rxGrid = rGrid[...,bwpOffset:bwpOffset+12*numRB]\n", + "\n", + " ## Receiver: Lower Physical layer\n", + " isChannelPerfect = False\n", + " pdschDecLowerPhy = PDSCHDecoderLowerPhy(modOrder, isChannelPerfect, isEqualized = True)\n", + " descrBits = pdschDecLowerPhy(rxGrid, pdschLowerPhyChain.pdschIndices, rnti, \n", + " nID, SNR2[i], None, numTBs, hard_out = False)\n", + "\n", + " ## Receiver: Upper Physical layer\n", + " pdschUpPhyDec = PDSCHDecoderUpperPhy(numTBs = numTBs, mcsIndex = mcsIndex, symbolsPerSlot= numSymbols, \n", + " numRB = numRB, numLayers = numlayers, scalingField = scalingField, \n", + " additionalOverhead = additionalOverhead, dmrsREs = dmrsREs, \n", + " enableLBRM = [False, False], pdschTable = mcsTable, rvid = [0, 0], verbose=False)\n", + "\n", + " bits = pdschUpPhyDec(descrBits)\n", + "\n", + " ## KPI computation\n", + " codedBER2[i] = np.mean(np.abs(bits-pdschUpperPhy.tblock1))\n", + " uncodedBER2[i] = np.mean(np.abs(codeword[0] - np.where(descrBits[0]>0,1,0)))\n", + " bler2[i] = 1 - np.mean(pdschUpPhyDec.crcCheckforCBs)\n", + " throughput2[i] = (1-bler2[i])*tbLen1*2000\n", + " \n", + " print(\"Simulation: [\"+str(i)+\"] for codedBER = \"+str(codedBER2[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for uncodedBER = \"+str(uncodedBER2[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for BLER = \"+str(bler2[i]))\n", + " print(\"Simulation: [\"+str(i)+\"] for Throughput = \"+str(throughput2[i]))\n", + " \n", + " print(\"********************************************************\")\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "2703a39b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.0" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.mean(pdschUpPhyDec.crcCheckforCBs)" + ] + }, + { + "cell_type": "markdown", + "id": "afa435f2", + "metadata": {}, + "source": [ + "# Performance Evaluations\n", + "\n", + "## Throughput Evaluations" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "4a32c773", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1185f/48Tz/9dIH2axsfUlrx9/cnKioKf39/q2zBggV06dKFqKgo1q5dy+HDh0lISCA1NZUZM2YAsGTJEiZMmMATTzzBgQMH2LFjB88++yxp2j3hhICAAD788MNcsXGeQK/XExUVZY2bLY1IZ0gikUgKw+XL1o/u33/tvnP5MhiNlp6fhx4Cm2BSO7KzLcuPHwctZunKldz7unzZLdWioqKsn7CwMBRFISoqigoVKuR6+f322280b96coKAg2rRpw9GjR63LtJ6KxYsX28VN/f333/Tq1YuQkBDKlClD//79SUpKsm43dOhQevfubafThAkT6Nixo/X79evXGTx4MMHBwURHRzNr1iw6duxoHRLTMBgMDB8+nNDQUKpUqcLChQuty06fPo2iKKxYsYI2bdoQEBBA/fr12bJli3Wdjz76iPDwcLt9fvnll9ahmY8++ojXXnuNgwcPWnvRPvroI5fP9YULF6xOzpIlS+jYsSPVqlWjffv2LF68mFdeeQWAr7/+mv79+zNixAhq1KjB7bffzqBBg3j99dfz3H/t2rXp1KkTL774Yp7r/fHHH9xzzz2EhIQQGRnJww8/bE1oGDZsGLt27WLOnDlWG93pVfovI50hiUQiKQwVK0LFiuiioqjWsiW6qCirjGbNwM8PZs927ghpZGdb1tOoW/fmfmw/RcSLL77IjBkz2Lt3Lz4+PgwfPtxu+YkTJ1i7di1ffPEFBw4cQFVVevXqRXJyMlu2bGHDhg0kJiYyYMAAt447ceJEduzYwddff82GDRvYtm0b+/bty7XejBkzaN68Ofv37+exxx7j0UcftXPYAJ555hkmTZrE/v37ad26NT179uTff/91SY8BAwYwadIkbr/9dmtvmju2/PDDD2RlZfHss886XK45YlFRUfz6668FyoR66623WLt2LXv37nW4/OrVq3Tu3JkmTZqwd+9e1q9fT1JSEv379wdg9uzZNGnShJEjR1ptjImJcVuP/yLSGZJIJJKi4q67QK+Hzz5zbf3lywsdSF1QXn/9dTp06EC9evWYPHkyO3futEuvzsrK4uOPP6ZJkyY0bNiQn376iUOHDvHZZ5/RrFkzWrVqxccff8yWLVvYs2ePS8e8fv06y5YtY/r06dx1113Ur1+fpUuX5soYBOjRowePPfYYNWrU4LnnniMiIoJNmzbZrTNu3Dj69u1L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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.semilogy(SNRdB, throughput, \"b\", marker = \"*\", lw = 3, mec = \"k\", mfc = \"r\", ms = 12, label=\"Throughput [Perfect-CSI]\")\n", + "ax.semilogy(SNRdB2, throughput2, \"--r\", marker = \"o\", lw = 3, mec = \"w\", mfc = \"r\", ms = 9, label=\"Throughput [CSINet]\")\n", + "\n", + "ax.set_xlabel(\"Signal to Noise Ratio (dB)\")\n", + "ax.set_ylabel(\"Throughput (bits per second)\")\n", + "ax.set_title(\"Data-rate Evaluation: SNR (dB) vs Throughput\", fontsize = 16)\n", + "ax.legend(loc=\"best\")\n", + "\n", + "ax.set_xticks(SNRdB2, minor=False)\n", + "ax.xaxis.set_major_formatter(mpl.ticker.FormatStrFormatter('%.2f'))\n", + "ytck = 10**(np.arange(2, 9)).repeat(10)*np.tile(np.arange(1, 11), [7])\n", + "ax.set_yticks(ytck, minor=True)\n", + "ax.set_yticks(10**(np.arange(2, 8)), minor=False)\n", + "ax.set_ylim([10**2, 10**8])\n", + "# ax.set_xlim([0.999*SNRdB[0], 1.05*SNRdB[-1]])\n", + "ax.grid(which = 'minor', alpha = 0.5, linestyle = '--')\n", + "ax.grid(which = 'major', alpha = 0.65, color = \"k\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "d76d9dca", + "metadata": {}, + "source": [ + "## BLER Evaluations" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "61ffbf26", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.semilogy(SNRdB, bler, \"g\", marker = \"X\", lw = 3, mec = \"k\", mfc = \"w\", ms = 9, label=\"BLER [Perfect-CSI]\")\n", + "ax.semilogy(SNRdB2, bler2, \"--b\", marker = \"o\", lw = 3, mec = \"w\", mfc = \"r\", ms = 9, label=\"BLER [CSI-Net]\")\n", + "\n", + "ax.legend(loc=\"best\")\n", + "ax.set_xlabel(\"Signal to Noise Ratio (dB)\")\n", + "ax.set_ylabel(\"Block (Bit) Error Rate\")\n", + "ax.set_title(\"Reliability Evaluation: SNR (dB) vs B(L)ER\", fontsize = 16)\n", + "\n", + "# ax.set_xticks(SNRdB1)\n", + "ax.xaxis.set_major_formatter(mpl.ticker.FormatStrFormatter('%.2f'))\n", + "ytck = (0.1**(np.arange(1, 10))).repeat(9)*np.tile(np.arange(10, 1,-1), [9])\n", + "ytck = np.concatenate([[1],ytck])\n", + "ax.set_yticks(ytck, minor=True)\n", + "ax.set_yticks(0.1**(np.arange(0, 9)), minor=False)\n", + "ax.set_ylim([0.5*10**-5,1.2])\n", + "\n", + "ax.grid(which = 'minor', alpha = 0.5, linestyle = '--')\n", + "ax.grid(which = 'major', alpha = 0.65, color = \"k\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "ace29977", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "1. [Deep Learning for Massive MIMO CSI Feedback](https://arxiv.org/pdf/1712.08919)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "654ffcda", + "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" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/api/Projects/Project3/Generate_Channel_Datasets.html b/api/Projects/Project3/Generate_Channel_Datasets.html new file mode 100644 index 00000000..022eda07 --- /dev/null +++ b/api/Projects/Project3/Generate_Channel_Datasets.html @@ -0,0 +1,2406 @@ + + + + + + + Wireless Channel Dataset Generation for Training the AI based Models — 5G Toolkit R24a documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + + +
    +

    Wireless Channel Dataset Generation for Training the AI based Models

    +

    Wireless channel dataset generation and preprocessing involve the creation and preparation of datasets containing information about the wireless communication channel. Here’s an overview of the process:

    +
      +
    1. Dataset Generation:

      +
        +
      • Simulation (We are using this): One common approach is to use channel modeling and simulation software to generate synthetic datasets. This involves modeling various channel characteristics such as path loss, shadowing, multipath propagation, and fading effects.

      • +
      • Measurement: Real-world measurements can be collected using specialized hardware and equipment deployed in different environments. These measurements capture the characteristics of the wireless channel under various conditions and scenarios.

      • +
      +
    2. +
    3. Data Collection:

      +
        +
      • In simulation-based approaches, data is generated by simulating the propagation of electromagnetic waves through the environment and computing channel parameters such as signal strength, delay spread, and Doppler shift.

      • +
      • In measurement-based approaches, data is collected by measuring the received signal strength and other relevant parameters at multiple locations in the environment over time.

      • +
      +
    4. +
    5. Data Preprocessing:

      +
        +
      • Cleaning: The collected data may contain errors, outliers, or missing values that need to be identified and corrected. Cleaning involves removing or correcting these inconsistencies to ensure the quality of the dataset.

      • +
      • Normalization: Data normalization involves scaling the values of features to a standard range to ensure uniformity and comparability across different features.

      • +
      • Feature Extraction: Relevant features such as signal strength, delay spread, angle of arrival, and Doppler shift are extracted from the raw data. Feature extraction may involve signal processing techniques such as Fourier transforms, wavelet analysis, or machine learning algorithms.

      • +
      • Dimensionality Reduction: In some cases, datasets may contain a large number of features, leading to computational complexity and overfitting. Dimensionality reduction techniques such as Principal Component Analysis (PCA) or feature selection methods are applied to reduce the number of features while preserving the most relevant information.

      • +
      +
    6. +
    +

    Wireless channel dataset generation and preprocessing are crucial steps in the development of machine learning models, algorithms, and systems for wireless communication. A well-prepared dataset ensures the accuracy, reliability, and generalizability of the models and systems built upon it.

    +
    +

    Import Python Libraries

    +
    +

    Import Basic Python LIbraries

    +
    +
    [1]:
    +
    +
    +
    # %matplotlib widgets
    +import matplotlib.pyplot as plt
    +import matplotlib as mpl
    +
    +import os
    +os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
    +os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
    +
    +import numpy as np
    +
    +# from IPython.display import display, HTML
    +# display(HTML("<style>.container { width:80% !important; }</style>"))
    +
    +
    +
    +
    +
    +

    Import 5G Toolkit Libraries

    +
    +
    [2]:
    +
    +
    +
    from csiNet import CSINet
    +
    +import sys
    +sys.path.append("../../")
    +
    +from toolkit5G.PhysicalChannels.PDSCH import ComputeTransportBlockSize
    +from toolkit5G.PhysicalChannels       import PDSCHLowerPhy, PDSCHUpperPhy, PDSCHDecoderLowerPhy, PDSCHDecoderUpperPhy
    +from toolkit5G.ChannelModels          import AntennaArrays, SimulationLayout, ParameterGenerator, ChannelGenerator
    +from toolkit5G.Configurations         import PDSCHLowerPhyConfiguration, PDSCHUpperPhyConfiguration
    +from toolkit5G.ChannelProcessing      import AddNoise, ApplyChannel
    +from toolkit5G.SymbolMapping          import Mapper, Demapper
    +
    +
    +
    +
    +
    +
    +

    Simulation Parameters

    +
    +
    [3]:
    +
    +
    +
    # Carrier Frequency
    +carrierFrequency = 3.6*10**9
    +delaySpread   = 100*(10**-9)
    +numBatches    = 10000       # Number of batches considered for simulation
    +scs           = 30*10**3  # Subcarrier Spacing for simulation
    +numBSs        = 1 # Number of BSs considered for simulation
    +# Number of UEs considered for simulation
    +numUEs        = numBatches # For now we are assuming that the numbatches are captured via numUEs
    +numRB         = 85 # Number of Resource mapping considered for simulation | # 1 RB = 12 subcarrier
    +slotNumber    = int(np.random.randint(0,2**(scs/15000)*10)) # Index of the slot considered for simulation
    +terrain       = "CDL-A" # Terrain
    +txAntStruture = np.array([1,1,32,1,1]) # Tx Antenna Structure
    +rxAntStruture = np.array([1,1,1,1,1]) # Tx Antenna Structure
    +Nfft          = 1024 # FFTSize
    +
    +print("************ Simulation Parameters *************")
    +print()
    +print("     numBatches: "+str(numBatches))
    +print("          numRB: "+str(numRB))
    +print("       fft Size: "+str(Nfft))
    +print("         numBSs: "+str(numBSs))
    +print("         numUEs: "+str(numUEs))
    +print("            scs: "+str(scs))
    +print("     slotNumber: "+str(slotNumber))
    +print("        terrain: "+str(terrain))
    +print("Tx Ant Struture: "+str(txAntStruture))
    +print("Rx Ant Struture: "+str(rxAntStruture))
    +print()
    +print("********************************************")
    +
    +
    +
    +
    +
    +
    +
    +
    +************ Simulation Parameters *************
    +
    +     numBatches: 10000
    +          numRB: 85
    +       fft Size: 1024
    +         numBSs: 1
    +         numUEs: 10000
    +            scs: 30000
    +     slotNumber: 9
    +        terrain: CDL-A
    +Tx Ant Struture: [ 1  1 32  1  1]
    +Rx Ant Struture: [1 1 1 1 1]
    +
    +********************************************
    +
    +
    +
    +
    +

    Set Channel Parameters and Generate Common Parameters

    +
    +
    [4]:
    +
    +
    +
    # Antenna Array at UE side
    +# assuming antenna element type to be "OMNI"
    +# with 2 panel and 2 single polarized antenna element per panel.
    +ueAntArray = AntennaArrays(antennaType = "OMNI",  centerFrequency = carrierFrequency,
    +                           arrayStructure  = rxAntStruture)
    +ueAntArray()
    +
    +# # Radiation Pattern of Rx antenna element
    +# ueAntArray.displayAntennaRadiationPattern()
    +
    +
    +# Antenna Array at BS side
    +# assuming antenna element type to be "3GPP_38.901", a parabolic antenna
    +# with 4 panel and 4 single polarized antenna element per panel.
    +bsAntArray = AntennaArrays(antennaType = "3GPP_38.901", centerFrequency = carrierFrequency,
    +                           arrayStructure  = txAntStruture)
    +bsAntArray()
    +
    +# # Radiation Pattern of Tx antenna element
    +# bsAntArray[0].displayAntennaRadiationPattern()
    +
    +# Layout Parameters
    +isd                  = 200         # inter site distance
    +minDist              = 10          # min distance between each UE and BS
    +ueHt                 = 1.5         # UE height
    +bsHt                 = 25          # BS height
    +bslayoutType         = "Hexagonal" # BS layout type
    +ueDropType           = "Hexagonal" # UE drop type
    +htDist               = "equal"     # UE height distribution
    +ueDist               = "equal"     # UE Distribution per site
    +nSectorsPerSite      = 1           # number of sectors per site
    +maxNumFloors         = 1           # Max number of floors in an indoor object
    +minNumFloors         = 1           # Min number of floors in an indoor object
    +heightOfRoom         = 3           # height of room or ceiling in meters
    +indoorUEfract        = 0.5         # Fraction of UEs located indoor
    +lengthOfIndoorObject = 3           # length of indoor object typically having rectangular geometry
    +widthOfIndoorObject  = 3           # width of indoor object
    +# forceLOS             = True       # boolen flag if true forces every link to be in LOS state
    +forceLOS             = False       # boolen flag if true forces every link to be in LOS state
    +
    +Nt        = bsAntArray.numAntennas # Number of BS Antennas
    +Nr        = ueAntArray.numAntennas
    +
    +
    +
    +
    +
    +

    Generate the Wireless Channels Databases and Preprocess it before storage.

    +
      +
    1. Generate OFDM Wireless Channels.

    2. +
    3. Preprocess the OFDM Channel

    4. +
    5. Store the preprocessed wireless channels

    6. +
    +

    Important: Make sure you have Databases directory/folder where datasets will be stored.

    +
    +
    [ ]:
    +
    +
    +
    MonteCarloIterations = 10
    +
    +numTaps       = 32
    +codewordSize  = 512
    +
    +for mci in range(4,MonteCarloIterations):
    +    # simulation layout object
    +    simLayoutObj = SimulationLayout(numOfBS = numBSs,
    +                                    numOfUE = numUEs,
    +                                    heightOfBS = bsHt,
    +                                    heightOfUE = ueHt,
    +                                    ISD = isd,
    +                                    layoutType = bslayoutType,
    +                                    ueDropMethod = ueDropType,
    +                                    UEdistibution = ueDist,
    +                                    UEheightDistribution = htDist,
    +                                    numOfSectorsPerSite = nSectorsPerSite,
    +                                    ueRoute = None)
    +
    +    simLayoutObj(terrain = terrain,
    +                 carrierFreq = carrierFrequency,
    +                 ueAntennaArray = ueAntArray,
    +                 bsAntennaArray = bsAntArray,
    +                 indoorUEfraction = indoorUEfract,
    +                 lengthOfIndoorObject = lengthOfIndoorObject,
    +                 widthOfIndoorObject = widthOfIndoorObject,
    +                 forceLOS = forceLOS)
    +
    +    # displaying the topology of simulation layout
    +#     fig, ax = simLayoutObj.display2DTopology()
    +
    +    paramGen = simLayoutObj.getParameterGenerator(delaySpread = delaySpread)
    +
    +    # paramGen.displayClusters((0,0,0), rayIndex = 0)
    +    channel  = paramGen.getChannel()
    +
    +    # Generate OFDM Channel
    +    Hf       = channel.ofdm(scs, Nfft, normalizeChannel = True)[0,0,0,...,0,:].transpose(0,2,1)
    +
    +    # Preprocess the Frequency Domain channel
    +    csinet   = CSINet()
    +    model    = csinet(Nt, numTaps, codewordSize)
    +    Hprep    = csinet.preprocess(Hf)
    +
    +    np.savez("Databases/PreprocessedChannel-dB-"+str(mci)+".npz",
    +             Hprep = Hprep, Nfft  = Nfft, Nt = Nt, codewordSize  = codewordSize, numTaps = numTaps,
    +             carrierFrequency = carrierFrequency, terrain = terrain, delaySpread = delaySpread,
    +             isd = isd, txAntStruture = txAntStruture, rxAntStruture = rxAntStruture)
    +
    +    print("             Number of BSs: "+str(numBSs))
    +    print("          Shape of Channel: "+str(Hf.shape))
    +    print("*****************************************************")
    +    print()
    +
    +
    +
    +
    +
    +
    +
    +
    +             Number of BSs: 1
    +          Shape of Channel: (10000, 32, 1024)
    +*****************************************************
    +
    +             Number of BSs: 1
    +          Shape of Channel: (10000, 32, 1024)
    +*****************************************************
    +
    +             Number of BSs: 1
    +          Shape of Channel: (10000, 32, 1024)
    +*****************************************************
    +
    +             Number of BSs: 1
    +          Shape of Channel: (10000, 32, 1024)
    +*****************************************************
    +
    +
    +
    +
    +
    +

    Aggregate all the Datasets into a single Dataset

    +
    +
    [ ]:
    +
    +
    +
    filename = "Databases/PreprocessedChannel-dB-"+str(0)+".npz"
    +db = np.load(filename)
    +Hp = db["Hprep"]
    +for mci in range(1,10):
    +    filename = "Databases/PreprocessedChannel-dB-"+str(mci)+".npz"
    +    db = np.load(filename)
    +    Hp = np.concatenate([Hp, db["Hprep"]], axis=0)
    +
    +np.savez("Databases/PreprocessedChannel-dB.npz", Hp = Hp, Nfft  = 1024, Nt = 32)
    +
    +
    +
    +
    +
    +

    Display Sparsity of Wireless Channels

    +
    +
    [ ]:
    +
    +
    +
    numChannels = 10
    +numBatches  = Hp.shape[0]
    +idx         = np.random.choice(np.arange(numBatches), size=numChannels, replace = False)
    +
    +fig, ax = plt.subplots(2,10, figsize = (17.5, 5))
    +
    +print(idx)
    +for n in range(numChannels):
    +    ax[0,n].imshow(np.abs(Hp[idx[n],0])**2 + np.abs(Hp[idx[n],1])**2, cmap = "Greys", aspect = "auto")
    +#     ax[1,n].imshow(np.abs( Hrec[idx[n],0])**2 + np.abs( Hrec[idx[n],1])**2, cmap = "Greys", aspect = "auto")
    +
    +plt.show()
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/api/Projects/Project3/Generate_Channel_Datasets.ipynb b/api/Projects/Project3/Generate_Channel_Datasets.ipynb new file mode 100644 index 00000000..4b1a8228 --- /dev/null +++ b/api/Projects/Project3/Generate_Channel_Datasets.ipynb @@ -0,0 +1,390 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "080069f0", + "metadata": {}, + "source": [ + "# Wireless Channel Dataset Generation for Training the AI based Models\n", + "\n", + "Wireless channel dataset generation and preprocessing involve the creation and preparation of datasets containing information about the wireless communication channel. Here's an overview of the process:\n", + "\n", + "1. **Dataset Generation**:\n", + "\n", + " - **Simulation** (``We are using this``): One common approach is to use channel modeling and simulation software to generate synthetic datasets. This involves modeling various channel characteristics such as path loss, shadowing, multipath propagation, and fading effects.\n", + " \n", + " - **Measurement**: Real-world measurements can be collected using specialized hardware and equipment deployed in different environments. These measurements capture the characteristics of the wireless channel under various conditions and scenarios.\n", + "\n", + "2. **Data Collection**:\n", + "\n", + " - In simulation-based approaches, data is generated by simulating the propagation of electromagnetic waves through the environment and computing channel parameters such as signal strength, delay spread, and Doppler shift.\n", + " - In measurement-based approaches, data is collected by measuring the received signal strength and other relevant parameters at multiple locations in the environment over time.\n", + "\n", + "3. **Data Preprocessing**:\n", + "\n", + " - **Cleaning**: The collected data may contain errors, outliers, or missing values that need to be identified and corrected. Cleaning involves removing or correcting these inconsistencies to ensure the quality of the dataset.\n", + " - **Normalization**: Data normalization involves scaling the values of features to a standard range to ensure uniformity and comparability across different features.\n", + " - **Feature Extraction**: Relevant features such as signal strength, delay spread, angle of arrival, and Doppler shift are extracted from the raw data. Feature extraction may involve signal processing techniques such as Fourier transforms, wavelet analysis, or machine learning algorithms.\n", + " - **Dimensionality Reduction**: In some cases, datasets may contain a large number of features, leading to computational complexity and overfitting. Dimensionality reduction techniques such as Principal Component Analysis (PCA) or feature selection methods are applied to reduce the number of features while preserving the most relevant information.\n", + "\n", + "\n", + "Wireless channel dataset generation and preprocessing are crucial steps in the development of machine learning models, algorithms, and systems for wireless communication. A well-prepared dataset ensures the accuracy, reliability, and generalizability of the models and systems built upon it.\n", + "\n", + "\n", + "## Import Python Libraries\n", + "\n", + "### Import Basic Python LIbraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7eb02cb4", + "metadata": {}, + "outputs": [], + "source": [ + "# %matplotlib widgets\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "\n", + "import os\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\n", + "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \n", + "\n", + "import numpy as np\n", + "\n", + "# from IPython.display import display, HTML\n", + "# display(HTML(\"\"))" + ] + }, + { + "cell_type": "markdown", + "id": "37306fc7", + "metadata": {}, + "source": [ + "### Import 5G Toolkit Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9934198e", + "metadata": {}, + "outputs": [], + "source": [ + "from csiNet import CSINet\n", + "\n", + "import sys\n", + "sys.path.append(\"../../\")\n", + "\n", + "from toolkit5G.PhysicalChannels.PDSCH import ComputeTransportBlockSize\n", + "from toolkit5G.PhysicalChannels import PDSCHLowerPhy, PDSCHUpperPhy, PDSCHDecoderLowerPhy, PDSCHDecoderUpperPhy\n", + "from toolkit5G.ChannelModels import AntennaArrays, SimulationLayout, ParameterGenerator, ChannelGenerator\n", + "from toolkit5G.Configurations import PDSCHLowerPhyConfiguration, PDSCHUpperPhyConfiguration\n", + "from toolkit5G.ChannelProcessing import AddNoise, ApplyChannel\n", + "from toolkit5G.SymbolMapping import Mapper, Demapper" + ] + }, + { + "cell_type": "markdown", + "id": "6a234109", + "metadata": {}, + "source": [ + "## Simulation Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c42e12d3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "************ Simulation Parameters *************\n", + "\n", + " numBatches: 10000\n", + " numRB: 85\n", + " fft Size: 1024\n", + " numBSs: 1\n", + " numUEs: 10000\n", + " scs: 30000\n", + " slotNumber: 9\n", + " terrain: CDL-A\n", + "Tx Ant Struture: [ 1 1 32 1 1]\n", + "Rx Ant Struture: [1 1 1 1 1]\n", + "\n", + "********************************************\n" + ] + } + ], + "source": [ + "# Carrier Frequency\n", + "carrierFrequency = 3.6*10**9 \n", + "delaySpread = 100*(10**-9)\n", + "numBatches = 10000 # Number of batches considered for simulation\n", + "scs = 30*10**3 # Subcarrier Spacing for simulation\n", + "numBSs = 1 # Number of BSs considered for simulation\n", + "# Number of UEs considered for simulation\n", + "numUEs = numBatches # For now we are assuming that the numbatches are captured via numUEs\n", + "numRB = 85 # Number of Resource mapping considered for simulation | # 1 RB = 12 subcarrier\n", + "slotNumber = int(np.random.randint(0,2**(scs/15000)*10)) # Index of the slot considered for simulation\n", + "terrain = \"CDL-A\" # Terrain\n", + "txAntStruture = np.array([1,1,32,1,1]) # Tx Antenna Structure\n", + "rxAntStruture = np.array([1,1,1,1,1]) # Tx Antenna Structure\n", + "Nfft = 1024 # FFTSize\n", + "\n", + "print(\"************ Simulation Parameters *************\")\n", + "print()\n", + "print(\" numBatches: \"+str(numBatches))\n", + "print(\" numRB: \"+str(numRB))\n", + "print(\" fft Size: \"+str(Nfft))\n", + "print(\" numBSs: \"+str(numBSs))\n", + "print(\" numUEs: \"+str(numUEs))\n", + "print(\" scs: \"+str(scs))\n", + "print(\" slotNumber: \"+str(slotNumber))\n", + "print(\" terrain: \"+str(terrain))\n", + "print(\"Tx Ant Struture: \"+str(txAntStruture))\n", + "print(\"Rx Ant Struture: \"+str(rxAntStruture))\n", + "print()\n", + "print(\"********************************************\")" + ] + }, + { + "cell_type": "markdown", + "id": "4116f8ad", + "metadata": {}, + "source": [ + "## Set Channel Parameters and Generate Common Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8e7ba9fc", + "metadata": {}, + "outputs": [], + "source": [ + "# Antenna Array at UE side\n", + "# assuming antenna element type to be \"OMNI\"\n", + "# with 2 panel and 2 single polarized antenna element per panel.\n", + "ueAntArray = AntennaArrays(antennaType = \"OMNI\", centerFrequency = carrierFrequency, \n", + " arrayStructure = rxAntStruture)\n", + "ueAntArray()\n", + "\n", + "# # Radiation Pattern of Rx antenna element \n", + "# ueAntArray.displayAntennaRadiationPattern()\n", + "\n", + "\n", + "# Antenna Array at BS side\n", + "# assuming antenna element type to be \"3GPP_38.901\", a parabolic antenna \n", + "# with 4 panel and 4 single polarized antenna element per panel.\n", + "bsAntArray = AntennaArrays(antennaType = \"3GPP_38.901\", centerFrequency = carrierFrequency,\n", + " arrayStructure = txAntStruture)\n", + "bsAntArray()\n", + " \n", + "# # Radiation Pattern of Tx antenna element \n", + "# bsAntArray[0].displayAntennaRadiationPattern()\n", + "\n", + "# Layout Parameters\n", + "isd = 200 # inter site distance\n", + "minDist = 10 # min distance between each UE and BS \n", + "ueHt = 1.5 # UE height\n", + "bsHt = 25 # BS height\n", + "bslayoutType = \"Hexagonal\" # BS layout type\n", + "ueDropType = \"Hexagonal\" # UE drop type\n", + "htDist = \"equal\" # UE height distribution\n", + "ueDist = \"equal\" # UE Distribution per site\n", + "nSectorsPerSite = 1 # number of sectors per site\n", + "maxNumFloors = 1 # Max number of floors in an indoor object\n", + "minNumFloors = 1 # Min number of floors in an indoor object\n", + "heightOfRoom = 3 # height of room or ceiling in meters\n", + "indoorUEfract = 0.5 # Fraction of UEs located indoor\n", + "lengthOfIndoorObject = 3 # length of indoor object typically having rectangular geometry \n", + "widthOfIndoorObject = 3 # width of indoor object\n", + "# forceLOS = True # boolen flag if true forces every link to be in LOS state\n", + "forceLOS = False # boolen flag if true forces every link to be in LOS state\n", + "\n", + "Nt = bsAntArray.numAntennas # Number of BS Antennas\n", + "Nr = ueAntArray.numAntennas\n" + ] + }, + { + "cell_type": "markdown", + "id": "45c69959", + "metadata": {}, + "source": [ + "## Generate the Wireless Channels Databases and Preprocess it before storage.\n", + "\n", + "1. Generate OFDM Wireless Channels.\n", + "2. Preprocess the OFDM Channel\n", + "3. Store the preprocessed wireless channels\n", + "\n", + "``Important``: Make sure you have **Databases** directory/folder where datasets will be stored." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f421b76", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Number of BSs: 1\n", + " Shape of Channel: (10000, 32, 1024)\n", + "*****************************************************\n", + "\n", + " Number of BSs: 1\n", + " Shape of Channel: (10000, 32, 1024)\n", + "*****************************************************\n", + "\n", + " Number of BSs: 1\n", + " Shape of Channel: (10000, 32, 1024)\n", + "*****************************************************\n", + "\n", + " Number of BSs: 1\n", + " Shape of Channel: (10000, 32, 1024)\n", + "*****************************************************\n", + "\n" + ] + } + ], + "source": [ + "MonteCarloIterations = 10\n", + "\n", + "numTaps = 32\n", + "codewordSize = 512\n", + "\n", + "for mci in range(4,MonteCarloIterations):\n", + " # simulation layout object \n", + " simLayoutObj = SimulationLayout(numOfBS = numBSs,\n", + " numOfUE = numUEs,\n", + " heightOfBS = bsHt,\n", + " heightOfUE = ueHt, \n", + " ISD = isd,\n", + " layoutType = bslayoutType,\n", + " ueDropMethod = ueDropType, \n", + " UEdistibution = ueDist,\n", + " UEheightDistribution = htDist,\n", + " numOfSectorsPerSite = nSectorsPerSite,\n", + " ueRoute = None)\n", + "\n", + " simLayoutObj(terrain = terrain, \n", + " carrierFreq = carrierFrequency, \n", + " ueAntennaArray = ueAntArray,\n", + " bsAntennaArray = bsAntArray,\n", + " indoorUEfraction = indoorUEfract,\n", + " lengthOfIndoorObject = lengthOfIndoorObject,\n", + " widthOfIndoorObject = widthOfIndoorObject,\n", + " forceLOS = forceLOS)\n", + "\n", + " # displaying the topology of simulation layout\n", + "# fig, ax = simLayoutObj.display2DTopology()\n", + "\n", + " paramGen = simLayoutObj.getParameterGenerator(delaySpread = delaySpread)\n", + "\n", + " # paramGen.displayClusters((0,0,0), rayIndex = 0)\n", + " channel = paramGen.getChannel()\n", + " \n", + " # Generate OFDM Channel\n", + " Hf = channel.ofdm(scs, Nfft, normalizeChannel = True)[0,0,0,...,0,:].transpose(0,2,1)\n", + "\n", + " # Preprocess the Frequency Domain channel\n", + " csinet = CSINet()\n", + " model = csinet(Nt, numTaps, codewordSize)\n", + " Hprep = csinet.preprocess(Hf)\n", + " \n", + " np.savez(\"Databases/PreprocessedChannel-dB-\"+str(mci)+\".npz\",\n", + " Hprep = Hprep, Nfft = Nfft, Nt = Nt, codewordSize = codewordSize, numTaps = numTaps,\n", + " carrierFrequency = carrierFrequency, terrain = terrain, delaySpread = delaySpread, \n", + " isd = isd, txAntStruture = txAntStruture, rxAntStruture = rxAntStruture)\n", + "\n", + " print(\" Number of BSs: \"+str(numBSs))\n", + " print(\" Shape of Channel: \"+str(Hf.shape))\n", + " print(\"*****************************************************\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "8f4dcdbc", + "metadata": {}, + "source": [ + "## Aggregate all the Datasets into a single Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97ab88bc", + "metadata": {}, + "outputs": [], + "source": [ + "filename = \"Databases/PreprocessedChannel-dB-\"+str(0)+\".npz\"\n", + "db = np.load(filename)\n", + "Hp = db[\"Hprep\"]\n", + "for mci in range(1,10):\n", + " filename = \"Databases/PreprocessedChannel-dB-\"+str(mci)+\".npz\"\n", + " db = np.load(filename)\n", + " Hp = np.concatenate([Hp, db[\"Hprep\"]], axis=0)\n", + " \n", + "np.savez(\"Databases/PreprocessedChannel-dB.npz\", Hp = Hp, Nfft = 1024, Nt = 32)" + ] + }, + { + "cell_type": "markdown", + "id": "24ee3125", + "metadata": {}, + "source": [ + "## Display Sparsity of Wireless Channels" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cd99db8a", + "metadata": {}, + "outputs": [], + "source": [ + "numChannels = 10\n", + "numBatches = Hp.shape[0]\n", + "idx = np.random.choice(np.arange(numBatches), size=numChannels, replace = False)\n", + "\n", + "fig, ax = plt.subplots(2,10, figsize = (17.5, 5))\n", + "\n", + "print(idx)\n", + "for n in range(numChannels):\n", + " ax[0,n].imshow(np.abs(Hp[idx[n],0])**2 + np.abs(Hp[idx[n],1])**2, cmap = \"Greys\", aspect = \"auto\")\n", + "# ax[1,n].imshow(np.abs( Hrec[idx[n],0])**2 + np.abs( Hrec[idx[n],1])**2, cmap = \"Greys\", aspect = \"auto\")\n", + " \n", + "plt.show()" + ] + } + ], + "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" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/api/Projects/Project3/project3.html b/api/Projects/Project3/project3.html index 5985d987..8f02b14b 100644 --- a/api/Projects/Project3/project3.html +++ b/api/Projects/Project3/project3.html @@ -4,7 +4,7 @@ - Channel Interpolation based on SRCNN and DnCNN — 5G Toolkit R24a documentation + Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks — 5G Toolkit R24a documentation @@ -26,7 +26,7 @@ - + @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • @@ -1951,7 +2001,7 @@
    • - +
    @@ -1960,9 +2010,60 @@
    -
    -

    Channel Interpolation based on SRCNN and DnCNN

    -

    Project-3

    +
    +

    Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks

    +
    @@ -1970,7 +2071,7 @@

    Channel Interpolation based on SRCNN and DnCNN - +


    diff --git a/api/Projects/Project3/trainCSINet.html b/api/Projects/Project3/trainCSINet.html new file mode 100644 index 00000000..0568d62f --- /dev/null +++ b/api/Projects/Project3/trainCSINet.html @@ -0,0 +1,3058 @@ + + + + + + + Training the CSINet — 5G Toolkit R24a documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + + +
    +

    Training the CSINet

    +
    +

    Import Libraries

    +
    +

    Import Python Libraries

    +
    +
    [ ]:
    +
    +
    +
    # %matplotlib widget
    +import matplotlib.pyplot as plt
    +import matplotlib as mpl
    +
    +import os
    +os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
    +os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
    +
    +import numpy as np
    +
    +# from IPython.display import display, HTML
    +# display(HTML("<style>.container { width:80% !important; }</style>"))
    +
    +
    +
    +
    +
    +
    +

    Important AI-ML Libraries

    +
    +
    [3]:
    +
    +
    +
    import tensorflow as tf
    +import numpy      as np
    +
    +from keras.layers    import Input, Dense, BatchNormalization, Reshape, Conv2D, add, LeakyReLU
    +from keras.models    import Model, load_model
    +from keras.callbacks import TensorBoard, Callback
    +
    +from csiNet          import CSINet
    +
    +
    +
    +
    +
    +

    Load Datasets

    +
    +
    [4]:
    +
    +
    +
    db = np.load("Databases/PreprocessedChannel-dB.npz")
    +
    +
    +
    +
    +
    +

    Set Training Parameters

    +
    +
    [5]:
    +
    +
    +
    numTaps       = 32
    +codewordSize  = 512
    +Hp            = db["Hp"]
    +Nt            = db["Nt"]
    +numBatches    = Hp.shape[0]
    +
    +
    +print("**************************")
    +print("Number of  subcarriers: "+str(numTaps))
    +print("Number of encoded bits: "+str(codewordSize))
    +print("Number of     antennas: "+str(Nt))
    +print("Number of      batches: "+str(numBatches))
    +print("**************************")
    +
    +
    +
    +
    +
    +
    +
    +
    +**************************
    +Number of  subcarriers: 32
    +Number of encoded bits: 512
    +Number of     antennas: 32
    +Number of      batches: 110000
    +**************************
    +
    +
    +
    +
    [5]:
    +
    +
    +
    csinet = CSINet()
    +model  = csinet(Nt, numSubcarrier, codewordSize)
    +
    +i      = int(0.9*numBatches)
    +k      = int(numBatches)
    +
    +Htrain = Hp[0:i]
    +Hval   = Hp[i:k]
    +# Htest  = Hprep[k:numBatches]
    +
    +
    +
    +
    +
    [6]:
    +
    +
    +
    # model = load_model('models/CSINet.keras')
    +# csinet.model = model
    +
    +
    +
    +
    +
    [ ]:
    +
    +
    +
    csinet.fit(Htrain, epochs=1000, batch_size=5000, hval = Hval)
    +
    +
    +
    +
    +
    +
    +
    +
    +Epoch 1/1000
    +20/20 [==============================] - 71s 4s/step - loss: 1.7742e-04 - val_loss: 0.0043
    +Epoch 2/1000
    +20/20 [==============================] - 71s 4s/step - loss: 1.7259e-04 - val_loss: 0.0037
    +Epoch 3/1000
    +20/20 [==============================] - 70s 4s/step - loss: 1.6864e-04 - val_loss: 0.0029
    +Epoch 4/1000
    +20/20 [==============================] - 70s 4s/step - loss: 1.6530e-04 - val_loss: 0.0022
    +Epoch 5/1000
    +20/20 [==============================] - 71s 4s/step - loss: 1.6243e-04 - val_loss: 0.0017
    +Epoch 6/1000
    +20/20 [==============================] - 71s 4s/step - loss: 1.6001e-04 - val_loss: 0.0015
    +Epoch 7/1000
    +20/20 [==============================] - 72s 4s/step - loss: 1.5802e-04 - val_loss: 0.0013
    +Epoch 8/1000
    +20/20 [==============================] - 72s 4s/step - loss: 1.5634e-04 - val_loss: 0.0011
    +Epoch 9/1000
    +20/20 [==============================] - 72s 4s/step - loss: 1.5492e-04 - val_loss: 8.7465e-04
    +Epoch 10/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.5370e-04 - val_loss: 6.8815e-04
    +Epoch 11/1000
    +20/20 [==============================] - 72s 4s/step - loss: 1.5262e-04 - val_loss: 5.2990e-04
    +Epoch 12/1000
    +20/20 [==============================] - 72s 4s/step - loss: 1.5167e-04 - val_loss: 4.0591e-04
    +Epoch 13/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.5085e-04 - val_loss: 3.1419e-04
    +Epoch 14/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.5011e-04 - val_loss: 2.5195e-04
    +Epoch 15/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4947e-04 - val_loss: 2.1186e-04
    +Epoch 16/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4891e-04 - val_loss: 1.8665e-04
    +Epoch 17/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4841e-04 - val_loss: 1.7138e-04
    +Epoch 18/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4796e-04 - val_loss: 1.6209e-04
    +Epoch 19/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4754e-04 - val_loss: 1.5635e-04
    +Epoch 20/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4717e-04 - val_loss: 1.5279e-04
    +Epoch 21/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4683e-04 - val_loss: 1.5035e-04
    +Epoch 22/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4653e-04 - val_loss: 1.4878e-04
    +Epoch 23/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4625e-04 - val_loss: 1.4770e-04
    +Epoch 24/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4599e-04 - val_loss: 1.4683e-04
    +Epoch 25/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4575e-04 - val_loss: 1.4617e-04
    +Epoch 26/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4553e-04 - val_loss: 1.4551e-04
    +Epoch 27/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4533e-04 - val_loss: 1.4505e-04
    +Epoch 28/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4512e-04 - val_loss: 1.4463e-04
    +Epoch 29/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4493e-04 - val_loss: 1.4427e-04
    +Epoch 30/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4475e-04 - val_loss: 1.4402e-04
    +Epoch 31/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4457e-04 - val_loss: 1.4354e-04
    +Epoch 32/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4440e-04 - val_loss: 1.4335e-04
    +Epoch 33/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4423e-04 - val_loss: 1.4307e-04
    +Epoch 34/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4407e-04 - val_loss: 1.4283e-04
    +Epoch 35/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4391e-04 - val_loss: 1.4230e-04
    +Epoch 36/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4376e-04 - val_loss: 1.4228e-04
    +Epoch 37/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4361e-04 - val_loss: 1.4194e-04
    +Epoch 38/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4346e-04 - val_loss: 1.4173e-04
    +Epoch 39/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4332e-04 - val_loss: 1.4149e-04
    +Epoch 40/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4318e-04 - val_loss: 1.4133e-04
    +Epoch 41/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.4304e-04 - val_loss: 1.4106e-04
    +Epoch 42/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4289e-04 - val_loss: 1.4086e-04
    +Epoch 43/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4274e-04 - val_loss: 1.4061e-04
    +Epoch 44/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4261e-04 - val_loss: 1.4033e-04
    +Epoch 45/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4249e-04 - val_loss: 1.4021e-04
    +Epoch 46/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4235e-04 - val_loss: 1.4001e-04
    +Epoch 47/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4221e-04 - val_loss: 1.3973e-04
    +Epoch 48/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4211e-04 - val_loss: 1.3967e-04
    +Epoch 49/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4198e-04 - val_loss: 1.3946e-04
    +Epoch 50/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4185e-04 - val_loss: 1.3920e-04
    +Epoch 51/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4172e-04 - val_loss: 1.3910e-04
    +Epoch 52/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4156e-04 - val_loss: 1.3889e-04
    +Epoch 53/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4144e-04 - val_loss: 1.3886e-04
    +Epoch 54/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4130e-04 - val_loss: 1.3855e-04
    +Epoch 55/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4118e-04 - val_loss: 1.3846e-04
    +Epoch 56/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4106e-04 - val_loss: 1.3834e-04
    +Epoch 57/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4092e-04 - val_loss: 1.3812e-04
    +Epoch 58/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4080e-04 - val_loss: 1.3790e-04
    +Epoch 59/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4067e-04 - val_loss: 1.3776e-04
    +Epoch 60/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4056e-04 - val_loss: 1.3763e-04
    +Epoch 61/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4044e-04 - val_loss: 1.3736e-04
    +Epoch 62/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4029e-04 - val_loss: 1.3737e-04
    +Epoch 63/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4013e-04 - val_loss: 1.3721e-04
    +Epoch 64/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4004e-04 - val_loss: 1.3699e-04
    +Epoch 65/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3984e-04 - val_loss: 1.3682e-04
    +Epoch 66/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3969e-04 - val_loss: 1.3674e-04
    +Epoch 67/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3956e-04 - val_loss: 1.3660e-04
    +Epoch 68/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3942e-04 - val_loss: 1.3652e-04
    +Epoch 69/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.3928e-04 - val_loss: 1.3637e-04
    +Epoch 70/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3915e-04 - val_loss: 1.3635e-04
    +Epoch 71/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3897e-04 - val_loss: 1.3625e-04
    +Epoch 72/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3884e-04 - val_loss: 1.3625e-04
    +Epoch 73/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3883e-04 - val_loss: 1.3603e-04
    +Epoch 74/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3857e-04 - val_loss: 1.3597e-04
    +Epoch 75/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3841e-04 - val_loss: 1.3604e-04
    +Epoch 76/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3821e-04 - val_loss: 1.3579e-04
    +Epoch 77/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3795e-04 - val_loss: 1.3555e-04
    +Epoch 78/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3775e-04 - val_loss: 1.3563e-04
    +Epoch 79/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3756e-04 - val_loss: 1.3545e-04
    +Epoch 80/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3738e-04 - val_loss: 1.3547e-04
    +Epoch 81/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3722e-04 - val_loss: 1.3548e-04
    +Epoch 82/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3710e-04 - val_loss: 1.3555e-04
    +Epoch 83/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3696e-04 - val_loss: 1.3547e-04
    +Epoch 84/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3697e-04 - val_loss: 1.3563e-04
    +Epoch 85/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3651e-04 - val_loss: 1.3530e-04
    +Epoch 86/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3612e-04 - val_loss: 1.3516e-04
    +Epoch 87/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3613e-04 - val_loss: 1.3505e-04
    +Epoch 88/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.3574e-04 - val_loss: 1.3499e-04
    +Epoch 89/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3578e-04 - val_loss: 1.3540e-04
    +Epoch 90/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3549e-04 - val_loss: 1.3534e-04
    +Epoch 91/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3534e-04 - val_loss: 1.3487e-04
    +Epoch 92/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3491e-04 - val_loss: 1.3490e-04
    +Epoch 93/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3475e-04 - val_loss: 1.3490e-04
    +Epoch 94/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3442e-04 - val_loss: 1.3471e-04
    +Epoch 95/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3440e-04 - val_loss: 1.3496e-04
    +Epoch 96/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3414e-04 - val_loss: 1.3508e-04
    +Epoch 97/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3431e-04 - val_loss: 1.3493e-04
    +Epoch 98/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3403e-04 - val_loss: 1.3515e-04
    +Epoch 99/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3323e-04 - val_loss: 1.3469e-04
    +Epoch 100/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3297e-04 - val_loss: 1.3585e-04
    +Epoch 101/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3307e-04 - val_loss: 1.3581e-04
    +Epoch 102/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3270e-04 - val_loss: 1.3471e-04
    +Epoch 103/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3247e-04 - val_loss: 1.3364e-04
    +Epoch 104/1000
    +20/20 [==============================] - 75s 4s/step - loss: 2.7186e-04 - val_loss: 5.9999e-04
    +Epoch 105/1000
    +20/20 [==============================] - 75s 4s/step - loss: 2.4725e-04 - val_loss: 8.0587e-04
    +Epoch 106/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4827e-04 - val_loss: 6.0315e-04
    +Epoch 107/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3956e-04 - val_loss: 3.6259e-04
    +Epoch 108/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3717e-04 - val_loss: 2.5379e-04
    +Epoch 109/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3604e-04 - val_loss: 2.0073e-04
    +Epoch 110/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3526e-04 - val_loss: 1.7553e-04
    +Epoch 111/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3462e-04 - val_loss: 1.6115e-04
    +Epoch 112/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3404e-04 - val_loss: 1.5349e-04
    +Epoch 113/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3351e-04 - val_loss: 1.4661e-04
    +Epoch 114/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3302e-04 - val_loss: 1.4291e-04
    +Epoch 115/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3255e-04 - val_loss: 1.4210e-04
    +Epoch 116/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3211e-04 - val_loss: 1.4070e-04
    +Epoch 117/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3170e-04 - val_loss: 1.3908e-04
    +Epoch 118/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3131e-04 - val_loss: 1.3821e-04
    +Epoch 119/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3093e-04 - val_loss: 1.3706e-04
    +Epoch 120/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3058e-04 - val_loss: 1.3630e-04
    +Epoch 121/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3024e-04 - val_loss: 1.3509e-04
    +Epoch 122/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2990e-04 - val_loss: 1.3495e-04
    +Epoch 123/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2958e-04 - val_loss: 1.3444e-04
    +Epoch 124/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2927e-04 - val_loss: 1.3385e-04
    +Epoch 125/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2897e-04 - val_loss: 1.3401e-04
    +Epoch 126/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2869e-04 - val_loss: 1.3360e-04
    +Epoch 127/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2841e-04 - val_loss: 1.3312e-04
    +Epoch 128/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2815e-04 - val_loss: 1.3210e-04
    +Epoch 129/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2788e-04 - val_loss: 1.3211e-04
    +Epoch 130/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2762e-04 - val_loss: 1.3188e-04
    +Epoch 131/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2736e-04 - val_loss: 1.3199e-04
    +Epoch 132/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2712e-04 - val_loss: 1.3122e-04
    +Epoch 133/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2690e-04 - val_loss: 1.3178e-04
    +Epoch 134/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2663e-04 - val_loss: 1.3107e-04
    +Epoch 135/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2638e-04 - val_loss: 1.3061e-04
    +Epoch 136/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2614e-04 - val_loss: 1.3039e-04
    +Epoch 137/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2590e-04 - val_loss: 1.3072e-04
    +Epoch 138/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2567e-04 - val_loss: 1.2932e-04
    +Epoch 139/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2542e-04 - val_loss: 1.3050e-04
    +Epoch 140/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2519e-04 - val_loss: 1.2852e-04
    +Epoch 141/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2502e-04 - val_loss: 1.2818e-04
    +Epoch 142/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2473e-04 - val_loss: 1.2908e-04
    +Epoch 143/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2453e-04 - val_loss: 1.3138e-04
    +Epoch 144/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2444e-04 - val_loss: 1.2780e-04
    +Epoch 145/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2419e-04 - val_loss: 1.2681e-04
    +Epoch 146/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2402e-04 - val_loss: 1.2615e-04
    +Epoch 147/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2369e-04 - val_loss: 1.2638e-04
    +Epoch 148/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2352e-04 - val_loss: 1.2830e-04
    +Epoch 149/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2314e-04 - val_loss: 1.2605e-04
    +Epoch 150/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2286e-04 - val_loss: 1.2743e-04
    +Epoch 151/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2271e-04 - val_loss: 1.2598e-04
    +Epoch 152/1000
    +20/20 [==============================] - 74s 4s/step - loss: 0.0011 - val_loss: 0.0030
    +Epoch 153/1000
    +20/20 [==============================] - 74s 4s/step - loss: 8.0737e-04 - val_loss: 7.5406e-04
    +Epoch 154/1000
    +20/20 [==============================] - 74s 4s/step - loss: 2.2217e-04 - val_loss: 4.4022e-04
    +Epoch 155/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.6454e-04 - val_loss: 2.8927e-04
    +Epoch 156/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.5252e-04 - val_loss: 2.2517e-04
    +Epoch 157/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4766e-04 - val_loss: 1.9435e-04
    +Epoch 158/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4478e-04 - val_loss: 1.7687e-04
    +Epoch 159/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4276e-04 - val_loss: 1.6398e-04
    +Epoch 160/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4121e-04 - val_loss: 1.5581e-04
    +Epoch 161/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.4001e-04 - val_loss: 1.5050e-04
    +Epoch 162/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3907e-04 - val_loss: 1.4714e-04
    +Epoch 163/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3830e-04 - val_loss: 1.4454e-04
    +Epoch 164/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3767e-04 - val_loss: 1.4247e-04
    +Epoch 165/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3711e-04 - val_loss: 1.4100e-04
    +Epoch 166/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3661e-04 - val_loss: 1.3959e-04
    +Epoch 167/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3615e-04 - val_loss: 1.3854e-04
    +Epoch 168/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.3572e-04 - val_loss: 1.3760e-04
    +Epoch 169/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3533e-04 - val_loss: 1.3684e-04
    +Epoch 170/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3495e-04 - val_loss: 1.3616e-04
    +Epoch 171/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3460e-04 - val_loss: 1.3561e-04
    +Epoch 172/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3425e-04 - val_loss: 1.3502e-04
    +Epoch 173/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3392e-04 - val_loss: 1.3455e-04
    +Epoch 174/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3358e-04 - val_loss: 1.3413e-04
    +Epoch 175/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3325e-04 - val_loss: 1.3369e-04
    +Epoch 176/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3293e-04 - val_loss: 1.3329e-04
    +Epoch 177/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3260e-04 - val_loss: 1.3295e-04
    +Epoch 178/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3227e-04 - val_loss: 1.3262e-04
    +Epoch 179/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3195e-04 - val_loss: 1.3225e-04
    +Epoch 180/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3163e-04 - val_loss: 1.3183e-04
    +Epoch 181/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3131e-04 - val_loss: 1.3149e-04
    +Epoch 182/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3098e-04 - val_loss: 1.3120e-04
    +Epoch 183/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3064e-04 - val_loss: 1.3091e-04
    +Epoch 184/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3031e-04 - val_loss: 1.3061e-04
    +Epoch 185/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2998e-04 - val_loss: 1.3030e-04
    +Epoch 186/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2967e-04 - val_loss: 1.2996e-04
    +Epoch 187/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2935e-04 - val_loss: 1.2962e-04
    +Epoch 188/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2905e-04 - val_loss: 1.2936e-04
    +Epoch 189/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2875e-04 - val_loss: 1.2912e-04
    +Epoch 190/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2843e-04 - val_loss: 1.2879e-04
    +Epoch 191/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2811e-04 - val_loss: 1.2853e-04
    +Epoch 192/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2781e-04 - val_loss: 1.2833e-04
    +Epoch 193/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2751e-04 - val_loss: 1.2804e-04
    +Epoch 194/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2720e-04 - val_loss: 1.2780e-04
    +Epoch 195/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2690e-04 - val_loss: 1.2748e-04
    +Epoch 196/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2660e-04 - val_loss: 1.2726e-04
    +Epoch 197/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2631e-04 - val_loss: 1.2693e-04
    +Epoch 198/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2602e-04 - val_loss: 1.2667e-04
    +Epoch 199/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2573e-04 - val_loss: 1.2636e-04
    +Epoch 200/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2544e-04 - val_loss: 1.2612e-04
    +Epoch 201/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2515e-04 - val_loss: 1.2579e-04
    +Epoch 202/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2487e-04 - val_loss: 1.2556e-04
    +Epoch 203/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2458e-04 - val_loss: 1.2523e-04
    +Epoch 204/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2428e-04 - val_loss: 1.2499e-04
    +Epoch 205/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2400e-04 - val_loss: 1.2467e-04
    +Epoch 206/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2372e-04 - val_loss: 1.2451e-04
    +Epoch 207/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2344e-04 - val_loss: 1.2414e-04
    +Epoch 208/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2316e-04 - val_loss: 1.2387e-04
    +Epoch 209/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2288e-04 - val_loss: 1.2359e-04
    +Epoch 210/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2261e-04 - val_loss: 1.2337e-04
    +Epoch 211/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2236e-04 - val_loss: 1.2307e-04
    +Epoch 212/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2208e-04 - val_loss: 1.2280e-04
    +Epoch 213/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2182e-04 - val_loss: 1.2255e-04
    +Epoch 214/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.2157e-04 - val_loss: 1.2229e-04
    +Epoch 215/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2131e-04 - val_loss: 1.2206e-04
    +Epoch 216/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2107e-04 - val_loss: 1.2184e-04
    +Epoch 217/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2080e-04 - val_loss: 1.2160e-04
    +Epoch 218/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2056e-04 - val_loss: 1.2135e-04
    +Epoch 219/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2031e-04 - val_loss: 1.2108e-04
    +Epoch 220/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2006e-04 - val_loss: 1.2086e-04
    +Epoch 221/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1980e-04 - val_loss: 1.2061e-04
    +Epoch 222/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1956e-04 - val_loss: 1.2034e-04
    +Epoch 223/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1932e-04 - val_loss: 1.2015e-04
    +Epoch 224/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1907e-04 - val_loss: 1.1992e-04
    +Epoch 225/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1883e-04 - val_loss: 1.1964e-04
    +Epoch 226/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1859e-04 - val_loss: 1.1946e-04
    +Epoch 227/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1836e-04 - val_loss: 1.1924e-04
    +Epoch 228/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1812e-04 - val_loss: 1.1901e-04
    +Epoch 229/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1788e-04 - val_loss: 1.1873e-04
    +Epoch 230/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1762e-04 - val_loss: 1.1849e-04
    +Epoch 231/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1739e-04 - val_loss: 1.1824e-04
    +Epoch 232/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1716e-04 - val_loss: 1.1801e-04
    +Epoch 233/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1693e-04 - val_loss: 1.1782e-04
    +Epoch 234/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1669e-04 - val_loss: 1.1772e-04
    +Epoch 235/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1644e-04 - val_loss: 1.1742e-04
    +Epoch 236/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1620e-04 - val_loss: 1.1717e-04
    +Epoch 237/1000
    +20/20 [==============================] - 73s 4s/step - loss: 1.1600e-04 - val_loss: 1.1697e-04
    +Epoch 238/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1574e-04 - val_loss: 1.1671e-04
    +Epoch 239/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1550e-04 - val_loss: 1.1646e-04
    +Epoch 240/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1526e-04 - val_loss: 1.1627e-04
    +Epoch 241/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1501e-04 - val_loss: 1.1614e-04
    +Epoch 242/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1479e-04 - val_loss: 1.1579e-04
    +Epoch 243/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1453e-04 - val_loss: 1.1561e-04
    +Epoch 244/1000
    +20/20 [==============================] - 76s 4s/step - loss: 1.1430e-04 - val_loss: 1.1536e-04
    +Epoch 245/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1407e-04 - val_loss: 1.1516e-04
    +Epoch 246/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1384e-04 - val_loss: 1.1494e-04
    +Epoch 247/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1361e-04 - val_loss: 1.1468e-04
    +Epoch 248/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1338e-04 - val_loss: 1.1452e-04
    +Epoch 249/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1312e-04 - val_loss: 1.1422e-04
    +Epoch 250/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1291e-04 - val_loss: 1.1400e-04
    +Epoch 251/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1267e-04 - val_loss: 1.1378e-04
    +Epoch 252/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1242e-04 - val_loss: 1.1359e-04
    +Epoch 253/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1221e-04 - val_loss: 1.1342e-04
    +Epoch 254/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1198e-04 - val_loss: 1.1317e-04
    +Epoch 255/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1179e-04 - val_loss: 1.1296e-04
    +Epoch 256/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1158e-04 - val_loss: 1.1277e-04
    +Epoch 257/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1134e-04 - val_loss: 1.1292e-04
    +Epoch 258/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1103e-04 - val_loss: 1.1229e-04
    +Epoch 259/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1094e-04 - val_loss: 1.1236e-04
    +Epoch 260/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1069e-04 - val_loss: 1.1202e-04
    +Epoch 261/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1052e-04 - val_loss: 1.1211e-04
    +Epoch 262/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1020e-04 - val_loss: 1.1182e-04
    +Epoch 263/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0999e-04 - val_loss: 1.1120e-04
    +Epoch 264/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0988e-04 - val_loss: 1.1105e-04
    +Epoch 265/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0971e-04 - val_loss: 1.1073e-04
    +Epoch 266/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0925e-04 - val_loss: 1.1168e-04
    +Epoch 267/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0918e-04 - val_loss: 1.1021e-04
    +Epoch 268/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0899e-04 - val_loss: 1.1207e-04
    +Epoch 269/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0908e-04 - val_loss: 1.1036e-04
    +Epoch 270/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0850e-04 - val_loss: 1.1063e-04
    +Epoch 271/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0808e-04 - val_loss: 1.0979e-04
    +Epoch 272/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0885e-04 - val_loss: 1.1182e-04
    +Epoch 273/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0896e-04 - val_loss: 1.0897e-04
    +Epoch 274/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0755e-04 - val_loss: 1.0890e-04
    +Epoch 275/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0726e-04 - val_loss: 1.0942e-04
    +Epoch 276/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0698e-04 - val_loss: 1.0837e-04
    +Epoch 277/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0682e-04 - val_loss: 1.1710e-04
    +Epoch 278/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1099e-04 - val_loss: 1.0862e-04
    +Epoch 279/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0679e-04 - val_loss: 1.0775e-04
    +Epoch 280/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0615e-04 - val_loss: 1.0787e-04
    +Epoch 281/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0580e-04 - val_loss: 1.0705e-04
    +Epoch 282/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0551e-04 - val_loss: 1.0705e-04
    +Epoch 283/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0542e-04 - val_loss: 1.0673e-04
    +Epoch 284/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0500e-04 - val_loss: 1.0644e-04
    +Epoch 285/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0506e-04 - val_loss: 1.0654e-04
    +Epoch 286/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0493e-04 - val_loss: 1.0618e-04
    +Epoch 287/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0476e-04 - val_loss: 1.0601e-04
    +Epoch 288/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0445e-04 - val_loss: 1.0588e-04
    +Epoch 289/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0439e-04 - val_loss: 1.1388e-04
    +Epoch 290/1000
    +20/20 [==============================] - 74s 4s/step - loss: 0.0033 - val_loss: 0.0015
    +Epoch 291/1000
    +20/20 [==============================] - 74s 4s/step - loss: 6.8803e-04 - val_loss: 4.5921e-04
    +Epoch 292/1000
    +20/20 [==============================] - 74s 4s/step - loss: 2.5436e-04 - val_loss: 3.2132e-04
    +Epoch 293/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.8278e-04 - val_loss: 2.6234e-04
    +Epoch 294/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.6361e-04 - val_loss: 2.2145e-04
    +Epoch 295/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.5566e-04 - val_loss: 1.9489e-04
    +Epoch 296/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.5087e-04 - val_loss: 1.7818e-04
    +Epoch 297/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.4780e-04 - val_loss: 1.6677e-04
    +Epoch 298/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4506e-04 - val_loss: 1.5912e-04
    +Epoch 299/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.4321e-04 - val_loss: 1.5355e-04
    +Epoch 300/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4175e-04 - val_loss: 1.4977e-04
    +Epoch 301/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.4046e-04 - val_loss: 1.4725e-04
    +Epoch 302/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3919e-04 - val_loss: 1.4475e-04
    +Epoch 303/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3819e-04 - val_loss: 1.4305e-04
    +Epoch 304/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3741e-04 - val_loss: 1.4133e-04
    +Epoch 305/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3681e-04 - val_loss: 1.4008e-04
    +Epoch 306/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3607e-04 - val_loss: 1.3953e-04
    +Epoch 307/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3530e-04 - val_loss: 1.3845e-04
    +Epoch 308/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3476e-04 - val_loss: 1.3803e-04
    +Epoch 309/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3423e-04 - val_loss: 1.3714e-04
    +Epoch 310/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3372e-04 - val_loss: 1.3652e-04
    +Epoch 311/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.3321e-04 - val_loss: 1.3604e-04
    +Epoch 312/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3306e-04 - val_loss: 1.3567e-04
    +Epoch 313/1000
    +20/20 [==============================] - 76s 4s/step - loss: 1.3240e-04 - val_loss: 1.3451e-04
    +Epoch 314/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3208e-04 - val_loss: 1.3424e-04
    +Epoch 315/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3160e-04 - val_loss: 1.3382e-04
    +Epoch 316/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3120e-04 - val_loss: 1.3358e-04
    +Epoch 317/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3088e-04 - val_loss: 1.3309e-04
    +Epoch 318/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3050e-04 - val_loss: 1.3270e-04
    +Epoch 319/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.3017e-04 - val_loss: 1.3238e-04
    +Epoch 320/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2989e-04 - val_loss: 1.3204e-04
    +Epoch 321/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2962e-04 - val_loss: 1.3130e-04
    +Epoch 322/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2926e-04 - val_loss: 1.3111e-04
    +Epoch 323/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2894e-04 - val_loss: 1.3055e-04
    +Epoch 324/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2852e-04 - val_loss: 1.3025e-04
    +Epoch 325/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2838e-04 - val_loss: 1.2969e-04
    +Epoch 326/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2781e-04 - val_loss: 1.2949e-04
    +Epoch 327/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2745e-04 - val_loss: 1.2937e-04
    +Epoch 328/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2715e-04 - val_loss: 1.2914e-04
    +Epoch 329/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2690e-04 - val_loss: 1.2808e-04
    +Epoch 330/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2680e-04 - val_loss: 1.2834e-04
    +Epoch 331/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2634e-04 - val_loss: 1.2769e-04
    +Epoch 332/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2582e-04 - val_loss: 1.2695e-04
    +Epoch 333/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2542e-04 - val_loss: 1.2670e-04
    +Epoch 334/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2497e-04 - val_loss: 1.2688e-04
    +Epoch 335/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2454e-04 - val_loss: 1.2615e-04
    +Epoch 336/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2421e-04 - val_loss: 1.2562e-04
    +Epoch 337/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2386e-04 - val_loss: 1.2582e-04
    +Epoch 338/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2343e-04 - val_loss: 1.2498e-04
    +Epoch 339/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2306e-04 - val_loss: 1.2484e-04
    +Epoch 340/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2273e-04 - val_loss: 1.2452e-04
    +Epoch 341/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2228e-04 - val_loss: 1.2410e-04
    +Epoch 342/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2190e-04 - val_loss: 1.2347e-04
    +Epoch 343/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.2163e-04 - val_loss: 1.2318e-04
    +Epoch 344/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2135e-04 - val_loss: 1.2322e-04
    +Epoch 345/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2114e-04 - val_loss: 1.2283e-04
    +Epoch 346/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2067e-04 - val_loss: 1.2238e-04
    +Epoch 347/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2042e-04 - val_loss: 1.2186e-04
    +Epoch 348/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.2004e-04 - val_loss: 1.2154e-04
    +Epoch 349/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1972e-04 - val_loss: 1.2112e-04
    +Epoch 350/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1937e-04 - val_loss: 1.2095e-04
    +Epoch 351/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1906e-04 - val_loss: 1.2064e-04
    +Epoch 352/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1887e-04 - val_loss: 1.2023e-04
    +Epoch 353/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1848e-04 - val_loss: 1.1981e-04
    +Epoch 354/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1839e-04 - val_loss: 1.1967e-04
    +Epoch 355/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1819e-04 - val_loss: 1.1985e-04
    +Epoch 356/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1771e-04 - val_loss: 1.1919e-04
    +Epoch 357/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1737e-04 - val_loss: 1.1905e-04
    +Epoch 358/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1710e-04 - val_loss: 1.1872e-04
    +Epoch 359/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1681e-04 - val_loss: 1.1836e-04
    +Epoch 360/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1669e-04 - val_loss: 1.1834e-04
    +Epoch 361/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1627e-04 - val_loss: 1.1765e-04
    +Epoch 362/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1601e-04 - val_loss: 1.1751e-04
    +Epoch 363/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1577e-04 - val_loss: 1.1766e-04
    +Epoch 364/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1562e-04 - val_loss: 1.1697e-04
    +Epoch 365/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1522e-04 - val_loss: 1.1711e-04
    +Epoch 366/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.1494e-04 - val_loss: 1.1649e-04
    +Epoch 367/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1469e-04 - val_loss: 1.1652e-04
    +Epoch 368/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1453e-04 - val_loss: 1.1623e-04
    +Epoch 369/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1437e-04 - val_loss: 1.1564e-04
    +Epoch 370/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1409e-04 - val_loss: 1.1576e-04
    +Epoch 371/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1377e-04 - val_loss: 1.1534e-04
    +Epoch 372/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1357e-04 - val_loss: 1.1498e-04
    +Epoch 373/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1338e-04 - val_loss: 1.1499e-04
    +Epoch 374/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1300e-04 - val_loss: 1.1487e-04
    +Epoch 375/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1315e-04 - val_loss: 1.1486e-04
    +Epoch 376/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1264e-04 - val_loss: 1.1431e-04
    +Epoch 377/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1249e-04 - val_loss: 1.1441e-04
    +Epoch 378/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1215e-04 - val_loss: 1.1364e-04
    +Epoch 379/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1187e-04 - val_loss: 1.1359e-04
    +Epoch 380/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1176e-04 - val_loss: 1.1313e-04
    +Epoch 381/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1202e-04 - val_loss: 1.1292e-04
    +Epoch 382/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1164e-04 - val_loss: 1.1271e-04
    +Epoch 383/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1137e-04 - val_loss: 1.1249e-04
    +Epoch 384/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1119e-04 - val_loss: 1.1263e-04
    +Epoch 385/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1053e-04 - val_loss: 1.1232e-04
    +Epoch 386/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1043e-04 - val_loss: 1.1188e-04
    +Epoch 387/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.1014e-04 - val_loss: 1.1179e-04
    +Epoch 388/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0998e-04 - val_loss: 1.1144e-04
    +Epoch 389/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0969e-04 - val_loss: 1.1139e-04
    +Epoch 390/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0942e-04 - val_loss: 1.1118e-04
    +Epoch 391/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0932e-04 - val_loss: 1.1173e-04
    +Epoch 392/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0985e-04 - val_loss: 1.1075e-04
    +Epoch 393/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0881e-04 - val_loss: 1.1055e-04
    +Epoch 394/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0861e-04 - val_loss: 1.1052e-04
    +Epoch 395/1000
    +20/20 [==============================] - 74s 4s/step - loss: 1.0847e-04 - val_loss: 1.1021e-04
    +Epoch 396/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0827e-04 - val_loss: 1.0983e-04
    +Epoch 397/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0802e-04 - val_loss: 1.0977e-04
    +Epoch 398/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0783e-04 - val_loss: 1.0934e-04
    +Epoch 399/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0756e-04 - val_loss: 1.0930e-04
    +Epoch 400/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0741e-04 - val_loss: 1.0930e-04
    +Epoch 401/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0714e-04 - val_loss: 1.0883e-04
    +Epoch 402/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0708e-04 - val_loss: 1.0862e-04
    +Epoch 403/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0690e-04 - val_loss: 1.0862e-04
    +Epoch 404/1000
    +20/20 [==============================] - 75s 4s/step - loss: 1.0714e-04 - val_loss: 1.0834e-04
    +Epoch 405/1000
    + 9/20 [============>.................] - ETA: 41s - loss: 1.0775e-04
    +
    +
    +
    +
    [ ]:
    +
    +
    +
    csinet.model.save('models/CSINet.keras')  # The file needs to end with the .keras extension
    +
    +
    +
    +
    +
    [15]:
    +
    +
    +
    # model = load_model('models/CSINet.keras')
    +# model.fit(Htrain, Htrain, epochs=1000, batch_size=5000, shuffle= True, validation_data=(Hval, Hval))
    +
    +
    +
    +
    +
    [ ]:
    +
    +
    +
    # self.model.fit(Htrain, Htrain,
    +#                epochs=1000, batch_size=5000, shuffle= True,
    +#                validation_data=(Hval, Hval))
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/api/Projects/Project3/trainCSINet.ipynb b/api/Projects/Project3/trainCSINet.ipynb new file mode 100644 index 00000000..39cd1e84 --- /dev/null +++ b/api/Projects/Project3/trainCSINet.ipynb @@ -0,0 +1,1047 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "073df96d", + "metadata": {}, + "source": [ + "# Training the CSINet\n", + "\n", + "## Import Libraries\n", + "\n", + "### Import Python Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "acc4abd6", + "metadata": {}, + "outputs": [], + "source": [ + "# %matplotlib widget\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "\n", + "import os\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\n", + "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \n", + "\n", + "import numpy as np\n", + "\n", + "# from IPython.display import display, HTML\n", + "# display(HTML(\"\"))" + ] + }, + { + "cell_type": "markdown", + "id": "57eb8d37", + "metadata": {}, + "source": [ + "## Important AI-ML Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4392fe8e", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import numpy as np\n", + "\n", + "from keras.layers import Input, Dense, BatchNormalization, Reshape, Conv2D, add, LeakyReLU\n", + "from keras.models import Model, load_model\n", + "from keras.callbacks import TensorBoard, Callback\n", + "\n", + "from csiNet import CSINet" + ] + }, + { + "cell_type": "markdown", + "id": "25a16e12", + "metadata": {}, + "source": [ + "## Load Datasets" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b91c9b54", + "metadata": {}, + "outputs": [], + "source": [ + "db = np.load(\"Databases/PreprocessedChannel-dB.npz\")" + ] + }, + { + "cell_type": "markdown", + "id": "8a5df3dd", + "metadata": {}, + "source": [ + "## Set Training Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5aacef92", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "**************************\n", + "Number of subcarriers: 32\n", + "Number of encoded bits: 512\n", + "Number of antennas: 32\n", + "Number of batches: 110000\n", + "**************************\n" + ] + } + ], + "source": [ + "numTaps = 32\n", + "codewordSize = 512\n", + "Hp = db[\"Hp\"]\n", + "Nt = db[\"Nt\"]\n", + "numBatches = Hp.shape[0]\n", + "\n", + "\n", + "print(\"**************************\")\n", + "print(\"Number of subcarriers: \"+str(numTaps))\n", + "print(\"Number of encoded bits: \"+str(codewordSize))\n", + "print(\"Number of antennas: \"+str(Nt))\n", + "print(\"Number of batches: \"+str(numBatches))\n", + "print(\"**************************\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e491b89e", + "metadata": {}, + "outputs": [], + "source": [ + "csinet = CSINet()\n", + "model = csinet(Nt, numSubcarrier, codewordSize)\n", + "\n", + "i = int(0.9*numBatches)\n", + "k = int(numBatches)\n", + "\n", + "Htrain = Hp[0:i]\n", + "Hval = Hp[i:k]\n", + "# Htest = Hprep[k:numBatches]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "14cf3332", + "metadata": {}, + "outputs": [], + "source": [ + "# model = load_model('models/CSINet.keras')\n", + "# csinet.model = model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eea28f44", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/1000\n", + "20/20 [==============================] - 71s 4s/step - loss: 1.7742e-04 - val_loss: 0.0043\n", + "Epoch 2/1000\n", + "20/20 [==============================] - 71s 4s/step - loss: 1.7259e-04 - val_loss: 0.0037\n", + "Epoch 3/1000\n", + "20/20 [==============================] - 70s 4s/step - loss: 1.6864e-04 - val_loss: 0.0029\n", + "Epoch 4/1000\n", + "20/20 [==============================] - 70s 4s/step - loss: 1.6530e-04 - val_loss: 0.0022\n", + "Epoch 5/1000\n", + "20/20 [==============================] - 71s 4s/step - loss: 1.6243e-04 - val_loss: 0.0017\n", + "Epoch 6/1000\n", + "20/20 [==============================] - 71s 4s/step - loss: 1.6001e-04 - val_loss: 0.0015\n", + "Epoch 7/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5802e-04 - val_loss: 0.0013\n", + "Epoch 8/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5634e-04 - val_loss: 0.0011\n", + "Epoch 9/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5492e-04 - val_loss: 8.7465e-04\n", + "Epoch 10/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.5370e-04 - val_loss: 6.8815e-04\n", + "Epoch 11/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5262e-04 - val_loss: 5.2990e-04\n", + "Epoch 12/1000\n", + "20/20 [==============================] - 72s 4s/step - loss: 1.5167e-04 - val_loss: 4.0591e-04\n", + "Epoch 13/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.5085e-04 - val_loss: 3.1419e-04\n", + "Epoch 14/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.5011e-04 - val_loss: 2.5195e-04\n", + "Epoch 15/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4947e-04 - val_loss: 2.1186e-04\n", + "Epoch 16/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4891e-04 - val_loss: 1.8665e-04\n", + "Epoch 17/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4841e-04 - val_loss: 1.7138e-04\n", + "Epoch 18/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4796e-04 - val_loss: 1.6209e-04\n", + "Epoch 19/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4754e-04 - val_loss: 1.5635e-04\n", + "Epoch 20/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4717e-04 - val_loss: 1.5279e-04\n", + "Epoch 21/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4683e-04 - val_loss: 1.5035e-04\n", + "Epoch 22/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4653e-04 - val_loss: 1.4878e-04\n", + "Epoch 23/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4625e-04 - val_loss: 1.4770e-04\n", + "Epoch 24/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4599e-04 - val_loss: 1.4683e-04\n", + "Epoch 25/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4575e-04 - val_loss: 1.4617e-04\n", + "Epoch 26/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4553e-04 - val_loss: 1.4551e-04\n", + "Epoch 27/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4533e-04 - val_loss: 1.4505e-04\n", + "Epoch 28/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4512e-04 - val_loss: 1.4463e-04\n", + "Epoch 29/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4493e-04 - val_loss: 1.4427e-04\n", + "Epoch 30/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4475e-04 - val_loss: 1.4402e-04\n", + "Epoch 31/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4457e-04 - val_loss: 1.4354e-04\n", + "Epoch 32/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4440e-04 - val_loss: 1.4335e-04\n", + "Epoch 33/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4423e-04 - val_loss: 1.4307e-04\n", + "Epoch 34/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4407e-04 - val_loss: 1.4283e-04\n", + "Epoch 35/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4391e-04 - val_loss: 1.4230e-04\n", + "Epoch 36/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4376e-04 - val_loss: 1.4228e-04\n", + "Epoch 37/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4361e-04 - val_loss: 1.4194e-04\n", + "Epoch 38/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4346e-04 - val_loss: 1.4173e-04\n", + "Epoch 39/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4332e-04 - val_loss: 1.4149e-04\n", + "Epoch 40/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4318e-04 - val_loss: 1.4133e-04\n", + "Epoch 41/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.4304e-04 - val_loss: 1.4106e-04\n", + "Epoch 42/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4289e-04 - val_loss: 1.4086e-04\n", + "Epoch 43/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4274e-04 - val_loss: 1.4061e-04\n", + "Epoch 44/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4261e-04 - val_loss: 1.4033e-04\n", + "Epoch 45/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4249e-04 - val_loss: 1.4021e-04\n", + "Epoch 46/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4235e-04 - val_loss: 1.4001e-04\n", + "Epoch 47/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4221e-04 - val_loss: 1.3973e-04\n", + "Epoch 48/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4211e-04 - val_loss: 1.3967e-04\n", + "Epoch 49/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4198e-04 - val_loss: 1.3946e-04\n", + "Epoch 50/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4185e-04 - val_loss: 1.3920e-04\n", + "Epoch 51/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4172e-04 - val_loss: 1.3910e-04\n", + "Epoch 52/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4156e-04 - val_loss: 1.3889e-04\n", + "Epoch 53/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4144e-04 - val_loss: 1.3886e-04\n", + "Epoch 54/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4130e-04 - val_loss: 1.3855e-04\n", + "Epoch 55/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4118e-04 - val_loss: 1.3846e-04\n", + "Epoch 56/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4106e-04 - val_loss: 1.3834e-04\n", + "Epoch 57/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4092e-04 - val_loss: 1.3812e-04\n", + "Epoch 58/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4080e-04 - val_loss: 1.3790e-04\n", + "Epoch 59/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4067e-04 - val_loss: 1.3776e-04\n", + "Epoch 60/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4056e-04 - val_loss: 1.3763e-04\n", + "Epoch 61/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4044e-04 - val_loss: 1.3736e-04\n", + "Epoch 62/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4029e-04 - val_loss: 1.3737e-04\n", + "Epoch 63/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4013e-04 - val_loss: 1.3721e-04\n", + "Epoch 64/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4004e-04 - val_loss: 1.3699e-04\n", + "Epoch 65/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3984e-04 - val_loss: 1.3682e-04\n", + "Epoch 66/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3969e-04 - val_loss: 1.3674e-04\n", + "Epoch 67/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3956e-04 - val_loss: 1.3660e-04\n", + "Epoch 68/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3942e-04 - val_loss: 1.3652e-04\n", + "Epoch 69/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.3928e-04 - val_loss: 1.3637e-04\n", + "Epoch 70/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3915e-04 - val_loss: 1.3635e-04\n", + "Epoch 71/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3897e-04 - val_loss: 1.3625e-04\n", + "Epoch 72/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3884e-04 - val_loss: 1.3625e-04\n", + "Epoch 73/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3883e-04 - val_loss: 1.3603e-04\n", + "Epoch 74/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3857e-04 - val_loss: 1.3597e-04\n", + "Epoch 75/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3841e-04 - val_loss: 1.3604e-04\n", + "Epoch 76/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3821e-04 - val_loss: 1.3579e-04\n", + "Epoch 77/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3795e-04 - val_loss: 1.3555e-04\n", + "Epoch 78/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3775e-04 - val_loss: 1.3563e-04\n", + "Epoch 79/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3756e-04 - val_loss: 1.3545e-04\n", + "Epoch 80/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3738e-04 - val_loss: 1.3547e-04\n", + "Epoch 81/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3722e-04 - val_loss: 1.3548e-04\n", + "Epoch 82/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3710e-04 - val_loss: 1.3555e-04\n", + "Epoch 83/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3696e-04 - val_loss: 1.3547e-04\n", + "Epoch 84/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3697e-04 - val_loss: 1.3563e-04\n", + "Epoch 85/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3651e-04 - val_loss: 1.3530e-04\n", + "Epoch 86/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3612e-04 - val_loss: 1.3516e-04\n", + "Epoch 87/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3613e-04 - val_loss: 1.3505e-04\n", + "Epoch 88/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.3574e-04 - val_loss: 1.3499e-04\n", + "Epoch 89/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3578e-04 - val_loss: 1.3540e-04\n", + "Epoch 90/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3549e-04 - val_loss: 1.3534e-04\n", + "Epoch 91/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3534e-04 - val_loss: 1.3487e-04\n", + "Epoch 92/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3491e-04 - val_loss: 1.3490e-04\n", + "Epoch 93/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3475e-04 - val_loss: 1.3490e-04\n", + "Epoch 94/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3442e-04 - val_loss: 1.3471e-04\n", + "Epoch 95/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3440e-04 - val_loss: 1.3496e-04\n", + "Epoch 96/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3414e-04 - val_loss: 1.3508e-04\n", + "Epoch 97/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3431e-04 - val_loss: 1.3493e-04\n", + "Epoch 98/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3403e-04 - val_loss: 1.3515e-04\n", + "Epoch 99/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3323e-04 - val_loss: 1.3469e-04\n", + "Epoch 100/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3297e-04 - val_loss: 1.3585e-04\n", + "Epoch 101/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3307e-04 - val_loss: 1.3581e-04\n", + "Epoch 102/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3270e-04 - val_loss: 1.3471e-04\n", + "Epoch 103/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3247e-04 - val_loss: 1.3364e-04\n", + "Epoch 104/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 2.7186e-04 - val_loss: 5.9999e-04\n", + "Epoch 105/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 2.4725e-04 - val_loss: 8.0587e-04\n", + "Epoch 106/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4827e-04 - val_loss: 6.0315e-04\n", + "Epoch 107/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3956e-04 - val_loss: 3.6259e-04\n", + "Epoch 108/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3717e-04 - val_loss: 2.5379e-04\n", + "Epoch 109/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3604e-04 - val_loss: 2.0073e-04\n", + "Epoch 110/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3526e-04 - val_loss: 1.7553e-04\n", + "Epoch 111/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3462e-04 - val_loss: 1.6115e-04\n", + "Epoch 112/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3404e-04 - val_loss: 1.5349e-04\n", + "Epoch 113/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3351e-04 - val_loss: 1.4661e-04\n", + "Epoch 114/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3302e-04 - val_loss: 1.4291e-04\n", + "Epoch 115/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3255e-04 - val_loss: 1.4210e-04\n", + "Epoch 116/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3211e-04 - val_loss: 1.4070e-04\n", + "Epoch 117/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3170e-04 - val_loss: 1.3908e-04\n", + "Epoch 118/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3131e-04 - val_loss: 1.3821e-04\n", + "Epoch 119/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3093e-04 - val_loss: 1.3706e-04\n", + "Epoch 120/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3058e-04 - val_loss: 1.3630e-04\n", + "Epoch 121/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3024e-04 - val_loss: 1.3509e-04\n", + "Epoch 122/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2990e-04 - val_loss: 1.3495e-04\n", + "Epoch 123/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2958e-04 - val_loss: 1.3444e-04\n", + "Epoch 124/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2927e-04 - val_loss: 1.3385e-04\n", + "Epoch 125/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2897e-04 - val_loss: 1.3401e-04\n", + "Epoch 126/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2869e-04 - val_loss: 1.3360e-04\n", + "Epoch 127/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2841e-04 - val_loss: 1.3312e-04\n", + "Epoch 128/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2815e-04 - val_loss: 1.3210e-04\n", + "Epoch 129/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2788e-04 - val_loss: 1.3211e-04\n", + "Epoch 130/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2762e-04 - val_loss: 1.3188e-04\n", + "Epoch 131/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2736e-04 - val_loss: 1.3199e-04\n", + "Epoch 132/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2712e-04 - val_loss: 1.3122e-04\n", + "Epoch 133/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2690e-04 - val_loss: 1.3178e-04\n", + "Epoch 134/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2663e-04 - val_loss: 1.3107e-04\n", + "Epoch 135/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2638e-04 - val_loss: 1.3061e-04\n", + "Epoch 136/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2614e-04 - val_loss: 1.3039e-04\n", + "Epoch 137/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2590e-04 - val_loss: 1.3072e-04\n", + "Epoch 138/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2567e-04 - val_loss: 1.2932e-04\n", + "Epoch 139/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2542e-04 - val_loss: 1.3050e-04\n", + "Epoch 140/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2519e-04 - val_loss: 1.2852e-04\n", + "Epoch 141/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2502e-04 - val_loss: 1.2818e-04\n", + "Epoch 142/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2473e-04 - val_loss: 1.2908e-04\n", + "Epoch 143/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2453e-04 - val_loss: 1.3138e-04\n", + "Epoch 144/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2444e-04 - val_loss: 1.2780e-04\n", + "Epoch 145/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2419e-04 - val_loss: 1.2681e-04\n", + "Epoch 146/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2402e-04 - val_loss: 1.2615e-04\n", + "Epoch 147/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2369e-04 - val_loss: 1.2638e-04\n", + "Epoch 148/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2352e-04 - val_loss: 1.2830e-04\n", + "Epoch 149/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2314e-04 - val_loss: 1.2605e-04\n", + "Epoch 150/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2286e-04 - val_loss: 1.2743e-04\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 151/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2271e-04 - val_loss: 1.2598e-04\n", + "Epoch 152/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 0.0011 - val_loss: 0.0030\n", + "Epoch 153/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 8.0737e-04 - val_loss: 7.5406e-04\n", + "Epoch 154/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 2.2217e-04 - val_loss: 4.4022e-04\n", + "Epoch 155/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.6454e-04 - val_loss: 2.8927e-04\n", + "Epoch 156/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.5252e-04 - val_loss: 2.2517e-04\n", + "Epoch 157/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4766e-04 - val_loss: 1.9435e-04\n", + "Epoch 158/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4478e-04 - val_loss: 1.7687e-04\n", + "Epoch 159/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4276e-04 - val_loss: 1.6398e-04\n", + "Epoch 160/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4121e-04 - val_loss: 1.5581e-04\n", + "Epoch 161/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.4001e-04 - val_loss: 1.5050e-04\n", + "Epoch 162/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3907e-04 - val_loss: 1.4714e-04\n", + "Epoch 163/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3830e-04 - val_loss: 1.4454e-04\n", + "Epoch 164/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3767e-04 - val_loss: 1.4247e-04\n", + "Epoch 165/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3711e-04 - val_loss: 1.4100e-04\n", + "Epoch 166/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3661e-04 - val_loss: 1.3959e-04\n", + "Epoch 167/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3615e-04 - val_loss: 1.3854e-04\n", + "Epoch 168/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.3572e-04 - val_loss: 1.3760e-04\n", + "Epoch 169/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3533e-04 - val_loss: 1.3684e-04\n", + "Epoch 170/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3495e-04 - val_loss: 1.3616e-04\n", + "Epoch 171/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3460e-04 - val_loss: 1.3561e-04\n", + "Epoch 172/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3425e-04 - val_loss: 1.3502e-04\n", + "Epoch 173/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3392e-04 - val_loss: 1.3455e-04\n", + "Epoch 174/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3358e-04 - val_loss: 1.3413e-04\n", + "Epoch 175/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3325e-04 - val_loss: 1.3369e-04\n", + "Epoch 176/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3293e-04 - val_loss: 1.3329e-04\n", + "Epoch 177/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3260e-04 - val_loss: 1.3295e-04\n", + "Epoch 178/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3227e-04 - val_loss: 1.3262e-04\n", + "Epoch 179/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3195e-04 - val_loss: 1.3225e-04\n", + "Epoch 180/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3163e-04 - val_loss: 1.3183e-04\n", + "Epoch 181/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3131e-04 - val_loss: 1.3149e-04\n", + "Epoch 182/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3098e-04 - val_loss: 1.3120e-04\n", + "Epoch 183/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3064e-04 - val_loss: 1.3091e-04\n", + "Epoch 184/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3031e-04 - val_loss: 1.3061e-04\n", + "Epoch 185/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2998e-04 - val_loss: 1.3030e-04\n", + "Epoch 186/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2967e-04 - val_loss: 1.2996e-04\n", + "Epoch 187/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2935e-04 - val_loss: 1.2962e-04\n", + "Epoch 188/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2905e-04 - val_loss: 1.2936e-04\n", + "Epoch 189/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2875e-04 - val_loss: 1.2912e-04\n", + "Epoch 190/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2843e-04 - val_loss: 1.2879e-04\n", + "Epoch 191/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2811e-04 - val_loss: 1.2853e-04\n", + "Epoch 192/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2781e-04 - val_loss: 1.2833e-04\n", + "Epoch 193/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2751e-04 - val_loss: 1.2804e-04\n", + "Epoch 194/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2720e-04 - val_loss: 1.2780e-04\n", + "Epoch 195/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2690e-04 - val_loss: 1.2748e-04\n", + "Epoch 196/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2660e-04 - val_loss: 1.2726e-04\n", + "Epoch 197/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2631e-04 - val_loss: 1.2693e-04\n", + "Epoch 198/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2602e-04 - val_loss: 1.2667e-04\n", + "Epoch 199/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2573e-04 - val_loss: 1.2636e-04\n", + "Epoch 200/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2544e-04 - val_loss: 1.2612e-04\n", + "Epoch 201/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2515e-04 - val_loss: 1.2579e-04\n", + "Epoch 202/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2487e-04 - val_loss: 1.2556e-04\n", + "Epoch 203/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2458e-04 - val_loss: 1.2523e-04\n", + "Epoch 204/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2428e-04 - val_loss: 1.2499e-04\n", + "Epoch 205/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2400e-04 - val_loss: 1.2467e-04\n", + "Epoch 206/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2372e-04 - val_loss: 1.2451e-04\n", + "Epoch 207/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2344e-04 - val_loss: 1.2414e-04\n", + "Epoch 208/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2316e-04 - val_loss: 1.2387e-04\n", + "Epoch 209/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2288e-04 - val_loss: 1.2359e-04\n", + "Epoch 210/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2261e-04 - val_loss: 1.2337e-04\n", + "Epoch 211/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2236e-04 - val_loss: 1.2307e-04\n", + "Epoch 212/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2208e-04 - val_loss: 1.2280e-04\n", + "Epoch 213/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2182e-04 - val_loss: 1.2255e-04\n", + "Epoch 214/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.2157e-04 - val_loss: 1.2229e-04\n", + "Epoch 215/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2131e-04 - val_loss: 1.2206e-04\n", + "Epoch 216/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2107e-04 - val_loss: 1.2184e-04\n", + "Epoch 217/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2080e-04 - val_loss: 1.2160e-04\n", + "Epoch 218/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2056e-04 - val_loss: 1.2135e-04\n", + "Epoch 219/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2031e-04 - val_loss: 1.2108e-04\n", + "Epoch 220/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2006e-04 - val_loss: 1.2086e-04\n", + "Epoch 221/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1980e-04 - val_loss: 1.2061e-04\n", + "Epoch 222/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1956e-04 - val_loss: 1.2034e-04\n", + "Epoch 223/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1932e-04 - val_loss: 1.2015e-04\n", + "Epoch 224/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1907e-04 - val_loss: 1.1992e-04\n", + "Epoch 225/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1883e-04 - val_loss: 1.1964e-04\n", + "Epoch 226/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1859e-04 - val_loss: 1.1946e-04\n", + "Epoch 227/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1836e-04 - val_loss: 1.1924e-04\n", + "Epoch 228/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1812e-04 - val_loss: 1.1901e-04\n", + "Epoch 229/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1788e-04 - val_loss: 1.1873e-04\n", + "Epoch 230/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1762e-04 - val_loss: 1.1849e-04\n", + "Epoch 231/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1739e-04 - val_loss: 1.1824e-04\n", + "Epoch 232/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1716e-04 - val_loss: 1.1801e-04\n", + "Epoch 233/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1693e-04 - val_loss: 1.1782e-04\n", + "Epoch 234/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1669e-04 - val_loss: 1.1772e-04\n", + "Epoch 235/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1644e-04 - val_loss: 1.1742e-04\n", + "Epoch 236/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1620e-04 - val_loss: 1.1717e-04\n", + "Epoch 237/1000\n", + "20/20 [==============================] - 73s 4s/step - loss: 1.1600e-04 - val_loss: 1.1697e-04\n", + "Epoch 238/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1574e-04 - val_loss: 1.1671e-04\n", + "Epoch 239/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1550e-04 - val_loss: 1.1646e-04\n", + "Epoch 240/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1526e-04 - val_loss: 1.1627e-04\n", + "Epoch 241/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1501e-04 - val_loss: 1.1614e-04\n", + "Epoch 242/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1479e-04 - val_loss: 1.1579e-04\n", + "Epoch 243/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1453e-04 - val_loss: 1.1561e-04\n", + "Epoch 244/1000\n", + "20/20 [==============================] - 76s 4s/step - loss: 1.1430e-04 - val_loss: 1.1536e-04\n", + "Epoch 245/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1407e-04 - val_loss: 1.1516e-04\n", + "Epoch 246/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1384e-04 - val_loss: 1.1494e-04\n", + "Epoch 247/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1361e-04 - val_loss: 1.1468e-04\n", + "Epoch 248/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1338e-04 - val_loss: 1.1452e-04\n", + "Epoch 249/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1312e-04 - val_loss: 1.1422e-04\n", + "Epoch 250/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1291e-04 - val_loss: 1.1400e-04\n", + "Epoch 251/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1267e-04 - val_loss: 1.1378e-04\n", + "Epoch 252/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1242e-04 - val_loss: 1.1359e-04\n", + "Epoch 253/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1221e-04 - val_loss: 1.1342e-04\n", + "Epoch 254/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1198e-04 - val_loss: 1.1317e-04\n", + "Epoch 255/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1179e-04 - val_loss: 1.1296e-04\n", + "Epoch 256/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1158e-04 - val_loss: 1.1277e-04\n", + "Epoch 257/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1134e-04 - val_loss: 1.1292e-04\n", + "Epoch 258/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1103e-04 - val_loss: 1.1229e-04\n", + "Epoch 259/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1094e-04 - val_loss: 1.1236e-04\n", + "Epoch 260/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1069e-04 - val_loss: 1.1202e-04\n", + "Epoch 261/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1052e-04 - val_loss: 1.1211e-04\n", + "Epoch 262/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1020e-04 - val_loss: 1.1182e-04\n", + "Epoch 263/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0999e-04 - val_loss: 1.1120e-04\n", + "Epoch 264/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0988e-04 - val_loss: 1.1105e-04\n", + "Epoch 265/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0971e-04 - val_loss: 1.1073e-04\n", + "Epoch 266/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0925e-04 - val_loss: 1.1168e-04\n", + "Epoch 267/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0918e-04 - val_loss: 1.1021e-04\n", + "Epoch 268/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0899e-04 - val_loss: 1.1207e-04\n", + "Epoch 269/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0908e-04 - val_loss: 1.1036e-04\n", + "Epoch 270/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0850e-04 - val_loss: 1.1063e-04\n", + "Epoch 271/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0808e-04 - val_loss: 1.0979e-04\n", + "Epoch 272/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0885e-04 - val_loss: 1.1182e-04\n", + "Epoch 273/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0896e-04 - val_loss: 1.0897e-04\n", + "Epoch 274/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0755e-04 - val_loss: 1.0890e-04\n", + "Epoch 275/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0726e-04 - val_loss: 1.0942e-04\n", + "Epoch 276/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0698e-04 - val_loss: 1.0837e-04\n", + "Epoch 277/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0682e-04 - val_loss: 1.1710e-04\n", + "Epoch 278/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1099e-04 - val_loss: 1.0862e-04\n", + "Epoch 279/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0679e-04 - val_loss: 1.0775e-04\n", + "Epoch 280/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0615e-04 - val_loss: 1.0787e-04\n", + "Epoch 281/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0580e-04 - val_loss: 1.0705e-04\n", + "Epoch 282/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0551e-04 - val_loss: 1.0705e-04\n", + "Epoch 283/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0542e-04 - val_loss: 1.0673e-04\n", + "Epoch 284/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0500e-04 - val_loss: 1.0644e-04\n", + "Epoch 285/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0506e-04 - val_loss: 1.0654e-04\n", + "Epoch 286/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0493e-04 - val_loss: 1.0618e-04\n", + "Epoch 287/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0476e-04 - val_loss: 1.0601e-04\n", + "Epoch 288/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0445e-04 - val_loss: 1.0588e-04\n", + "Epoch 289/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0439e-04 - val_loss: 1.1388e-04\n", + "Epoch 290/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 0.0033 - val_loss: 0.0015\n", + "Epoch 291/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 6.8803e-04 - val_loss: 4.5921e-04\n", + "Epoch 292/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 2.5436e-04 - val_loss: 3.2132e-04\n", + "Epoch 293/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.8278e-04 - val_loss: 2.6234e-04\n", + "Epoch 294/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.6361e-04 - val_loss: 2.2145e-04\n", + "Epoch 295/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.5566e-04 - val_loss: 1.9489e-04\n", + "Epoch 296/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.5087e-04 - val_loss: 1.7818e-04\n", + "Epoch 297/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.4780e-04 - val_loss: 1.6677e-04\n", + "Epoch 298/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4506e-04 - val_loss: 1.5912e-04\n", + "Epoch 299/1000\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20/20 [==============================] - 75s 4s/step - loss: 1.4321e-04 - val_loss: 1.5355e-04\n", + "Epoch 300/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4175e-04 - val_loss: 1.4977e-04\n", + "Epoch 301/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.4046e-04 - val_loss: 1.4725e-04\n", + "Epoch 302/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3919e-04 - val_loss: 1.4475e-04\n", + "Epoch 303/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3819e-04 - val_loss: 1.4305e-04\n", + "Epoch 304/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3741e-04 - val_loss: 1.4133e-04\n", + "Epoch 305/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3681e-04 - val_loss: 1.4008e-04\n", + "Epoch 306/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3607e-04 - val_loss: 1.3953e-04\n", + "Epoch 307/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3530e-04 - val_loss: 1.3845e-04\n", + "Epoch 308/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3476e-04 - val_loss: 1.3803e-04\n", + "Epoch 309/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3423e-04 - val_loss: 1.3714e-04\n", + "Epoch 310/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3372e-04 - val_loss: 1.3652e-04\n", + "Epoch 311/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.3321e-04 - val_loss: 1.3604e-04\n", + "Epoch 312/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3306e-04 - val_loss: 1.3567e-04\n", + "Epoch 313/1000\n", + "20/20 [==============================] - 76s 4s/step - loss: 1.3240e-04 - val_loss: 1.3451e-04\n", + "Epoch 314/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3208e-04 - val_loss: 1.3424e-04\n", + "Epoch 315/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3160e-04 - val_loss: 1.3382e-04\n", + "Epoch 316/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3120e-04 - val_loss: 1.3358e-04\n", + "Epoch 317/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3088e-04 - val_loss: 1.3309e-04\n", + "Epoch 318/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3050e-04 - val_loss: 1.3270e-04\n", + "Epoch 319/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.3017e-04 - val_loss: 1.3238e-04\n", + "Epoch 320/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2989e-04 - val_loss: 1.3204e-04\n", + "Epoch 321/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2962e-04 - val_loss: 1.3130e-04\n", + "Epoch 322/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2926e-04 - val_loss: 1.3111e-04\n", + "Epoch 323/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2894e-04 - val_loss: 1.3055e-04\n", + "Epoch 324/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2852e-04 - val_loss: 1.3025e-04\n", + "Epoch 325/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2838e-04 - val_loss: 1.2969e-04\n", + "Epoch 326/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2781e-04 - val_loss: 1.2949e-04\n", + "Epoch 327/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2745e-04 - val_loss: 1.2937e-04\n", + "Epoch 328/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2715e-04 - val_loss: 1.2914e-04\n", + "Epoch 329/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2690e-04 - val_loss: 1.2808e-04\n", + "Epoch 330/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2680e-04 - val_loss: 1.2834e-04\n", + "Epoch 331/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2634e-04 - val_loss: 1.2769e-04\n", + "Epoch 332/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2582e-04 - val_loss: 1.2695e-04\n", + "Epoch 333/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2542e-04 - val_loss: 1.2670e-04\n", + "Epoch 334/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2497e-04 - val_loss: 1.2688e-04\n", + "Epoch 335/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2454e-04 - val_loss: 1.2615e-04\n", + "Epoch 336/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2421e-04 - val_loss: 1.2562e-04\n", + "Epoch 337/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2386e-04 - val_loss: 1.2582e-04\n", + "Epoch 338/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2343e-04 - val_loss: 1.2498e-04\n", + "Epoch 339/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2306e-04 - val_loss: 1.2484e-04\n", + "Epoch 340/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2273e-04 - val_loss: 1.2452e-04\n", + "Epoch 341/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2228e-04 - val_loss: 1.2410e-04\n", + "Epoch 342/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2190e-04 - val_loss: 1.2347e-04\n", + "Epoch 343/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.2163e-04 - val_loss: 1.2318e-04\n", + "Epoch 344/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2135e-04 - val_loss: 1.2322e-04\n", + "Epoch 345/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2114e-04 - val_loss: 1.2283e-04\n", + "Epoch 346/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2067e-04 - val_loss: 1.2238e-04\n", + "Epoch 347/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2042e-04 - val_loss: 1.2186e-04\n", + "Epoch 348/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.2004e-04 - val_loss: 1.2154e-04\n", + "Epoch 349/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1972e-04 - val_loss: 1.2112e-04\n", + "Epoch 350/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1937e-04 - val_loss: 1.2095e-04\n", + "Epoch 351/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1906e-04 - val_loss: 1.2064e-04\n", + "Epoch 352/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1887e-04 - val_loss: 1.2023e-04\n", + "Epoch 353/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1848e-04 - val_loss: 1.1981e-04\n", + "Epoch 354/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1839e-04 - val_loss: 1.1967e-04\n", + "Epoch 355/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1819e-04 - val_loss: 1.1985e-04\n", + "Epoch 356/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1771e-04 - val_loss: 1.1919e-04\n", + "Epoch 357/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1737e-04 - val_loss: 1.1905e-04\n", + "Epoch 358/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1710e-04 - val_loss: 1.1872e-04\n", + "Epoch 359/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1681e-04 - val_loss: 1.1836e-04\n", + "Epoch 360/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1669e-04 - val_loss: 1.1834e-04\n", + "Epoch 361/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1627e-04 - val_loss: 1.1765e-04\n", + "Epoch 362/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1601e-04 - val_loss: 1.1751e-04\n", + "Epoch 363/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1577e-04 - val_loss: 1.1766e-04\n", + "Epoch 364/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1562e-04 - val_loss: 1.1697e-04\n", + "Epoch 365/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1522e-04 - val_loss: 1.1711e-04\n", + "Epoch 366/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.1494e-04 - val_loss: 1.1649e-04\n", + "Epoch 367/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1469e-04 - val_loss: 1.1652e-04\n", + "Epoch 368/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1453e-04 - val_loss: 1.1623e-04\n", + "Epoch 369/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1437e-04 - val_loss: 1.1564e-04\n", + "Epoch 370/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1409e-04 - val_loss: 1.1576e-04\n", + "Epoch 371/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1377e-04 - val_loss: 1.1534e-04\n", + "Epoch 372/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1357e-04 - val_loss: 1.1498e-04\n", + "Epoch 373/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1338e-04 - val_loss: 1.1499e-04\n", + "Epoch 374/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1300e-04 - val_loss: 1.1487e-04\n", + "Epoch 375/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1315e-04 - val_loss: 1.1486e-04\n", + "Epoch 376/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1264e-04 - val_loss: 1.1431e-04\n", + "Epoch 377/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1249e-04 - val_loss: 1.1441e-04\n", + "Epoch 378/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1215e-04 - val_loss: 1.1364e-04\n", + "Epoch 379/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1187e-04 - val_loss: 1.1359e-04\n", + "Epoch 380/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1176e-04 - val_loss: 1.1313e-04\n", + "Epoch 381/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1202e-04 - val_loss: 1.1292e-04\n", + "Epoch 382/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1164e-04 - val_loss: 1.1271e-04\n", + "Epoch 383/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1137e-04 - val_loss: 1.1249e-04\n", + "Epoch 384/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1119e-04 - val_loss: 1.1263e-04\n", + "Epoch 385/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1053e-04 - val_loss: 1.1232e-04\n", + "Epoch 386/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1043e-04 - val_loss: 1.1188e-04\n", + "Epoch 387/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.1014e-04 - val_loss: 1.1179e-04\n", + "Epoch 388/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0998e-04 - val_loss: 1.1144e-04\n", + "Epoch 389/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0969e-04 - val_loss: 1.1139e-04\n", + "Epoch 390/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0942e-04 - val_loss: 1.1118e-04\n", + "Epoch 391/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0932e-04 - val_loss: 1.1173e-04\n", + "Epoch 392/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0985e-04 - val_loss: 1.1075e-04\n", + "Epoch 393/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0881e-04 - val_loss: 1.1055e-04\n", + "Epoch 394/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0861e-04 - val_loss: 1.1052e-04\n", + "Epoch 395/1000\n", + "20/20 [==============================] - 74s 4s/step - loss: 1.0847e-04 - val_loss: 1.1021e-04\n", + "Epoch 396/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0827e-04 - val_loss: 1.0983e-04\n", + "Epoch 397/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0802e-04 - val_loss: 1.0977e-04\n", + "Epoch 398/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0783e-04 - val_loss: 1.0934e-04\n", + "Epoch 399/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0756e-04 - val_loss: 1.0930e-04\n", + "Epoch 400/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0741e-04 - val_loss: 1.0930e-04\n", + "Epoch 401/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0714e-04 - val_loss: 1.0883e-04\n", + "Epoch 402/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0708e-04 - val_loss: 1.0862e-04\n", + "Epoch 403/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0690e-04 - val_loss: 1.0862e-04\n", + "Epoch 404/1000\n", + "20/20 [==============================] - 75s 4s/step - loss: 1.0714e-04 - val_loss: 1.0834e-04\n", + "Epoch 405/1000\n", + " 9/20 [============>.................] - ETA: 41s - loss: 1.0775e-04" + ] + } + ], + "source": [ + "csinet.fit(Htrain, epochs=1000, batch_size=5000, hval = Hval)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e9e07494", + "metadata": {}, + "outputs": [], + "source": [ + "csinet.model.save('models/CSINet.keras') # The file needs to end with the .keras extension" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "1ab0d957", + "metadata": {}, + "outputs": [], + "source": [ + "# model = load_model('models/CSINet.keras')\n", + "# model.fit(Htrain, Htrain, epochs=1000, batch_size=5000, shuffle= True, validation_data=(Hval, Hval))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9c4e4215", + "metadata": {}, + "outputs": [], + "source": [ + "# self.model.fit(Htrain, Htrain, \n", + "# epochs=1000, batch_size=5000, shuffle= True, \n", + "# validation_data=(Hval, Hval))" + ] + } + ], + "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" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/api/Projects/Project4/project4.html b/api/Projects/Project4/project4.html index b073d6df..bc0961da 100644 --- a/api/Projects/Project4/project4.html +++ b/api/Projects/Project4/project4.html @@ -27,7 +27,7 @@ - + @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • @@ -1969,7 +2019,7 @@

    Comparative Study of Reed Muller codes, Polar Codes and LDPC codes - +

    diff --git a/api/Projects/Project5/project5.html b/api/Projects/Project5/project5.html index 17c9d595..5d2127d8 100644 --- a/api/Projects/Project5/project5.html +++ b/api/Projects/Project5/project5.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project6/project6.html b/api/Projects/Project6/project6.html index b90c6a4d..8ecfd2bb 100644 --- a/api/Projects/Project6/project6.html +++ b/api/Projects/Project6/project6.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project7/E2E_Learning_for_Physical_Layer.html b/api/Projects/Project7/E2E_Learning_for_Physical_Layer.html index 39efc8e1..c3adb346 100644 --- a/api/Projects/Project7/E2E_Learning_for_Physical_Layer.html +++ b/api/Projects/Project7/E2E_Learning_for_Physical_Layer.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project8/project8.html b/api/Projects/Project8/project8.html index bb53eb07..82abee21 100644 --- a/api/Projects/Project8/project8.html +++ b/api/Projects/Project8/project8.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Project9/project9.html b/api/Projects/Project9/project9.html index 18783c66..77ebb3da 100644 --- a/api/Projects/Project9/project9.html +++ b/api/Projects/Project9/project9.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Projects/Projects.html b/api/Projects/Projects.html index ec83a904..057e656a 100644 --- a/api/Projects/Projects.html +++ b/api/Projects/Projects.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • @@ -2097,7 +2147,57 @@

    ProjectsChannel Interpolation based on SRCNN and DnCNN +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial1/BER_Analysis_of_Hamming_Codes.html b/api/Tutorials/Tutorial1/BER_Analysis_of_Hamming_Codes.html index aaef6bde..c268d362 100644 --- a/api/Tutorials/Tutorial1/BER_Analysis_of_Hamming_Codes.html +++ b/api/Tutorials/Tutorial1/BER_Analysis_of_Hamming_Codes.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial10/Link_Level_and_System_Level_Simulation_for_Physical_Downlink_Control_Channels.html b/api/Tutorials/Tutorial10/Link_Level_and_System_Level_Simulation_for_Physical_Downlink_Control_Channels.html index 8c19279a..4cb7aa3f 100644 --- a/api/Tutorials/Tutorial10/Link_Level_and_System_Level_Simulation_for_Physical_Downlink_Control_Channels.html +++ b/api/Tutorials/Tutorial10/Link_Level_and_System_Level_Simulation_for_Physical_Downlink_Control_Channels.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial10/tutorial9.html b/api/Tutorials/Tutorial10/tutorial9.html index a87cf07b..470354fe 100644 --- a/api/Tutorials/Tutorial10/tutorial9.html +++ b/api/Tutorials/Tutorial10/tutorial9.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial12/SVD_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.html b/api/Tutorials/Tutorial12/SVD_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.html index 58d62218..50191387 100644 --- a/api/Tutorials/Tutorial12/SVD_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.html +++ b/api/Tutorials/Tutorial12/SVD_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial13/Type1_Codebook_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.html b/api/Tutorials/Tutorial13/Type1_Codebook_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.html index e6e3be2b..91ffdf85 100644 --- a/api/Tutorials/Tutorial13/Type1_Codebook_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.html +++ b/api/Tutorials/Tutorial13/Type1_Codebook_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial14/Beam_management_in_5G_Networks_using_SSB[P1-Procedure].html b/api/Tutorials/Tutorial14/Beam_management_in_5G_Networks_using_SSB[P1-Procedure].html index c22cc1fe..92a5bc0b 100644 --- a/api/Tutorials/Tutorial14/Beam_management_in_5G_Networks_using_SSB[P1-Procedure].html +++ b/api/Tutorials/Tutorial14/Beam_management_in_5G_Networks_using_SSB[P1-Procedure].html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial18[PDCCH_Blind_Decoding]/PDCCH_Blind_Decoding.html b/api/Tutorials/Tutorial18[PDCCH_Blind_Decoding]/PDCCH_Blind_Decoding.html index 730f5a76..fbe3590e 100644 --- a/api/Tutorials/Tutorial18[PDCCH_Blind_Decoding]/PDCCH_Blind_Decoding.html +++ b/api/Tutorials/Tutorial18[PDCCH_Blind_Decoding]/PDCCH_Blind_Decoding.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial2/Tutorial2_ReedMullerCodes.html b/api/Tutorials/Tutorial2/Tutorial2_ReedMullerCodes.html index 511108dd..ade053ca 100644 --- a/api/Tutorials/Tutorial2/Tutorial2_ReedMullerCodes.html +++ b/api/Tutorials/Tutorial2/Tutorial2_ReedMullerCodes.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial21+/E2E_Downlink_TDoA_Based_Positioning_for_millimeter_Wave_5G_Networks_Deployed_in_Indoor_Factory.html b/api/Tutorials/Tutorial21+/E2E_Downlink_TDoA_Based_Positioning_for_millimeter_Wave_5G_Networks_Deployed_in_Indoor_Factory.html index c98f0a6e..4e80a382 100644 --- a/api/Tutorials/Tutorial21+/E2E_Downlink_TDoA_Based_Positioning_for_millimeter_Wave_5G_Networks_Deployed_in_Indoor_Factory.html +++ b/api/Tutorials/Tutorial21+/E2E_Downlink_TDoA_Based_Positioning_for_millimeter_Wave_5G_Networks_Deployed_in_Indoor_Factory.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial21+/E2E_Downlink_ToA_Based_Positioning_in_5G_Networks.html b/api/Tutorials/Tutorial21+/E2E_Downlink_ToA_Based_Positioning_in_5G_Networks.html index 9341c604..cf276d65 100644 --- a/api/Tutorials/Tutorial21+/E2E_Downlink_ToA_Based_Positioning_in_5G_Networks.html +++ b/api/Tutorials/Tutorial21+/E2E_Downlink_ToA_Based_Positioning_in_5G_Networks.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA.html b/api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA.html index d0daa959..0fc4dfb6 100644 --- a/api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA.html +++ b/api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-ToA.html b/api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-ToA.html index 36820b68..ef395386 100644 --- a/api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-ToA.html +++ b/api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-ToA.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial25+/[LLS]DL-AoD_Based_Positioning_in_5G_Networks.html b/api/Tutorials/Tutorial25+/[LLS]DL-AoD_Based_Positioning_in_5G_Networks.html index 27ee8748..bf1dfdc1 100644 --- a/api/Tutorials/Tutorial25+/[LLS]DL-AoD_Based_Positioning_in_5G_Networks.html +++ b/api/Tutorials/Tutorial25+/[LLS]DL-AoD_Based_Positioning_in_5G_Networks.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial25+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-AoA.html b/api/Tutorials/Tutorial25+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-AoA.html index 14b07139..b0486637 100644 --- a/api/Tutorials/Tutorial25+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-AoA.html +++ b/api/Tutorials/Tutorial25+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-AoA.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial27/Performance_Comparison_of_OFDM_and_DFT-s-OFDM.html b/api/Tutorials/Tutorial27/Performance_Comparison_of_OFDM_and_DFT-s-OFDM.html index 641496f2..82118a00 100644 --- a/api/Tutorials/Tutorial27/Performance_Comparison_of_OFDM_and_DFT-s-OFDM.html +++ b/api/Tutorials/Tutorial27/Performance_Comparison_of_OFDM_and_DFT-s-OFDM.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial28/Downliink_Channel_Estimation_using_CSI-RS.html b/api/Tutorials/Tutorial28/Downliink_Channel_Estimation_using_CSI-RS.html index 4c0da314..6250ef5b 100644 --- a/api/Tutorials/Tutorial28/Downliink_Channel_Estimation_using_CSI-RS.html +++ b/api/Tutorials/Tutorial28/Downliink_Channel_Estimation_using_CSI-RS.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial3/Tutorial3_PolarCodes.html b/api/Tutorials/Tutorial3/Tutorial3_PolarCodes.html index edd2c60a..f9d4efc8 100644 --- a/api/Tutorials/Tutorial3/Tutorial3_PolarCodes.html +++ b/api/Tutorials/Tutorial3/Tutorial3_PolarCodes.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial4/Tutorial4_LDPCCodes.html b/api/Tutorials/Tutorial4/Tutorial4_LDPCCodes.html index 23422e95..954b78ee 100644 --- a/api/Tutorials/Tutorial4/Tutorial4_LDPCCodes.html +++ b/api/Tutorials/Tutorial4/Tutorial4_LDPCCodes.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial4/aggregateResults.html b/api/Tutorials/Tutorial4/aggregateResults.html index 6d24c433..4cf7184e 100644 --- a/api/Tutorials/Tutorial4/aggregateResults.html +++ b/api/Tutorials/Tutorial4/aggregateResults.html @@ -1750,7 +1750,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/1.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Outdoor_Terrains.html b/api/Tutorials/Tutorial5/1.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Outdoor_Terrains.html index 0895a3fb..df094d61 100644 --- a/api/Tutorials/Tutorial5/1.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Outdoor_Terrains.html +++ b/api/Tutorials/Tutorial5/1.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Outdoor_Terrains.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/10.Spatially_Consistent_Channel_Modelling_for_Mobility_Simulations.html b/api/Tutorials/Tutorial5/10.Spatially_Consistent_Channel_Modelling_for_Mobility_Simulations.html index 300fa710..fb52faa7 100644 --- a/api/Tutorials/Tutorial5/10.Spatially_Consistent_Channel_Modelling_for_Mobility_Simulations.html +++ b/api/Tutorials/Tutorial5/10.Spatially_Consistent_Channel_Modelling_for_Mobility_Simulations.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/2.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Factory_Terrain.html b/api/Tutorials/Tutorial5/2.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Factory_Terrain.html index 56b6a86b..ebe045cd 100644 --- a/api/Tutorials/Tutorial5/2.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Factory_Terrain.html +++ b/api/Tutorials/Tutorial5/2.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Factory_Terrain.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/3.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Hotspot.html b/api/Tutorials/Tutorial5/3.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Hotspot.html index bfb56a32..04760e03 100644 --- a/api/Tutorials/Tutorial5/3.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Hotspot.html +++ b/api/Tutorials/Tutorial5/3.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Hotspot.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/4.[Mobility]Channel_Generation_for_Outdoor_Mobile_User_in_Rural_Macro_Hexagonal_Site.html b/api/Tutorials/Tutorial5/4.[Mobility]Channel_Generation_for_Outdoor_Mobile_User_in_Rural_Macro_Hexagonal_Site.html index 695734fa..59d807a7 100644 --- a/api/Tutorials/Tutorial5/4.[Mobility]Channel_Generation_for_Outdoor_Mobile_User_in_Rural_Macro_Hexagonal_Site.html +++ b/api/Tutorials/Tutorial5/4.[Mobility]Channel_Generation_for_Outdoor_Mobile_User_in_Rural_Macro_Hexagonal_Site.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/5.[Mobility2x]Channel_Generation_for_Dual_Mobility_Scenarios_in_5G_and_Beyond.html b/api/Tutorials/Tutorial5/5.[Mobility2x]Channel_Generation_for_Dual_Mobility_Scenarios_in_5G_and_Beyond.html index 7ff776b6..7823fb57 100644 --- a/api/Tutorials/Tutorial5/5.[Mobility2x]Channel_Generation_for_Dual_Mobility_Scenarios_in_5G_and_Beyond.html +++ b/api/Tutorials/Tutorial5/5.[Mobility2x]Channel_Generation_for_Dual_Mobility_Scenarios_in_5G_and_Beyond.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/6.Generate_UMa_Channel_for_Multiple_Frequencies.html b/api/Tutorials/Tutorial5/6.Generate_UMa_Channel_for_Multiple_Frequencies.html index e5851c16..19b06dde 100644 --- a/api/Tutorials/Tutorial5/6.Generate_UMa_Channel_for_Multiple_Frequencies.html +++ b/api/Tutorials/Tutorial5/6.Generate_UMa_Channel_for_Multiple_Frequencies.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/7.Propagation_Characteristics_of_Outdoor_Terrains.html b/api/Tutorials/Tutorial5/7.Propagation_Characteristics_of_Outdoor_Terrains.html index 8a473309..d5821013 100644 --- a/api/Tutorials/Tutorial5/7.Propagation_Characteristics_of_Outdoor_Terrains.html +++ b/api/Tutorials/Tutorial5/7.Propagation_Characteristics_of_Outdoor_Terrains.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/8.Beam_Domain and Delay_Domain_Sparsity_in_Wireless_Channel_Models.html b/api/Tutorials/Tutorial5/8.Beam_Domain and Delay_Domain_Sparsity_in_Wireless_Channel_Models.html index f2770b13..462dbdef 100644 --- a/api/Tutorials/Tutorial5/8.Beam_Domain and Delay_Domain_Sparsity_in_Wireless_Channel_Models.html +++ b/api/Tutorials/Tutorial5/8.Beam_Domain and Delay_Domain_Sparsity_in_Wireless_Channel_Models.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial5/tutorial5.html b/api/Tutorials/Tutorial5/tutorial5.html index bdb23830..ac74e1f7 100644 --- a/api/Tutorials/Tutorial5/tutorial5.html +++ b/api/Tutorials/Tutorial5/tutorial5.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial6/Downlink_Synchronization_procedure_using_SSB.html b/api/Tutorials/Tutorial6/Downlink_Synchronization_procedure_using_SSB.html index 5b1d6984..22a88096 100644 --- a/api/Tutorials/Tutorial6/Downlink_Synchronization_procedure_using_SSB.html +++ b/api/Tutorials/Tutorial6/Downlink_Synchronization_procedure_using_SSB.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial7/Link_Level_Simulation_for_Physical_Broadcast_Channels_using_CDL-A_Channels.html b/api/Tutorials/Tutorial7/Link_Level_Simulation_for_Physical_Broadcast_Channels_using_CDL-A_Channels.html index 4c43d47d..d8df1435 100644 --- a/api/Tutorials/Tutorial7/Link_Level_Simulation_for_Physical_Broadcast_Channels_using_CDL-A_Channels.html +++ b/api/Tutorials/Tutorial7/Link_Level_Simulation_for_Physical_Broadcast_Channels_using_CDL-A_Channels.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial8/pucchFormat0_Tutorial.html b/api/Tutorials/Tutorial8/pucchFormat0_Tutorial.html index e62e8978..4511588b 100644 --- a/api/Tutorials/Tutorial8/pucchFormat0_Tutorial.html +++ b/api/Tutorials/Tutorial8/pucchFormat0_Tutorial.html @@ -1751,7 +1751,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorial9/Link_Level_Simulation_for_PDSCH_in_5G.html b/api/Tutorials/Tutorial9/Link_Level_Simulation_for_PDSCH_in_5G.html index da85a931..e20f3420 100644 --- a/api/Tutorials/Tutorial9/Link_Level_Simulation_for_PDSCH_in_5G.html +++ b/api/Tutorials/Tutorial9/Link_Level_Simulation_for_PDSCH_in_5G.html @@ -1752,7 +1752,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/Tutorials/Tutorials.html b/api/Tutorials/Tutorials.html index 9c587903..1e2f1408 100644 --- a/api/Tutorials/Tutorials.html +++ b/api/Tutorials/Tutorials.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/WeekChallenge/challenge.html b/api/WeekChallenge/challenge.html index 18c64a86..98632b8c 100644 --- a/api/WeekChallenge/challenge.html +++ b/api/WeekChallenge/challenge.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/WeekChallenge/challengeArxiv.html b/api/WeekChallenge/challengeArxiv.html index b5c3f2ca..89e39114 100644 --- a/api/WeekChallenge/challengeArxiv.html +++ b/api/WeekChallenge/challengeArxiv.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/api/WeekChallenge/challengeOftheWeek.html b/api/WeekChallenge/challengeOftheWeek.html index 09a6c180..87b65ce6 100644 --- a/api/WeekChallenge/challengeOftheWeek.html +++ b/api/WeekChallenge/challengeOftheWeek.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/detailedInstall.html b/detailedInstall.html index 5ff23b79..9e714de9 100644 --- a/detailedInstall.html +++ b/detailedInstall.html @@ -1748,7 +1748,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/detailedInstall2.html b/detailedInstall2.html index 14a5c1eb..5412bb3e 100644 --- a/detailedInstall2.html +++ b/detailedInstall2.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/genindex.html b/genindex.html index 637ed167..3e05eeff 100644 --- a/genindex.html +++ b/genindex.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/index.html b/index.html index f95d3aeb..5e9d67b3 100644 --- a/index.html +++ b/index.html @@ -1748,7 +1748,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • @@ -2514,7 +2564,13 @@

    More InformationSelection of minimum CORESET Size for a Given Target Block Probability -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/install.html b/install.html index aefd997d..aa04c4a2 100644 --- a/install.html +++ b/install.html @@ -1750,7 +1750,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/install2.html b/install2.html index 2f03cf5b..6b5e72b9 100644 --- a/install2.html +++ b/install2.html @@ -1747,7 +1747,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/objects.inv b/objects.inv index d2136037..719aaecc 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/releaseNotes.html b/releaseNotes.html index 2b00aeb0..b317c234 100644 --- a/releaseNotes.html +++ b/releaseNotes.html @@ -1749,7 +1749,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/search.html b/search.html index 8cb93ae9..b3549820 100644 --- a/search.html +++ b/search.html @@ -1750,7 +1750,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond
  • diff --git a/searchindex.js b/searchindex.js index 27da233d..c64634c3 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["GettingStarted", "api/5G_Toolkit/5Gtoolkit", "api/5G_Toolkit/CRC/crc", "api/5G_Toolkit/CRC/crc.crcDecoder", "api/5G_Toolkit/CRC/crc.crcEncoder", "api/5G_Toolkit/ChannelCoder/HammingCoder/channelCoder.hamming", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingReceiver", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingTransmitter", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.ldpcParameters", "api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar", "api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.components", "api/5G_Toolkit/ChannelCoder/ReedMullerCoder/channelCoder.reedMuller", "api/5G_Toolkit/ChannelCoder/channelCoder", "api/5G_Toolkit/ChannelModels/antennaArray", "api/5G_Toolkit/ChannelModels/channelGenerator", "api/5G_Toolkit/ChannelModels/channelModels", "api/5G_Toolkit/ChannelModels/nodeMobility", "api/5G_Toolkit/ChannelModels/parameterGenerator", "api/5G_Toolkit/ChannelModels/simulationLayout", "api/5G_Toolkit/ChannelProcessing/channelProcessing", "api/5G_Toolkit/ChannelProcessing/channelProcessing.addNoise", "api/5G_Toolkit/ChannelProcessing/channelProcessing.applyChannel", "api/5G_Toolkit/Interleaver/interleavers", "api/5G_Toolkit/Interleaver/interleavers.lpdc.bitInterleaver", "api/5G_Toolkit/Interleaver/interleavers.pbchInterleavers", "api/5G_Toolkit/Interleaver/interleavers.polar.channelInterleaver", "api/5G_Toolkit/Interleaver/interleavers.polar.inputBitInterleaver", "api/5G_Toolkit/Interleaver/interleavers.polar.subBlockInterleaver", "api/5G_Toolkit/MIMOProcessing/codeBooks", "api/5G_Toolkit/MIMOProcessing/mimoProcessing", "api/5G_Toolkit/OFDM/ofdm", "api/5G_Toolkit/OFDM/ofdm.demodulator", "api/5G_Toolkit/OFDM/ofdm.modulator", "api/5G_Toolkit/OFDM/ofdm.transformDecoding", "api/5G_Toolkit/OFDM/ofdm.transformDecoding5G", "api/5G_Toolkit/OFDM/ofdm.transformprecoding", "api/5G_Toolkit/OFDM/ofdm.transformprecoding5G", "api/5G_Toolkit/PayloadGeneration/DCI/payloadGeneration.dci", "api/5G_Toolkit/PayloadGeneration/MIB/payloadGeneration.mib", "api/5G_Toolkit/PayloadGeneration/payloadGeneration", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.crc", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.mib", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.pbchInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.pbchScrambler", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.polarCoder", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.channelInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.subblockInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.resourceMapping", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rnti", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.crc", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhy", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhyDecoder", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhy", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhyDecoder", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/PDSCH", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/ReceiverUpperPHY", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/TransmitterUpperPHY", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockConcatenation", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockSegmentation", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.computeTBsize", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.layermapping", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ldpcCodec", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitInterleaver", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMapping", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMappingDMRS", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.transportblockProcessing", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.crc", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/Format0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceDemappingFormat0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceMappingFormat0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/SequenceGenerationFormat0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/DespreadingFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/Format1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceDemappingFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceMappingFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SequenceGenerationFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SpreadingFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/Format2_3_4", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.components", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/SBL/channelCoder.sbl", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.ChannelCoding", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.polarCodec", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.sblCodec", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockConcatenation/physicalChannels.pucch.components.CodeBlockConcatenation", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockSegmentation/physicalChannels.pucch.components.CodeBlockSegmentation", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/PUCCHComponents", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ChannelCodingOfSmallBlockLength/ratematcher.ChannelCodingOfSmallBlockLength", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/ratematcher.polarcoder", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ratematcher", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.Interleaver", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.polarCodec", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.sbl", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.deScrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rntiMasking", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.scrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.demapper", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.mapper", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHReceiver/PUCCHReceiver", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHTransmitter/PUCCHTransmitter", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format3", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format4", "api/5G_Toolkit/PhysicalChannels/PUCCH/PUCCH", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCH", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHDecoderUpperPhy", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHUpperPhy", "api/5G_Toolkit/PhysicalChannels/physicalChannels", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pbch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pdcch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pdsch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.prach", "api/5G_Toolkit/PhysicalChannels/physicalChannels.psbch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pscch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pucch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pusch", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.dftDoA", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.espritDoA", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.musicDoA", "api/5G_Toolkit/Positioning/Angle_Estimation/positioning.doaEstimation", "api/5G_Toolkit/Positioning/Optimization_Algorithms/DoA/positioning.optimization_Algorithms.DoA", "api/5G_Toolkit/Positioning/Optimization_Algorithms/Hybrid/positioning.optimization_Algorithms.Hybrid", "api/5G_Toolkit/Positioning/Optimization_Algorithms/TDoA/positioning.optimization_Algorithms.TDoA", "api/5G_Toolkit/Positioning/Optimization_Algorithms/ToA/positioning.optimization_Algorithms.leastSquareToA", "api/5G_Toolkit/Positioning/Optimization_Algorithms/positioning.optimization_Algorithms", "api/5G_Toolkit/Positioning/Position_Estimation/positioning.position_Estimation", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.dftToA", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.espritToA", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.musicToA", "api/5G_Toolkit/Positioning/Time_Estimation/positioning.toaEstimation", "api/5G_Toolkit/Positioning/positioning", "api/5G_Toolkit/Ratematcher/LDPC/BitSelection/ratematcher.ldpc.bitSelection", "api/5G_Toolkit/Ratematcher/LDPC/Interleavers/ratematcher.ldpc.bitInterleaver", "api/5G_Toolkit/Ratematcher/LDPC/ratematcher.ldpc", "api/5G_Toolkit/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection", "api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers", "api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver", "api/5G_Toolkit/Ratematcher/PolarCoder/ratematcher.polarcoder", "api/5G_Toolkit/Ratematcher/ratematcher", "api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceDemappingFormat0", "api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceMappingFormat0", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/DespreadingFormat1", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceDemappingFormat1", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceMappingFormat1", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/SpreadingFormat1", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format0", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format1", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format2", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format3", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format4", "api/5G_Toolkit/ResourceMapping/resourceMapping", "api/5G_Toolkit/ResourceMapping/resourceMapping.coreset", "api/5G_Toolkit/ResourceMapping/resourceMapping.csirs", "api/5G_Toolkit/ResourceMapping/resourceMapping.dmrsPDSCH", "api/5G_Toolkit/ResourceMapping/resourceMapping.pdcch", "api/5G_Toolkit/ResourceMapping/resourceMapping.prs", "api/5G_Toolkit/ResourceMapping/resourceMapping.pscch", "api/5G_Toolkit/ResourceMapping/resourceMapping.ptrsPDSCH", "api/5G_Toolkit/ResourceMapping/resourceMapping.pucch", "api/5G_Toolkit/ResourceMapping/resourceMapping.s_ssb", "api/5G_Toolkit/ResourceMapping/resourceMapping.searchSpace", "api/5G_Toolkit/ResourceMapping/resourceMapping.ssb", "api/5G_Toolkit/ResourceMapping/resourceMapping.ssbGeneration", "api/5G_Toolkit/Scrambler/scrambler", "api/5G_Toolkit/Scrambler/scrambler.deScrambler", "api/5G_Toolkit/Scrambler/scrambler.rntiMasking", "api/5G_Toolkit/Scrambler/scrambler.scrambler", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration1", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration2", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat0", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat1", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.csirs", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.dmrs", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pnSequence", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.prs", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pss", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.spss", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.srs", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.sss", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.ssss", "api/5G_Toolkit/SymbolMapping/symbolMapping", "api/5G_Toolkit/SymbolMapping/symbolMapping.demapper", "api/5G_Toolkit/SymbolMapping/symbolMapping.mapper", "api/5G_Toolkit/[N]Configurations/configurations", "api/5G_Toolkit/[N]Configurations/configurations.csiConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.generateValidSSBParameters", "api/5G_Toolkit/[N]Configurations/configurations.pdschLowerPhyConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.pdschUpperPhyConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.srsConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.ssbConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.timeFrequency_5GParameters", "api/5G_Toolkit/[N]ReceiverAlgorithms/CFOEstimation/cfoEstimation", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPBCH", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDCCH", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDSCH", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.dmrsParameterDetection", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.pssDetection", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.sssDetection", "api/5G_Toolkit/[N]ReceiverAlgorithms/Downlink_CSI_Acquisition/channelEstimationCSIRS", "api/5G_Toolkit/[N]ReceiverAlgorithms/Positioning/channelEstimationSRS", "api/5G_Toolkit/[N]ReceiverAlgorithms/receiverAlgorithms", "api/5G_Toolkit/[N]Scheduler/PDCCHScheduler/pdcchScheduler", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/ResourceAllocation/roundRobinScheduler", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/linkAdpatation", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/rankAdaptation", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/resourceAllocation", "api/5G_Toolkit/[N]Scheduler/scheduler", "api/Built_using_5G_Toolkit/builtUsing5GToolkit", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/DL_Time(Frame)_Synchronization_using_PSS_in_5G", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/Time_Synchronization", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[BS-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[UE-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G", "api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR", "api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/CFO_Correction", "api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR", "api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/Downlink_Synchronization", "api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication", "api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication_using_PDSCH", "api/Integration_with_SDR/Integration_with_SDRs", "api/LearningResources/GW-IC5GS", "api/LearningResources/LearningResources", "api/License/license", "api/Preview_of_Next_Release/FeatureList", "api/Previous_Versions/PreviousVersions", "api/Projects/Project1/learning2Demap", "api/Projects/Project10/[SLS]Hybrid_Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA_AoA", "api/Projects/Project10/project10", "api/Projects/Project2/Blocking Probability for Different AL distributions", "api/Projects/Project2/Blocking Probability for Different ALs", "api/Projects/Project2/Blocking Probability vs Number of Candidates per Aggregation Level", "api/Projects/Project2/Impact of Scheduling Strategy on Blocking Probability", "api/Projects/Project2/Impact of UEs Capability on Blocking Probability", "api/Projects/Project2/Minimum CORESET Size for a Target Blocking Probability", "api/Projects/Project2/project2", "api/Projects/Project3/project3", "api/Projects/Project4/project4", "api/Projects/Project5/project5", "api/Projects/Project6/project6", "api/Projects/Project7/E2E_Learning_for_Physical_Layer", "api/Projects/Project8/project8", "api/Projects/Project9/project9", "api/Projects/Projects", "api/Tutorials/Tutorial1/BER_Analysis_of_Hamming_Codes", "api/Tutorials/Tutorial10/Link_Level_and_System_Level_Simulation_for_Physical_Downlink_Control_Channels", "api/Tutorials/Tutorial10/tutorial9", "api/Tutorials/Tutorial12/SVD_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks", "api/Tutorials/Tutorial13/Type1_Codebook_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks", "api/Tutorials/Tutorial14/Beam_management_in_5G_Networks_using_SSB[P1-Procedure]", "api/Tutorials/Tutorial18[PDCCH_Blind_Decoding]/PDCCH_Blind_Decoding", "api/Tutorials/Tutorial2/Tutorial2_ReedMullerCodes", "api/Tutorials/Tutorial21+/E2E_Downlink_TDoA_Based_Positioning_for_millimeter_Wave_5G_Networks_Deployed_in_Indoor_Factory", "api/Tutorials/Tutorial21+/E2E_Downlink_ToA_Based_Positioning_in_5G_Networks", "api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA", "api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-ToA", "api/Tutorials/Tutorial25+/[LLS]DL-AoD_Based_Positioning_in_5G_Networks", "api/Tutorials/Tutorial25+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-AoA", "api/Tutorials/Tutorial27/Performance_Comparison_of_OFDM_and_DFT-s-OFDM", "api/Tutorials/Tutorial28/Downliink_Channel_Estimation_using_CSI-RS", "api/Tutorials/Tutorial3/Tutorial3_PolarCodes", "api/Tutorials/Tutorial4/Tutorial4_LDPCCodes", "api/Tutorials/Tutorial4/aggregateResults", "api/Tutorials/Tutorial5/1.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Outdoor_Terrains", "api/Tutorials/Tutorial5/10.Spatially_Consistent_Channel_Modelling_for_Mobility_Simulations", "api/Tutorials/Tutorial5/2.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Factory_Terrain", "api/Tutorials/Tutorial5/3.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Hotspot", "api/Tutorials/Tutorial5/4.[Mobility]Channel_Generation_for_Outdoor_Mobile_User_in_Rural_Macro_Hexagonal_Site", "api/Tutorials/Tutorial5/5.[Mobility2x]Channel_Generation_for_Dual_Mobility_Scenarios_in_5G_and_Beyond", "api/Tutorials/Tutorial5/6.Generate_UMa_Channel_for_Multiple_Frequencies", "api/Tutorials/Tutorial5/7.Propagation_Characteristics_of_Outdoor_Terrains", "api/Tutorials/Tutorial5/8.Beam_Domain and Delay_Domain_Sparsity_in_Wireless_Channel_Models", "api/Tutorials/Tutorial5/tutorial5", "api/Tutorials/Tutorial6/Downlink_Synchronization_procedure_using_SSB", "api/Tutorials/Tutorial7/Link_Level_Simulation_for_Physical_Broadcast_Channels_using_CDL-A_Channels", "api/Tutorials/Tutorial8/pucchFormat0_Tutorial", "api/Tutorials/Tutorial9/Link_Level_Simulation_for_PDSCH_in_5G", "api/Tutorials/Tutorials", "api/WeekChallenge/challenge", "api/WeekChallenge/challengeArxiv", "api/WeekChallenge/challengeOftheWeek", "detailedInstall", "detailedInstall2", "index", "install", "install2", "releaseNotes", "test_GettingStarted"], "filenames": ["GettingStarted.rst", "api/5G_Toolkit/5Gtoolkit.rst", "api/5G_Toolkit/CRC/crc.rst", "api/5G_Toolkit/CRC/crc.crcDecoder.rst", "api/5G_Toolkit/CRC/crc.crcEncoder.rst", "api/5G_Toolkit/ChannelCoder/HammingCoder/channelCoder.hamming.rst", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.rst", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingReceiver.rst", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingTransmitter.rst", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.ldpcParameters.rst", "api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.rst", "api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.components.rst", "api/5G_Toolkit/ChannelCoder/ReedMullerCoder/channelCoder.reedMuller.rst", "api/5G_Toolkit/ChannelCoder/channelCoder.rst", "api/5G_Toolkit/ChannelModels/antennaArray.rst", "api/5G_Toolkit/ChannelModels/channelGenerator.rst", "api/5G_Toolkit/ChannelModels/channelModels.rst", "api/5G_Toolkit/ChannelModels/nodeMobility.rst", "api/5G_Toolkit/ChannelModels/parameterGenerator.rst", "api/5G_Toolkit/ChannelModels/simulationLayout.rst", "api/5G_Toolkit/ChannelProcessing/channelProcessing.rst", "api/5G_Toolkit/ChannelProcessing/channelProcessing.addNoise.rst", "api/5G_Toolkit/ChannelProcessing/channelProcessing.applyChannel.rst", "api/5G_Toolkit/Interleaver/interleavers.rst", "api/5G_Toolkit/Interleaver/interleavers.lpdc.bitInterleaver.rst", "api/5G_Toolkit/Interleaver/interleavers.pbchInterleavers.rst", "api/5G_Toolkit/Interleaver/interleavers.polar.channelInterleaver.rst", "api/5G_Toolkit/Interleaver/interleavers.polar.inputBitInterleaver.rst", "api/5G_Toolkit/Interleaver/interleavers.polar.subBlockInterleaver.rst", "api/5G_Toolkit/MIMOProcessing/codeBooks.rst", "api/5G_Toolkit/MIMOProcessing/mimoProcessing.rst", "api/5G_Toolkit/OFDM/ofdm.rst", "api/5G_Toolkit/OFDM/ofdm.demodulator.rst", "api/5G_Toolkit/OFDM/ofdm.modulator.rst", "api/5G_Toolkit/OFDM/ofdm.transformDecoding.rst", "api/5G_Toolkit/OFDM/ofdm.transformDecoding5G.rst", "api/5G_Toolkit/OFDM/ofdm.transformprecoding.rst", "api/5G_Toolkit/OFDM/ofdm.transformprecoding5G.rst", "api/5G_Toolkit/PayloadGeneration/DCI/payloadGeneration.dci.rst", "api/5G_Toolkit/PayloadGeneration/MIB/payloadGeneration.mib.rst", "api/5G_Toolkit/PayloadGeneration/payloadGeneration.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.crc.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.mib.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.pbchInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.pbchScrambler.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.polarCoder.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.channelInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.subblockInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.resourceMapping.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhy.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhyDecoder.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhy.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhyDecoder.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/PDSCH.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/ReceiverUpperPHY.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/TransmitterUpperPHY.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockConcatenation.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockSegmentation.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.computeTBsize.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.layermapping.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ldpcCodec.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMapping.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMappingDMRS.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.transportblockProcessing.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/Format0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceDemappingFormat0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceMappingFormat0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/SequenceGenerationFormat0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/DespreadingFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/Format1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceDemappingFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceMappingFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SequenceGenerationFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SpreadingFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/Format2_3_4.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.components.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/SBL/channelCoder.sbl.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.ChannelCoding.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.polarCodec.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.sblCodec.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockConcatenation/physicalChannels.pucch.components.CodeBlockConcatenation.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockSegmentation/physicalChannels.pucch.components.CodeBlockSegmentation.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/PUCCHComponents.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ChannelCodingOfSmallBlockLength/ratematcher.ChannelCodingOfSmallBlockLength.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/ratematcher.polarcoder.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ratematcher.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.Interleaver.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.polarCodec.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.sbl.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.deScrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rntiMasking.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.demapper.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.mapper.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHReceiver/PUCCHReceiver.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHTransmitter/PUCCHTransmitter.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format3.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format4.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/PUCCH.rst", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCH.rst", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHDecoderUpperPhy.rst", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHUpperPhy.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pbch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pdcch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pdsch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.prach.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.psbch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pscch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pucch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pusch.rst", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.dftDoA.rst", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.espritDoA.rst", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.musicDoA.rst", "api/5G_Toolkit/Positioning/Angle_Estimation/positioning.doaEstimation.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/DoA/positioning.optimization_Algorithms.DoA.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/Hybrid/positioning.optimization_Algorithms.Hybrid.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/TDoA/positioning.optimization_Algorithms.TDoA.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/ToA/positioning.optimization_Algorithms.leastSquareToA.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/positioning.optimization_Algorithms.rst", "api/5G_Toolkit/Positioning/Position_Estimation/positioning.position_Estimation.rst", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.dftToA.rst", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.espritToA.rst", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.musicToA.rst", "api/5G_Toolkit/Positioning/Time_Estimation/positioning.toaEstimation.rst", "api/5G_Toolkit/Positioning/positioning.rst", "api/5G_Toolkit/Ratematcher/LDPC/BitSelection/ratematcher.ldpc.bitSelection.rst", "api/5G_Toolkit/Ratematcher/LDPC/Interleavers/ratematcher.ldpc.bitInterleaver.rst", "api/5G_Toolkit/Ratematcher/LDPC/ratematcher.ldpc.rst", "api/5G_Toolkit/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.rst", "api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.rst", "api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.rst", "api/5G_Toolkit/Ratematcher/PolarCoder/ratematcher.polarcoder.rst", "api/5G_Toolkit/Ratematcher/ratematcher.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceDemappingFormat0.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceMappingFormat0.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/DespreadingFormat1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceDemappingFormat1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceMappingFormat1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/SpreadingFormat1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format0.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format2.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format3.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format4.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.coreset.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.csirs.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.dmrsPDSCH.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.pdcch.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.prs.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.pscch.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.ptrsPDSCH.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.pucch.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.s_ssb.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.searchSpace.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.ssb.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.ssbGeneration.rst", "api/5G_Toolkit/Scrambler/scrambler.rst", "api/5G_Toolkit/Scrambler/scrambler.deScrambler.rst", "api/5G_Toolkit/Scrambler/scrambler.rntiMasking.rst", "api/5G_Toolkit/Scrambler/scrambler.scrambler.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration1.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration2.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat0.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat1.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.csirs.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.dmrs.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pnSequence.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.prs.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pss.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.spss.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.srs.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.sss.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.ssss.rst", "api/5G_Toolkit/SymbolMapping/symbolMapping.rst", "api/5G_Toolkit/SymbolMapping/symbolMapping.demapper.rst", "api/5G_Toolkit/SymbolMapping/symbolMapping.mapper.rst", "api/5G_Toolkit/[N]Configurations/configurations.rst", "api/5G_Toolkit/[N]Configurations/configurations.csiConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.generateValidSSBParameters.rst", "api/5G_Toolkit/[N]Configurations/configurations.pdschLowerPhyConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.pdschUpperPhyConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.srsConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.ssbConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.timeFrequency_5GParameters.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/CFOEstimation/cfoEstimation.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPBCH.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDCCH.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDSCH.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.dmrsParameterDetection.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.pssDetection.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.sssDetection.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/Downlink_CSI_Acquisition/channelEstimationCSIRS.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/Positioning/channelEstimationSRS.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/receiverAlgorithms.rst", "api/5G_Toolkit/[N]Scheduler/PDCCHScheduler/pdcchScheduler.rst", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/ResourceAllocation/roundRobinScheduler.rst", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/linkAdpatation.rst", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/rankAdaptation.rst", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/resourceAllocation.rst", "api/5G_Toolkit/[N]Scheduler/scheduler.rst", "api/Built_using_5G_Toolkit/builtUsing5GToolkit.rst", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/DL_Time(Frame)_Synchronization_using_PSS_in_5G.ipynb", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/Time_Synchronization.rst", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[BS-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.ipynb", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[UE-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.ipynb", "api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.ipynb", "api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/CFO_Correction.rst", "api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.ipynb", "api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/Downlink_Synchronization.rst", "api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication.rst", "api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication_using_PDSCH.ipynb", "api/Integration_with_SDR/Integration_with_SDRs.rst", "api/LearningResources/GW-IC5GS.rst", "api/LearningResources/LearningResources.rst", "api/License/license.md", "api/Preview_of_Next_Release/FeatureList.rst", "api/Previous_Versions/PreviousVersions.rst", "api/Projects/Project1/learning2Demap.ipynb", "api/Projects/Project10/[SLS]Hybrid_Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA_AoA.ipynb", "api/Projects/Project10/project10.rst", "api/Projects/Project2/Blocking Probability for Different AL distributions.ipynb", "api/Projects/Project2/Blocking Probability for Different ALs.ipynb", "api/Projects/Project2/Blocking Probability vs Number of Candidates per Aggregation Level.ipynb", "api/Projects/Project2/Impact of Scheduling Strategy on Blocking Probability.ipynb", "api/Projects/Project2/Impact of UEs Capability on Blocking Probability.ipynb", "api/Projects/Project2/Minimum CORESET Size for a Target Blocking Probability.ipynb", "api/Projects/Project2/project2.rst", "api/Projects/Project3/project3.rst", "api/Projects/Project4/project4.rst", "api/Projects/Project5/project5.rst", "api/Projects/Project6/project6.rst", "api/Projects/Project7/E2E_Learning_for_Physical_Layer.ipynb", "api/Projects/Project8/project8.rst", "api/Projects/Project9/project9.rst", "api/Projects/Projects.rst", "api/Tutorials/Tutorial1/BER_Analysis_of_Hamming_Codes.ipynb", "api/Tutorials/Tutorial10/Link_Level_and_System_Level_Simulation_for_Physical_Downlink_Control_Channels.ipynb", "api/Tutorials/Tutorial10/tutorial9.rst", "api/Tutorials/Tutorial12/SVD_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.ipynb", "api/Tutorials/Tutorial13/Type1_Codebook_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.ipynb", "api/Tutorials/Tutorial14/Beam_management_in_5G_Networks_using_SSB[P1-Procedure].ipynb", "api/Tutorials/Tutorial18[PDCCH_Blind_Decoding]/PDCCH_Blind_Decoding.ipynb", "api/Tutorials/Tutorial2/Tutorial2_ReedMullerCodes.ipynb", "api/Tutorials/Tutorial21+/E2E_Downlink_TDoA_Based_Positioning_for_millimeter_Wave_5G_Networks_Deployed_in_Indoor_Factory.ipynb", "api/Tutorials/Tutorial21+/E2E_Downlink_ToA_Based_Positioning_in_5G_Networks.ipynb", "api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA.ipynb", "api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-ToA.ipynb", "api/Tutorials/Tutorial25+/[LLS]DL-AoD_Based_Positioning_in_5G_Networks.ipynb", "api/Tutorials/Tutorial25+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-AoA.ipynb", "api/Tutorials/Tutorial27/Performance_Comparison_of_OFDM_and_DFT-s-OFDM.ipynb", "api/Tutorials/Tutorial28/Downliink_Channel_Estimation_using_CSI-RS.ipynb", "api/Tutorials/Tutorial3/Tutorial3_PolarCodes.ipynb", "api/Tutorials/Tutorial4/Tutorial4_LDPCCodes.ipynb", "api/Tutorials/Tutorial4/aggregateResults.ipynb", "api/Tutorials/Tutorial5/1.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Outdoor_Terrains.ipynb", "api/Tutorials/Tutorial5/10.Spatially_Consistent_Channel_Modelling_for_Mobility_Simulations.ipynb", "api/Tutorials/Tutorial5/2.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Factory_Terrain.ipynb", "api/Tutorials/Tutorial5/3.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Hotspot.ipynb", "api/Tutorials/Tutorial5/4.[Mobility]Channel_Generation_for_Outdoor_Mobile_User_in_Rural_Macro_Hexagonal_Site.ipynb", "api/Tutorials/Tutorial5/5.[Mobility2x]Channel_Generation_for_Dual_Mobility_Scenarios_in_5G_and_Beyond.ipynb", "api/Tutorials/Tutorial5/6.Generate_UMa_Channel_for_Multiple_Frequencies.ipynb", "api/Tutorials/Tutorial5/7.Propagation_Characteristics_of_Outdoor_Terrains.ipynb", "api/Tutorials/Tutorial5/8.Beam_Domain and Delay_Domain_Sparsity_in_Wireless_Channel_Models.ipynb", "api/Tutorials/Tutorial5/tutorial5.rst", "api/Tutorials/Tutorial6/Downlink_Synchronization_procedure_using_SSB.ipynb", "api/Tutorials/Tutorial7/Link_Level_Simulation_for_Physical_Broadcast_Channels_using_CDL-A_Channels.ipynb", "api/Tutorials/Tutorial8/pucchFormat0_Tutorial.rst", "api/Tutorials/Tutorial9/Link_Level_Simulation_for_PDSCH_in_5G.ipynb", "api/Tutorials/Tutorials.rst", "api/WeekChallenge/challenge.rst", "api/WeekChallenge/challengeArxiv.rst", "api/WeekChallenge/challengeOftheWeek.rst", "detailedInstall.rst", "detailedInstall2.rst", "index.rst", "install.rst", "install2.rst", "releaseNotes.md", "test_GettingStarted.ipynb"], "titles": ["Getting Started", "API Documentation", "Cyclic Redundancy Check", "CRC Decoder", "CRC Encoder", "Hamming Coder", "Low Density Parity Check Codes", "Codeblock Processing: Receiver", "Codeblock Processing: Transmitter", "LDPC Parameters Computation", "Polar Codes", "Code-block Processing: Transmitter", "Reed Muller Codes", "Forward Error Correction", "Antenna Array", "Channel Generator", "Channel Models", "Node Mobility", "Channel Parameter Generator", "Simulation Layout", "Channel Processing and Hardware Impairment", "Add Noise and CFO at Receiver", "Apply Channel to Transmitted Signal", "Interleavers", "Bit Interleavers", "PBCH Interleaver", "Channel Interleaver", "Input Bit Interleaver", "Sub Block Interleaver", "Code-Books", "MIMO Processing", "Orthogonal Frequency Division Multiplexing", "OFDM: Demodulator", "OFDM: Modulator", "Transform Decoding", "Transform Decoding for 5G", "Transform Precoding", "Transform Precoding for 5G", "Downlink Control Information (DCI)", "Master Information Block (MIB)", "Payload Generation", "Cyclic Redundency Check", "Cyclic Redundancy Check", "Input Bit Interleaver", "Code-block Processing: Transmitter", "PBCH Payload", "Master Information Block (MIB)", "Modulation", "Demapper", "Symbol Mapping", "Cyclic Redundency Check", "Cyclic Redundancy Check", "PBCH Scrambler", "Cyclic Redundancy Check", "Polar Coder", "Polar Codes", "Rate Matching", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Demapper", "RNTI Masking", "RNTI Masking", "Scrambling: PDCCH", "Descrambler", "Scrambling", "Cyclic Redundency Check", "Cyclic Redundancy Check", "Input Bit Interleaver", "Code-block Processing: Transmitter", "Modulation", "Demapper", "Symbol Mapping", "Polar Coder", "Polar Codes", "Rate Matching", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Demapper", "RNTI Masking", "RNTI Masking", "Scrambling: PDCCH", "Descrambler", "Scrambling", "PDSCH: Lower Physical layer Chain", "PDSCH: Lower Physical layer Chain Decoder", "PDSCH: Upper Physical layer Chain", "PDSCH: Upper Physical layer Chain Decoder", "PDSCH Chain", "Receiver Processing", "Transmitter Processing", "Code Block Concatenation", "Code Block Segmentation", "Transport Block Size Computation", "Layer Mapper", "Low Density Parity Check Codes", "Modulation", "Demapper", "Symbol Mapping", "Rate Matching", "Bit Interleaver for LDPC", "Rate matching for LDPC", "Physical Downlink Shared Channel-DMRS", "Physical Downlink Shared Channel-DMRS", "Scrambling: PDSCH", "Descrambler", "Scrambling", "Transport Block Processing", "Cyclic Redundency Check", "Cyclic Redundancy Check", "Input Bit Interleaver", "Code-block Processing: Transmitter", "Modulation", "Demapper", "Symbol Mapping", "Polar Coder", "Polar Codes", "Rate Matching", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Demapper", "RNTI Masking", "RNTI Masking", "Scrambling: PDCCH", "Descrambler", "Scrambling", "PUCCH Format 0", "Format0", "Resource De-Mapping", "Resource Mapping", "Sequence Generation", "PUCCH Format 1", "De-Spreading", "Format1", "Resource De-Mapping", "Resource Mapping", "Sequence Generation", "Spreading", "PUCCH Format 2", "Format 2,3,4", "Polar Codes", "Code-block Processing: Transmitter", "Channel Coding of Small Block Length", "Channel Coder", "Polar Codes", "Channel Coding of Small Block Length", "Code Block Concatenation", "Code Block Segmentation", "PUCCH Components", "Rate matching for Small Block Length 5G", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Rate matching for Polar coder", "Rate matching", "Rate Matching", "Sub Block Interleaver for Polar Coder", "Rate matching for Polar coder", "Rate Matching for Polar Coder", "Rate matching for Small Block Length 5G", "Scrambling", "Descrambler", "RNTI Masking", "Scrambler", "Scrambling: PUCCH", "Descrambler", "Scrambling", "Symbol Mapping", "Demapper", "Mapper", "Modulation", "Demapper", "Symbol Mapping", "PUCCH Receiver", "PUCCH Transmitter", "PUCCH Format 3", "PUCCH Format 4", "PUCCH", "PUSCH Chain", "Receiver Chain", "Transmitter Chain", "Physical Channels", "Physical Broadcast Channel (PBCH)", "Physical Downlink Control Channel (PDCCH)", "Physical Downlink Shared Channel (PDSCH)", "Physical Random Access Channel (PRACH)", "Physical Sidelink Broadcast Channel (PSBCH)", "Physical Sidelink Control Channel (PSCCH)", "Physical Uplink Control Channel (PUCCH)", "Physical Uplink Shared Channel (PUSCH)", "DFT based AoA Method", "ESPRIT based DoA Estimation", "MUSIC based DoA Estimation", "Direction of Arrival Estimation", "Least Squares based Position Estimator for DoA", "Least Square based Position Estimator for Hybrid ToA/mRTT and DoA", "Least Squares based Position Estimator for TDoA", "Least Squares based Position Estimator for ToA/mRTT", "Optimization Algorithms", "<no title>", "DFT based Method", "ESPRIT based ToA Estimation", "MUSIC based ToA Estimation", "Time of Arrival (ToA)/Delay Estimation", "Position Estimation", "Bit Selection for LDPC", "Bit Interleaver for LDPC", "Rate matching for LDPC", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Rate matching for Polar coder", "Rate matching", "PUCCH Format 0 Resource De-Mapping", "PUCCH Format 0 Resource Mapping", "PUCCH Format-1 De-Spreading", "PUCCH Format-1 Resource De-Mapping", "PUCCH Format-1 Resource Mapping", "PUCCH Format-1 Spreading", "PUCCH Format-0", "PUCCH Format-1", "PUCCH Format-2", "PUCCH Format-3", "PUCCH Format-4", "Resource Mapping", "Control Resource Set", "Channel state Information reference signal (CSI-RS)", "Physical Downlink Shared Channel-DMRS", "Physical Downlink Control Channel (PDCCH)", "Positioning Reference Signal (PRS)", "Physical Sidelink Control Channel (PSCCH)", "Physical Downlink Shared Channel-PTRS", "Physical Uplink Control Channel (PUCCH)", "Sidelink Synchronization Signal Block (SSB) Grid Generation", "Search Space Set", "Synchronization Signal Block (SSB) Grid Generation", "Synchronization Signal Block (SSB) Resource Mapping", "Scrambling", "Descrambler", "RNTI Masking", "Scrambler", "Sequence Generation", "Low PAPR Sequence Type 1", "Low PAPR Sequence Type 2", "PUCCH Format 0 Sequence", "PUCCH Format 1 Sequence", "Channel State Information Reference Sequence (CSI-RS)", "Demodulation Reference Sequence (DMRS)", "Pseudo Random (PN) Sequence", "Positioning Reference Sequence (PRS)", "Primary Synchronization Signal", "Primary Synchronization Signal for Sidelink (S-PSS)", "Sounding Reference Sequence (SRS)", "Secondary Synchronization Signal", "Secondary Synchronization Signal for Sidelink (S-SSS)", "Symbol Mapping", "Demapper", "Mapper", "5G Configurations", "Channel state information reference signal (CSI-RS) Configurations", "SSB/PBCH Configurations", "PDSCH Lower Physical Layer Configurations", "PDSCH Upper Physical Layer Configurations", "Sounding Reference Signal (SRS) Configurations", "SSB/PBCH Configurations", "Time-Frequency 5G-Configurations", "Carrier Frequency Offset (CFO) Estimation", "Channel Estimation and Symbol Equalization for PBCH", "Channel Estimation and Symbol Equalization for PDCCH", "Channel Estimation and Symbol Equalization for PDSCH", "SSB Parameters Estimation", "Time Synchronization and PSS/Cell ID-2 Detection", "SSS/Cell ID-1 Detection", "Downlink Channel Estimation using CSI-RS", "Uplink Channel Estimation using SRS for Positioning", "Receiver Algorithms", "PDCCH Scheduler", "Round Robin Scheduler", "Link Adaptation", "Rank Adaptation", "Resource Allocation", "Scheduler", "Research work carried out using 5G Toolkit", "Downlink Time/Frame Synchronization using PSS in 5G Networks", "Time/OFDM Symbol Synchronization using PSS in 5G", "[BS Side Implementation]-Downlink Time/Frame Synchronization using PSS in 5G Networks", "[UE Side Implementation]-Downlink Time/Frame Synchronization using PSS in 5G Networks", "Downlink Synchronization in 5G Networks: SSB", "Carrier Frequency Offset (CFO) Estimation and Correction in 5G Networks", "Downlink Synchronization in 5G Networks: SSB", "Downlink Synchronization using SSB in 5G Networks", "Downlink Data Communication using PDSCH in 5G Networks", "Downlink Data Communication in 5G Networks", "Integration with SDRs", "Introductory Course on 5G Standards", "Learning Resources", "License", "Tentetive list of Feature", "Previous Versions", "Learning to Demap: Database Generation, Preprocessing, Postprocessing, Training, Validation and Inferences from the LLRNet", "Performance comparison between different Positioning Methods for millimeter wave 5G Networks", "Physical downlink control Channel in 5G", "Analysis of Blocking Probability for different Coverage Conditions", "Variation in Blocking Probability with Different Aggregation Levels (ALs)", "Analyzing the effect of Number of Candidates on Blocking Probability", "Analyzing the Impact of Scheduling Strategy on Blocking Probability", "Analyze the Impact of UE Capability on Blocking Probability", "Selection of minimum CORESET Size for a Given Target Block Probability", "Blockage Probability Analysis for RedCap Devices in 5G Networks", "Channel Interpolation based on SRCNN and DnCNN", "Comparative Study of Reed Muller codes, Polar Codes and LDPC codes", "Channel Quality Estimation in 5G and Beyond Networks", "Hybrid Automatic repeat Request in 5G and Beyond", "Constellation Learning in an AWGN Channel", "Downlink Synchronization using SSB in 5G systems", "Uplink Synchronization using PRACH in 5G systems", "Projects", "Hamming Codes", "Link Level Simulation for Physical Downlink Control Channels", "SVD based Downlink Precoding and Combining for Massive MIMO in 5G Networks", "SVD based Downlink Precoding and Combining for Massive MIMO 5G Networks", "Type-1 codebook based Downlink Precoding and Combining for Massive MIMO 5G Networks", "P1 Procedure: Beam management in 5G networks using SSB", "Search space, CORESET and blind decoding of PDCCH channels in 5G Networks", "Reed Muller Codes in 5G", "Downlink TDoA Based Positioning for Industrial IoT Devices in Millimeter Wave 5G Networks", "Downlink Time of Arrival based Positioning in 5G and Beyond Networks", "Positioning the Outdoor UEs using 5G Urban Micro cell sites based Uplink Time Difference of Arrival (UL-TDoA) method", "Positioning the Indoor Open Office UEs using Uplink ToA method", "Downlink Angle of Departure based Positioning for Rural Macro Terrain in 5G and Beyond Network", "Uplink AoA (UL-AoA) based Localization of the Indoor Factory UEs using millimeter 5G Networks", "Performance comparison of OFDM and DFT-s-OFDM in 5G Networks", "Downlink Channel Estimation using CSI-RS", "Polar Codes in 5G", "Low Density Parity Check (LDPC) Codes in 5G", "<no title>", "Wireless Channel Generation for Outdoor Terrains deployed in Hexagonal Geometry", "Generate Spatially Consistent Statistical Channels for Realistic Simulations", "Wireless Channel Generation for a Dense High Indoor Factory Terrain Deployed at millimeter band.", "Genarating the Wireless Channel for Indoor Open Office Terrain", "Wireless Channel Generation for Outdoor Mobile User Connected to Rural Macro Site", "Channel Generation for Dual Mobility Scenarios in 5G and Beyond", "Wireless Channel Generation for Multiple Carrier Frequencies", "Propagation Characteristics of Outdoor Terrains", "Beam Domain and Delay Domain Sparsity in Wireless Channel Models", "Detailed Tutorials on 3GPP Channel Models", "Initial Access in 5G", "Coverage Evaluation of Physical Broadcast Channels (PBCH) in 5G Networks", "BER Performance of PUCCH Format 0", "Link Level Simulation for Physical Downlink Shared Channel in 5G", "Tutorials", "Challenge Of this Week", "Arxiv-ed Challenges", "Solution of this Months Problems", "Install 5G Toolkit", "Install 5G Toolkit", "5G Toolkit", "Install 5G Toolkit", "Install 5G Toolkit", "Release Notes", "Getting Started with 5G Toolkit"], "terms": {"\u00bd": [0, 358], "\u00bc": [0, 358], "\u215b": [0, 358], "\u00be": [0, 358], "\u215c": [0, 358], "\u215d": [0, 358], "\u215e": [0, 358], "_": [0, 7, 8, 10, 11, 24, 26, 27, 32, 33, 39, 44, 46, 55, 58, 64, 65, 69, 74, 77, 83, 84, 85, 86, 92, 93, 95, 101, 102, 103, 104, 106, 107, 112, 117, 120, 126, 127, 136, 137, 138, 139, 142, 143, 145, 146, 148, 153, 158, 163, 165, 167, 168, 181, 182, 184, 193, 195, 196, 197, 198, 199, 203, 205, 206, 207, 208, 211, 218, 219, 220, 229, 230, 231, 232, 233, 235, 237, 238, 240, 242, 247, 249, 254, 262, 263, 265, 266, 270, 271, 272, 273, 274, 327, 328, 331, 348, 358], "\u00b5": [0, 358], "\u03c9": [0, 358], "\u00aa": [0, 358], "\u00ba": [0, 358], "\u00b9": [0, 358], "\u00b2": [0, 358], "\u00b3": [0, 358], "In": [0, 7, 8, 9, 10, 14, 19, 26, 27, 31, 34, 35, 36, 37, 39, 46, 55, 74, 85, 87, 89, 92, 93, 103, 104, 117, 130, 131, 132, 134, 136, 137, 138, 139, 142, 146, 149, 180, 184, 192, 194, 196, 198, 203, 204, 206, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 235, 236, 237, 244, 245, 246, 247, 256, 262, 266, 268, 269, 270, 275, 276, 277, 279, 280, 281, 283, 285, 289, 294, 295, 304, 305, 306, 307, 308, 309, 315, 320, 322, 323, 325, 326, 331, 333, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 350, 353, 358], "section": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 19, 24, 25, 26, 27, 28, 29, 31, 34, 36, 42, 44, 48, 49, 51, 53, 55, 58, 59, 60, 62, 65, 67, 69, 71, 72, 74, 77, 78, 79, 81, 84, 85, 86, 87, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 107, 110, 112, 114, 115, 117, 120, 121, 122, 124, 127, 142, 143, 144, 145, 146, 147, 148, 149, 153, 154, 158, 162, 164, 165, 168, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 186, 188, 189, 199, 205, 206, 207, 208, 209, 211, 212, 213, 214, 227, 228, 229, 230, 231, 233, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 265, 266, 270, 278, 295, 318, 351, 358, 360], "we": [0, 6, 14, 96, 236, 294, 295, 297, 299, 301, 304, 305, 306, 307, 308, 309, 315, 322, 323, 325, 326, 327, 328, 330, 331, 332, 333, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349, 350, 351, 353, 356, 357, 358, 359, 360], "first": [0, 7, 10, 18, 19, 32, 39, 46, 55, 57, 64, 65, 74, 76, 83, 84, 85, 92, 94, 102, 103, 104, 106, 107, 117, 119, 126, 127, 130, 131, 136, 137, 138, 142, 146, 163, 165, 167, 168, 184, 189, 198, 204, 206, 207, 210, 215, 216, 217, 218, 219, 220, 227, 229, 231, 233, 236, 238, 240, 242, 247, 249, 250, 252, 262, 264, 266, 267, 270, 271, 272, 278, 279, 307, 322, 323, 330, 334, 342, 344, 348, 350, 356, 357, 359, 362], "give": [0, 17, 279], "you": [0, 244, 245, 295, 339, 353, 356, 357, 358, 359, 360, 362], "quick": [0, 234, 362], "overview": [0, 269, 270, 329, 358], "us": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 35, 38, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 149, 152, 153, 154, 155, 156, 158, 159, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 184, 185, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 214, 215, 216, 217, 218, 219, 220, 221, 226, 227, 228, 229, 230, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 277, 278, 279, 280, 281, 282, 289, 291, 295, 297, 298, 301, 302, 304, 305, 306, 307, 308, 309, 315, 318, 319, 320, 322, 323, 325, 326, 327, 328, 331, 333, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 352, 356, 358, 359, 360, 361, 362], "which": [0, 2, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16, 17, 18, 19, 24, 26, 27, 28, 29, 30, 31, 32, 39, 42, 44, 46, 51, 53, 55, 57, 58, 62, 64, 65, 67, 69, 74, 76, 77, 81, 83, 84, 86, 87, 88, 93, 94, 95, 96, 101, 102, 106, 107, 110, 112, 117, 119, 120, 124, 126, 127, 130, 131, 138, 142, 143, 144, 145, 146, 147, 149, 152, 153, 158, 159, 162, 163, 164, 165, 167, 168, 181, 182, 184, 189, 196, 197, 198, 200, 202, 203, 204, 205, 207, 208, 210, 211, 214, 215, 216, 227, 230, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 247, 249, 250, 252, 253, 254, 255, 256, 260, 261, 262, 264, 265, 266, 267, 268, 270, 271, 273, 274, 275, 276, 278, 279, 280, 281, 282, 283, 285, 295, 297, 302, 305, 306, 307, 309, 315, 319, 320, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 349, 350, 351, 356, 357, 358, 359, 360, 361, 362], "i": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 155, 156, 158, 159, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 214, 215, 216, 217, 218, 219, 220, 221, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 282, 283, 284, 285, 287, 288, 289, 291, 294, 295, 296, 298, 299, 301, 302, 304, 305, 306, 308, 309, 310, 315, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 350, 351, 352, 353, 356, 357, 359, 360, 361, 362], "follow": [0, 2, 3, 4, 5, 6, 8, 10, 11, 12, 14, 17, 18, 19, 24, 25, 26, 27, 28, 29, 38, 39, 42, 44, 46, 48, 51, 53, 55, 59, 60, 62, 64, 65, 67, 69, 71, 74, 78, 79, 81, 83, 84, 85, 87, 88, 93, 94, 96, 98, 102, 106, 107, 110, 112, 114, 117, 121, 122, 124, 126, 127, 142, 143, 146, 149, 163, 164, 165, 167, 168, 170, 173, 175, 176, 181, 182, 186, 188, 189, 195, 198, 199, 202, 203, 204, 205, 206, 209, 212, 213, 214, 227, 236, 240, 241, 242, 243, 249, 252, 253, 258, 260, 262, 264, 266, 267, 269, 270, 273, 278, 280, 281, 284, 285, 289, 291, 295, 296, 297, 299, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 326, 332, 333, 334, 335, 338, 339, 340, 341, 342, 343, 344, 346, 348, 350, 352, 356, 357, 358, 359, 360, 362], "simpl": [0, 279, 358, 362], "tutori": [0, 6, 10, 12, 55, 64, 74, 83, 96, 106, 117, 126, 142, 146, 163, 167, 189, 235, 237, 240, 249, 289, 290, 291, 292, 293, 295, 301, 315, 320, 322, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 350, 358, 362], "long": [0, 65, 84, 107, 127, 162, 168, 234, 239, 302, 327, 328, 329, 330, 331, 332, 333], "excit": [0, 358], "journei": 0, "learn": [0, 318, 329, 333, 342, 358, 361], "explor": [0, 6, 96, 302], "The": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 180, 181, 182, 184, 185, 186, 188, 189, 190, 193, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 274, 275, 276, 278, 279, 280, 281, 283, 284, 285, 287, 288, 289, 291, 294, 295, 296, 298, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 330, 331, 332, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 350, 356, 357, 358, 359, 360, 362], "provid": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 38, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 90, 92, 93, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 149, 151, 152, 153, 154, 158, 159, 161, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 186, 189, 193, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 235, 236, 237, 239, 240, 241, 242, 243, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 262, 263, 266, 267, 269, 270, 273, 274, 275, 276, 279, 280, 281, 282, 285, 295, 301, 305, 315, 320, 326, 327, 328, 332, 333, 335, 336, 338, 340, 341, 344, 348, 356, 358, 359, 360, 361], "requir": [0, 5, 6, 10, 11, 12, 18, 29, 34, 36, 39, 44, 46, 55, 58, 64, 65, 69, 74, 77, 83, 84, 87, 88, 94, 96, 102, 106, 107, 112, 117, 120, 126, 127, 142, 143, 146, 163, 165, 167, 168, 181, 182, 184, 188, 196, 197, 198, 203, 204, 206, 207, 209, 211, 214, 234, 236, 240, 242, 249, 252, 253, 255, 256, 262, 264, 266, 267, 268, 272, 273, 274, 275, 276, 278, 279, 280, 281, 283, 291, 294, 301, 302, 304, 310, 318, 320, 327, 328, 329, 330, 331, 336, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 358, 362], "emul": [0, 286, 290, 292, 295, 297, 358], "purpos": [0, 1, 5, 10, 11, 44, 55, 62, 63, 64, 65, 69, 74, 81, 82, 83, 84, 105, 106, 107, 112, 117, 124, 125, 126, 127, 142, 143, 146, 149, 150, 162, 163, 164, 165, 166, 167, 168, 184, 185, 186, 188, 189, 214, 239, 240, 241, 242, 243, 249, 254, 265, 271, 275, 276, 280, 285, 302, 325, 329, 330, 332, 335], "each": [0, 3, 5, 7, 8, 10, 12, 14, 15, 17, 18, 19, 24, 29, 32, 33, 35, 37, 55, 57, 59, 65, 74, 76, 78, 84, 87, 88, 89, 92, 93, 101, 102, 107, 117, 119, 121, 127, 132, 138, 142, 145, 146, 148, 152, 159, 162, 168, 176, 180, 181, 182, 185, 186, 189, 193, 195, 197, 203, 204, 205, 207, 208, 210, 212, 227, 230, 235, 236, 237, 238, 239, 246, 247, 250, 252, 253, 254, 255, 256, 264, 265, 267, 269, 270, 271, 276, 278, 279, 281, 282, 283, 285, 295, 301, 302, 304, 305, 306, 307, 308, 309, 315, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 338, 340, 341, 342, 343, 344, 345, 346, 347, 348, 351, 352, 358, 362], "expect": [0, 6, 48, 49, 57, 60, 71, 72, 76, 79, 87, 88, 94, 95, 96, 98, 99, 114, 115, 119, 122, 134, 152, 159, 170, 171, 173, 174, 188, 189, 193, 195, 210, 217, 227, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 264, 268, 270, 280, 301, 339, 346], "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 17, 18, 19, 22, 24, 25, 29, 33, 34, 35, 36, 37, 39, 44, 46, 48, 55, 60, 62, 64, 65, 69, 71, 74, 79, 81, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 101, 102, 103, 104, 106, 107, 108, 112, 114, 117, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 162, 163, 164, 165, 167, 168, 170, 173, 175, 176, 179, 181, 182, 183, 184, 185, 188, 189, 190, 193, 195, 196, 197, 198, 199, 203, 204, 205, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 221, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 274, 277, 278, 279, 280, 281, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 306, 307, 308, 309, 310, 315, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 358, 361, 362], "set": [0, 1, 5, 6, 11, 12, 14, 18, 19, 22, 24, 26, 27, 29, 33, 35, 37, 39, 44, 46, 58, 65, 69, 77, 84, 85, 86, 87, 88, 94, 96, 101, 102, 103, 104, 107, 112, 120, 127, 130, 131, 132, 134, 136, 137, 138, 139, 143, 145, 153, 158, 165, 168, 181, 182, 184, 198, 205, 206, 207, 208, 209, 211, 215, 216, 217, 218, 219, 220, 226, 228, 229, 230, 231, 232, 238, 242, 244, 245, 246, 247, 254, 260, 261, 262, 263, 264, 265, 266, 267, 269, 270, 271, 272, 273, 275, 276, 278, 280, 285, 287, 288, 289, 291, 294, 301, 302, 306, 307, 308, 315, 324, 326, 327, 328, 329, 330, 331, 332, 335, 336, 342, 348, 352, 358, 362], "argument": [0, 3, 4, 17, 19, 64, 65, 83, 84, 87, 88, 106, 107, 126, 127, 134, 163, 165, 167, 168, 205, 217, 240, 242, 249, 264, 267, 289], "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 29, 32, 34, 36, 37, 39, 40, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 136, 137, 138, 139, 141, 142, 143, 146, 148, 149, 152, 159, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 200, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 220, 227, 228, 229, 230, 234, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, 279, 280, 283, 285, 294, 295, 297, 298, 299, 301, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 352, 356, 357, 358, 359, 360, 361, 362], "time": [0, 1, 7, 10, 11, 15, 16, 17, 18, 19, 22, 24, 29, 31, 32, 33, 39, 44, 46, 55, 57, 69, 74, 76, 86, 92, 93, 94, 95, 101, 102, 112, 117, 119, 142, 143, 144, 146, 147, 148, 193, 195, 196, 197, 198, 199, 200, 202, 203, 204, 206, 207, 208, 210, 227, 228, 230, 231, 233, 234, 235, 236, 237, 238, 243, 244, 245, 252, 253, 254, 255, 256, 260, 262, 265, 266, 268, 269, 270, 271, 275, 276, 277, 279, 280, 281, 283, 290, 292, 293, 295, 299, 301, 302, 307, 309, 330, 331, 332, 333, 334, 336, 346, 347, 348, 350, 352, 358, 361], "creation": [0, 338, 339, 340, 341, 342, 343, 344, 346], "instanti": [0, 14, 18, 19, 315, 339, 342, 343, 346], "call": [0, 3, 4, 6, 8, 14, 18, 19, 48, 49, 60, 64, 65, 71, 72, 79, 83, 84, 93, 96, 98, 99, 106, 107, 114, 115, 122, 126, 127, 149, 162, 163, 165, 167, 168, 170, 171, 173, 174, 206, 236, 239, 240, 242, 248, 250, 251, 252, 253, 255, 256, 258, 259, 285, 287, 288, 289, 291, 294, 301, 315, 338, 339, 340, 341, 342, 343, 344, 346], "paramet": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 283, 286, 289, 292, 293, 295, 299, 310, 318, 335, 347, 352, 358, 361, 362], "second": [0, 6, 7, 18, 64, 83, 92, 94, 96, 106, 126, 130, 131, 136, 137, 138, 163, 167, 198, 202, 203, 204, 205, 206, 215, 216, 217, 218, 219, 220, 227, 238, 240, 247, 249, 250, 253, 270, 278, 294, 315, 339, 342, 343, 350], "while": [0, 15, 19, 21, 22, 94, 103, 104, 193, 195, 197, 203, 204, 206, 227, 229, 264, 270, 279, 280, 281, 289, 295, 301, 302, 306, 309, 327, 328, 329, 330, 331, 332, 339, 342, 343, 346], "These": [0, 2, 6, 7, 9, 10, 18, 19, 34, 36, 37, 40, 42, 49, 51, 53, 55, 67, 72, 74, 96, 99, 110, 115, 117, 142, 146, 169, 174, 184, 186, 189, 195, 206, 234, 243, 255, 257, 260, 268, 269, 270, 271, 278, 326, 327, 328, 329, 331, 333, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 350, 358], "input": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 17, 18, 19, 21, 22, 23, 24, 25, 26, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 144, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 183, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 283, 315, 318, 319, 320, 322, 323, 327, 328, 334, 346, 348, 358], "If": [0, 3, 6, 7, 10, 11, 14, 17, 18, 19, 21, 22, 25, 28, 29, 44, 55, 59, 64, 65, 69, 74, 78, 83, 84, 87, 88, 92, 94, 96, 106, 107, 112, 117, 121, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 143, 145, 146, 149, 154, 158, 163, 165, 167, 168, 182, 196, 197, 198, 199, 206, 212, 215, 216, 218, 219, 220, 227, 235, 236, 237, 238, 240, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 264, 267, 269, 270, 271, 278, 279, 280, 281, 356, 357, 359, 360], "configur": [0, 1, 4, 9, 12, 18, 19, 29, 48, 60, 71, 79, 85, 87, 98, 102, 103, 104, 114, 122, 130, 131, 132, 134, 136, 137, 138, 139, 170, 173, 204, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238, 246, 247, 254, 258, 270, 271, 275, 276, 278, 281, 286, 290, 292, 293, 295, 301, 305, 306, 308, 315, 318, 319, 322, 323, 324, 326, 331, 348, 350, 352, 356, 358, 359, 360, 361], "correctli": [0, 102, 189, 207, 264, 269, 270, 285, 291, 294, 348], "produc": [0, 278], "one": [0, 14, 18, 29, 35, 37, 39, 46, 57, 76, 86, 87, 102, 119, 184, 188, 198, 205, 206, 207, 210, 227, 231, 235, 236, 237, 238, 250, 252, 253, 254, 262, 266, 267, 270, 281, 295, 301, 302, 305, 306, 315, 320, 327, 328, 330, 331, 333, 339, 356, 359, 360], "multipl": [0, 5, 7, 8, 10, 12, 14, 16, 19, 21, 24, 28, 34, 35, 36, 37, 39, 46, 48, 49, 55, 59, 60, 71, 72, 74, 78, 79, 85, 86, 92, 93, 95, 98, 99, 101, 114, 115, 117, 121, 122, 139, 142, 146, 148, 149, 154, 158, 169, 170, 171, 173, 174, 186, 204, 206, 208, 212, 220, 227, 235, 237, 238, 244, 245, 248, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 265, 271, 275, 276, 279, 281, 283, 299, 301, 302, 320, 322, 323, 327, 329, 331, 332, 333, 334, 338, 340, 341, 346, 347, 352, 358], "output": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 283, 315, 318, 319, 320, 322, 323, 325, 334, 346, 348, 357, 358], "type": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 17, 18, 19, 24, 30, 39, 44, 46, 48, 49, 55, 60, 69, 71, 72, 74, 79, 85, 86, 87, 88, 92, 93, 94, 96, 98, 99, 101, 102, 103, 104, 108, 112, 114, 115, 117, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 170, 171, 173, 174, 184, 185, 204, 206, 207, 208, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 243, 246, 247, 254, 258, 259, 262, 263, 264, 265, 266, 267, 269, 270, 271, 275, 276, 278, 279, 294, 296, 299, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 324, 325, 327, 328, 329, 330, 331, 332, 333, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 352, 358, 361], "size": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 17, 18, 19, 25, 29, 31, 32, 33, 39, 44, 46, 48, 49, 55, 57, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 78, 79, 81, 83, 84, 86, 87, 88, 91, 92, 93, 95, 96, 98, 99, 102, 106, 107, 108, 112, 114, 115, 117, 119, 121, 122, 124, 126, 127, 130, 131, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 152, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 183, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 203, 205, 206, 207, 209, 210, 212, 215, 216, 218, 219, 220, 227, 228, 230, 231, 234, 236, 238, 240, 241, 242, 247, 248, 249, 250, 251, 252, 254, 255, 256, 258, 259, 262, 265, 266, 267, 268, 269, 270, 271, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 310, 315, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 358, 362], "shape": [0, 3, 4, 5, 6, 7, 14, 15, 17, 18, 19, 21, 22, 24, 29, 34, 35, 36, 37, 87, 88, 92, 96, 101, 182, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 208, 235, 237, 244, 245, 252, 253, 254, 255, 256, 269, 270, 272, 274, 275, 276, 278, 281, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351], "detail": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 18, 21, 24, 25, 26, 27, 28, 31, 33, 34, 36, 38, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 92, 93, 95, 96, 98, 99, 101, 102, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 142, 143, 144, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 182, 186, 189, 195, 196, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 231, 235, 237, 239, 240, 241, 242, 243, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 269, 271, 272, 273, 274, 275, 280, 281, 327, 328, 330, 331, 332, 335, 348, 352, 358], "its": [0, 28, 29, 59, 78, 121, 154, 158, 175, 181, 189, 204, 212, 227, 236, 244, 245, 268, 283, 285, 298, 301, 315, 325, 329, 331, 333, 342, 343, 352, 358], "user": [0, 5, 6, 14, 15, 16, 17, 18, 19, 27, 29, 87, 91, 96, 108, 132, 138, 144, 147, 148, 149, 175, 176, 181, 182, 195, 198, 199, 206, 215, 216, 246, 247, 250, 252, 253, 255, 256, 260, 267, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 283, 285, 295, 296, 299, 301, 302, 320, 324, 327, 328, 329, 330, 331, 332, 336, 338, 339, 340, 341, 343, 344, 346, 347, 349, 352, 356, 357, 358, 359, 360], "access": [0, 1, 14, 15, 17, 19, 39, 46, 85, 86, 88, 102, 103, 104, 183, 184, 206, 207, 229, 233, 238, 243, 249, 254, 262, 266, 267, 273, 279, 296, 299, 338, 339, 340, 341, 342, 343, 344, 346, 352, 358, 361], "attribut": [0, 9, 11, 14, 17, 18, 19, 26, 27, 28, 44, 58, 59, 69, 77, 78, 85, 86, 87, 88, 102, 112, 120, 121, 143, 153, 154, 158, 181, 182, 184, 188, 199, 204, 206, 207, 211, 212, 236, 244, 245, 254, 262, 266, 267, 271, 272, 279, 309], "some": [0, 1, 14, 176, 244, 249, 254, 268, 272, 275, 276, 277, 286, 295, 309, 327, 328, 329, 330, 331, 342, 343, 345, 358, 359], "addit": [0, 21, 39, 46, 87, 88, 90, 91, 94, 103, 104, 181, 182, 189, 197, 203, 204, 227, 229, 233, 262, 264, 266, 270, 315, 352, 358], "method": [0, 3, 4, 14, 15, 17, 18, 19, 29, 48, 49, 60, 64, 65, 71, 72, 79, 83, 84, 85, 86, 98, 99, 103, 104, 106, 107, 114, 115, 122, 126, 127, 134, 139, 163, 165, 167, 168, 170, 171, 173, 174, 181, 193, 194, 196, 197, 198, 199, 203, 204, 205, 206, 227, 228, 229, 235, 237, 240, 242, 248, 250, 251, 252, 253, 255, 256, 258, 259, 268, 269, 270, 271, 272, 273, 274, 279, 281, 291, 294, 299, 301, 315, 318, 319, 323, 334, 348, 350, 352, 358], "displai": [0, 14, 17, 18, 19, 39, 46, 85, 87, 88, 103, 104, 181, 182, 202, 204, 205, 206, 227, 228, 229, 231, 233, 235, 236, 237, 278, 279, 285, 287, 288, 294, 298, 301, 302, 310, 318, 322, 323, 324, 326, 329, 330, 331, 332, 335, 336, 337, 338, 339, 340, 341, 343, 344, 345, 346, 347, 348, 351, 352, 358], "function": [0, 6, 8, 14, 15, 16, 17, 18, 19, 29, 30, 32, 93, 96, 102, 205, 207, 227, 230, 236, 267, 270, 278, 279, 280, 282, 285, 301, 304, 305, 306, 318, 324, 333, 345, 347, 348, 349, 352, 358], "insight": [0, 320], "implement": [0, 1, 2, 6, 7, 8, 10, 11, 12, 14, 16, 17, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 42, 44, 48, 49, 51, 53, 55, 58, 59, 60, 62, 65, 67, 69, 71, 72, 74, 77, 78, 79, 81, 84, 85, 86, 87, 88, 92, 93, 95, 96, 98, 99, 101, 102, 107, 110, 112, 114, 115, 117, 120, 121, 122, 124, 127, 141, 142, 143, 144, 145, 146, 147, 148, 149, 151, 153, 154, 158, 161, 164, 165, 168, 170, 171, 173, 174, 175, 176, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 198, 199, 202, 203, 204, 207, 208, 211, 212, 227, 235, 236, 237, 241, 242, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 268, 269, 270, 271, 276, 278, 280, 281, 282, 286, 290, 292, 293, 295, 315, 326, 335, 336, 342, 348, 352, 358, 361, 362], "from": [0, 1, 3, 4, 6, 7, 8, 10, 11, 14, 15, 16, 17, 18, 19, 22, 24, 29, 32, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 60, 64, 69, 71, 72, 74, 76, 79, 83, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 108, 112, 114, 115, 117, 119, 122, 126, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 152, 159, 163, 167, 169, 170, 171, 173, 174, 181, 182, 184, 189, 193, 195, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 235, 236, 237, 238, 240, 244, 246, 247, 254, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 269, 270, 271, 272, 273, 275, 276, 278, 279, 280, 281, 283, 285, 287, 288, 289, 291, 294, 295, 302, 304, 305, 306, 307, 308, 309, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349, 350, 351, 352, 356, 357, 358, 359, 360, 362], "standpoint": 0, "__init__": [0, 193, 289], "address": 0, "__call__": [0, 193], "let": [0, 271, 302, 307, 343, 356, 357, 359], "u": [0, 28, 29, 59, 78, 121, 154, 158, 212, 244, 245, 295, 307, 322, 323, 334, 351, 353, 356, 357, 358, 359], "your": [0, 295, 353, 356, 357, 358, 359, 360], "Its": [0, 10, 11, 17, 26, 38, 39, 44, 46, 55, 64, 65, 69, 74, 83, 84, 102, 106, 107, 112, 117, 126, 127, 142, 143, 146, 163, 165, 167, 168, 184, 196, 198, 203, 206, 207, 209, 213, 238, 240, 242, 244, 254, 266, 267, 279, 301, 304, 305, 306, 307, 308, 309, 324, 348, 349], "veri": [0, 10, 11, 12, 28, 32, 44, 55, 69, 74, 112, 117, 142, 143, 146, 202, 204, 244, 245, 260, 280, 319, 327, 328, 343], "project": [0, 204, 294, 295, 301, 302, 303, 311, 312, 313, 314, 316, 317, 324, 349, 358], "textcolor": 0, "blue": [0, 206, 301, 315, 324, 326, 333, 335, 336, 337, 362], "text": [0, 3, 4, 7, 8, 10, 11, 24, 26, 27, 32, 33, 39, 44, 46, 55, 58, 64, 65, 69, 74, 77, 83, 84, 85, 86, 92, 93, 95, 101, 102, 103, 104, 106, 107, 112, 117, 120, 126, 127, 136, 137, 138, 139, 142, 143, 145, 146, 148, 153, 158, 163, 165, 167, 168, 181, 182, 184, 185, 193, 195, 196, 197, 198, 199, 203, 205, 206, 207, 208, 211, 218, 219, 220, 228, 229, 230, 231, 233, 235, 237, 240, 242, 244, 245, 247, 253, 254, 255, 256, 262, 263, 265, 266, 270, 271, 272, 273, 274, 279, 281, 301, 309, 326, 327, 328, 331, 335, 336, 338, 340, 341, 342, 344, 348, 350, 362], "cyclic": [0, 1, 3, 4, 31, 32, 33, 52, 132, 138, 183, 184, 185, 188, 189, 215, 216, 217, 218, 219, 220, 221, 227, 244, 246, 247, 252, 253, 254, 265, 267, 268, 273, 285, 287, 289, 291, 294, 296, 320, 325, 348, 350, 358], "redund": [0, 1, 3, 4, 5, 7, 52, 87, 88, 90, 91, 93, 102, 181, 182, 183, 184, 185, 188, 189, 207, 209, 228, 231, 296, 301, 358, 361], "check": [0, 1, 3, 5, 8, 13, 19, 27, 52, 88, 93, 102, 108, 175, 181, 183, 184, 185, 186, 188, 189, 206, 207, 264, 267, 291, 294, 296, 301, 319, 320, 325, 348, 349, 352, 356, 357, 358, 359, 360, 362], "add": [0, 1, 2, 5, 20, 42, 51, 53, 67, 110, 302, 309, 322, 323, 326, 329, 330, 332, 335, 342, 348, 349, 351, 352, 358], "nois": [0, 1, 6, 10, 12, 20, 32, 55, 74, 86, 96, 117, 142, 146, 181, 184, 185, 188, 203, 204, 269, 280, 281, 301, 302, 315, 320, 322, 323, 325, 326, 329, 330, 332, 335, 336, 337, 349, 350, 351, 352, 358, 362], "shown": [0, 5, 6, 7, 8, 9, 10, 12, 33, 55, 74, 85, 87, 92, 93, 95, 96, 117, 142, 146, 148, 149, 186, 195, 196, 198, 235, 236, 237, 278, 327, 328, 330, 331, 348, 356, 359], "below": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 17, 18, 19, 21, 33, 38, 39, 42, 46, 48, 49, 51, 53, 55, 57, 58, 60, 62, 64, 65, 67, 71, 72, 74, 76, 77, 79, 81, 83, 84, 85, 86, 87, 92, 93, 96, 98, 99, 101, 102, 106, 107, 110, 114, 115, 117, 119, 120, 122, 124, 126, 127, 130, 131, 132, 142, 144, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 176, 195, 196, 197, 198, 199, 200, 205, 206, 207, 208, 210, 211, 214, 215, 216, 226, 227, 235, 236, 237, 240, 241, 242, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 263, 264, 265, 269, 272, 273, 274, 278, 281, 304, 305, 306, 307, 308, 309, 322, 323, 327, 328, 330, 331, 332, 336, 338, 340, 341, 348, 356, 357, 358, 359, 360], "crc": [0, 1, 2, 6, 7, 8, 10, 11, 25, 27, 44, 55, 62, 69, 74, 81, 88, 93, 95, 96, 108, 112, 117, 124, 142, 143, 146, 148, 149, 164, 175, 176, 181, 182, 184, 185, 189, 241, 320, 325, 335, 348, 358], "help": [0, 27, 28, 87, 88, 181, 182, 196, 197, 198, 204, 206, 271, 280, 281, 294, 297, 322, 323, 334, 338, 339, 340, 341, 344, 356, 357, 359], "receiv": [0, 1, 2, 3, 5, 6, 8, 9, 10, 15, 16, 18, 20, 22, 27, 28, 31, 32, 34, 35, 36, 37, 40, 42, 43, 49, 51, 53, 57, 59, 64, 65, 67, 68, 72, 76, 78, 83, 84, 86, 88, 89, 99, 102, 106, 107, 110, 111, 115, 119, 121, 126, 127, 141, 142, 150, 152, 154, 158, 159, 162, 163, 167, 168, 169, 174, 179, 180, 183, 193, 195, 196, 198, 200, 203, 204, 205, 207, 210, 212, 230, 232, 239, 240, 257, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 286, 287, 290, 292, 293, 295, 299, 301, 302, 315, 322, 323, 326, 327, 328, 329, 330, 331, 332, 335, 338, 339, 340, 341, 344, 346, 347, 350, 351, 352, 358, 362], "fail": [0, 3, 291, 294, 348], "can": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 22, 24, 25, 27, 28, 34, 35, 36, 37, 44, 48, 49, 55, 60, 62, 64, 65, 69, 71, 72, 74, 79, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 96, 98, 99, 101, 102, 106, 107, 112, 114, 115, 117, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 163, 164, 165, 167, 168, 169, 170, 173, 174, 180, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 231, 233, 234, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 249, 250, 252, 253, 254, 255, 256, 257, 258, 260, 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 280, 281, 285, 294, 295, 297, 302, 304, 306, 308, 309, 315, 319, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 350, 353, 356, 357, 358, 359, 360, 361], "request": [0, 3, 102, 207, 318, 320, 350, 356, 358, 359, 360], "retransmiss": [0, 3], "data": [0, 3, 5, 6, 7, 26, 28, 29, 48, 49, 57, 60, 62, 71, 72, 76, 79, 81, 87, 88, 89, 90, 93, 94, 96, 98, 99, 102, 108, 114, 115, 119, 122, 124, 132, 134, 138, 152, 159, 164, 170, 171, 173, 174, 175, 176, 180, 181, 182, 186, 207, 210, 217, 234, 241, 243, 246, 247, 249, 258, 259, 264, 269, 270, 271, 276, 279, 280, 281, 283, 284, 285, 291, 295, 301, 318, 320, 323, 333, 334, 336, 342, 345, 348, 349, 358, 361], "convert": [0, 1, 10, 40, 48, 55, 60, 71, 74, 79, 98, 114, 117, 122, 142, 146, 170, 173, 181, 258, 315, 329, 350], "transmiss": [0, 5, 22, 35, 37, 39, 46, 49, 57, 65, 72, 76, 84, 85, 87, 90, 91, 94, 99, 102, 103, 104, 107, 115, 119, 127, 130, 131, 132, 134, 136, 137, 138, 139, 162, 168, 169, 174, 182, 189, 207, 210, 215, 216, 217, 218, 219, 220, 228, 229, 233, 238, 239, 243, 246, 247, 257, 267, 268, 269, 270, 275, 276, 279, 280, 281, 283, 286, 290, 292, 293, 295, 301, 302, 319, 320, 322, 323, 325, 329, 330, 332, 333, 334, 350, 352, 358], "introduc": [0, 21, 271, 296, 301, 315, 348], "transmit": [0, 1, 5, 20, 29, 32, 38, 39, 46, 57, 76, 85, 86, 103, 104, 119, 131, 132, 137, 138, 149, 152, 159, 175, 182, 205, 210, 216, 219, 221, 227, 228, 229, 233, 234, 235, 236, 237, 238, 244, 245, 246, 247, 249, 254, 263, 264, 266, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 283, 285, 287, 288, 289, 292, 293, 295, 301, 315, 320, 324, 329, 330, 332, 333, 347, 350, 352, 358, 362], "signal": [0, 1, 5, 6, 10, 12, 20, 21, 32, 33, 38, 55, 57, 74, 76, 86, 87, 88, 94, 96, 103, 104, 117, 119, 132, 138, 142, 146, 152, 159, 181, 184, 185, 188, 189, 193, 203, 204, 205, 206, 210, 226, 229, 230, 232, 233, 234, 244, 245, 246, 247, 248, 249, 250, 251, 254, 260, 268, 269, 270, 271, 272, 273, 275, 276, 277, 280, 281, 283, 285, 289, 291, 294, 296, 315, 320, 322, 323, 324, 326, 329, 330, 332, 334, 335, 336, 337, 339, 346, 350, 352, 358, 361, 362], "model": [0, 1, 6, 10, 15, 18, 19, 21, 55, 74, 96, 117, 142, 146, 203, 204, 295, 296, 299, 301, 318, 320, 327, 328, 329, 330, 331, 338, 339, 340, 341, 342, 343, 344, 345, 352, 358, 361], "numpi": [0, 3, 4, 6, 7, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 25, 26, 27, 28, 29, 34, 35, 36, 37, 44, 48, 49, 55, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 93, 94, 96, 98, 99, 102, 106, 107, 112, 114, 115, 117, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 153, 154, 158, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 188, 189, 193, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 230, 235, 236, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 264, 266, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 358, 359, 360, 362], "matplotlib": [0, 18, 19, 29, 204, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 359, 360, 362], "linear": [0, 5, 16, 184, 188, 203, 204, 269, 270, 271, 275, 276, 291, 294, 301, 302, 315, 323, 326, 329, 330, 332, 334, 349], "algebra": 0, "plot": [0, 10, 14, 18, 19, 55, 74, 117, 142, 146, 202, 204, 206, 273, 285, 287, 288, 289, 291, 294, 301, 302, 310, 318, 319, 324, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 339, 343, 345, 347, 348, 352, 358], "respect": [0, 3, 4, 6, 8, 10, 14, 15, 16, 17, 18, 19, 29, 39, 40, 46, 55, 74, 87, 90, 93, 95, 96, 117, 138, 139, 142, 146, 149, 181, 196, 197, 198, 199, 205, 220, 230, 236, 243, 247, 249, 254, 265, 267, 278, 279, 281, 298, 302, 305, 306, 315, 325, 342, 344, 346], "o": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "environ": [0, 29, 227, 236, 278, 280, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 359, 360, 362], "cuda_visible_devic": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "1": [0, 2, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15, 17, 18, 19, 22, 24, 25, 26, 27, 28, 30, 32, 34, 35, 36, 37, 38, 42, 44, 48, 49, 51, 53, 58, 59, 60, 62, 64, 67, 69, 71, 72, 77, 78, 79, 81, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 110, 112, 114, 115, 120, 121, 122, 124, 126, 130, 131, 132, 134, 136, 137, 138, 139, 143, 145, 148, 149, 153, 154, 158, 163, 164, 165, 167, 170, 171, 173, 174, 175, 176, 180, 181, 182, 183, 184, 185, 186, 188, 189, 190, 193, 195, 197, 199, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 215, 216, 221, 226, 227, 228, 229, 230, 231, 232, 233, 236, 238, 240, 241, 242, 245, 246, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, 279, 280, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 306, 307, 308, 309, 310, 315, 318, 319, 320, 322, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 352, 356, 358, 359, 360, 362], "tf_cpp_min_log_level": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 362], "3": [0, 1, 2, 6, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 22, 26, 27, 29, 34, 35, 36, 37, 39, 42, 44, 46, 51, 53, 55, 58, 62, 64, 65, 67, 69, 74, 77, 81, 83, 84, 85, 86, 87, 88, 90, 91, 93, 94, 95, 96, 102, 103, 104, 106, 107, 110, 112, 117, 120, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 149, 153, 158, 163, 164, 165, 167, 168, 175, 176, 179, 181, 182, 183, 184, 185, 188, 189, 190, 196, 197, 198, 199, 206, 207, 209, 211, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 254, 255, 256, 263, 264, 265, 267, 270, 271, 273, 274, 278, 280, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 305, 306, 307, 308, 309, 311, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 357, 359, 360, 362], "np": [0, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 25, 26, 27, 28, 29, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 91, 92, 93, 95, 96, 98, 99, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 176, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 269, 270, 271, 272, 273, 274, 275, 276, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "widget": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "pyplot": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "plt": [0, 18, 19, 29, 206, 227, 236, 273, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "line": [0, 18, 19, 206, 273, 285, 288, 289, 291, 294, 302, 318, 324, 326, 327, 328, 329, 330, 331, 335, 336, 337, 342, 347, 348, 352, 356, 357, 358, 359], "code": [0, 1, 5, 8, 9, 13, 14, 19, 24, 26, 27, 28, 30, 39, 43, 46, 54, 57, 58, 64, 68, 73, 76, 77, 83, 87, 88, 90, 91, 94, 95, 101, 102, 106, 108, 111, 116, 119, 120, 126, 134, 139, 141, 145, 150, 152, 159, 163, 167, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 214, 217, 218, 219, 220, 240, 262, 264, 266, 275, 276, 278, 280, 281, 282, 283, 285, 291, 294, 296, 299, 301, 318, 320, 325, 327, 328, 329, 330, 331, 332, 337, 338, 340, 341, 342, 343, 344, 348, 350, 352, 353, 356, 357, 358, 359, 361], "disabl": [0, 18, 19, 87, 88, 90, 91, 102, 130, 131, 132, 134, 136, 137, 138, 139, 144, 147, 181, 182, 206, 207, 209, 215, 216, 217, 218, 219, 220, 246, 247, 275, 276, 302, 327, 328, 331, 334, 338, 340, 341, 350], "gpu": [0, 358], "properli": [0, 278, 309], "up": [0, 19, 202, 238, 254, 342], "system": [0, 6, 22, 29, 37, 39, 46, 48, 60, 71, 79, 96, 98, 114, 122, 131, 132, 137, 138, 170, 173, 184, 186, 189, 196, 197, 199, 203, 204, 216, 219, 236, 243, 246, 247, 248, 250, 251, 252, 253, 255, 256, 258, 262, 265, 266, 267, 268, 269, 271, 273, 278, 279, 280, 281, 283, 284, 285, 287, 288, 289, 291, 294, 304, 315, 318, 320, 322, 323, 324, 327, 328, 329, 330, 331, 332, 333, 334, 339, 346, 349, 352, 358], "work": [0, 14, 204, 268, 276, 279, 285, 327, 333, 358, 359], "well": [0, 19, 28, 186, 238, 268, 269, 315, 319, 327, 342, 358, 361], "remov": [0, 6, 32, 62, 65, 81, 84, 96, 107, 108, 124, 127, 162, 164, 168, 189, 239, 241, 348, 360, 362], "As": [0, 3, 4, 64, 83, 106, 126, 163, 167, 181, 240, 253, 256, 301, 327, 328], "understood": [0, 25, 301, 326, 335, 336], "thi": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 39, 44, 46, 55, 58, 59, 64, 65, 69, 74, 77, 78, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 96, 101, 102, 103, 104, 106, 107, 108, 112, 117, 120, 121, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 144, 146, 147, 148, 149, 151, 153, 154, 158, 161, 163, 165, 167, 168, 175, 176, 180, 181, 182, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 242, 244, 245, 246, 247, 250, 252, 253, 254, 255, 256, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 282, 284, 285, 287, 288, 289, 291, 294, 295, 296, 298, 299, 301, 302, 304, 305, 306, 307, 308, 309, 315, 320, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 357, 358, 359, 360, 362], "5": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 24, 25, 26, 27, 28, 29, 39, 42, 44, 46, 49, 51, 53, 55, 58, 59, 67, 69, 72, 74, 77, 78, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 108, 110, 112, 115, 117, 120, 121, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 153, 154, 158, 171, 174, 175, 176, 181, 182, 184, 185, 186, 190, 193, 195, 196, 204, 205, 207, 208, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 244, 245, 246, 247, 248, 249, 250, 251, 254, 259, 262, 263, 264, 265, 266, 267, 269, 271, 273, 276, 278, 280, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 310, 313, 315, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 358, 362], "whole": [0, 294], "correspond": [0, 6, 14, 15, 16, 17, 18, 19, 29, 40, 88, 96, 102, 138, 139, 181, 182, 189, 203, 204, 209, 220, 227, 230, 236, 238, 247, 265, 267, 268, 270, 271, 278, 304, 305, 306, 307, 308, 309, 323, 325, 329, 334, 339, 342, 343, 344, 346], "list": [0, 7, 8, 10, 11, 14, 17, 18, 19, 24, 44, 48, 55, 60, 64, 65, 69, 71, 74, 79, 83, 84, 86, 87, 88, 92, 98, 101, 102, 106, 107, 112, 114, 117, 122, 126, 127, 142, 143, 146, 149, 163, 165, 167, 168, 170, 173, 181, 182, 207, 208, 214, 240, 242, 244, 245, 249, 258, 261, 263, 264, 265, 272, 279, 280, 295, 322, 323, 326, 338, 340, 341, 342, 358, 361], "toolkit5g": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 357, 359, 360, 362], "crcencod": [0, 1, 2, 3, 4, 42, 51, 53, 67, 110, 184, 188, 362], "mapper": [0, 1, 3, 47, 64, 70, 83, 97, 101, 106, 113, 126, 141, 150, 151, 152, 153, 154, 158, 159, 161, 163, 167, 169, 172, 179, 183, 184, 185, 186, 188, 189, 208, 235, 237, 240, 257, 275, 294, 301, 315, 319, 322, 323, 333, 335, 336, 351, 352, 358, 361], "symbolmap": [0, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 294, 301, 315, 319, 322, 323, 326, 333, 335, 336, 351, 362], "channelprocess": [0, 21, 22, 301, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351, 362], "addnois": [0, 1, 21, 301, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351, 362], "demapp": [0, 1, 4, 47, 49, 70, 72, 86, 97, 99, 113, 115, 141, 150, 169, 172, 174, 179, 184, 185, 186, 188, 189, 257, 294, 301, 315, 319, 322, 323, 333, 335, 336, 351, 352, 358, 362], "decod": [0, 1, 2, 7, 8, 9, 11, 27, 31, 39, 44, 46, 48, 54, 59, 60, 64, 69, 71, 73, 78, 79, 83, 85, 93, 98, 102, 106, 108, 112, 114, 116, 121, 122, 126, 143, 144, 147, 149, 163, 167, 170, 173, 175, 181, 183, 184, 185, 186, 188, 189, 207, 212, 234, 236, 240, 243, 258, 262, 266, 269, 270, 272, 274, 280, 281, 284, 285, 289, 292, 293, 295, 301, 310, 315, 318, 319, 320, 326, 335, 336, 349, 352, 358], "crcdecod": [0, 1, 2, 3, 42, 51, 53, 67, 110, 188, 362], "directli": [0, 1, 85, 86, 184, 185, 193, 195, 203, 243, 244, 245, 283, 302, 332, 359], "It": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 19, 22, 24, 27, 28, 29, 32, 33, 38, 39, 44, 46, 48, 49, 55, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 154, 158, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 249, 252, 253, 254, 255, 256, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 283, 285, 309, 315, 326, 327, 328, 333, 335, 336, 350, 358, 360], "recommend": 0, "alon": [0, 206], "alias": 0, "mandatori": [0, 280], "design": [0, 3, 4, 6, 10, 12, 31, 55, 58, 74, 77, 96, 117, 120, 142, 146, 186, 211, 227, 234, 254, 269, 270, 275, 276, 309, 315, 320, 333, 336, 338, 339, 340, 341, 343, 346, 358, 361], "oper": [0, 57, 76, 95, 102, 119, 139, 186, 207, 210, 220, 268, 269, 270, 283, 285, 320, 348, 356, 359, 360, 362], "per": [0, 3, 4, 6, 14, 18, 19, 24, 48, 49, 60, 71, 72, 79, 85, 86, 87, 88, 90, 91, 94, 95, 96, 98, 99, 101, 102, 103, 104, 114, 115, 122, 130, 131, 132, 136, 137, 138, 139, 170, 171, 173, 174, 181, 182, 184, 185, 207, 208, 215, 216, 218, 219, 220, 228, 229, 230, 231, 232, 235, 236, 237, 238, 246, 247, 248, 251, 253, 256, 258, 259, 267, 271, 276, 278, 281, 285, 287, 288, 289, 291, 294, 299, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "num_bits_per_symbol": [0, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 315, 319, 326, 335, 336, 362], "4": [0, 1, 2, 6, 8, 9, 12, 14, 17, 18, 19, 22, 24, 26, 28, 35, 37, 39, 42, 46, 48, 49, 51, 53, 58, 59, 60, 64, 65, 67, 71, 72, 77, 78, 79, 83, 84, 85, 87, 88, 89, 90, 91, 92, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 114, 115, 120, 121, 122, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 144, 147, 153, 154, 158, 163, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 180, 181, 182, 183, 184, 190, 197, 198, 205, 206, 207, 208, 209, 211, 212, 215, 216, 217, 218, 219, 220, 221, 226, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 240, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 264, 265, 266, 269, 271, 272, 273, 274, 275, 278, 285, 287, 288, 289, 291, 294, 302, 304, 306, 307, 308, 309, 310, 312, 315, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 357, 358, 359, 360, 362], "demapping_method": [0, 48, 60, 71, 79, 86, 98, 114, 122, 170, 173, 258, 315, 319, 326, 335, 336, 362], "app": [0, 6, 48, 60, 71, 79, 86, 96, 98, 114, 122, 170, 173, 181, 188, 258, 294, 301, 315, 319, 320, 323, 325, 326, 335, 336, 362], "crctype": [0, 2, 3, 4, 7, 10, 11, 42, 44, 51, 53, 55, 67, 69, 74, 93, 108, 110, 112, 117, 142, 143, 146, 186, 362], "crc24c": [0, 2, 3, 4, 10, 11, 42, 44, 51, 53, 55, 67, 69, 74, 110, 112, 117, 142, 143, 146, 362], "qammapp": [0, 362], "qam": [0, 26, 48, 49, 60, 71, 72, 79, 86, 98, 99, 114, 115, 122, 169, 170, 171, 173, 174, 235, 237, 257, 258, 259, 294, 318, 323, 333, 335, 336, 361, 362], "qamdemapp": [0, 362], "constellation_typ": [0, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 315, 319, 326, 335, 336, 362], "hard_out": [0, 6, 48, 60, 71, 79, 86, 96, 98, 114, 122, 144, 147, 170, 173, 258, 294, 301, 315, 319, 322, 323, 326, 335, 336, 351, 362], "true": [0, 3, 5, 6, 10, 11, 12, 17, 18, 19, 21, 22, 44, 48, 55, 60, 69, 71, 74, 79, 86, 88, 96, 98, 103, 104, 112, 114, 117, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 170, 173, 181, 184, 204, 206, 215, 216, 217, 218, 219, 220, 227, 228, 229, 235, 237, 238, 246, 247, 258, 263, 264, 269, 271, 273, 279, 281, 285, 287, 289, 291, 294, 301, 302, 305, 315, 319, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 335, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 350, 351, 362], "24": [0, 2, 3, 4, 8, 10, 29, 39, 42, 46, 51, 53, 55, 67, 74, 93, 110, 117, 142, 146, 184, 189, 228, 231, 234, 244, 245, 254, 262, 266, 278, 301, 304, 305, 315, 320, 323, 325, 327, 328, 329, 330, 331, 332, 337, 338, 348, 362], "16": [0, 2, 3, 4, 8, 24, 29, 42, 49, 51, 53, 62, 67, 72, 81, 87, 92, 93, 99, 101, 102, 110, 115, 124, 130, 131, 132, 134, 136, 137, 138, 139, 164, 171, 174, 181, 182, 186, 202, 203, 205, 207, 208, 215, 216, 217, 218, 219, 220, 227, 228, 231, 234, 236, 241, 244, 245, 246, 247, 249, 259, 265, 278, 291, 294, 304, 306, 307, 308, 309, 310, 315, 318, 320, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 337, 338, 339, 340, 341, 342, 345, 346, 348, 349, 350, 356, 359, 360, 362], "log": [0, 5, 12, 18, 19, 48, 49, 57, 60, 64, 71, 72, 76, 79, 83, 86, 98, 99, 106, 114, 115, 119, 122, 126, 152, 159, 163, 167, 169, 170, 173, 174, 175, 181, 184, 185, 189, 210, 240, 257, 258, 281, 301, 319, 326, 335, 336, 356, 359, 360], "return": [0, 5, 6, 7, 8, 9, 10, 11, 15, 18, 19, 35, 40, 44, 48, 49, 55, 60, 69, 71, 72, 74, 79, 85, 86, 87, 88, 92, 93, 94, 96, 98, 99, 102, 112, 114, 115, 117, 122, 134, 139, 142, 143, 144, 146, 147, 148, 149, 170, 171, 173, 174, 175, 176, 181, 182, 186, 189, 193, 195, 196, 198, 202, 204, 206, 207, 209, 235, 236, 237, 244, 245, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 264, 267, 268, 269, 270, 271, 272, 274, 275, 278, 279, 280, 281, 285, 287, 288, 289, 291, 294, 302, 315, 319, 332, 342, 348], "hard": [0, 5, 6, 10, 11, 12, 24, 44, 48, 49, 55, 60, 64, 69, 71, 72, 74, 79, 83, 86, 96, 98, 99, 101, 102, 106, 112, 114, 115, 117, 122, 126, 142, 143, 144, 146, 147, 149, 163, 167, 169, 170, 173, 174, 207, 208, 240, 257, 258, 315, 319], "0": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 22, 24, 27, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 49, 55, 62, 64, 65, 69, 72, 74, 81, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 106, 107, 112, 115, 117, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 148, 162, 163, 164, 165, 167, 168, 171, 174, 175, 181, 182, 183, 184, 185, 186, 188, 189, 190, 193, 195, 196, 197, 198, 202, 203, 204, 205, 206, 207, 208, 209, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 278, 280, 281, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 352, 356, 357, 359, 360, 362], "power": [0, 6, 14, 15, 16, 18, 21, 96, 103, 104, 131, 137, 200, 202, 203, 204, 205, 206, 216, 219, 228, 229, 231, 235, 237, 244, 245, 275, 276, 279, 280, 283, 285, 287, 288, 289, 291, 294, 299, 301, 306, 315, 327, 328, 331, 336, 338, 339, 340, 341, 344, 346, 347, 348, 349, 352, 358], "ad": [0, 1, 6, 7, 21, 86, 93, 96, 301, 302, 320, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 345, 348, 350, 358, 362], "frac": [0, 19, 32, 33, 48, 49, 60, 71, 72, 79, 85, 95, 98, 99, 103, 104, 114, 115, 122, 170, 171, 173, 174, 182, 185, 189, 228, 229, 230, 231, 236, 238, 244, 245, 248, 249, 251, 254, 258, 259, 265, 270, 271, 278, 279, 280, 281, 319, 361, 362], "snr": [0, 1, 10, 12, 48, 55, 60, 71, 74, 79, 86, 90, 98, 114, 117, 122, 142, 146, 170, 173, 175, 181, 184, 185, 188, 258, 269, 278, 280, 281, 294, 304, 315, 318, 325, 326, 327, 328, 330, 331, 332, 334, 335, 337, 350, 351, 352, 358], "sequenc": [0, 1, 3, 4, 8, 14, 24, 32, 39, 46, 48, 49, 60, 62, 64, 65, 71, 72, 79, 81, 83, 84, 85, 93, 98, 99, 101, 103, 104, 106, 107, 114, 115, 122, 124, 126, 127, 129, 130, 131, 134, 135, 136, 137, 139, 145, 148, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 181, 208, 215, 216, 217, 218, 219, 220, 228, 229, 230, 231, 232, 233, 235, 237, 238, 239, 240, 241, 242, 252, 253, 255, 256, 258, 259, 263, 269, 271, 273, 276, 285, 287, 289, 291, 294, 296, 324, 327, 328, 331, 349, 350, 352, 358, 361], "randomli": [0, 19, 64, 65, 83, 84, 87, 106, 107, 126, 127, 163, 165, 167, 168, 206, 235, 240, 242, 260, 261, 262, 263, 264, 265, 266, 267], "randint": [0, 3, 4, 6, 10, 12, 25, 29, 49, 55, 62, 65, 72, 74, 81, 84, 91, 96, 99, 107, 108, 115, 117, 124, 127, 142, 144, 146, 147, 148, 149, 164, 165, 168, 171, 174, 176, 182, 235, 236, 237, 241, 242, 249, 259, 272, 274, 278, 285, 287, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 348, 349, 350, 351, 362], "random": [0, 1, 3, 4, 6, 10, 12, 16, 18, 19, 25, 29, 49, 55, 62, 64, 65, 72, 74, 81, 83, 84, 91, 96, 99, 106, 107, 108, 115, 117, 124, 126, 127, 142, 144, 146, 147, 148, 149, 162, 163, 164, 165, 167, 168, 171, 174, 176, 182, 183, 198, 235, 236, 237, 239, 240, 241, 242, 243, 249, 259, 267, 269, 272, 273, 274, 278, 280, 285, 287, 289, 291, 294, 296, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 345, 348, 349, 350, 351, 358, 361, 362], "numblock": [0, 362], "10000": [0, 196, 198, 206, 318, 333, 345, 352, 358, 362], "nbitsperblock": [0, 362], "384": [0, 244, 333, 362], "crcbit": [0, 3, 4, 362], "e": [0, 7, 8, 10, 11, 14, 15, 16, 17, 18, 19, 22, 24, 26, 29, 32, 33, 39, 44, 46, 54, 55, 57, 58, 69, 73, 74, 76, 77, 86, 87, 92, 95, 101, 102, 112, 116, 117, 119, 120, 142, 143, 145, 146, 148, 149, 152, 153, 158, 159, 175, 181, 182, 184, 185, 188, 189, 207, 208, 210, 211, 227, 230, 236, 238, 262, 266, 270, 271, 278, 280, 304, 307, 309, 315, 320, 325, 335, 336], "group": [0, 7, 24, 29, 35, 37, 92, 101, 102, 132, 138, 139, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 230, 244, 245, 246, 247, 249, 270, 348, 350], "an": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 24, 25, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 58, 60, 62, 64, 65, 69, 71, 72, 74, 77, 79, 81, 83, 84, 87, 88, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 120, 122, 124, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 189, 193, 195, 196, 197, 198, 199, 204, 205, 206, 207, 208, 211, 215, 216, 218, 219, 220, 227, 228, 229, 231, 232, 233, 235, 236, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 265, 266, 269, 270, 271, 272, 275, 276, 278, 279, 280, 298, 302, 306, 307, 309, 318, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 339, 342, 343, 346, 348, 349, 350, 351, 356, 358, 359, 360], "70": [0, 267, 301, 304, 308, 309, 329, 330, 331, 335, 337, 342, 348], "ratio": [0, 5, 10, 12, 18, 19, 48, 49, 55, 57, 60, 64, 71, 72, 74, 76, 79, 83, 86, 88, 98, 99, 106, 114, 115, 117, 119, 122, 126, 142, 146, 152, 159, 163, 167, 169, 170, 173, 174, 175, 181, 184, 185, 188, 189, 210, 240, 257, 258, 269, 280, 281, 319, 325, 326, 332, 335, 336, 337, 349, 350, 352, 358, 362], "rxsymbol": [0, 301, 362], "back": [0, 32, 34, 35, 36, 37, 315], "either": [0, 5, 6, 7, 8, 9, 11, 12, 14, 17, 19, 22, 24, 29, 39, 44, 46, 48, 60, 64, 69, 71, 79, 83, 87, 88, 89, 92, 93, 94, 95, 96, 98, 101, 102, 106, 112, 114, 122, 126, 130, 131, 132, 136, 137, 138, 139, 143, 148, 163, 167, 170, 173, 176, 181, 182, 188, 189, 206, 207, 208, 215, 216, 218, 219, 220, 227, 235, 236, 238, 240, 244, 245, 246, 247, 249, 254, 258, 264, 265, 267, 278, 279, 280, 281, 325, 327, 328, 330, 331, 350], "llr": [0, 1, 5, 6, 10, 11, 12, 44, 48, 55, 57, 60, 64, 69, 71, 74, 76, 79, 83, 86, 88, 96, 98, 102, 106, 112, 114, 117, 119, 122, 126, 142, 143, 146, 149, 152, 159, 163, 167, 170, 173, 181, 184, 185, 207, 210, 240, 258, 291, 294, 301, 320, 336, 348], "base": [0, 1, 4, 6, 7, 8, 10, 15, 16, 17, 18, 19, 24, 29, 31, 48, 49, 55, 57, 58, 60, 64, 65, 71, 72, 74, 76, 77, 79, 83, 84, 85, 86, 87, 88, 92, 93, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 114, 115, 117, 119, 120, 122, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 144, 145, 146, 147, 149, 163, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 188, 195, 200, 205, 206, 207, 208, 209, 210, 211, 215, 216, 217, 218, 219, 220, 221, 227, 228, 229, 231, 234, 235, 236, 240, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, 263, 264, 265, 267, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 282, 283, 284, 286, 287, 290, 292, 293, 295, 296, 299, 301, 305, 306, 307, 309, 318, 319, 320, 325, 334, 336, 338, 339, 340, 341, 342, 344, 346, 348, 349, 352, 358, 361], "bitsest": [0, 362], "complex64": [0, 15, 29, 39, 46, 48, 49, 60, 71, 72, 79, 85, 86, 95, 98, 99, 103, 104, 114, 115, 122, 170, 171, 173, 174, 182, 184, 185, 228, 229, 230, 231, 235, 237, 238, 258, 259, 271, 275, 276, 285, 287, 289, 291, 294, 301, 302, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 348, 349, 351, 362], "variabl": [0, 6, 8, 17, 18, 19, 22, 24, 29, 39, 46, 64, 65, 83, 84, 87, 92, 94, 96, 101, 106, 107, 126, 127, 163, 165, 167, 168, 189, 208, 233, 235, 236, 237, 240, 242, 243, 249, 265, 269, 276, 278, 301, 304, 305, 306, 307, 308, 309, 339, 362], "rbit": [0, 3, 294, 362], "otherwis": [0, 3, 6, 12, 15, 17, 19, 39, 46, 88, 95, 96, 182, 184, 231, 244, 245, 254, 262, 266, 272, 281, 319, 356, 357, 359, 360], "least": [0, 6, 22, 96, 200, 206, 268, 269, 270, 271, 295, 327, 328, 329, 330, 331, 332], "compar": [0, 271, 301, 306, 307, 308, 309, 315, 318, 326, 327, 328, 331, 352, 358, 362], "On": [0, 49, 72, 99, 115, 171, 174, 186, 189, 204, 206, 259, 301, 319, 353], "other": [0, 10, 11, 14, 18, 19, 28, 44, 49, 55, 69, 72, 74, 87, 99, 112, 115, 117, 142, 143, 146, 171, 174, 186, 189, 196, 197, 198, 199, 204, 206, 227, 244, 245, 259, 267, 269, 270, 275, 276, 278, 279, 280, 283, 294, 295, 298, 301, 305, 306, 315, 319, 320, 322, 323, 327, 328, 330, 331, 332, 333, 334, 339, 342, 343, 346, 356, 358, 359, 360, 361, 362], "hand": [0, 49, 72, 99, 115, 171, 174, 186, 189, 204, 206, 259, 301, 319], "flag": [0, 11, 15, 18, 19, 21, 26, 27, 39, 44, 46, 48, 58, 60, 69, 71, 77, 79, 98, 112, 114, 120, 122, 143, 153, 158, 170, 173, 184, 188, 189, 206, 211, 235, 237, 258, 265, 269, 271, 279, 281, 301, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351, 360, 362], "ber": [0, 12, 87, 289, 291, 294, 315, 318, 326, 334, 335, 337, 351, 352, 358], "mean": [0, 18, 19, 29, 269, 270, 271, 285, 291, 294, 301, 315, 319, 320, 322, 323, 324, 326, 332, 333, 334, 335, 336, 339, 342, 343, 345, 346, 348, 349, 350, 351, 362], "ab": [0, 285, 287, 289, 291, 294, 301, 302, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 350, 351, 362], "total": [0, 8, 19, 29, 93, 102, 207, 230, 235, 237, 266, 278, 279, 304, 305, 307, 315, 348, 362], "number": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 34, 35, 36, 37, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 258, 259, 260, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 275, 276, 278, 279, 281, 285, 287, 288, 289, 291, 294, 301, 302, 304, 308, 310, 315, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 352, 358, 362], "bler": [0, 280, 294, 318, 334, 351, 352, 358], "print": [0, 10, 11, 18, 29, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 227, 236, 244, 245, 254, 269, 272, 274, 278, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 339, 342, 343, 348, 349, 350, 351, 362], "str": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 17, 18, 19, 29, 35, 37, 39, 44, 46, 48, 49, 55, 60, 64, 65, 69, 71, 72, 74, 79, 83, 84, 85, 86, 87, 88, 93, 94, 95, 96, 98, 99, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 122, 126, 127, 130, 131, 132, 138, 142, 143, 146, 149, 163, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 195, 205, 206, 207, 209, 215, 216, 227, 228, 229, 230, 231, 233, 236, 238, 240, 242, 244, 245, 246, 247, 249, 254, 258, 259, 262, 263, 264, 266, 267, 269, 270, 271, 272, 273, 274, 275, 276, 278, 289, 291, 294, 301, 302, 304, 305, 306, 307, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 348, 349, 350, 351, 362], "6": [0, 2, 3, 4, 17, 18, 19, 22, 24, 29, 34, 36, 39, 42, 46, 49, 51, 53, 64, 65, 67, 72, 83, 84, 85, 87, 88, 94, 95, 99, 101, 102, 103, 104, 106, 107, 110, 115, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 145, 163, 165, 167, 168, 171, 174, 175, 176, 181, 182, 184, 204, 205, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 229, 230, 231, 233, 234, 236, 238, 240, 242, 244, 245, 246, 247, 248, 249, 251, 254, 259, 262, 263, 264, 265, 266, 267, 270, 271, 273, 276, 278, 285, 287, 288, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 314, 315, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 358, 359, 360, 362], "71875e": 0, "05": [0, 202, 204, 205, 278, 301, 302, 304, 305, 306, 307, 308, 309, 315, 327, 334, 351, 362], "026599999999999957": 0, "practic": [0, 198, 202, 203, 204, 338, 339, 340, 341, 344, 346], "possibl": [0, 132, 138, 196, 204, 205, 214, 236, 246, 247, 249, 254, 260, 261, 262, 263, 264, 265, 266, 267, 278, 279, 301, 305, 324, 325, 327, 328, 358], "known": [0, 203, 204, 268, 269, 270, 271, 272, 273, 275, 276, 285, 322, 323, 324, 327, 328, 329, 331, 334], "howev": [0, 10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 193, 195, 196, 197, 198, 199, 202, 267, 279, 295, 302, 307, 332], "without": [0, 27, 268, 298], "know": [0, 39, 46, 236, 262, 266], "inform": [0, 1, 2, 3, 6, 8, 9, 10, 11, 12, 14, 24, 27, 40, 42, 44, 45, 48, 49, 51, 53, 55, 57, 60, 64, 65, 67, 69, 71, 72, 74, 76, 79, 83, 84, 85, 86, 87, 88, 90, 93, 96, 98, 99, 101, 102, 106, 107, 110, 112, 114, 115, 117, 119, 122, 126, 127, 131, 132, 137, 138, 142, 143, 146, 148, 149, 152, 159, 162, 163, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 189, 197, 202, 203, 204, 205, 207, 208, 210, 215, 216, 217, 218, 219, 220, 226, 227, 230, 232, 235, 236, 237, 239, 240, 243, 246, 247, 258, 259, 260, 262, 265, 266, 269, 270, 272, 273, 275, 276, 277, 278, 280, 281, 285, 287, 289, 291, 294, 298, 315, 319, 320, 323, 326, 327, 328, 329, 330, 331, 332, 335, 336, 349, 352], "fig": [0, 186, 195, 202, 204, 206, 231, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "ax": [0, 202, 204, 206, 231, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "subplot": [0, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "set_aspect": [0, 302, 324, 327, 328, 330, 332, 339, 342, 343, 349, 362], "scatter": [0, 289, 291, 294, 301, 302, 315, 324, 327, 328, 329, 330, 331, 332, 339, 342, 343, 348, 362], "real": [0, 34, 36, 280, 285, 289, 291, 294, 301, 315, 348, 362], "imag": [0, 285, 289, 291, 294, 348, 362], "color": [0, 19, 206, 273, 285, 287, 288, 289, 291, 294, 301, 302, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 339, 342, 343, 346, 348, 349, 362], "red": [0, 206, 301, 324, 326, 327, 328, 333, 335, 336, 337, 362], "marker": [0, 206, 301, 302, 304, 305, 306, 307, 308, 315, 319, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 335, 336, 337, 349, 351, 362], "": [0, 1, 6, 14, 16, 17, 19, 29, 33, 34, 35, 36, 37, 64, 65, 83, 84, 85, 87, 88, 96, 101, 103, 104, 106, 107, 126, 127, 132, 138, 162, 163, 165, 167, 168, 181, 189, 196, 198, 206, 208, 228, 229, 230, 231, 235, 236, 239, 240, 242, 243, 246, 247, 248, 249, 251, 254, 265, 268, 269, 270, 271, 275, 276, 278, 279, 285, 289, 291, 294, 298, 301, 302, 305, 308, 315, 319, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 338, 339, 340, 341, 342, 344, 346, 348, 351, 352, 358, 361, 362], "set_xlabel": [0, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "part": [0, 24, 39, 46, 89, 101, 102, 130, 131, 132, 134, 136, 137, 138, 144, 147, 180, 184, 186, 189, 207, 208, 215, 216, 217, 218, 219, 227, 230, 236, 246, 247, 262, 266, 270, 285, 294, 301, 315, 322, 323, 334, 358, 362], "mathfrak": [0, 362], "r": [0, 1, 39, 46, 48, 49, 60, 71, 72, 79, 85, 87, 98, 99, 103, 104, 114, 115, 122, 145, 170, 171, 173, 174, 181, 184, 193, 195, 198, 206, 226, 227, 229, 230, 231, 233, 243, 254, 258, 259, 260, 262, 263, 265, 266, 269, 270, 271, 276, 277, 285, 289, 291, 294, 296, 299, 302, 307, 308, 315, 319, 320, 322, 323, 325, 327, 328, 329, 330, 331, 332, 333, 338, 339, 340, 341, 342, 343, 344, 346, 348, 350, 351, 352, 358, 361, 362], "x": [0, 12, 22, 29, 86, 87, 95, 102, 189, 193, 195, 196, 197, 198, 199, 206, 207, 255, 273, 275, 278, 279, 280, 285, 287, 288, 289, 291, 294, 301, 302, 306, 309, 315, 319, 320, 322, 323, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 362], "set_ylabel": [0, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "imaginari": [0, 285, 301, 362], "set_titl": [0, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 319, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "contel": [0, 326, 335, 336, 362], "grid": [0, 1, 19, 22, 29, 32, 33, 34, 35, 36, 37, 39, 46, 85, 86, 103, 104, 130, 136, 184, 185, 186, 189, 204, 215, 218, 226, 228, 229, 230, 231, 232, 233, 238, 243, 254, 255, 256, 262, 265, 266, 267, 269, 270, 271, 272, 273, 274, 275, 276, 279, 286, 288, 290, 292, 293, 295, 296, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 329, 330, 332, 333, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 350, 351, 352, 358, 362], "both": [0, 6, 7, 12, 14, 16, 18, 19, 22, 62, 81, 90, 92, 95, 96, 124, 164, 186, 189, 195, 196, 197, 198, 199, 206, 214, 227, 234, 235, 236, 237, 241, 249, 255, 256, 270, 273, 294, 305, 315, 319, 325, 327, 328, 331, 334, 336, 338, 339, 340, 341, 342, 343, 344, 346, 351, 361, 362], "show": [0, 18, 19, 29, 273, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 356, 357, 359, 360, 362], "abov": [0, 19, 33, 39, 46, 95, 195, 196, 197, 198, 199, 206, 238, 278, 280, 289, 295, 301, 306, 348], "procedur": [0, 1, 6, 7, 12, 29, 94, 96, 102, 130, 131, 132, 134, 136, 137, 138, 139, 141, 175, 176, 186, 188, 206, 207, 215, 216, 217, 218, 219, 220, 236, 244, 245, 246, 247, 260, 278, 285, 289, 291, 299, 327, 329, 330, 332, 338, 339, 340, 341, 342, 343, 344, 346, 348, 352, 356, 358, 359, 361], "repeat": [0, 3, 29, 102, 207, 236, 279, 285, 287, 289, 291, 294, 302, 318, 320, 322, 323, 325, 327, 328, 329, 330, 331, 332, 334, 342, 349, 351, 358], "differ": [0, 2, 6, 14, 15, 17, 19, 23, 31, 42, 51, 53, 57, 62, 64, 65, 67, 76, 81, 83, 84, 87, 96, 102, 106, 107, 110, 119, 124, 126, 127, 162, 163, 164, 165, 167, 168, 190, 195, 197, 198, 200, 203, 206, 207, 209, 210, 226, 235, 236, 237, 239, 240, 241, 242, 249, 268, 275, 276, 278, 283, 284, 301, 306, 307, 310, 315, 318, 320, 325, 326, 327, 328, 330, 331, 332, 335, 337, 338, 339, 340, 341, 342, 344, 346, 349, 350, 352, 358, 362], "order": [0, 2, 24, 26, 39, 42, 46, 48, 49, 51, 53, 58, 60, 67, 71, 72, 77, 79, 85, 86, 87, 88, 94, 98, 99, 101, 102, 110, 114, 115, 120, 122, 131, 137, 144, 147, 170, 171, 173, 174, 175, 176, 182, 204, 207, 208, 209, 211, 214, 216, 219, 227, 258, 259, 262, 264, 266, 269, 271, 275, 276, 281, 294, 301, 324, 334, 338, 340, 341, 344, 362], "analys": 0, "v": [0, 12, 29, 244, 284, 285, 288, 289, 291, 294, 302, 305, 306, 308, 310, 315, 318, 326, 327, 328, 329, 330, 332, 334, 335, 337, 349, 350, 351, 352, 356, 357, 358, 359], "snrdb": [0, 280, 281, 301, 319, 320, 322, 323, 325, 326, 335, 336, 337, 349, 350, 351, 362], "linspac": [0, 301, 302, 305, 315, 319, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 335, 336, 348, 349, 350, 351, 362], "25": [0, 10, 15, 18, 19, 55, 74, 117, 142, 145, 146, 189, 202, 250, 255, 256, 267, 301, 302, 304, 307, 309, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 336, 337, 338, 339, 342, 344, 346, 348, 349, 351, 362], "10": [0, 2, 6, 14, 15, 18, 19, 24, 25, 29, 39, 42, 46, 49, 51, 53, 67, 72, 85, 87, 88, 90, 91, 94, 96, 99, 101, 102, 103, 104, 110, 115, 130, 131, 132, 136, 137, 138, 144, 145, 147, 171, 174, 181, 182, 184, 189, 196, 198, 199, 204, 205, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 245, 246, 247, 248, 249, 251, 254, 259, 262, 263, 264, 265, 266, 267, 269, 270, 271, 272, 273, 278, 279, 280, 281, 284, 285, 287, 288, 289, 291, 294, 301, 302, 303, 304, 305, 306, 307, 308, 310, 315, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 359, 362], "modord": [0, 11, 23, 24, 44, 48, 49, 60, 69, 71, 72, 79, 85, 86, 88, 98, 99, 100, 101, 102, 112, 114, 115, 122, 143, 144, 147, 149, 170, 171, 173, 174, 175, 176, 182, 186, 207, 208, 209, 258, 259, 271, 294, 301, 322, 323, 333, 336, 351, 362], "arrai": [0, 1, 3, 4, 5, 7, 8, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 25, 26, 27, 28, 29, 34, 35, 36, 37, 39, 44, 46, 49, 55, 57, 58, 59, 62, 64, 65, 69, 72, 74, 76, 77, 78, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 99, 102, 106, 107, 112, 115, 117, 119, 120, 121, 124, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 171, 174, 181, 182, 184, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 230, 231, 235, 236, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 264, 266, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 287, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 336, 347, 348, 349, 350, 351, 352, 358, 362], "dtype": [0, 3, 4, 6, 10, 12, 14, 18, 19, 29, 48, 49, 55, 60, 71, 72, 74, 79, 91, 96, 98, 99, 108, 114, 115, 117, 122, 142, 146, 170, 171, 173, 174, 182, 227, 236, 249, 258, 259, 278, 285, 287, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 336, 339, 342, 343, 344, 348, 349, 351, 362], "int32": [0, 12, 289, 294, 302, 329, 330, 332, 333, 335, 349, 362], "zero": [0, 6, 7, 8, 9, 11, 12, 14, 18, 19, 29, 44, 57, 69, 76, 93, 96, 102, 112, 119, 138, 143, 148, 152, 159, 193, 195, 203, 205, 207, 210, 217, 218, 219, 220, 238, 247, 269, 270, 271, 278, 285, 287, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 348, 349, 350, 351, 362], "j": [0, 33, 199, 284, 301, 315, 333, 362], "m": [0, 5, 6, 14, 17, 18, 96, 196, 198, 206, 244, 245, 252, 253, 254, 265, 302, 304, 305, 306, 307, 308, 315, 318, 319, 320, 322, 323, 325, 327, 328, 329, 330, 331, 332, 338, 339, 340, 341, 342, 343, 344, 345, 349, 358, 361, 362], "int": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 193, 195, 196, 198, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 264, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 280, 285, 287, 288, 289, 291, 294, 301, 304, 305, 306, 307, 308, 309, 315, 320, 323, 324, 325, 327, 328, 331, 333, 334, 336, 342, 348, 349, 350, 362], "float32": [0, 6, 7, 8, 10, 11, 12, 14, 44, 48, 49, 55, 60, 69, 71, 72, 74, 79, 88, 92, 93, 96, 98, 99, 102, 108, 112, 114, 115, 117, 122, 142, 143, 146, 148, 149, 170, 171, 173, 174, 181, 182, 207, 258, 259, 285, 301, 315, 319, 323, 324, 326, 331, 335, 336, 339, 342, 343, 344, 349, 362], "For": [0, 6, 14, 15, 18, 19, 29, 32, 35, 37, 39, 46, 49, 64, 65, 72, 83, 84, 87, 94, 95, 96, 99, 103, 104, 106, 107, 115, 126, 127, 145, 162, 163, 165, 167, 168, 171, 174, 184, 196, 197, 198, 199, 202, 203, 204, 205, 206, 227, 228, 229, 231, 236, 238, 239, 240, 242, 249, 254, 259, 262, 265, 266, 267, 268, 269, 270, 273, 275, 276, 278, 280, 294, 295, 301, 304, 305, 307, 308, 309, 315, 319, 322, 323, 325, 326, 335, 336, 339, 342, 343, 344, 346, 351, 352, 356, 357, 358, 359, 360, 362], "arang": [0, 14, 29, 273, 278, 285, 302, 304, 305, 306, 307, 308, 309, 315, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 332, 333, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 351, 362], "semilogi": [0, 301, 315, 319, 320, 322, 323, 326, 335, 336, 337, 349, 350, 351, 362], "db": [0, 14, 18, 19, 281, 285, 287, 288, 289, 291, 294, 302, 315, 318, 319, 320, 322, 323, 324, 326, 335, 336, 337, 339, 342, 343, 345, 346, 349, 350, 351, 362], "set_xtick": [0, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 324, 325, 327, 328, 329, 330, 331, 332, 334, 343, 349, 351, 362], "minor": [0, 285, 287, 289, 291, 294, 302, 305, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 339, 346, 348, 349, 351, 362], "fals": [0, 3, 5, 6, 10, 11, 12, 15, 17, 18, 19, 21, 22, 27, 44, 48, 55, 60, 69, 71, 74, 79, 86, 87, 88, 90, 96, 98, 102, 112, 114, 117, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 149, 170, 173, 181, 182, 184, 207, 209, 215, 216, 217, 218, 219, 220, 227, 237, 238, 246, 247, 258, 269, 271, 278, 279, 281, 285, 287, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 339, 342, 343, 345, 346, 348, 349, 350, 351, 362], "legend": [0, 206, 273, 285, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349, 350, 351, 362], "qpsk": [0, 58, 77, 85, 86, 120, 184, 185, 211, 289, 291, 294, 320, 325, 335, 336, 348, 362], "16qam": [0, 362], "64qam": [0, 362], "download": [0, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 305, 306, 307, 308, 309, 315, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 352, 356, 357, 359, 360, 362], "find": [0, 22, 39, 46, 184, 196, 204, 236, 252, 253, 262, 266, 304, 333, 345, 348, 356, 357, 359, 362], "advanc": [0, 198, 268, 275, 276, 329, 331, 346], "thank": [0, 327, 328, 331], "read": [0, 26, 202, 204, 205, 227, 238, 269, 270, 273, 275, 276, 327, 328, 331], "feel": [0, 358], "free": [0, 3, 29, 358], "contact": [0, 295, 358], "assist": [0, 280, 295, 352, 361], "post": [0, 6, 21, 96, 280, 353, 354, 358], "question": [0, 358], "discuss": [0, 1, 8, 10, 55, 74, 93, 117, 142, 146, 149, 195, 200, 205, 214, 262, 266, 301, 333, 358], "forum": [0, 358], "answer": [0, 358], "soon": [0, 269, 358], "wide": [1, 333], "rang": [1, 6, 14, 18, 19, 29, 39, 46, 96, 132, 134, 138, 139, 184, 217, 220, 236, 238, 246, 247, 248, 249, 251, 262, 266, 267, 280, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 339, 342, 344, 348, 349, 351], "usecas": 1, "featur": [1, 14, 19, 186, 243, 280, 338, 339, 340, 341, 346], "them": [1, 6, 40, 87, 96, 204, 206, 275, 276, 360, 362], "captur": [1, 18, 19, 276, 278, 281, 294, 322, 323, 332, 351], "via": [1, 12, 102, 193, 203, 207, 294, 322, 323, 351, 361], "gener": [1, 2, 3, 4, 9, 10, 12, 14, 16, 19, 29, 32, 34, 35, 36, 37, 42, 45, 48, 49, 51, 53, 55, 60, 62, 64, 65, 67, 71, 72, 74, 79, 81, 83, 84, 85, 86, 87, 88, 89, 91, 98, 99, 102, 103, 104, 106, 107, 108, 110, 114, 115, 117, 122, 124, 126, 127, 129, 130, 131, 134, 135, 136, 137, 139, 142, 146, 148, 149, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 180, 182, 184, 185, 189, 190, 196, 198, 209, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 236, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 272, 275, 276, 286, 290, 292, 293, 295, 299, 315, 318, 319, 325, 326, 333, 335, 336, 346, 347, 350, 352, 358, 361], "all": [1, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 23, 27, 31, 39, 44, 46, 55, 65, 69, 74, 84, 85, 92, 93, 96, 103, 104, 107, 112, 117, 127, 142, 143, 146, 148, 149, 162, 168, 185, 195, 196, 197, 198, 199, 202, 214, 228, 229, 235, 236, 237, 238, 239, 243, 244, 249, 250, 253, 256, 267, 269, 273, 278, 279, 280, 281, 283, 285, 295, 298, 299, 301, 302, 308, 315, 318, 327, 328, 335, 338, 339, 340, 341, 342, 343, 344, 348, 352, 356, 357, 358, 359, 360, 361, 362], "varieti": [1, 358], "channel": [1, 4, 6, 8, 11, 12, 13, 17, 19, 23, 28, 29, 31, 32, 38, 39, 44, 46, 48, 49, 57, 60, 62, 64, 65, 69, 71, 72, 76, 79, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 96, 98, 99, 101, 102, 106, 107, 112, 114, 115, 119, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 143, 148, 149, 150, 151, 152, 154, 155, 156, 157, 159, 160, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 179, 180, 181, 182, 193, 195, 202, 203, 204, 205, 207, 208, 210, 213, 214, 215, 216, 217, 218, 219, 220, 226, 227, 231, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 262, 263, 264, 265, 266, 268, 272, 277, 278, 279, 280, 281, 283, 284, 289, 292, 294, 295, 296, 299, 301, 304, 305, 306, 307, 308, 309, 318, 319, 326, 336, 345, 350, 352, 353, 358, 361], "state": [1, 6, 18, 19, 48, 49, 60, 71, 72, 79, 96, 98, 99, 114, 115, 122, 170, 171, 173, 174, 195, 202, 203, 204, 205, 226, 243, 258, 259, 260, 265, 275, 276, 280, 281, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351, 358], "acquisit": [1, 243, 254], "posit": [1, 6, 12, 14, 15, 17, 18, 19, 29, 34, 35, 36, 37, 39, 46, 57, 76, 88, 94, 96, 102, 119, 130, 131, 132, 134, 136, 137, 138, 139, 152, 159, 181, 182, 184, 192, 193, 194, 195, 200, 202, 203, 204, 205, 207, 209, 210, 215, 216, 217, 218, 219, 220, 226, 227, 228, 230, 236, 238, 243, 244, 245, 246, 247, 248, 249, 250, 254, 262, 264, 265, 266, 269, 270, 275, 277, 278, 279, 284, 296, 299, 315, 318, 342, 343, 348, 352, 358, 361], "etc": [1, 6, 16, 87, 96, 193, 195, 202, 203, 204, 205, 243, 264, 267, 282, 283, 309], "resourc": [1, 24, 29, 32, 33, 34, 35, 36, 37, 39, 46, 57, 76, 85, 86, 87, 88, 89, 90, 91, 94, 101, 102, 103, 104, 119, 129, 132, 134, 135, 138, 139, 179, 180, 181, 182, 184, 186, 189, 207, 208, 210, 217, 220, 221, 222, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 243, 244, 245, 246, 247, 251, 254, 260, 262, 264, 265, 266, 267, 270, 271, 273, 275, 276, 278, 279, 281, 283, 285, 287, 288, 289, 291, 293, 295, 296, 299, 301, 302, 320, 322, 323, 329, 330, 331, 332, 346, 349, 350, 351, 352, 358, 361], "map": [1, 24, 29, 34, 36, 37, 47, 48, 60, 70, 71, 79, 85, 86, 95, 97, 98, 101, 103, 104, 113, 114, 122, 129, 134, 135, 141, 150, 170, 171, 172, 173, 175, 176, 179, 181, 182, 184, 185, 186, 188, 189, 208, 217, 221, 222, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 243, 244, 245, 258, 259, 263, 264, 266, 270, 271, 285, 287, 289, 291, 294, 296, 315, 318, 319, 320, 322, 323, 325, 326, 327, 328, 333, 350, 351, 352, 358, 361, 362], "variou": [1, 10, 12, 55, 74, 117, 142, 146, 243, 254, 260, 268, 270, 275, 276, 277, 283, 295, 320, 326, 331, 332, 333], "physic": [1, 2, 4, 6, 7, 8, 10, 11, 12, 29, 33, 38, 39, 42, 44, 46, 49, 51, 53, 55, 62, 64, 65, 67, 69, 72, 74, 81, 83, 84, 89, 91, 92, 93, 94, 95, 96, 99, 106, 107, 110, 112, 115, 117, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 145, 146, 148, 149, 162, 163, 164, 165, 167, 168, 169, 171, 174, 179, 180, 181, 182, 215, 216, 217, 218, 219, 220, 226, 227, 228, 231, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 269, 270, 271, 272, 273, 274, 278, 280, 283, 289, 291, 294, 296, 301, 304, 305, 306, 307, 308, 309, 315, 322, 323, 335, 339, 348, 350, 352, 358, 361], "payload": [1, 2, 3, 6, 10, 11, 12, 25, 38, 42, 44, 51, 53, 55, 57, 62, 64, 65, 67, 69, 74, 76, 81, 83, 84, 86, 95, 96, 102, 106, 107, 110, 112, 117, 119, 124, 126, 127, 142, 143, 144, 145, 146, 147, 148, 163, 164, 165, 167, 168, 175, 176, 184, 185, 188, 189, 207, 210, 226, 227, 230, 232, 234, 235, 237, 240, 241, 242, 262, 266, 272, 289, 291, 315, 319, 320, 323, 325, 326, 335, 336, 352, 358], "frequenc": [1, 14, 15, 16, 18, 19, 21, 22, 24, 29, 32, 33, 38, 39, 46, 57, 76, 86, 94, 101, 102, 119, 130, 131, 132, 134, 136, 137, 138, 139, 184, 196, 202, 203, 204, 205, 207, 208, 210, 215, 216, 217, 218, 219, 220, 227, 228, 230, 233, 238, 243, 246, 247, 249, 252, 253, 255, 256, 260, 262, 265, 266, 269, 270, 271, 272, 273, 275, 276, 277, 279, 281, 283, 286, 289, 291, 294, 295, 299, 302, 320, 322, 323, 325, 327, 328, 329, 330, 331, 332, 333, 334, 342, 343, 345, 346, 347, 348, 350, 351, 352, 358, 361], "ofdm": [1, 15, 18, 22, 24, 31, 34, 35, 36, 37, 86, 101, 102, 130, 131, 132, 136, 137, 138, 139, 186, 189, 193, 195, 202, 203, 204, 205, 207, 208, 215, 216, 218, 219, 220, 226, 227, 228, 230, 231, 234, 235, 236, 237, 243, 246, 247, 248, 249, 251, 254, 260, 267, 268, 269, 270, 271, 273, 275, 278, 279, 281, 285, 287, 288, 290, 292, 294, 295, 296, 301, 302, 320, 322, 323, 325, 329, 330, 332, 334, 347, 350, 351, 352, 358, 361], "uplink": [1, 6, 10, 11, 23, 26, 44, 55, 65, 69, 74, 84, 95, 96, 107, 112, 117, 127, 132, 142, 143, 145, 146, 162, 168, 180, 181, 182, 183, 206, 226, 239, 244, 246, 249, 254, 265, 277, 318, 348, 352, 358, 361], "downlink": [1, 6, 10, 11, 12, 15, 23, 27, 29, 40, 44, 55, 58, 65, 69, 74, 77, 84, 85, 86, 87, 88, 89, 95, 96, 102, 107, 112, 117, 120, 127, 142, 143, 146, 162, 168, 180, 183, 191, 206, 207, 211, 226, 231, 234, 236, 239, 248, 249, 251, 260, 261, 263, 264, 265, 270, 271, 272, 274, 277, 278, 286, 290, 295, 301, 304, 305, 306, 307, 308, 309, 318, 335, 348, 349, 352, 358, 361], "control": [1, 2, 10, 11, 12, 39, 40, 42, 44, 46, 51, 53, 55, 57, 58, 67, 69, 74, 76, 77, 102, 103, 104, 110, 112, 117, 119, 120, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 152, 159, 183, 184, 186, 191, 207, 210, 211, 214, 215, 216, 217, 218, 219, 220, 226, 229, 233, 236, 243, 244, 245, 246, 247, 249, 260, 262, 266, 270, 275, 278, 280, 281, 283, 285, 296, 304, 305, 306, 307, 308, 309, 325, 326, 335, 348, 349, 350, 352, 358, 361, 362], "share": [1, 2, 6, 42, 51, 53, 67, 85, 86, 87, 88, 89, 95, 96, 110, 180, 181, 182, 183, 226, 234, 238, 243, 249, 260, 262, 263, 264, 266, 271, 279, 296, 301, 336, 349, 352, 356, 358, 359, 360, 361], "broadcast": [1, 10, 39, 46, 55, 58, 62, 74, 77, 81, 117, 120, 124, 142, 146, 164, 183, 211, 241, 243, 249, 262, 266, 269, 272, 296, 335, 348, 352, 358, 361], "mib": [1, 25, 40, 45, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 240, 242, 262, 266, 285, 287, 289, 291, 294, 335, 348, 352, 358], "dci": [1, 40, 62, 81, 102, 124, 164, 185, 207, 227, 236, 241, 278, 283, 325, 335, 349, 358], "forward": [1, 6, 7, 12, 20, 22, 93, 96, 149, 153, 154, 155, 156, 158, 159, 214, 335, 336, 358, 361], "error": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 20, 21, 22, 24, 25, 26, 27, 28, 34, 35, 36, 37, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 142, 143, 146, 148, 149, 152, 153, 154, 155, 156, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 184, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 214, 228, 229, 230, 231, 232, 233, 235, 237, 238, 240, 241, 242, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 279, 280, 281, 283, 294, 318, 319, 320, 322, 323, 326, 335, 336, 337, 348, 350, 351, 352, 356, 357, 358, 359, 361], "correct": [1, 5, 6, 7, 10, 11, 12, 20, 22, 44, 55, 69, 74, 93, 96, 101, 112, 117, 142, 143, 146, 149, 153, 154, 155, 156, 158, 159, 208, 214, 294, 319, 320, 335, 336, 358, 361, 362], "polar": [1, 6, 11, 13, 14, 18, 23, 26, 27, 28, 29, 44, 56, 64, 69, 75, 83, 96, 106, 112, 118, 126, 141, 143, 145, 148, 149, 150, 156, 157, 163, 167, 176, 179, 183, 184, 185, 188, 189, 214, 240, 302, 318, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 352, 358, 361], "codec": [1, 8, 9, 12, 23, 26, 28, 54, 58, 59, 73, 77, 78, 88, 93, 102, 116, 120, 121, 149, 153, 154, 158, 184, 185, 186, 188, 189, 207, 211, 212, 214, 336], "ldpc": [1, 7, 8, 11, 23, 24, 44, 69, 87, 88, 92, 93, 94, 100, 112, 143, 148, 181, 182, 186, 214, 264, 301, 318, 337, 352, 358, 361], "reed": [1, 5, 13, 318, 335, 336, 352, 358, 361], "muller": [1, 5, 13, 318, 335, 336, 352, 358, 361], "rate": [1, 6, 7, 8, 9, 10, 11, 12, 24, 26, 27, 28, 44, 55, 57, 58, 59, 69, 74, 76, 77, 78, 87, 88, 90, 91, 92, 93, 94, 95, 96, 101, 112, 117, 119, 120, 121, 141, 142, 143, 145, 146, 148, 149, 150, 152, 153, 154, 158, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 196, 198, 206, 207, 208, 210, 211, 212, 260, 264, 267, 271, 280, 281, 282, 283, 285, 287, 288, 289, 291, 294, 296, 318, 319, 320, 322, 323, 326, 335, 337, 350, 351, 352, 358, 361, 362], "match": [1, 6, 7, 8, 10, 11, 19, 24, 39, 44, 46, 55, 57, 69, 74, 76, 85, 87, 88, 90, 91, 92, 93, 95, 96, 101, 112, 117, 119, 141, 142, 143, 145, 146, 148, 149, 150, 152, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 199, 206, 207, 208, 210, 238, 263, 264, 271, 280, 281, 296, 301, 315, 319, 335, 336, 358, 361], "interleav": [1, 8, 10, 92, 95, 100, 102, 141, 142, 150, 155, 157, 160, 181, 182, 183, 184, 185, 186, 188, 189, 207, 209, 213, 214, 227, 230, 270, 296, 320, 325, 336, 358, 361], "present": [1, 236, 348], "deinterleav": [1, 10, 23, 43, 68, 111, 142, 181, 184, 185, 188, 189, 336], "avail": [1, 10, 17, 55, 74, 87, 88, 94, 117, 131, 132, 137, 138, 142, 146, 181, 182, 202, 203, 205, 216, 219, 227, 236, 244, 245, 246, 247, 264, 267, 270, 278, 279, 281, 283, 285, 295, 301, 304, 305, 306, 307, 308, 309, 327, 328, 331, 333, 358, 362], "chain": [1, 2, 8, 10, 23, 25, 27, 40, 42, 51, 53, 55, 62, 65, 67, 74, 81, 84, 92, 107, 110, 117, 124, 127, 141, 142, 146, 148, 162, 164, 168, 179, 183, 184, 185, 186, 189, 196, 214, 239, 241, 260, 264, 291, 294, 301, 322, 323, 325, 348, 349, 358, 361], "orthogon": [1, 134, 139, 203, 204, 217, 218, 219, 220, 228, 254, 299, 333, 358], "divis": [1, 228, 333, 358], "multiplex": [1, 139, 220, 228, 234, 281, 333, 358], "demodul": [1, 7, 31, 34, 35, 36, 37, 48, 60, 71, 79, 87, 88, 92, 94, 98, 103, 104, 114, 122, 170, 173, 175, 181, 189, 229, 230, 232, 233, 234, 235, 237, 243, 258, 268, 271, 289, 292, 294, 295, 296, 301, 352, 358], "process": [1, 5, 6, 9, 10, 12, 21, 22, 40, 43, 49, 57, 62, 64, 65, 68, 72, 76, 81, 83, 84, 85, 86, 87, 88, 89, 93, 94, 95, 96, 99, 106, 107, 111, 115, 119, 124, 126, 127, 141, 142, 149, 152, 159, 162, 163, 164, 167, 168, 169, 174, 175, 176, 180, 181, 182, 183, 184, 185, 186, 188, 189, 210, 239, 240, 241, 257, 264, 268, 269, 270, 271, 275, 276, 277, 279, 280, 285, 294, 295, 320, 322, 323, 329, 331, 332, 334, 336, 346, 352, 356, 357, 358, 359, 360], "pass": [1, 3, 4, 6, 7, 8, 10, 11, 14, 15, 17, 18, 19, 21, 22, 26, 27, 28, 29, 40, 44, 48, 49, 55, 58, 59, 60, 64, 65, 69, 71, 72, 74, 77, 78, 79, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 102, 103, 104, 106, 107, 112, 114, 115, 117, 120, 121, 122, 126, 127, 134, 142, 143, 146, 149, 153, 154, 158, 163, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 198, 206, 209, 211, 212, 217, 228, 229, 231, 236, 238, 240, 242, 244, 245, 248, 250, 251, 252, 253, 256, 258, 259, 260, 264, 267, 269, 270, 280, 294, 302, 322, 323, 326, 329, 330, 332, 335, 336, 339, 342, 343, 346, 350, 352, 358, 362], "though": [1, 22, 322, 323], "domain": [1, 15, 16, 22, 32, 33, 39, 46, 184, 202, 203, 204, 205, 227, 230, 231, 238, 262, 265, 266, 268, 269, 270, 273, 275, 276, 286, 288, 289, 291, 294, 295, 299, 320, 325, 347, 348, 350, 352, 358], "symbol": [1, 4, 7, 24, 31, 32, 33, 34, 35, 36, 37, 38, 47, 48, 60, 64, 70, 71, 79, 83, 85, 86, 87, 88, 90, 91, 92, 94, 95, 97, 98, 101, 103, 104, 106, 113, 114, 122, 126, 130, 131, 132, 134, 136, 137, 138, 139, 141, 150, 163, 167, 170, 171, 172, 173, 175, 176, 179, 181, 182, 184, 185, 186, 188, 189, 208, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 240, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 258, 259, 264, 265, 267, 268, 273, 275, 277, 278, 279, 280, 285, 287, 289, 292, 294, 295, 296, 298, 315, 318, 319, 320, 323, 324, 325, 326, 327, 328, 329, 331, 333, 334, 339, 346, 349, 350, 351, 352, 358, 361], "demap": [1, 6, 48, 60, 71, 79, 86, 95, 96, 98, 114, 122, 170, 173, 181, 184, 185, 188, 258, 294, 315, 318, 319, 323, 326, 329, 335, 336, 358, 361], "bit": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 20, 22, 23, 25, 26, 28, 38, 39, 40, 42, 46, 48, 49, 51, 53, 55, 58, 59, 60, 62, 64, 65, 67, 71, 72, 74, 77, 78, 79, 81, 83, 84, 85, 86, 88, 91, 92, 93, 95, 96, 98, 99, 100, 106, 107, 108, 110, 114, 115, 117, 120, 121, 122, 124, 126, 127, 141, 142, 145, 146, 148, 149, 150, 153, 154, 155, 156, 157, 158, 160, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 181, 182, 183, 184, 185, 186, 188, 189, 209, 211, 212, 213, 214, 221, 227, 230, 235, 236, 237, 238, 239, 240, 241, 242, 249, 257, 258, 259, 262, 266, 270, 271, 272, 294, 315, 318, 319, 320, 322, 323, 325, 326, 333, 335, 336, 337, 348, 349, 350, 351, 356, 357, 358, 359], "recov": [1, 10, 11, 32, 34, 35, 36, 37, 44, 49, 55, 65, 69, 72, 74, 84, 99, 102, 107, 112, 115, 117, 127, 142, 143, 146, 162, 168, 169, 174, 184, 207, 239, 257, 269, 270, 320], "scrambl": [1, 62, 64, 81, 83, 85, 86, 106, 124, 126, 141, 150, 163, 164, 165, 167, 175, 176, 179, 183, 184, 185, 186, 188, 189, 240, 241, 242, 248, 249, 320, 358], "complaint": [1, 6, 10, 11, 12, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146, 149, 267, 358, 361], "scrambler": [1, 62, 63, 64, 81, 82, 83, 105, 106, 124, 125, 126, 141, 150, 162, 163, 164, 166, 167, 179, 184, 185, 186, 188, 189, 239, 240, 241, 294, 296, 323, 358, 361], "descrambl": [1, 48, 60, 63, 65, 71, 79, 82, 84, 86, 98, 105, 107, 114, 122, 125, 127, 141, 150, 162, 166, 168, 170, 173, 175, 179, 184, 185, 186, 188, 189, 239, 258, 294, 323, 358], "undo": [1, 11, 26, 27, 28, 35, 44, 58, 59, 64, 65, 69, 77, 78, 83, 84, 106, 107, 112, 120, 121, 126, 127, 143, 153, 154, 158, 162, 163, 167, 168, 211, 212, 239, 240], "encod": [1, 2, 3, 5, 7, 8, 9, 11, 25, 27, 28, 39, 44, 46, 54, 57, 59, 69, 73, 76, 78, 85, 87, 88, 93, 102, 112, 116, 119, 121, 143, 145, 148, 149, 152, 159, 181, 182, 184, 185, 186, 188, 189, 207, 209, 210, 212, 213, 262, 264, 266, 289, 315, 319, 326, 335, 336, 358], "polynomi": [1, 2, 3, 4, 42, 51, 53, 67, 110, 269, 275, 276], "algorithm": [1, 5, 29, 144, 145, 147, 175, 176, 181, 182, 196, 197, 198, 204, 205, 206, 227, 268, 275, 276, 279, 299, 315, 329, 331, 346, 358], "delai": [1, 16, 18, 19, 27, 192, 193, 194, 198, 202, 203, 204, 206, 231, 243, 283, 302, 320, 327, 328, 329, 330, 331, 338, 340, 341, 342, 343, 344, 347, 352, 358], "estim": [1, 5, 6, 10, 11, 12, 29, 32, 44, 48, 49, 55, 60, 69, 71, 72, 74, 79, 86, 88, 96, 98, 99, 112, 114, 115, 117, 122, 142, 143, 146, 149, 169, 170, 173, 174, 175, 181, 189, 192, 200, 202, 243, 248, 249, 251, 257, 258, 273, 274, 277, 280, 281, 284, 285, 289, 292, 294, 295, 299, 301, 315, 318, 346, 347, 349, 352, 358, 361], "primari": [1, 235, 237, 243, 273, 275, 276, 279, 285, 289, 291, 352, 358], "synchron": [1, 38, 39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 203, 204, 226, 240, 242, 243, 249, 262, 266, 268, 269, 272, 274, 277, 290, 293, 295, 296, 318, 324, 329, 352, 358, 361], "pss": [1, 235, 237, 243, 250, 252, 255, 256, 268, 277, 290, 292, 293, 295, 302, 324, 331, 332, 349, 352, 358, 361], "secondari": [1, 235, 237, 243, 249, 289, 291, 324, 352, 358], "sss": [1, 38, 235, 237, 243, 248, 249, 250, 251, 254, 255, 273, 277, 285, 287, 288, 289, 291, 294, 324, 349, 352, 358, 361], "refer": [1, 4, 6, 8, 10, 11, 12, 15, 18, 19, 23, 29, 38, 39, 44, 46, 48, 55, 60, 62, 65, 69, 71, 74, 79, 81, 84, 87, 88, 93, 94, 96, 98, 102, 103, 104, 107, 112, 114, 117, 122, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 149, 164, 165, 168, 170, 173, 175, 181, 182, 184, 185, 186, 188, 189, 196, 197, 198, 199, 206, 207, 209, 215, 216, 217, 218, 219, 220, 226, 227, 229, 230, 232, 233, 234, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 250, 252, 253, 255, 256, 258, 260, 264, 268, 269, 270, 271, 275, 276, 278, 280, 281, 289, 291, 296, 310, 318, 322, 323, 329, 330, 332, 334, 339, 346, 352, 358, 361], "dmr": [1, 39, 46, 64, 65, 83, 84, 85, 87, 88, 90, 94, 102, 106, 107, 126, 127, 163, 165, 167, 168, 181, 182, 183, 184, 185, 186, 189, 207, 226, 230, 232, 233, 234, 235, 237, 240, 242, 243, 260, 262, 263, 264, 266, 269, 271, 272, 285, 287, 288, 289, 291, 294, 299, 301, 320, 324, 325, 349, 352, 358, 361], "pr": [1, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 206, 226, 243, 248, 258, 259, 327, 328, 330, 331, 348, 358, 361], "csi": [1, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 193, 195, 202, 205, 226, 231, 243, 254, 258, 259, 260, 276, 277, 280, 281, 296, 299, 302, 332, 352, 358, 361], "csir": [1, 248, 334], "sound": [1, 243, 260, 296, 329, 330, 332, 358, 361], "sr": [1, 132, 243, 244, 245, 246, 260, 277, 296, 299, 318, 350, 352, 358, 361], "pseudo": [1, 243, 358], "pn": [1, 243, 248, 249, 251, 338, 340, 341, 344, 358], "pnsequenc": [1, 250], "pucch": [1, 2, 10, 11, 26, 37, 42, 44, 51, 53, 55, 67, 69, 74, 110, 112, 117, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 146, 149, 163, 165, 167, 168, 183, 226, 236, 243, 296, 352, 358, 361], "format": [1, 8, 11, 37, 44, 48, 60, 62, 69, 71, 79, 81, 93, 98, 112, 114, 122, 124, 130, 131, 132, 134, 136, 137, 138, 139, 143, 149, 164, 170, 173, 175, 176, 179, 183, 190, 226, 236, 241, 243, 258, 278, 289, 327, 333, 352, 358, 362], "pucchformat0sequ": [1, 129, 132, 179, 215, 216, 246], "pucchformat1sequ": [1, 135, 138, 179, 217, 218, 219, 220, 247], "low": [1, 8, 10, 11, 13, 18, 19, 44, 55, 58, 69, 74, 77, 93, 102, 103, 104, 112, 117, 120, 130, 131, 132, 138, 142, 143, 146, 149, 183, 186, 196, 198, 204, 207, 211, 215, 216, 228, 229, 230, 231, 232, 233, 235, 237, 238, 243, 246, 247, 278, 279, 280, 294, 296, 301, 304, 307, 335, 338, 340, 341, 344, 346, 352, 358, 361], "papr": [1, 37, 103, 104, 130, 131, 132, 138, 215, 216, 228, 229, 230, 231, 232, 233, 235, 237, 238, 243, 246, 247, 296, 352, 358], "lowpaprsequencetype1": [1, 244, 245], "lowpaprsequencetype2": [1, 245], "sidelink": [1, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 183, 226, 240, 242, 249, 358, 361], "s_pss": [1, 253], "s_sss": [1, 255, 256], "block": [1, 5, 6, 8, 9, 10, 15, 23, 24, 27, 29, 35, 37, 38, 40, 43, 45, 55, 64, 65, 68, 74, 83, 84, 85, 86, 87, 88, 89, 90, 91, 95, 96, 101, 102, 103, 104, 106, 107, 111, 117, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 145, 146, 150, 155, 156, 157, 160, 163, 165, 167, 168, 175, 176, 179, 180, 181, 182, 183, 184, 185, 186, 188, 189, 199, 207, 208, 209, 213, 214, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 236, 240, 242, 244, 245, 246, 247, 249, 252, 253, 255, 256, 262, 264, 265, 266, 267, 272, 278, 279, 280, 283, 285, 287, 288, 289, 291, 294, 310, 318, 319, 320, 322, 323, 324, 326, 327, 328, 331, 334, 335, 337, 348, 350, 351, 352, 353, 358, 360], "ssb": [1, 38, 39, 46, 65, 84, 85, 86, 107, 127, 162, 168, 184, 185, 188, 226, 239, 243, 249, 252, 253, 255, 256, 260, 267, 269, 273, 274, 277, 286, 288, 290, 293, 295, 318, 352, 358, 361], "ssb_grid": [1, 226, 235, 237, 269, 285, 287, 288, 289, 291, 294, 324, 348, 349], "resourcemapperssb": [1, 226, 238, 285, 287, 288, 289, 291, 294, 324, 348, 349], "resourcemapperdmrspdsch": [1, 103, 104, 186, 226, 229, 233], "ptr": [1, 35, 37, 87, 226, 299, 358], "resourcemapperptrspdsch": [1, 226, 233], "pdcch": [1, 2, 10, 11, 27, 39, 42, 44, 46, 51, 53, 55, 62, 64, 65, 67, 69, 74, 81, 83, 84, 102, 106, 107, 110, 112, 117, 124, 126, 127, 142, 143, 146, 149, 162, 163, 164, 165, 167, 168, 183, 184, 188, 189, 207, 226, 227, 232, 236, 239, 240, 241, 242, 243, 249, 262, 266, 277, 283, 296, 310, 318, 320, 335, 348, 349, 352, 358, 361], "resourcemappingpdcch": [1, 226, 230, 270, 320, 325], "coreset": [1, 39, 46, 184, 226, 227, 230, 236, 262, 266, 270, 278, 304, 305, 306, 307, 310, 318, 348, 352, 358], "search": [1, 5, 29, 39, 46, 184, 188, 226, 262, 266, 278, 280, 304, 305, 306, 307, 308, 309, 348, 352, 358], "space": [1, 14, 15, 29, 39, 46, 184, 193, 195, 202, 203, 204, 205, 226, 230, 231, 238, 262, 266, 267, 278, 280, 294, 299, 301, 302, 304, 305, 306, 307, 308, 309, 320, 322, 323, 324, 327, 328, 329, 330, 331, 332, 333, 334, 338, 339, 340, 341, 348, 349, 351, 352, 358], "searchspaceset": [1, 226, 236, 325], "resourcemappercsir": [1, 226, 228, 231, 334], "resourcemapperpr": [1, 226, 231, 327, 328, 331], "sssb_grid": [1, 226, 235], "pscch": [1, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 183, 226, 240, 242, 243, 249, 358, 361], "resourcemappingpscch": [1, 226, 232], "pdsch": [1, 2, 6, 9, 29, 42, 51, 53, 64, 65, 67, 83, 84, 91, 94, 95, 96, 103, 104, 106, 107, 108, 110, 126, 127, 163, 165, 167, 168, 183, 189, 226, 229, 233, 240, 242, 243, 249, 260, 277, 280, 281, 295, 296, 299, 318, 322, 323, 334, 349, 352, 358, 361], "transmitt": [1, 2, 6, 7, 9, 10, 15, 16, 18, 22, 31, 33, 42, 43, 51, 53, 67, 68, 87, 89, 110, 111, 141, 142, 150, 175, 179, 180, 183, 196, 197, 198, 199, 205, 268, 271, 281, 286, 290, 292, 293, 295, 299, 301, 302, 318, 322, 323, 329, 330, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 352, 358], "compon": [1, 54, 73, 116, 141, 179, 183, 204, 268, 283, 348], "pbch": [1, 2, 10, 11, 23, 27, 38, 42, 44, 51, 53, 55, 64, 65, 67, 69, 74, 83, 84, 85, 86, 106, 107, 110, 112, 117, 126, 127, 142, 143, 146, 149, 162, 163, 165, 167, 168, 183, 185, 188, 235, 237, 238, 239, 240, 242, 243, 249, 260, 272, 277, 284, 285, 287, 288, 289, 292, 293, 295, 296, 324, 352, 358, 361], "pusch": [1, 2, 6, 9, 26, 35, 37, 42, 51, 53, 67, 87, 88, 94, 96, 110, 181, 182, 183, 236, 243, 264, 296, 299, 358, 361], "prach": [1, 65, 84, 107, 127, 162, 168, 183, 236, 239, 243, 296, 318, 358, 361], "psbch": [1, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 183, 235, 240, 242, 243, 249, 358, 361], "master": [1, 40, 45, 335, 348, 358], "extract": [1, 7, 8, 9, 40, 45, 88, 93, 181, 182, 184, 203, 277, 289, 292, 293, 295, 302, 322, 323, 329, 330, 331, 332, 348, 351, 352, 358], "dcigener": [1, 38, 40], "dciextract": [1, 38, 40], "ham": [1, 13, 318, 352, 358, 361], "coder": [1, 6, 7, 8, 9, 10, 11, 12, 13, 20, 22, 44, 48, 55, 56, 60, 64, 69, 71, 74, 75, 79, 83, 88, 93, 95, 96, 98, 106, 112, 114, 117, 118, 122, 126, 141, 142, 143, 146, 148, 150, 156, 157, 163, 167, 170, 173, 175, 176, 179, 183, 184, 185, 186, 188, 189, 214, 240, 258, 294, 301, 322, 323, 337, 351, 352, 358], "sphere": [1, 319, 329], "syndrom": [1, 319], "densiti": [1, 8, 13, 19, 21, 93, 102, 103, 104, 183, 186, 204, 207, 228, 229, 231, 233, 261, 275, 276, 301, 315, 334, 338, 340, 341, 352, 358], "pariti": [1, 2, 3, 4, 5, 8, 13, 27, 42, 51, 53, 67, 93, 102, 108, 110, 183, 186, 207, 301, 319, 352, 358], "subcompon": [1, 186], "select": [1, 6, 7, 8, 24, 26, 29, 31, 39, 46, 59, 78, 87, 88, 92, 93, 94, 96, 100, 101, 103, 104, 121, 130, 131, 132, 134, 136, 137, 138, 139, 141, 150, 155, 157, 160, 181, 182, 184, 185, 186, 188, 189, 196, 198, 206, 208, 209, 212, 213, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 238, 246, 247, 260, 261, 262, 263, 264, 265, 266, 267, 271, 279, 280, 281, 283, 291, 294, 299, 302, 310, 318, 320, 322, 323, 326, 329, 330, 332, 334, 336, 338, 339, 340, 341, 342, 344, 348, 349, 352, 358], "ratematchparamet": [1, 100, 102, 186, 209], "sub": [1, 8, 9, 15, 16, 18, 23, 29, 48, 60, 71, 79, 85, 87, 93, 98, 114, 122, 141, 149, 150, 155, 157, 160, 170, 173, 184, 185, 186, 188, 189, 199, 202, 205, 213, 214, 230, 236, 253, 258, 278, 301, 304, 305, 306, 307, 308, 309, 320, 323, 325, 329, 334, 358, 361], "de": [1, 6, 11, 23, 24, 25, 27, 28, 44, 56, 65, 69, 75, 84, 96, 100, 107, 112, 118, 127, 129, 135, 141, 143, 150, 153, 154, 157, 158, 160, 162, 168, 175, 179, 181, 184, 185, 186, 188, 189, 221, 222, 226, 234, 239, 326, 335, 336], "ofdmdemodul": [1, 31, 32, 285, 287, 288, 289, 291, 294, 324, 333, 348, 349], "ofdmmodul": [1, 31, 33, 285, 287, 288, 289, 291, 294, 324, 333, 348, 349], "transform": [1, 31, 32, 192, 202, 348, 358], "transformprecod": [1, 31, 34, 36], "transformdecoding5g": [1, 31, 35, 333], "precod": [1, 29, 31, 34, 35, 186, 189, 243, 283, 299, 301, 352, 358, 361], "transformprecoding5g": [1, 31, 35, 37, 333], "hardwar": [1, 6, 96, 297, 336, 358], "impair": [1, 198, 269, 270, 358], "appli": [1, 10, 11, 18, 20, 21, 29, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 227, 238, 269, 270, 271, 322, 323, 334, 358], "applychannel": [1, 22, 322, 323, 324, 328, 348, 349, 351], "cfo": [1, 20, 277, 294, 302, 324, 327, 328, 329, 330, 331, 332, 334, 348, 358], "rnti": [1, 63, 64, 65, 82, 83, 84, 85, 86, 105, 106, 107, 125, 126, 127, 150, 162, 163, 165, 166, 167, 168, 175, 176, 183, 184, 185, 186, 188, 189, 236, 239, 240, 242, 271, 278, 294, 304, 305, 306, 307, 308, 309, 320, 322, 323, 325, 351, 358], "mask": [1, 65, 84, 107, 127, 162, 168, 183, 184, 185, 188, 239, 358], "rntimask": [1, 61, 62, 80, 81, 123, 124, 162, 164, 184, 185, 188, 239, 241], "antenna": [1, 15, 16, 18, 19, 29, 32, 193, 195, 196, 198, 254, 281, 283, 294, 301, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 347, 348, 349, 351, 352, 358, 361], "antennaarrai": [1, 14, 16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "element": [1, 15, 16, 17, 18, 19, 29, 87, 88, 90, 94, 131, 136, 137, 139, 181, 182, 189, 195, 216, 217, 218, 219, 220, 227, 228, 231, 233, 236, 264, 270, 274, 275, 278, 289, 291, 296, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "node": [1, 6, 15, 16, 18, 19, 96, 196, 197, 198, 199, 200, 206, 301, 324, 338, 340, 341, 346, 347, 349, 352, 358], "mobil": [1, 16, 19, 199, 269, 271, 275, 276, 280, 284, 285, 320, 324, 327, 328, 331, 338, 340, 341, 346, 347, 349, 352, 358, 361], "nodemobl": [1, 16, 17, 19, 324, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349], "simul": [1, 6, 10, 15, 16, 17, 18, 29, 39, 46, 55, 74, 96, 117, 142, 146, 184, 186, 189, 227, 236, 238, 243, 260, 262, 266, 267, 278, 293, 295, 310, 315, 318, 347, 348, 352, 358, 361], "layout": [1, 16, 18, 302, 309, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 347, 348, 349, 351, 352, 358], "simulationlayout": [1, 16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "b": [1, 8, 15, 16, 18, 29, 32, 85, 93, 103, 104, 108, 186, 199, 206, 227, 229, 233, 234, 238, 250, 254, 261, 262, 263, 264, 265, 266, 271, 273, 278, 282, 284, 285, 286, 294, 295, 296, 301, 302, 304, 305, 306, 307, 309, 310, 318, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 338, 339, 340, 341, 342, 344, 345, 346, 347, 348, 349, 350, 351, 352, 358, 361], "ue": [1, 15, 16, 17, 18, 29, 39, 46, 62, 81, 94, 124, 134, 164, 184, 188, 196, 197, 198, 199, 217, 227, 234, 236, 241, 250, 251, 252, 253, 254, 255, 256, 262, 266, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 282, 285, 286, 294, 295, 296, 304, 306, 310, 318, 320, 322, 323, 324, 334, 338, 339, 340, 341, 344, 345, 346, 347, 348, 349, 351, 352, 358], "drop": [1, 16, 18, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 344, 345, 348, 349, 351], "parametergener": [1, 16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 344, 345, 348, 349, 351], "channelgener": [1, 15, 16, 18, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 344, 345, 348, 349, 351], "mimo": [1, 22, 29, 37, 87, 88, 89, 94, 102, 180, 181, 182, 199, 207, 271, 275, 281, 283, 284, 296, 320, 325, 334, 338, 340, 341, 346, 352, 358, 361], "book": [1, 30, 130, 131, 132, 134, 136, 137, 138, 139, 358], "schedul": [1, 39, 46, 102, 207, 236, 254, 260, 262, 266, 270, 280, 281, 282, 299, 302, 310, 318, 320, 329, 330, 332, 350, 358], "pdcchschedul": [1, 278, 283, 304, 305, 306, 307, 308, 309], "link": [1, 15, 16, 18, 19, 186, 189, 197, 227, 236, 243, 281, 282, 283, 299, 301, 302, 304, 315, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 350, 352, 356, 357, 358, 359, 360, 361], "adapt": [1, 227, 243, 275, 276, 283, 299, 301, 358, 361], "linkadapt": [1, 280, 283], "rank": [1, 6, 29, 39, 46, 85, 96, 102, 103, 104, 184, 207, 229, 233, 243, 262, 263, 264, 266, 271, 276, 280, 283, 294, 299, 348, 351, 352, 358, 361], "rankadapt": [1, 280, 281, 283], "round": [1, 283, 327, 328, 358, 362], "robin": [1, 283, 358], "roundrobinschedul": [1, 279, 283], "carrier": [1, 14, 15, 18, 19, 21, 29, 39, 46, 87, 184, 186, 189, 202, 205, 230, 236, 238, 243, 249, 253, 255, 256, 262, 266, 267, 272, 277, 278, 291, 294, 299, 302, 304, 305, 306, 307, 308, 309, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 345, 346, 347, 348, 349, 351, 352, 358], "offset": [1, 21, 32, 33, 39, 46, 129, 130, 131, 132, 135, 136, 137, 138, 179, 184, 215, 216, 217, 218, 219, 220, 222, 230, 231, 233, 236, 238, 246, 247, 255, 256, 262, 265, 266, 267, 273, 277, 285, 287, 288, 291, 302, 309, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 350, 358], "carrierfrequencyoffsetestim": [1, 268, 277], "equal": [1, 2, 14, 19, 22, 34, 35, 36, 37, 42, 51, 53, 57, 64, 65, 67, 76, 83, 84, 86, 87, 88, 90, 94, 102, 106, 107, 110, 119, 126, 127, 130, 131, 132, 136, 137, 138, 139, 144, 147, 152, 159, 163, 165, 167, 168, 175, 181, 182, 185, 189, 193, 196, 197, 198, 206, 207, 210, 215, 216, 218, 219, 220, 227, 230, 231, 232, 235, 237, 238, 240, 242, 243, 246, 247, 255, 256, 266, 268, 277, 279, 289, 292, 294, 295, 301, 320, 322, 323, 324, 325, 328, 329, 330, 331, 332, 334, 342, 344, 346, 349, 351, 352, 358], "channelestimationandequalizationpbch": [1, 269, 277, 291, 294, 324, 348, 349], "channelestimationandequalizationpdcch": [1, 270, 277, 320, 325], "channelestimationandequalizationpdsch": [1, 271, 277, 294, 323], "dmrsparameterdetect": [1, 272, 277, 285, 287, 288, 289, 291, 294, 324, 348, 349], "cell": [1, 39, 46, 64, 65, 83, 84, 103, 104, 106, 107, 126, 127, 162, 163, 165, 167, 168, 184, 188, 196, 198, 199, 206, 229, 233, 235, 237, 239, 240, 242, 249, 250, 252, 253, 255, 256, 262, 266, 269, 272, 277, 278, 282, 283, 284, 285, 289, 291, 294, 302, 315, 320, 352, 358, 361], "id": [1, 39, 46, 63, 64, 65, 82, 83, 84, 85, 86, 87, 88, 90, 91, 102, 103, 104, 105, 106, 107, 125, 126, 127, 132, 138, 150, 162, 163, 165, 166, 167, 168, 181, 182, 184, 185, 186, 188, 189, 196, 207, 209, 215, 216, 217, 218, 219, 220, 229, 231, 233, 235, 236, 237, 239, 240, 242, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 269, 271, 272, 277, 278, 284, 285, 288, 289, 291, 294, 301, 304, 305, 306, 307, 308, 309, 320, 327, 328, 331, 350, 352, 358, 359], "detect": [1, 2, 3, 5, 6, 7, 10, 11, 42, 44, 51, 53, 55, 67, 69, 74, 93, 96, 110, 112, 117, 142, 143, 146, 234, 249, 255, 256, 269, 270, 271, 277, 285, 288, 289, 291, 294, 302, 315, 319, 331, 332, 352, 358], "pssdetect": [1, 272, 273, 277, 285, 287, 288, 289, 291, 294, 324, 348, 349], "sssdetect": [1, 272, 274, 277, 285, 287, 288, 289, 291, 294, 324, 348, 349], "channelestimationcsir": [1, 275, 277, 334], "channelestimationsr": [1, 276, 277, 302, 329, 330, 332], "positionestim": [1, 196, 197, 198, 199, 206, 302, 327, 328, 329, 330], "submodul": [1, 6, 96, 358], "arriv": [1, 16, 18, 19, 193, 197, 198, 199, 202, 203, 204, 206, 302, 330, 331, 345, 346, 352, 358], "toa": [1, 18, 19, 196, 198, 200, 202, 206, 318, 352, 358, 361], "direct": [1, 14, 16, 17, 18, 19, 29, 88, 89, 180, 181, 182, 193, 196, 197, 206, 285, 327, 328, 331, 338, 339, 340, 341, 342, 343, 344, 346, 348, 352, 358, 361], "optim": [1, 10, 11, 44, 48, 55, 60, 69, 71, 74, 79, 98, 112, 114, 117, 122, 142, 143, 146, 149, 170, 173, 196, 197, 198, 199, 206, 258, 271, 275, 276, 279, 280, 281, 283, 285, 301, 302, 315, 320, 327, 328, 329, 330, 331, 332, 339, 358, 362], "csiconfigur": [1, 261, 334], "generatevalidssbparamet": [1, 262, 266, 285, 287, 288, 289, 291, 294, 324, 348, 349], "lower": [1, 17, 48, 49, 60, 71, 72, 79, 88, 89, 98, 99, 114, 115, 122, 169, 170, 173, 174, 180, 183, 186, 189, 196, 197, 198, 199, 206, 227, 257, 258, 260, 278, 280, 281, 282, 294, 301, 304, 306, 307, 315, 322, 323, 324, 325, 326, 327, 328, 335, 336, 337, 338, 340, 341, 344, 348, 351, 358], "layer": [1, 6, 7, 8, 10, 11, 29, 32, 37, 39, 44, 46, 49, 55, 64, 65, 69, 72, 74, 83, 84, 89, 90, 91, 92, 93, 94, 96, 99, 102, 103, 104, 106, 107, 112, 115, 117, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 146, 148, 149, 163, 165, 167, 168, 169, 174, 179, 180, 181, 182, 183, 184, 186, 189, 207, 209, 215, 216, 217, 218, 219, 220, 227, 229, 230, 231, 233, 236, 240, 242, 244, 245, 246, 247, 249, 254, 256, 257, 260, 262, 266, 270, 271, 272, 274, 278, 281, 283, 294, 296, 301, 318, 322, 323, 351, 358, 361], "pdschlowerphyconfigur": [1, 263, 294, 322, 323, 351], "upper": [1, 8, 17, 89, 91, 92, 93, 141, 148, 149, 179, 180, 181, 182, 183, 186, 189, 260, 263, 270, 294, 301, 309, 322, 323, 326, 350, 351, 358], "pdschupperphyconfigur": [1, 264, 294, 322, 323, 351], "srsconfigur": [1, 265], "ssbconfigur": [1, 266], "timefrequency5gparamet": [1, 267, 285, 287, 288, 289, 291, 294, 301, 324, 348, 349], "At": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 169, 174, 257, 315, 319, 326, 335, 336], "side": [2, 14, 16, 18, 19, 29, 33, 42, 51, 53, 58, 67, 77, 86, 87, 88, 110, 120, 186, 189, 193, 195, 211, 267, 282, 286, 294, 295, 299, 302, 320, 322, 323, 324, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349, 352, 358], "end": [2, 3, 4, 16, 42, 51, 53, 67, 87, 110, 188, 195, 295, 299, 315, 358, 361], "comput": [2, 6, 7, 8, 10, 11, 15, 17, 18, 19, 24, 29, 32, 33, 42, 44, 48, 51, 53, 55, 60, 65, 67, 69, 71, 74, 79, 84, 87, 92, 93, 96, 98, 101, 102, 107, 110, 112, 114, 117, 122, 127, 142, 143, 146, 149, 162, 168, 170, 173, 182, 183, 186, 189, 195, 198, 202, 203, 204, 205, 206, 207, 208, 233, 239, 244, 245, 248, 249, 250, 251, 254, 255, 258, 267, 275, 278, 280, 281, 289, 291, 294, 301, 302, 304, 310, 315, 318, 322, 323, 326, 327, 328, 329, 330, 332, 335, 336, 346, 347, 350, 351, 352, 358], "whose": [2, 10, 11, 39, 42, 44, 46, 51, 53, 55, 58, 67, 69, 74, 77, 85, 103, 104, 110, 112, 117, 120, 142, 143, 146, 205, 206, 211, 227, 228, 229, 230, 235, 237, 266, 270], "3gpp": [2, 4, 6, 8, 10, 11, 12, 14, 15, 16, 18, 19, 24, 25, 29, 34, 36, 38, 39, 42, 44, 46, 49, 51, 53, 55, 62, 65, 67, 69, 72, 74, 81, 84, 87, 92, 93, 94, 96, 99, 101, 102, 103, 104, 107, 110, 112, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 149, 164, 165, 168, 171, 174, 175, 176, 181, 182, 184, 185, 186, 188, 196, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 265, 267, 270, 278, 299, 301, 352, 358, 361], "ha": [2, 3, 4, 6, 7, 10, 11, 14, 19, 22, 28, 32, 42, 44, 48, 51, 53, 55, 60, 67, 69, 71, 74, 79, 85, 92, 95, 96, 98, 102, 103, 104, 110, 112, 114, 117, 122, 132, 138, 142, 143, 146, 149, 170, 173, 182, 186, 196, 198, 203, 205, 206, 207, 227, 228, 229, 234, 235, 236, 237, 238, 246, 247, 249, 250, 258, 270, 272, 273, 278, 279, 281, 284, 285, 287, 288, 289, 291, 294, 306, 309, 319, 323, 325, 327, 328, 330, 331, 332, 334, 338, 340, 341, 344, 346, 362], "standard": [2, 4, 6, 10, 11, 12, 18, 28, 42, 44, 51, 53, 55, 67, 69, 74, 87, 96, 110, 112, 117, 142, 143, 144, 146, 147, 149, 196, 206, 235, 238, 243, 250, 260, 267, 297, 299, 301, 315, 327, 328, 330, 331, 333, 358, 361], "certain": [2, 5, 6, 8, 42, 51, 53, 57, 67, 76, 93, 96, 102, 110, 119, 149, 176, 207, 210, 249, 267, 275, 276, 278, 280, 302, 307, 315, 329, 330, 332, 346, 362], "length": [2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 17, 19, 24, 28, 32, 33, 34, 35, 36, 37, 42, 44, 48, 49, 51, 53, 55, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 78, 79, 81, 83, 84, 86, 87, 88, 92, 93, 96, 98, 99, 101, 102, 106, 107, 110, 112, 114, 115, 117, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 145, 146, 148, 150, 154, 156, 157, 158, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 181, 182, 189, 207, 208, 212, 215, 216, 217, 218, 219, 220, 227, 228, 230, 231, 234, 235, 237, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 267, 268, 269, 270, 273, 280, 285, 287, 288, 289, 291, 294, 301, 302, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 338, 340, 341, 348, 349, 351, 352, 358], "about": [2, 3, 4, 5, 6, 9, 10, 12, 21, 24, 25, 26, 27, 28, 31, 38, 39, 42, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 87, 88, 96, 98, 99, 101, 102, 106, 107, 110, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 142, 146, 151, 152, 153, 154, 158, 159, 161, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 186, 189, 195, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 235, 236, 237, 239, 240, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 269, 272, 273, 274, 275, 276, 280, 281, 283, 315, 339, 358], "given": [2, 6, 9, 15, 18, 32, 42, 49, 51, 53, 67, 72, 85, 88, 91, 96, 99, 103, 104, 110, 115, 144, 147, 171, 174, 176, 181, 182, 199, 204, 227, 229, 230, 231, 233, 236, 244, 245, 249, 256, 259, 263, 266, 270, 271, 278, 279, 280, 281, 301, 310, 315, 318, 326, 335, 336, 339, 344, 350, 357, 358, 360], "usag": [2, 6, 7, 9, 24, 25, 26, 27, 28, 42, 51, 53, 62, 67, 81, 93, 96, 110, 124, 149, 164, 196, 197, 198, 241, 244, 245, 249, 356, 358, 359, 360], "crc24a": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "g_": [2, 42, 51, 53, 67, 110], "d": [2, 6, 10, 11, 12, 19, 42, 44, 51, 53, 55, 67, 69, 74, 96, 110, 112, 117, 142, 143, 146, 149, 182, 193, 195, 238, 262, 266, 302, 320, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 338, 340, 341, 344], "23": [2, 10, 39, 42, 46, 51, 53, 55, 67, 74, 110, 117, 142, 146, 184, 189, 198, 236, 251, 262, 266, 278, 301, 302, 309, 315, 324, 327, 328, 329, 330, 331, 332, 334, 337, 341, 348], "18": [2, 10, 42, 51, 53, 55, 67, 74, 87, 88, 94, 110, 117, 142, 145, 146, 181, 182, 227, 228, 231, 244, 245, 254, 264, 272, 278, 291, 294, 299, 301, 309, 315, 320, 323, 325, 327, 328, 329, 330, 331, 332, 334, 337, 339, 345, 346, 348, 349, 350], "17": [2, 4, 6, 10, 12, 15, 18, 19, 29, 35, 37, 38, 39, 42, 46, 49, 51, 53, 55, 62, 65, 67, 72, 74, 81, 84, 94, 96, 99, 103, 104, 107, 110, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 145, 146, 164, 165, 168, 171, 174, 175, 184, 185, 186, 188, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 278, 285, 287, 289, 291, 294, 301, 309, 315, 323, 327, 328, 329, 330, 331, 332, 334, 337, 338, 339, 340, 341, 342, 344, 345, 348, 349, 350], "14": [2, 35, 37, 42, 51, 53, 67, 85, 87, 88, 91, 94, 103, 104, 110, 130, 131, 132, 136, 137, 138, 139, 181, 182, 189, 215, 216, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 245, 246, 247, 254, 267, 270, 271, 273, 275, 276, 278, 285, 287, 288, 289, 291, 294, 301, 302, 305, 309, 315, 324, 325, 327, 328, 329, 330, 331, 332, 334, 337, 339, 342, 343, 344, 345, 348, 349, 350, 351, 356, 359, 360], "11": [2, 3, 4, 12, 39, 42, 46, 51, 53, 67, 85, 103, 104, 110, 130, 131, 132, 136, 137, 138, 144, 145, 147, 184, 188, 215, 216, 218, 219, 227, 229, 233, 235, 238, 244, 246, 247, 250, 262, 263, 264, 266, 271, 273, 278, 285, 289, 291, 294, 301, 302, 305, 309, 315, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 359, 362], "7": [2, 6, 14, 15, 17, 18, 19, 25, 29, 39, 42, 46, 48, 49, 51, 53, 60, 62, 65, 67, 71, 72, 79, 81, 84, 85, 86, 87, 90, 95, 96, 98, 99, 103, 104, 107, 110, 114, 115, 122, 124, 127, 132, 134, 138, 139, 164, 165, 168, 170, 171, 173, 174, 184, 185, 196, 215, 216, 217, 220, 227, 228, 229, 230, 231, 233, 236, 237, 238, 241, 242, 246, 247, 248, 249, 250, 251, 252, 254, 255, 258, 259, 262, 263, 264, 266, 267, 270, 271, 273, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 357, 358, 359, 360, 362], "tb": [2, 8, 9, 42, 51, 53, 67, 85, 86, 87, 88, 93, 94, 95, 102, 110, 181, 182, 207, 301, 323, 352, 358], "crc24b": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "cb": [2, 7, 8, 11, 24, 42, 44, 51, 53, 67, 69, 92, 93, 101, 102, 110, 112, 143, 148, 181, 182, 207, 208], "21": [2, 3, 4, 42, 51, 53, 67, 110, 255, 256, 278, 301, 302, 309, 315, 324, 327, 328, 329, 330, 331, 332, 334, 337, 338, 344, 346, 348, 362], "20": [2, 6, 10, 11, 12, 42, 44, 51, 53, 55, 67, 69, 74, 91, 96, 103, 104, 110, 112, 117, 142, 143, 146, 149, 182, 189, 229, 233, 236, 238, 265, 267, 272, 273, 285, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 335, 337, 338, 339, 340, 341, 342, 344, 349, 350], "15": [2, 15, 19, 29, 39, 42, 46, 51, 53, 67, 85, 87, 88, 103, 104, 110, 134, 136, 137, 138, 139, 189, 196, 217, 218, 219, 220, 227, 228, 229, 230, 231, 234, 236, 238, 247, 248, 249, 251, 254, 264, 267, 270, 271, 273, 278, 285, 288, 291, 294, 301, 302, 305, 307, 310, 315, 318, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 337, 339, 342, 344, 345, 346, 348, 349, 350, 362], "13": [2, 42, 51, 53, 67, 85, 103, 104, 110, 130, 131, 132, 134, 136, 137, 138, 139, 188, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 233, 235, 246, 247, 248, 249, 251, 263, 264, 271, 273, 278, 289, 291, 301, 305, 309, 315, 320, 322, 324, 325, 327, 328, 329, 330, 331, 332, 334, 337, 339, 342, 344, 345, 348, 349, 350, 351, 356, 359, 360, 362], "12": [2, 10, 11, 12, 19, 29, 35, 37, 39, 42, 44, 46, 51, 53, 55, 67, 69, 74, 85, 87, 88, 90, 91, 94, 103, 104, 110, 112, 117, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 181, 182, 184, 189, 202, 203, 204, 205, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 244, 245, 246, 247, 254, 262, 263, 264, 265, 266, 271, 273, 275, 276, 278, 279, 285, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 339, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 359, 360, 362], "8": [2, 3, 4, 10, 11, 14, 17, 22, 24, 25, 35, 37, 39, 42, 44, 46, 49, 51, 53, 55, 64, 65, 67, 69, 72, 74, 83, 84, 85, 87, 88, 89, 91, 94, 95, 99, 101, 102, 103, 104, 106, 107, 110, 112, 115, 117, 126, 127, 130, 131, 132, 142, 143, 146, 149, 163, 165, 167, 168, 171, 174, 182, 188, 189, 204, 205, 207, 208, 209, 215, 216, 227, 228, 229, 231, 233, 234, 235, 236, 237, 240, 242, 244, 246, 249, 253, 254, 256, 259, 263, 264, 265, 271, 272, 273, 278, 285, 287, 289, 291, 294, 302, 304, 306, 307, 308, 309, 310, 315, 316, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 357, 358, 359, 360, 362], "crc16": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "crc11": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "9": [2, 14, 19, 29, 42, 51, 53, 67, 85, 103, 104, 110, 130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 227, 229, 231, 233, 234, 236, 238, 244, 245, 246, 247, 263, 264, 267, 271, 273, 278, 280, 285, 291, 294, 301, 302, 304, 305, 308, 309, 315, 317, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 356, 357, 358, 359, 360, 362], "crc6": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "applic": [2, 6, 24, 25, 26, 27, 28, 42, 49, 51, 53, 67, 72, 96, 99, 110, 115, 144, 147, 171, 174, 203, 204, 259, 295, 329, 331, 332, 356, 359, 360], "interfac": [2, 3, 4, 5, 6, 7, 9, 10, 12, 21, 24, 25, 26, 27, 28, 31, 33, 38, 39, 42, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 92, 94, 96, 98, 99, 101, 102, 106, 107, 110, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 142, 146, 148, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 195, 196, 197, 198, 199, 203, 204, 206, 207, 208, 210, 211, 212, 235, 237, 240, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 263, 264, 265, 267, 269, 272, 273, 274, 283, 295, 296, 333, 336, 358, 361], "content": [2, 23, 40, 42, 49, 51, 53, 65, 67, 72, 84, 99, 107, 110, 115, 127, 132, 138, 162, 168, 169, 174, 215, 216, 217, 218, 219, 220, 226, 234, 239, 243, 246, 247, 257, 260, 296, 302, 315, 318, 319, 325, 327, 329, 333, 336, 338, 340, 341, 342, 344, 348, 352], "assum": [3, 14, 19, 31, 32, 196, 197, 203, 204, 270, 278, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 351], "attach": [3, 4, 8, 93, 95, 108, 149, 176, 182, 189, 267, 273], "sionna": [3, 4, 6, 10, 11, 44, 48, 49, 55, 60, 69, 71, 72, 74, 79, 96, 98, 99, 112, 114, 115, 117, 122, 142, 143, 146, 149, 170, 171, 173, 174, 258, 259, 327, 328, 330, 331, 356, 358, 359, 360], "intern": [3, 4, 6, 9, 10, 55, 64, 65, 74, 83, 84, 88, 96, 106, 107, 108, 117, 126, 127, 142, 146, 163, 165, 167, 168, 182, 199, 240, 242, 267, 270, 284, 285, 301, 358], "been": [3, 4, 28, 29, 132, 138, 186, 246, 247, 278, 279, 284, 323, 334, 338, 340, 341, 361], "exactli": [3, 4, 144, 147, 250], "same": [3, 4, 6, 7, 14, 18, 19, 31, 32, 62, 64, 65, 81, 83, 84, 92, 95, 96, 106, 107, 124, 126, 127, 132, 138, 163, 164, 165, 167, 168, 182, 185, 186, 196, 197, 198, 199, 206, 235, 237, 238, 240, 241, 242, 246, 247, 255, 276, 278, 285, 287, 288, 289, 291, 294, 295, 301, 307, 315, 336, 342], "compat": [3, 4, 295, 360], "hybrid": [3, 10, 55, 74, 102, 117, 142, 146, 200, 206, 207, 299, 302, 318, 320, 358, 361], "automat": [3, 19, 102, 207, 230, 318, 320, 356, 357, 358, 359], "harq": [3, 87, 102, 132, 207, 234, 246, 264, 320, 350, 358, 361], "1d": [3, 4, 17, 235, 269, 273, 281], "32": [3, 4, 6, 10, 12, 25, 28, 29, 38, 39, 46, 55, 59, 64, 65, 74, 78, 83, 84, 96, 106, 107, 117, 121, 126, 127, 142, 144, 146, 147, 154, 158, 163, 165, 167, 168, 184, 212, 228, 231, 240, 242, 244, 262, 265, 266, 278, 301, 304, 305, 315, 322, 323, 324, 329, 330, 331, 333, 334, 336, 337, 348, 349, 351, 356, 357, 359], "creat": [3, 4, 5, 6, 10, 11, 24, 26, 44, 55, 57, 69, 74, 76, 96, 101, 102, 112, 117, 119, 142, 143, 146, 152, 159, 193, 195, 199, 207, 208, 210, 285, 294, 302, 332, 342, 344, 352, 356, 358, 359, 360], "object": [3, 4, 6, 7, 8, 9, 10, 11, 18, 19, 29, 44, 48, 49, 55, 60, 62, 64, 65, 69, 71, 72, 74, 79, 81, 83, 84, 85, 86, 88, 91, 93, 94, 95, 96, 98, 99, 106, 107, 108, 112, 114, 115, 117, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 184, 188, 189, 193, 195, 197, 198, 199, 202, 204, 206, 215, 216, 217, 218, 219, 220, 231, 235, 237, 240, 241, 242, 246, 247, 250, 252, 253, 255, 256, 258, 259, 267, 275, 276, 278, 285, 287, 289, 291, 294, 301, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "56": [3, 4, 10, 11, 44, 55, 62, 69, 74, 81, 112, 117, 124, 142, 143, 146, 164, 184, 241, 289, 305, 323, 324, 329, 330, 331, 335, 337, 349], "2d": [3, 4, 12, 14, 18, 19, 25, 144, 147, 193, 195, 196, 197, 198, 202, 203, 204, 205, 235, 237, 269, 279, 281, 302, 327, 328, 329, 330, 331, 332, 343, 344, 345, 348], "64": [3, 4, 39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 235, 237, 240, 242, 249, 265, 272, 294, 318, 329, 330, 331, 333, 337, 339, 346, 356, 357, 359, 362], "80": [3, 4, 6, 96, 217, 218, 219, 220, 236, 265, 267, 308, 309, 322, 323, 329, 330, 331, 335, 336, 337, 351, 362], "dimens": [3, 4, 6, 7, 8, 10, 11, 12, 14, 18, 19, 22, 24, 29, 32, 44, 55, 69, 74, 88, 92, 95, 96, 101, 102, 112, 117, 130, 131, 132, 134, 136, 137, 139, 142, 143, 146, 181, 182, 189, 193, 196, 197, 202, 203, 204, 205, 207, 208, 215, 216, 217, 218, 219, 220, 235, 237, 244, 245, 246, 255, 269, 270, 275, 276, 278, 281, 315, 336, 339, 348, 351], "contain": [3, 5, 6, 7, 8, 9, 10, 11, 12, 24, 32, 44, 55, 57, 69, 74, 76, 85, 87, 88, 92, 93, 96, 101, 102, 112, 117, 119, 132, 138, 142, 143, 146, 149, 152, 159, 181, 182, 188, 189, 196, 197, 204, 206, 207, 208, 210, 238, 246, 247, 268, 280, 285, 287, 288, 294, 295, 301, 302, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 339, 342, 345, 346, 349, 351, 362], "higher": [3, 4, 26, 29, 39, 46, 58, 77, 120, 132, 138, 184, 195, 196, 197, 202, 204, 211, 214, 227, 230, 231, 246, 247, 254, 262, 266, 267, 278, 280, 281, 283, 301, 304, 305, 306, 307, 315, 331, 332, 336, 338, 340, 341, 344], "119": [3, 4, 315, 329], "125": [3, 4, 206, 267, 302, 309, 327, 328, 329, 330, 331, 332], "modul": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 263, 264, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 280, 281, 282, 283, 285, 287, 290, 292, 294, 295, 315, 318, 320, 329, 333, 339, 342, 343, 344, 345, 346, 352, 358, 360, 361, 362], "class": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 282, 285, 287, 288, 289, 291, 294, 324, 339, 342, 343, 344, 346, 348, 349], "none": [3, 4, 6, 7, 9, 11, 12, 14, 15, 17, 18, 19, 21, 25, 26, 27, 28, 35, 37, 39, 44, 46, 58, 59, 69, 77, 78, 85, 87, 88, 91, 92, 94, 95, 96, 102, 103, 104, 108, 112, 120, 121, 130, 131, 132, 134, 136, 137, 138, 139, 143, 148, 153, 154, 158, 176, 182, 184, 196, 197, 198, 199, 202, 203, 205, 206, 207, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 235, 238, 246, 247, 253, 256, 261, 262, 263, 264, 265, 266, 267, 269, 270, 273, 275, 276, 279, 280, 281, 285, 288, 289, 291, 294, 301, 302, 315, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 339, 342, 348, 349, 350, 351, 356, 357, 359, 360], "arg": [3, 4, 17, 48, 60, 64, 65, 71, 79, 83, 84, 85, 98, 106, 107, 114, 122, 126, 127, 163, 165, 167, 168, 170, 173, 240, 242, 249, 258, 289], "sourc": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 358], "insert": [3, 4, 26, 85, 86, 88, 102, 184, 185, 207, 268, 271, 289, 291, 348], "constructor": [3, 4, 48, 49, 60, 62, 64, 65, 71, 72, 79, 81, 83, 84, 98, 99, 106, 107, 114, 115, 122, 124, 126, 127, 163, 164, 165, 167, 168, 170, 171, 173, 174, 240, 241, 242, 248, 250, 251, 252, 253, 255, 256, 258, 259], "init": [3, 4, 18, 19, 245, 248, 249, 250, 251], "fec": [3, 4], "defin": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 19, 24, 25, 26, 27, 28, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 132, 138, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 184, 185, 188, 189, 193, 195, 196, 198, 199, 202, 205, 206, 207, 208, 210, 211, 212, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 295, 301, 318, 319, 326, 329, 333, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 348, 350, 361], "int8": [3, 4, 6, 12, 48, 49, 60, 62, 65, 71, 72, 79, 81, 84, 96, 98, 99, 107, 114, 115, 122, 124, 127, 164, 165, 168, 170, 171, 173, 174, 241, 242, 248, 249, 250, 251, 252, 253, 255, 258, 259, 315, 319, 327, 328, 329, 330, 331, 336], "crclength": [3, 4], "bool": [3, 5, 6, 10, 11, 12, 15, 17, 18, 19, 21, 22, 44, 48, 55, 60, 69, 71, 74, 79, 86, 87, 88, 96, 98, 102, 112, 114, 117, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 170, 173, 181, 182, 184, 188, 204, 206, 207, 209, 215, 216, 217, 218, 219, 220, 235, 237, 238, 246, 247, 258, 262, 266, 269, 271, 279, 315], "should": [3, 5, 6, 7, 8, 9, 11, 12, 14, 17, 19, 26, 27, 28, 32, 39, 44, 46, 48, 49, 57, 58, 59, 60, 62, 64, 69, 71, 72, 76, 77, 78, 79, 81, 83, 87, 92, 93, 94, 95, 96, 98, 99, 102, 103, 104, 106, 112, 114, 115, 119, 120, 121, 122, 124, 126, 132, 138, 143, 148, 152, 153, 154, 158, 159, 163, 164, 167, 170, 171, 173, 174, 193, 195, 196, 197, 198, 202, 203, 204, 205, 206, 207, 209, 210, 211, 212, 227, 228, 229, 231, 235, 236, 237, 238, 240, 241, 244, 245, 246, 247, 253, 254, 255, 256, 258, 259, 262, 266, 270, 271, 275, 276, 279, 295, 298, 301, 309, 345], "rais": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 19, 21, 22, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 184, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 289, 334], "valueerror": [3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 19, 21, 22, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 39, 44, 46, 49, 55, 58, 59, 62, 64, 65, 69, 72, 74, 77, 78, 81, 83, 84, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 106, 107, 112, 115, 117, 120, 121, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 153, 154, 158, 163, 164, 165, 167, 168, 171, 174, 184, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 262, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 334], "inbit": [3, 4, 8, 12, 24, 65, 84, 92, 101, 107, 127, 165, 168, 208, 242], "must": [3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 25, 28, 29, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 78, 79, 81, 83, 84, 85, 86, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 119, 121, 122, 124, 126, 127, 142, 143, 146, 148, 149, 152, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 184, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 210, 212, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 309, 315, 323, 334], "support": [4, 6, 13, 14, 17, 19, 20, 22, 39, 46, 48, 49, 60, 71, 72, 79, 85, 87, 96, 98, 99, 102, 114, 115, 122, 153, 154, 155, 156, 158, 159, 170, 171, 173, 174, 186, 190, 195, 206, 207, 227, 230, 233, 234, 236, 238, 243, 254, 258, 259, 264, 265, 267, 269, 270, 271, 274, 276, 278, 280, 281, 295, 299, 302, 305, 307, 315, 335, 336, 338, 340, 341, 343, 356, 357, 358, 359, 360, 361], "5g": [4, 6, 7, 8, 9, 10, 11, 13, 15, 18, 20, 22, 26, 27, 28, 31, 34, 36, 44, 48, 49, 55, 58, 60, 69, 71, 72, 74, 77, 79, 87, 93, 96, 98, 99, 103, 104, 112, 114, 115, 117, 120, 122, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 158, 159, 170, 171, 173, 174, 175, 179, 181, 182, 184, 185, 186, 188, 189, 195, 199, 200, 205, 211, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 243, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 265, 268, 269, 270, 271, 275, 276, 277, 278, 279, 280, 281, 283, 295, 297, 298, 306, 318, 347, 352, 361], "3gppts38211_crc": 4, "doesn": [4, 10, 24, 55, 65, 74, 84, 87, 101, 107, 117, 127, 132, 138, 142, 146, 165, 168, 208, 242, 246, 247, 280, 327, 328], "t": [4, 6, 8, 10, 12, 15, 18, 19, 24, 25, 29, 33, 34, 36, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 85, 87, 92, 93, 94, 96, 99, 101, 102, 103, 104, 107, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 145, 146, 164, 165, 168, 171, 174, 175, 181, 182, 184, 185, 186, 188, 189, 198, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 265, 267, 270, 278, 280, 291, 294, 295, 302, 315, 320, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 356, 359], "n": [4, 5, 6, 7, 8, 9, 10, 11, 14, 18, 24, 28, 29, 32, 33, 39, 44, 46, 54, 55, 57, 59, 64, 65, 69, 73, 74, 76, 78, 83, 84, 85, 86, 88, 92, 93, 95, 96, 101, 102, 106, 107, 112, 116, 117, 119, 121, 126, 127, 136, 137, 138, 139, 142, 143, 145, 146, 148, 149, 152, 154, 158, 159, 163, 165, 167, 168, 175, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 203, 205, 206, 207, 208, 210, 212, 218, 219, 220, 228, 230, 231, 235, 236, 237, 238, 240, 242, 247, 249, 252, 253, 254, 255, 256, 262, 265, 266, 267, 270, 271, 272, 273, 274, 275, 278, 285, 287, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 318, 319, 324, 325, 327, 328, 329, 330, 331, 332, 334, 336, 338, 339, 340, 341, 342, 346, 348, 349, 350, 356, 357, 358, 359], "reshap": [4, 29, 291, 294, 302, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 345, 349], "perform": [4, 5, 6, 7, 8, 9, 11, 12, 24, 26, 28, 44, 48, 57, 60, 62, 64, 65, 69, 71, 76, 79, 81, 83, 84, 87, 88, 92, 93, 95, 96, 98, 101, 102, 106, 107, 108, 112, 114, 119, 122, 124, 126, 127, 143, 148, 149, 162, 163, 164, 165, 167, 168, 170, 173, 175, 176, 181, 182, 186, 195, 196, 198, 202, 203, 204, 206, 207, 208, 210, 214, 236, 239, 240, 241, 242, 258, 260, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 283, 285, 289, 292, 293, 295, 304, 305, 306, 307, 308, 309, 318, 322, 323, 325, 334, 342, 344, 351, 352, 358], "38": [4, 6, 8, 10, 11, 12, 14, 15, 16, 18, 19, 23, 24, 25, 29, 34, 36, 38, 39, 44, 46, 49, 55, 62, 65, 69, 72, 74, 81, 84, 87, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 107, 108, 112, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 149, 164, 165, 168, 171, 174, 175, 181, 182, 184, 185, 186, 188, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 265, 270, 278, 280, 289, 294, 301, 315, 329, 330, 331, 337, 348, 362], "211": [4, 6, 10, 12, 23, 25, 34, 36, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 102, 103, 104, 107, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 146, 164, 165, 168, 171, 174, 175, 184, 185, 186, 188, 189, 207, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 265, 270, 301, 326], "releas": [4, 6, 10, 12, 15, 18, 19, 29, 35, 37, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 103, 104, 107, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 145, 146, 164, 165, 168, 171, 174, 175, 184, 185, 186, 188, 196, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 278, 358], "v17": [4, 6, 10, 12, 19, 29, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 107, 115, 117, 124, 127, 142, 146, 164, 165, 168, 171, 174, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 278], "2022": [4, 6, 10, 12, 19, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 107, 115, 117, 124, 127, 142, 146, 164, 165, 168, 171, 174, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259], "03": [4, 6, 10, 12, 19, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 107, 115, 117, 124, 127, 142, 146, 164, 165, 168, 171, 174, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 301, 328, 332], "mai": [5, 39, 46, 88, 184, 193, 195, 203, 204, 236, 262, 266, 268, 275, 276, 279, 280, 281, 283, 298, 301, 307, 309, 331, 348, 356, 359, 360, 362], "occur": [5, 236, 268, 278, 289], "dure": [5, 57, 76, 119, 152, 159, 188, 210, 227, 269, 270, 271, 273, 279, 280, 289], "digit": [5, 29, 189, 299, 315, 322, 323, 351], "messag": [5, 6, 39, 46, 96, 184, 262, 266, 315, 348], "codeword": [5, 6, 7, 8, 9, 10, 11, 12, 24, 28, 44, 55, 64, 65, 69, 74, 83, 84, 87, 88, 92, 95, 96, 101, 102, 106, 107, 112, 117, 126, 127, 142, 143, 146, 148, 162, 163, 165, 167, 168, 182, 207, 208, 239, 240, 242, 271, 294, 301, 315, 319, 322, 323, 326, 336, 351], "specif": [5, 10, 11, 12, 14, 18, 44, 55, 69, 74, 102, 112, 117, 138, 142, 143, 146, 149, 186, 189, 207, 217, 218, 219, 220, 227, 236, 247, 253, 256, 268, 271, 275, 276, 278, 280, 281, 285, 301, 304, 305, 306, 307, 308, 309, 324, 325, 327, 328, 361], "structur": [5, 8, 14, 29, 93, 149, 193, 195, 260, 267, 275, 276, 296, 322, 323, 324, 339, 342, 343, 346, 349, 351], "batch": [5, 6, 10, 12, 22, 25, 29, 49, 55, 65, 72, 74, 84, 87, 88, 96, 99, 107, 115, 117, 127, 132, 134, 142, 146, 165, 168, 171, 174, 189, 217, 242, 246, 259, 271, 276, 281, 294, 318, 324, 325, 326, 335, 336, 348, 350, 352, 358], "simultan": [5, 12, 204, 281], "three": [5, 12, 13, 15, 17, 18, 19, 20, 22, 37, 57, 76, 102, 119, 144, 147, 153, 154, 155, 156, 158, 159, 195, 207, 210, 213, 295, 322, 323, 334, 339], "exampl": [5, 6, 7, 8, 10, 11, 12, 14, 18, 19, 25, 29, 44, 55, 62, 64, 69, 74, 81, 83, 90, 91, 92, 93, 94, 95, 96, 106, 108, 112, 117, 124, 126, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 163, 164, 167, 175, 176, 181, 182, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 215, 216, 217, 218, 219, 220, 227, 235, 236, 237, 240, 241, 246, 247, 249, 267, 269, 272, 274, 278, 358], "channelcod": [5, 6, 7, 8, 9, 10, 11, 12, 27, 44, 55, 69, 74, 92, 93, 96, 112, 117, 142, 143, 146, 148, 149, 291, 294, 315, 319, 320, 326, 335, 336, 348, 349], "hammingcod": 5, "hammingencod": [5, 315, 319], "k": [5, 6, 7, 8, 9, 10, 11, 12, 18, 19, 24, 27, 32, 33, 39, 44, 46, 54, 55, 57, 62, 69, 73, 74, 76, 81, 92, 93, 96, 101, 102, 112, 116, 117, 119, 124, 142, 143, 145, 146, 148, 149, 152, 159, 164, 175, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 206, 207, 208, 210, 231, 236, 238, 241, 254, 262, 265, 266, 269, 280, 285, 287, 289, 291, 294, 301, 302, 304, 305, 306, 318, 319, 320, 322, 323, 324, 325, 326, 329, 330, 332, 333, 334, 335, 336, 339, 342, 343, 347, 348, 349, 352, 358], "take": [5, 6, 7, 8, 14, 15, 18, 19, 22, 24, 29, 35, 37, 39, 46, 64, 65, 83, 84, 85, 87, 88, 93, 94, 96, 101, 102, 103, 104, 106, 107, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 163, 165, 167, 168, 181, 182, 184, 188, 189, 198, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 233, 236, 237, 238, 240, 242, 246, 247, 249, 254, 262, 263, 264, 265, 266, 269, 270, 271, 275, 276, 278, 280, 281, 301, 315, 319, 356, 357, 359, 360], "systemat": 5, "inputbit": [5, 7, 8, 11, 44, 57, 62, 69, 76, 81, 92, 93, 102, 112, 119, 124, 143, 144, 147, 148, 149, 152, 159, 164, 188, 207, 210, 241], "ndarrai": [5, 14, 15, 17, 18, 19, 29, 57, 76, 86, 87, 88, 102, 119, 130, 131, 132, 134, 136, 137, 138, 139, 152, 159, 181, 182, 188, 189, 193, 195, 207, 210, 215, 216, 217, 218, 219, 220, 227, 230, 236, 246, 247, 248, 249, 251, 268, 270, 278, 280], "satisfi": [5, 7, 92, 103, 104, 229, 280], "condit": [5, 8, 24, 87, 92, 101, 102, 176, 182, 207, 208, 227, 268, 275, 276, 278, 279, 280, 281, 283, 309, 310, 318, 320, 326, 329, 331, 350, 352, 358], "integ": [5, 6, 7, 11, 12, 14, 18, 19, 22, 24, 27, 29, 32, 33, 34, 35, 36, 37, 39, 44, 46, 49, 57, 62, 64, 65, 69, 72, 76, 81, 83, 84, 87, 88, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 106, 107, 112, 115, 119, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 143, 152, 159, 163, 164, 165, 167, 168, 171, 174, 181, 182, 184, 189, 193, 195, 196, 198, 202, 203, 204, 205, 207, 208, 209, 210, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 264, 265, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 315], "vectortobinaryarrai": [5, 350], "scalar": [5, 6, 14, 39, 46, 87, 88, 94, 96, 102, 130, 131, 132, 134, 136, 137, 138, 139, 181, 182, 196, 198, 207, 209, 215, 216, 217, 218, 219, 220, 238, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 264, 265, 281], "note": [5, 6, 11, 12, 14, 19, 22, 44, 69, 85, 87, 96, 112, 143, 227, 236, 238, 264, 278, 280, 285, 301, 306, 307, 308, 315, 319, 320, 325, 327, 328, 330, 331, 332, 336, 342, 358], "hardoutput": 5, "likelihood": [5, 12, 48, 49, 57, 60, 64, 71, 72, 76, 79, 83, 86, 88, 98, 99, 106, 114, 115, 119, 122, 126, 152, 159, 163, 167, 169, 170, 173, 174, 175, 181, 184, 185, 189, 197, 210, 240, 257, 258, 268, 271, 319, 326, 331, 335, 336], "valu": [5, 6, 7, 8, 10, 11, 12, 15, 17, 18, 19, 21, 22, 24, 29, 32, 33, 35, 37, 39, 44, 46, 49, 55, 62, 64, 65, 69, 72, 74, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 106, 107, 112, 115, 117, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 163, 164, 165, 167, 168, 171, 174, 181, 182, 184, 188, 189, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 253, 254, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 301, 302, 315, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 352, 358], "hammingdecod": [5, 315, 319], "bot": 5, "decodertyp": [5, 185, 320, 325, 335], "undergo": [5, 181], "determin": [5, 203, 204, 227, 228, 236, 238, 278, 281, 283, 304, 309, 329, 331, 332, 348], "whether": [5, 15, 17, 18, 19, 29, 39, 46, 48, 60, 62, 71, 79, 81, 86, 98, 103, 104, 114, 122, 124, 130, 131, 132, 134, 136, 137, 138, 139, 164, 170, 173, 184, 185, 188, 189, 204, 215, 216, 217, 218, 219, 220, 229, 233, 236, 238, 241, 246, 247, 258, 262, 266, 269, 271, 279, 348], "case": [5, 6, 7, 8, 10, 11, 14, 19, 37, 39, 44, 46, 55, 57, 64, 69, 74, 76, 83, 85, 87, 92, 93, 96, 102, 103, 104, 106, 112, 117, 119, 126, 130, 131, 132, 136, 137, 138, 139, 142, 143, 146, 149, 163, 167, 184, 198, 204, 207, 210, 215, 216, 218, 219, 220, 227, 228, 229, 235, 237, 238, 240, 244, 245, 246, 247, 254, 256, 262, 266, 270, 279, 305, 307, 309, 310, 315, 318, 327, 328, 335, 343, 353, 358], "hammingspheredecod": 5, "closest": 5, "within": [5, 39, 46, 85, 102, 103, 104, 130, 131, 132, 134, 136, 137, 138, 139, 184, 189, 195, 207, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 235, 236, 238, 246, 247, 248, 249, 251, 262, 266, 269, 270, 271, 272, 278, 280, 283, 285, 339], "radiu": [5, 17, 18, 19, 206, 324, 327, 328, 339, 342, 343], "minimum": [5, 8, 17, 19, 93, 202, 204, 205, 269, 270, 271, 280, 281, 302, 310, 318, 325, 338, 339, 340, 341, 342, 343, 344, 346, 348, 358], "distanc": [5, 18, 19, 196, 197, 198, 206, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "between": [5, 7, 8, 10, 11, 12, 14, 18, 19, 22, 39, 44, 46, 55, 62, 64, 69, 74, 81, 83, 87, 88, 92, 93, 94, 102, 106, 112, 117, 124, 126, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 163, 164, 167, 181, 182, 184, 189, 193, 195, 196, 198, 203, 204, 205, 207, 215, 216, 217, 218, 219, 220, 227, 235, 238, 240, 241, 246, 247, 249, 254, 262, 266, 268, 269, 270, 271, 275, 276, 280, 281, 285, 301, 306, 309, 318, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 358, 359], "soft": [5, 6, 12, 24, 48, 60, 64, 71, 79, 83, 96, 98, 101, 102, 106, 114, 122, 126, 163, 167, 170, 173, 207, 208, 240, 258, 315, 319], "hammingsyndromedecod": 5, "techniqu": [5, 102, 188, 193, 197, 202, 203, 204, 207, 214, 268, 269, 270, 271, 273, 275, 276, 280, 283, 301, 319, 320, 322, 323, 329, 331, 332, 333, 334, 346], "calcul": [5, 10, 55, 58, 64, 65, 74, 77, 83, 84, 94, 102, 106, 107, 108, 117, 120, 126, 127, 142, 146, 163, 165, 167, 168, 203, 206, 207, 211, 230, 240, 242, 264, 269, 270, 280, 301, 329, 331, 332, 333, 345], "vector": [5, 12, 14, 18, 19, 22, 25, 28, 87, 88, 181, 182, 185, 193, 227, 238, 244, 245, 254, 255, 256, 265, 315, 361], "repres": [5, 15, 22, 88, 181, 182, 202, 204, 205, 236, 264, 270, 301, 320], "equat": [5, 15, 33, 203, 204, 236, 250, 278], "identifi": [5, 29, 62, 64, 65, 81, 83, 84, 85, 86, 106, 107, 124, 126, 127, 163, 164, 165, 167, 168, 175, 176, 185, 202, 204, 205, 236, 240, 241, 242, 270, 271, 278, 285], "pattern": [5, 11, 14, 25, 26, 27, 28, 32, 44, 57, 58, 59, 65, 69, 76, 77, 78, 84, 102, 107, 112, 119, 120, 121, 127, 143, 153, 154, 158, 165, 168, 207, 210, 211, 212, 227, 236, 242, 270, 271, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 351, 361], "network": [6, 35, 62, 64, 65, 81, 83, 84, 85, 86, 96, 106, 107, 124, 126, 127, 163, 164, 165, 167, 168, 175, 176, 185, 190, 236, 240, 241, 242, 244, 260, 261, 268, 269, 270, 271, 275, 276, 277, 278, 279, 280, 283, 286, 295, 299, 301, 309, 315, 318, 320, 329, 334, 336, 343, 348, 352, 358, 361], "commun": [6, 10, 28, 31, 55, 57, 74, 76, 96, 117, 119, 142, 146, 152, 159, 189, 196, 197, 199, 203, 204, 210, 261, 265, 268, 271, 273, 275, 276, 280, 281, 282, 283, 284, 285, 295, 299, 315, 320, 322, 323, 324, 333, 334, 336, 339, 346, 349, 353, 358], "over": [6, 10, 49, 55, 72, 74, 94, 96, 99, 115, 117, 142, 146, 169, 174, 193, 195, 203, 204, 205, 228, 238, 243, 257, 275, 276, 279, 281, 283, 295, 301, 315, 318, 333, 339, 342, 343, 346, 350, 352, 356, 358, 359, 360], "air": [6, 31, 94, 96, 296, 333, 336, 361], "achiev": [6, 96, 197, 268, 271, 279, 280, 281, 329, 331, 336], "capac": [6, 57, 76, 96, 119, 139, 152, 159, 210, 220, 283, 285, 336], "larg": [6, 8, 11, 16, 18, 44, 69, 87, 88, 93, 96, 102, 112, 143, 149, 181, 182, 196, 198, 206, 207, 234, 260, 268, 291, 294, 301, 320, 322, 323, 334, 336, 338, 340, 341, 344, 348, 349], "extrem": [6, 96, 278, 310, 318, 336], "robust": [6, 28, 96, 197, 198, 203, 204, 214, 268, 280, 283, 285, 301, 315, 329, 331, 333, 336], "against": [6, 10, 28, 55, 74, 96, 101, 117, 142, 146, 204, 208, 214, 280, 327, 328, 331, 336], "scalabl": [6, 96, 336], "effici": [6, 8, 18, 19, 93, 96, 203, 268, 271, 275, 276, 277, 279, 280, 281, 283, 285, 294, 301, 309, 315, 320, 322, 323, 324, 333, 334, 336, 346], "consumpt": [6, 18, 19, 22, 96, 202, 204, 280, 301, 306, 336], "silicon": [6, 96, 301, 336], "footprint": [6, 96, 336], "enhanc": [6, 96, 186, 197, 202, 268, 271, 281, 285, 299, 320, 322, 323, 331, 334, 336], "divers": [6, 58, 77, 96, 120, 202, 203, 204, 205, 211, 234, 268, 281, 327, 328, 336, 358], "easi": [6, 31, 96, 336, 358], "complex": [6, 10, 21, 22, 27, 29, 32, 33, 34, 35, 36, 37, 48, 55, 58, 60, 71, 74, 77, 79, 96, 98, 114, 117, 120, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 146, 170, 173, 195, 196, 198, 202, 203, 204, 205, 206, 211, 215, 216, 217, 218, 219, 220, 246, 247, 254, 258, 269, 270, 272, 273, 274, 275, 276, 279, 281, 306, 318, 319, 327, 328, 336, 339, 358], "capabl": [6, 8, 11, 44, 69, 93, 96, 101, 112, 143, 149, 208, 310, 318, 329, 331, 336, 358], "consid": [6, 16, 18, 22, 29, 34, 36, 39, 46, 94, 96, 130, 131, 132, 134, 136, 137, 138, 184, 197, 206, 215, 216, 217, 218, 219, 238, 246, 247, 262, 266, 267, 278, 280, 281, 283, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 335, 336, 339, 342, 346, 348, 349, 351], "reliabl": [6, 10, 55, 74, 96, 117, 142, 146, 197, 234, 268, 269, 270, 271, 275, 276, 280, 281, 283, 285, 294, 329, 339, 349, 352, 358], "high": [6, 10, 19, 55, 74, 96, 117, 142, 146, 186, 189, 199, 203, 204, 206, 244, 245, 278, 280, 284, 304, 307, 315, 319, 320, 327, 328, 329, 333, 336, 338, 341, 344, 347, 352, 358, 361], "make": [6, 8, 11, 19, 28, 44, 65, 69, 84, 93, 96, 107, 112, 127, 143, 149, 162, 168, 198, 239, 280, 283, 326, 329, 342], "suitabl": [6, 96, 234, 281, 301, 304, 326, 329], "carri": [6, 18, 19, 38, 39, 46, 57, 62, 64, 65, 76, 81, 83, 84, 96, 102, 106, 107, 119, 124, 126, 127, 131, 132, 137, 162, 163, 164, 167, 168, 184, 207, 210, 216, 219, 234, 235, 236, 237, 239, 240, 241, 246, 249, 262, 266, 271, 276, 301, 304, 305, 306, 307, 308, 309, 315, 320, 327, 328, 331, 333, 335, 349, 350, 358], "result": [6, 7, 10, 19, 55, 74, 88, 92, 94, 96, 101, 117, 142, 146, 181, 182, 196, 197, 198, 199, 204, 206, 208, 264, 268, 278, 281, 289, 298, 301, 305, 306, 307, 310, 318, 327, 328, 329, 330, 331, 332, 338, 339, 340, 341, 343, 344, 345, 346, 352, 358, 359, 362], "more": [6, 11, 14, 15, 18, 19, 27, 28, 29, 44, 62, 69, 81, 87, 96, 102, 112, 124, 143, 164, 195, 196, 197, 198, 202, 204, 205, 207, 228, 231, 235, 236, 237, 241, 249, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 285, 305, 306, 307, 308, 309, 326, 331, 332, 339, 356, 357, 359], "comprehens": [6, 96], "analysi": [6, 96, 305, 306, 307, 308, 309, 318, 320, 352, 358], "pleas": [6, 87, 96, 102, 207, 209, 238, 244, 245, 254, 268, 269, 275, 276, 278, 280, 295, 301, 318, 320, 324, 325, 330, 331, 332, 335, 342, 349, 352, 356, 357, 358, 359, 360], "3gppts38212_ldpc": [6, 7, 8, 9, 11, 44, 69, 92, 93, 96, 112, 143, 148], "There": [6, 10, 55, 74, 96, 117, 132, 138, 142, 146, 236, 246, 247, 295], "few": [6, 7, 10, 11, 44, 55, 69, 74, 93, 96, 112, 117, 142, 143, 146, 148, 214, 272, 301, 327, 328, 346, 361], "illustr": [6, 10, 19, 49, 55, 72, 74, 96, 99, 115, 117, 142, 146, 171, 174, 195, 198, 206, 226, 234, 259, 336, 358], "how": [6, 10, 19, 55, 74, 96, 117, 142, 144, 146, 147, 227, 270, 275, 276, 279, 283, 295, 297, 304, 315, 320, 326, 339, 342, 343, 346], "slightli": [6, 39, 46, 96, 262, 266, 329, 362], "comparison": [6, 11, 44, 69, 96, 112, 143, 195, 196, 197, 198, 289, 291, 301, 304, 318, 327, 328, 352, 358], "becaus": [6, 96, 236, 295, 301, 306, 343], "allow": [6, 8, 11, 15, 16, 18, 19, 29, 39, 44, 46, 62, 69, 81, 93, 96, 112, 124, 139, 143, 149, 164, 184, 186, 196, 204, 206, 220, 226, 241, 250, 262, 266, 271, 280, 285, 294, 331, 332, 339, 346, 349], "onli": [6, 10, 14, 18, 19, 21, 22, 24, 26, 27, 35, 37, 39, 46, 49, 55, 57, 64, 65, 72, 74, 76, 83, 84, 85, 86, 87, 95, 96, 99, 101, 102, 106, 107, 115, 117, 119, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 146, 163, 165, 167, 168, 171, 174, 184, 189, 195, 196, 197, 204, 205, 206, 207, 208, 210, 215, 216, 218, 219, 220, 227, 233, 235, 236, 237, 238, 240, 242, 244, 246, 247, 249, 254, 259, 265, 267, 268, 269, 272, 273, 274, 275, 276, 278, 281, 285, 294, 295, 298, 305, 315, 327, 329, 338, 339, 343, 346, 356, 357, 359, 360], "fix": [6, 12, 96, 198, 250, 352, 358], "lift": [6, 8, 9, 87, 88, 93, 96, 102, 207, 209, 336], "factor": [6, 9, 14, 18, 19, 87, 88, 96, 102, 103, 104, 131, 134, 136, 137, 139, 202, 205, 207, 209, 216, 217, 218, 219, 220, 228, 229, 231, 244, 245, 254, 265, 268, 279, 283, 307, 308, 327, 328, 331, 332, 333, 336, 347, 352], "transport": [6, 7, 8, 9, 11, 12, 39, 44, 46, 69, 85, 86, 87, 88, 89, 90, 91, 93, 95, 96, 102, 112, 143, 148, 149, 180, 181, 182, 183, 184, 186, 207, 209, 262, 264, 266, 294, 322, 323, 336], "wa": [6, 57, 76, 96, 119, 152, 159, 210, 273, 348], "done": [6, 96], "have": [6, 7, 8, 11, 14, 17, 18, 19, 24, 25, 29, 44, 64, 65, 69, 83, 84, 92, 93, 96, 101, 102, 106, 107, 112, 126, 127, 143, 148, 163, 165, 167, 168, 182, 185, 189, 193, 195, 196, 197, 198, 199, 204, 206, 207, 208, 235, 236, 237, 240, 242, 244, 245, 255, 256, 270, 271, 275, 276, 278, 279, 295, 301, 302, 306, 307, 315, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 346, 348, 349, 351, 353, 356, 357, 359, 360, 361], "flexibl": [6, 16, 96, 306, 308], "realtim": [6, 96], "fast": [6, 19, 96, 280], "tbsize": [6, 7, 9, 11, 44, 69, 87, 93, 96, 100, 102, 112, 143, 148, 186, 207, 209, 294, 336, 351], "lpdcconfig": [6, 96, 336], "ldpcparamet": [6, 9, 96, 336], "k_ldpc": [6, 9, 88, 96, 186, 336], "bg": [6, 87, 96, 336], "basegraph": [6, 7, 8, 9, 93, 96, 100, 102, 186, 207, 209, 336], "graph": [6, 7, 8, 87, 93, 96, 102, 207, 209, 280, 331, 332, 336], "bg1": [6, 9, 96, 102, 207, 209], "bg2": [6, 9, 96, 102, 207, 209], "zc": [6, 8, 87, 93, 96, 186, 336], "liftingfactor": [6, 9, 88, 96, 100, 102, 186, 207, 209, 336], "numcb": [6, 88, 96, 100, 102, 148, 149, 186, 207, 294, 301, 336, 351], "numcodeblock": [6, 9, 96, 100, 102, 186, 207, 209, 336], "numbatch": [6, 10, 11, 12, 22, 25, 29, 44, 49, 55, 65, 69, 72, 74, 84, 86, 87, 88, 91, 95, 96, 99, 107, 108, 112, 115, 117, 127, 129, 132, 138, 142, 143, 144, 146, 147, 148, 149, 165, 168, 171, 174, 176, 179, 182, 189, 215, 216, 217, 218, 219, 220, 228, 232, 233, 242, 246, 247, 259, 271, 275, 276, 281, 294, 301, 319, 322, 323, 325, 326, 333, 335, 336, 348, 350, 351], "ldpcencoder5g": [6, 96, 186, 336], "encbit": [6, 96, 184, 185, 315, 319, 335, 336], "tf": [6, 10, 11, 32, 33, 44, 49, 55, 69, 72, 74, 96, 99, 112, 115, 117, 142, 143, 146, 149, 171, 174, 182, 259, 301, 315, 362], "kwarg": [6, 10, 32, 33, 48, 49, 55, 60, 71, 72, 74, 79, 96, 98, 99, 114, 115, 117, 122, 142, 146, 170, 171, 173, 174, 258, 259, 289], "nr": [6, 10, 15, 18, 29, 55, 74, 96, 103, 104, 117, 130, 131, 132, 134, 136, 137, 138, 139, 142, 145, 146, 175, 181, 182, 184, 185, 186, 188, 189, 196, 198, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 243, 244, 245, 246, 247, 248, 251, 278, 284, 302, 304, 305, 306, 307, 308, 309, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 346, 348, 349, 351, 361], "util": [6, 96, 202, 254, 275, 276, 280, 281, 285, 333, 350, 362], "mani": [6, 23, 28, 96, 214, 236, 272, 274, 295, 358], "broken": [6, 8, 10, 11, 44, 55, 69, 74, 92, 93, 96, 112, 117, 142, 143, 146, 148, 149], "complianc": [6, 96], "further": [6, 8, 85, 92, 96, 148, 202, 236, 275, 308, 326, 347, 352, 356, 357, 358, 359], "usabl": [6, 96], "tabl": [6, 11, 14, 18, 19, 25, 27, 28, 40, 44, 59, 69, 78, 87, 88, 94, 95, 96, 102, 103, 104, 112, 121, 143, 154, 158, 169, 195, 205, 206, 207, 209, 212, 226, 228, 229, 231, 233, 236, 257, 260, 264, 265, 280, 302, 315, 318, 319, 325, 327, 329, 333, 336, 338, 340, 341, 342, 344, 352, 358], "valid": [6, 14, 18, 19, 29, 64, 65, 83, 84, 87, 88, 94, 96, 102, 106, 107, 126, 127, 132, 138, 163, 165, 167, 168, 181, 182, 207, 233, 236, 240, 242, 246, 247, 260, 261, 262, 263, 264, 265, 266, 267, 278, 285, 287, 288, 289, 291, 294, 315, 318, 323, 324, 334, 348, 349, 358], "default": [6, 7, 10, 11, 12, 14, 15, 17, 18, 19, 21, 44, 55, 69, 74, 85, 86, 87, 88, 92, 95, 96, 102, 103, 104, 108, 112, 117, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 181, 182, 196, 198, 202, 203, 204, 205, 206, 207, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 235, 236, 238, 246, 247, 263, 264, 267, 268, 269, 270, 271, 273, 274, 275, 276, 278, 279, 280, 281], "datatyp": [6, 10, 12, 55, 74, 96, 102, 108, 117, 142, 146, 209], "precis": [6, 10, 55, 74, 96, 117, 142, 146, 199, 203, 204, 284, 285, 302, 329, 331, 333], "remain": [6, 10, 55, 74, 87, 96, 117, 142, 146, 198, 206, 230, 231, 260, 266, 272, 325, 327, 328, 330, 331, 332, 339, 346, 348], "uint8": [6, 96], "tensor": [6, 10, 11, 12, 15, 25, 32, 44, 55, 69, 74, 87, 96, 112, 117, 142, 143, 146, 149, 182, 315, 336], "besid": [6, 96, 182], "last": [6, 8, 32, 62, 81, 92, 96, 124, 148, 164, 182, 234, 238, 241, 278, 289, 301, 315], "chang": [6, 65, 84, 96, 107, 127, 165, 168, 182, 235, 237, 242, 269, 271, 275, 276, 280, 281, 283, 298, 306, 315, 320, 324, 325, 342, 349], "string": [6, 10, 11, 29, 39, 44, 46, 55, 69, 74, 87, 88, 94, 96, 102, 103, 104, 112, 117, 130, 131, 132, 138, 142, 143, 146, 181, 182, 188, 207, 215, 216, 227, 229, 233, 236, 238, 246, 247, 262, 264, 265, 266, 269, 270, 271, 275, 276, 278, 280, 281, 339, 342, 343, 346], "unsupport": [6, 96], "i_l": [6, 96, 186], "too": [6, 96], "cannot": [6, 10, 11, 33, 35, 37, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146, 149, 278, 325, 335, 339, 342, 343, 345, 346], "neg": [6, 32, 94, 96, 130, 131, 132, 136, 137, 202, 203, 204, 205, 215, 216, 218, 219, 237, 246, 248, 249, 251], "properti": [6, 7, 8, 10, 12, 19, 22, 24, 39, 46, 55, 62, 64, 65, 74, 81, 83, 84, 93, 96, 101, 102, 106, 107, 117, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 146, 163, 164, 165, 167, 168, 184, 185, 195, 203, 207, 208, 209, 215, 216, 217, 218, 219, 220, 237, 240, 241, 242, 244, 245, 246, 247, 254, 265, 268, 273, 279, 298, 302, 322, 323, 334, 339, 346], "bm": [6, 96, 186], "matrix": [6, 22, 29, 96, 193, 195, 203, 204, 205, 269, 279, 283, 302, 322, 323, 332, 334, 351], "construct": [6, 96, 286, 289, 291, 295, 352], "computeil": [6, 96, 186], "sec": [6, 18, 19, 96, 285, 339, 342], "index": [6, 18, 19, 32, 39, 46, 48, 49, 60, 64, 65, 71, 72, 79, 83, 84, 85, 87, 88, 90, 91, 94, 96, 98, 99, 102, 103, 104, 106, 107, 114, 115, 122, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 162, 163, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 204, 207, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 233, 235, 236, 237, 238, 239, 240, 242, 246, 247, 248, 249, 251, 254, 258, 259, 262, 264, 265, 266, 270, 272, 273, 278, 279, 280, 282, 285, 287, 288, 289, 291, 294, 302, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 332, 334, 339, 348, 350, 351, 352, 358], "specifi": [6, 8, 12, 14, 15, 17, 18, 19, 24, 29, 87, 92, 94, 96, 101, 102, 175, 176, 181, 182, 195, 207, 208, 227, 230, 236, 238, 268, 270, 278, 280, 302, 309, 315, 327, 328, 329, 330, 331, 332, 334], "exact": [6, 65, 84, 96, 107, 127, 162, 168, 239, 301], "befor": [6, 7, 9, 25, 27, 34, 36, 37, 59, 64, 78, 83, 88, 93, 96, 106, 121, 126, 163, 167, 195, 212, 240, 358, 359], "ratematch": [6, 7, 10, 24, 26, 28, 55, 57, 58, 59, 74, 76, 77, 78, 92, 96, 101, 102, 117, 119, 120, 121, 142, 146, 152, 153, 154, 158, 159, 184, 207, 208, 209, 210, 211, 212, 320, 336], "n_ldpc": [6, 9, 88, 96, 186], "prune": [6, 96], "pcm": [6, 58, 77, 96, 120, 186, 211], "z": [6, 96, 138, 139, 186, 196, 220, 247], "belief": [6, 96], "propag": [6, 15, 18, 19, 96, 193, 195, 198, 203, 204, 231, 268, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 347, 348, 349, 352, 358], "compliant": [6, 8, 16, 19, 92, 96, 144, 145, 147, 148, 238, 243, 299, 301, 327, 328, 330, 331, 361], "inherit": [6, 10, 55, 74, 96, 117, 142, 146], "librari": [6, 29, 96, 227, 236, 278, 286, 290, 292, 293, 295, 310, 318, 347, 352, 357, 358], "rxcodeword": [6, 96, 336], "denot": [6, 8, 29, 93, 96, 132, 138, 184, 185, 188, 196, 198, 203, 204, 205, 206, 235, 244, 245, 246, 247, 254, 256, 265, 275, 276, 278, 281, 304, 305, 306, 307, 308, 309, 327, 328], "logit": [6, 10, 11, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146, 149], "ldpcdecoder5g": [6, 96, 186, 336], "decbit": [6, 7, 9, 62, 81, 93, 96, 124, 164, 241, 315, 319, 336], "trainabl": [6, 96, 315], "cn_type": [6, 96], "boxplu": [6, 96], "phi": [6, 14, 96, 193, 195, 196, 324, 331, 348, 349], "track_exit": [6, 96], "return_infobit": [6, 96], "prune_pcm": [6, 96, 186], "num_it": [6, 10, 11, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146], "output_dtyp": [6, 10, 54, 55, 73, 74, 96, 116, 117, 142, 146, 184, 185, 188, 189], "iter": [6, 10, 11, 29, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146, 196, 198, 206, 268, 279, 305], "tractabl": [6, 96], "differentiabilil": [6, 96], "kera": [6, 10, 55, 74, 96, 117, 142, 146, 301, 315], "everi": [6, 19, 96, 198, 206, 236, 249, 270, 275, 281, 298, 302, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 344, 348, 349, 350, 351, 353, 358], "outgo": [6, 96], "scale": [6, 8, 16, 18, 87, 88, 90, 91, 93, 94, 96, 103, 104, 131, 137, 181, 182, 184, 188, 216, 219, 228, 229, 231, 244, 245, 264, 265, 285, 315, 319, 327, 328, 331, 333, 334, 338, 340, 341, 342, 344, 358], "A": [6, 8, 10, 14, 15, 17, 18, 19, 24, 29, 33, 55, 64, 65, 74, 83, 84, 85, 89, 93, 96, 101, 102, 103, 104, 106, 107, 108, 117, 126, 127, 142, 146, 162, 163, 165, 167, 168, 189, 197, 199, 207, 208, 227, 229, 233, 236, 238, 239, 240, 242, 262, 263, 264, 266, 271, 278, 279, 284, 294, 310, 318, 331, 348, 351, 352, 358], "One": [6, 87, 96, 196, 197, 198, 199, 274, 278, 304, 315, 347, 352], "minsum": [6, 96], "where": [6, 7, 8, 10, 11, 14, 15, 18, 19, 24, 26, 28, 29, 32, 39, 44, 46, 55, 58, 59, 69, 74, 77, 78, 85, 86, 88, 91, 92, 93, 95, 96, 101, 102, 103, 104, 108, 112, 117, 120, 121, 136, 137, 138, 139, 142, 143, 145, 146, 148, 153, 154, 158, 181, 182, 184, 189, 196, 198, 202, 203, 204, 205, 206, 207, 208, 211, 212, 218, 219, 220, 227, 228, 229, 230, 231, 234, 235, 236, 237, 244, 245, 247, 248, 249, 251, 252, 253, 254, 255, 256, 262, 264, 266, 267, 269, 270, 271, 275, 278, 279, 280, 281, 294, 295, 302, 304, 307, 309, 315, 319, 322, 323, 327, 328, 329, 330, 331, 332, 333, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 350, 351, 356, 357, 359, 362], "singl": [6, 14, 19, 32, 37, 85, 89, 96, 103, 104, 181, 229, 233, 254, 273, 276, 279, 281, 285, 288, 289, 291, 294, 295, 302, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 361], "rule": [6, 96], "numer": [6, 11, 27, 44, 69, 96, 112, 143, 280, 358, 362], "stabl": [6, 96, 280], "version": [6, 8, 15, 18, 24, 33, 58, 77, 87, 88, 90, 91, 92, 94, 96, 101, 102, 103, 104, 120, 130, 131, 132, 134, 136, 137, 138, 139, 145, 175, 181, 182, 184, 185, 186, 188, 203, 204, 207, 208, 209, 211, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 243, 244, 245, 246, 247, 253, 256, 260, 284, 301, 356, 357, 358, 359, 360, 361], "ryan": [6, 96], "min": [6, 29, 32, 96, 281, 285, 289, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "approxim": [6, 29, 96, 269, 276], "cn": [6, 96], "updat": [6, 96, 128, 133, 140, 177, 178, 192, 194, 195, 199, 223, 224, 225, 301, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 346, 356, 358, 359], "decid": [6, 11, 12, 44, 69, 96, 112, 143, 149, 206, 283], "instead": [6, 94, 96, 268, 325, 335], "track": [6, 19, 96, 233, 296, 324, 329, 331, 332, 342, 343], "exit": [6, 96], "characterist": [6, 96, 269, 270, 271, 275, 276, 281, 304, 320, 322, 323, 327, 328, 331, 334, 339, 346, 347, 352, 358], "cw": [6, 96], "info": [6, 96, 350], "punctur": [6, 57, 76, 96, 102, 119, 207, 210], "degre": [6, 14, 19, 96, 342, 345], "vn": [6, 96], "connect": [6, 14, 19, 96, 280, 285, 289, 347, 352, 358], "see": [6, 19, 96, 278, 305, 306, 307, 308, 309, 331, 332, 342, 362], "cammer": [6, 96], "yield": [6, 96], "improv": [6, 26, 27, 28, 58, 77, 96, 101, 120, 195, 196, 198, 202, 203, 204, 206, 208, 211, 214, 268, 269, 271, 275, 276, 279, 281, 283, 285, 302, 304, 320, 327, 328, 329, 331, 332], "throughput": [6, 96, 268, 279, 280, 281, 283, 285, 294, 318, 320, 334, 351, 352, 358], "reduc": [6, 19, 27, 37, 57, 65, 76, 84, 87, 88, 94, 96, 102, 107, 119, 127, 162, 168, 181, 182, 196, 198, 204, 206, 207, 210, 239, 264, 280, 301, 306, 310, 315, 318, 358], "memori": [6, 10, 11, 18, 19, 22, 44, 55, 69, 74, 87, 88, 96, 112, 117, 142, 143, 146, 149, 181, 182, 195, 202, 204, 301, 327, 328, 358], "earli": [6, 27, 96], "stop": [6, 96, 196, 198, 202, 206, 285, 288, 289, 291, 294], "moment": [6, 96, 301], "msg_vn": [6, 96], "need": [6, 32, 96, 196, 198, 278, 309, 329], "when": [6, 11, 12, 14, 15, 17, 18, 19, 21, 22, 35, 37, 39, 44, 46, 48, 60, 64, 69, 71, 79, 83, 86, 87, 95, 96, 98, 106, 112, 114, 122, 126, 143, 163, 167, 170, 173, 182, 184, 188, 196, 198, 206, 227, 233, 235, 236, 237, 240, 244, 245, 249, 255, 256, 258, 262, 265, 266, 267, 269, 275, 276, 278, 280, 285, 305, 307, 308, 309, 315, 319, 329, 332, 339, 342, 343, 348], "llrs_ch": [6, 96], "tupl": [6, 9, 18, 85, 86, 96, 189, 203, 204, 205, 206, 237, 269, 278], "raggedtensor": [6, 96], "rag": [6, 96], "wise": [6, 26, 37, 65, 84, 96, 107, 127, 162, 168, 239], "assert": [6, 96, 268], "two": [6, 14, 18, 29, 32, 48, 57, 60, 64, 65, 71, 76, 79, 83, 84, 86, 87, 89, 95, 96, 98, 102, 106, 107, 114, 119, 122, 126, 127, 138, 145, 162, 163, 167, 168, 170, 173, 180, 181, 182, 195, 196, 197, 198, 199, 203, 205, 209, 210, 234, 236, 239, 240, 247, 250, 255, 256, 258, 278, 281, 294, 302, 307, 309, 315, 327, 328, 329, 330, 331, 332, 334, 343, 344, 345, 350], "float16": [6, 96], "float64": [6, 96, 181, 189, 331], "lot": [6, 96, 301], "welcom": [6, 96], "everyon": [6, 96], "go": [6, 96, 315, 356, 359, 360], "i_": [6, 96], "l": [6, 8, 29, 33, 39, 46, 93, 95, 96, 108, 184, 186, 193, 195, 196, 203, 204, 205, 227, 230, 231, 235, 236, 237, 248, 249, 251, 254, 262, 266, 270, 272, 278, 289, 291, 294, 301, 302, 320, 325, 327, 328, 329, 330, 331, 332, 333, 342, 348, 349, 358, 362], "dot": [6, 7, 8, 11, 12, 24, 39, 44, 46, 69, 85, 93, 96, 101, 102, 103, 104, 112, 143, 148, 182, 184, 188, 189, 206, 207, 208, 228, 229, 230, 231, 232, 233, 235, 236, 254, 256, 262, 263, 264, 266, 269, 270, 271, 272, 274, 278, 301, 302, 326, 327, 328, 329, 330, 331, 332, 335, 336, 337], "llr_max": [6, 10, 54, 55, 73, 74, 96, 116, 117, 142, 146, 184, 185, 186, 188, 189], "maximum": [6, 7, 8, 10, 11, 14, 17, 19, 27, 29, 39, 44, 46, 55, 64, 65, 69, 74, 83, 84, 87, 89, 93, 96, 106, 107, 112, 117, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 163, 165, 167, 168, 180, 184, 197, 202, 204, 205, 215, 216, 217, 218, 219, 220, 227, 235, 236, 237, 238, 240, 242, 246, 247, 249, 254, 262, 266, 268, 271, 272, 278, 281, 305, 331, 348, 350], "avoid": [6, 96, 206, 306], "satur": [6, 10, 55, 74, 96, 117, 142, 146], "after": [6, 7, 8, 9, 10, 11, 12, 19, 26, 27, 37, 44, 55, 57, 69, 74, 76, 88, 92, 93, 95, 96, 102, 108, 112, 117, 119, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 149, 152, 159, 175, 182, 189, 199, 204, 207, 210, 215, 216, 217, 218, 219, 220, 238, 246, 247, 269, 270, 285, 298, 320, 325, 338, 339, 340, 341, 342, 343, 344, 346, 350], "truncat": [6, 9, 57, 76, 88, 96, 102, 119, 207, 210], "nb_pruned_nod": [6, 96, 186], "preprocess": [6, 96, 203, 204, 281, 318, 358], "codeblock": [6, 9, 11, 24, 44, 64, 65, 69, 83, 84, 95, 96, 101, 102, 106, 107, 108, 112, 126, 127, 143, 148, 149, 163, 165, 167, 168, 186, 207, 208, 240, 242, 326, 330, 336], "segment": [6, 7, 9, 10, 24, 43, 55, 68, 74, 87, 92, 95, 96, 101, 102, 111, 117, 141, 142, 145, 146, 148, 150, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 207, 208], "concaten": [6, 7, 10, 43, 55, 68, 74, 87, 95, 96, 111, 117, 141, 142, 146, 150, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 294, 320, 322, 323, 327, 328, 329, 330, 331, 332, 349, 351], "codeblocksegment": [6, 7, 8, 10, 11, 43, 44, 68, 69, 93, 95, 111, 112, 141, 142, 143, 148, 149, 150, 184, 185, 186, 188, 189], "codeblockconcaten": [6, 8, 10, 11, 43, 44, 68, 69, 92, 95, 111, 112, 141, 142, 143, 148, 150, 184, 185, 186, 188, 189], "segreg": [6, 10, 43, 68, 111, 141, 142, 150, 175, 179, 181, 184, 185, 186, 188, 189, 362], "codeblocksegreg": [6, 7, 8, 10, 11, 43, 44, 68, 69, 92, 93, 111, 112, 141, 142, 143, 148, 150, 184, 185, 186, 188, 189], "aggreg": [6, 9, 10, 43, 68, 108, 111, 141, 142, 150, 175, 179, 181, 184, 185, 186, 188, 189, 227, 230, 236, 278, 304, 306, 307, 308, 309, 310, 318, 325, 327, 328, 349, 352, 358], "codeblockaggreg": [6, 7, 10, 11, 43, 44, 68, 69, 93, 111, 112, 141, 142, 143, 148, 149, 150, 184, 185, 186, 188, 189], "introduct": [6, 96, 315], "handbook": [6, 96, 198], "record": [6, 96], "2004": [6, 96], "ebada": [6, 96], "elkelesh": [6, 96], "ten": [6, 96], "brink": [6, 96], "spars": [6, 19, 32, 96, 327, 346], "ieee": [6, 10, 55, 74, 96, 117, 142, 146, 198, 199, 284, 301, 315], "symposium": [6, 96, 199, 284], "theori": [6, 96, 198], "isit": [6, 96], "2018": [6, 96], "complement": 7, "opposit": [7, 28, 59, 78, 92, 93, 95, 121, 148, 149, 154, 158, 175, 181, 212], "break": [7, 8, 11, 44, 69, 92, 93, 112, 143, 148, 149, 320, 324, 325, 349], "numcbgrp1": [7, 92], "numrmop1": [7, 92], "cbsegreg": [7, 92], "cbsegregatellr": [7, 92], "numcbgrp2": [7, 92], "numrmop2": [7, 92], "numcbs1": [7, 92], "numbits1": [7, 23, 24, 85, 92, 100, 101, 186, 208], "numcbs2": [7, 92], "numbits2": [7, 23, 24, 85, 92, 100, 101, 186, 208], "divid": [7, 29, 59, 78, 92, 95, 102, 121, 176, 182, 186, 189, 207, 212, 227, 269, 270, 331, 333], "Then": [7, 92, 182, 249], "target": [7, 8, 10, 11, 44, 55, 57, 58, 69, 74, 76, 77, 88, 92, 93, 102, 112, 117, 119, 120, 142, 143, 146, 148, 149, 152, 159, 176, 181, 182, 185, 188, 189, 196, 199, 207, 209, 210, 211, 213, 214, 280, 299, 310, 318, 320, 325, 356, 357, 358, 359, 360], "consist": [7, 10, 18, 19, 39, 46, 55, 74, 85, 86, 87, 92, 95, 102, 117, 130, 131, 132, 136, 137, 138, 142, 146, 184, 186, 189, 196, 197, 198, 209, 213, 215, 216, 218, 219, 227, 246, 247, 262, 264, 266, 270, 274, 285, 289, 291, 294, 299, 315, 347, 348, 352, 358, 361], "g": [7, 8, 24, 92, 101, 102, 181, 182, 207, 208, 238, 285, 302, 305, 307, 308, 320, 322, 323, 327, 328, 329, 330, 331, 332, 338, 339, 340, 341, 344, 346, 349, 350, 351], "bitselect": [7, 56, 57, 75, 76, 92, 100, 102, 118, 119, 150, 152, 157, 159, 160, 184, 185, 186, 188, 189, 207, 210, 336], "sum_": [7, 8, 24, 32, 33, 92, 101, 102, 182, 207, 208, 270, 281], "els": [7, 92, 130, 131, 132, 136, 137, 138, 139, 145, 182, 196, 197, 198, 199, 215, 216, 217, 218, 219, 220, 246, 247, 289, 291, 294, 301, 302, 322, 323, 327, 328, 329, 330, 331, 332, 334, 336, 348, 350, 351], "crash": [7, 92, 359], "numcbsi": [7, 92], "numbitsi": [7, 92], "ot": [7, 8, 19, 39, 46, 92, 93], "float": [7, 8, 11, 12, 14, 15, 17, 18, 19, 21, 39, 44, 46, 64, 69, 83, 86, 88, 92, 93, 94, 103, 104, 106, 112, 126, 143, 148, 163, 167, 185, 188, 193, 196, 198, 199, 202, 203, 204, 205, 206, 228, 229, 238, 240, 244, 245, 254, 268, 273, 275, 280, 281, 358, 362], "mismatch": [7, 92, 193, 235], "larger": [7, 8, 92, 93, 102, 202, 204, 205, 207, 237, 301, 307, 309, 326, 331], "than": [7, 8, 11, 12, 14, 17, 19, 27, 33, 35, 37, 39, 44, 46, 48, 60, 62, 64, 65, 69, 71, 79, 81, 83, 84, 92, 93, 98, 102, 106, 107, 112, 114, 122, 124, 126, 127, 143, 144, 145, 147, 163, 164, 165, 167, 168, 170, 173, 189, 193, 195, 196, 197, 198, 202, 203, 204, 205, 207, 227, 228, 231, 233, 235, 237, 238, 240, 241, 242, 244, 245, 258, 267, 270, 278, 279, 280, 298, 301, 306, 307, 309, 339, 342, 343, 345, 346, 356, 357, 359], "numbit": [7, 49, 72, 92, 99, 102, 115, 171, 174, 207, 259, 323, 333], "reconstruct": [7, 93, 149, 315, 352, 361], "mac": [7, 87, 93, 94, 149, 260, 282], "understand": [7, 64, 65, 83, 84, 93, 106, 107, 126, 127, 144, 147, 149, 163, 165, 167, 168, 238, 240, 242, 249, 278, 280, 297, 339, 358], "650390625": [7, 8, 9, 93, 95], "tblen": [7, 93, 108], "cbaggreg": [7, 93], "rtbwithcrc": [7, 93, 108], "api": [7, 8, 10, 11, 22, 44, 49, 55, 69, 72, 74, 92, 93, 99, 112, 115, 117, 142, 143, 146, 148, 149, 171, 174, 186, 189, 192, 193, 194, 195, 202, 203, 204, 205, 206, 244, 245, 254, 259, 260, 261, 262, 263, 264, 265, 266, 267, 273, 274, 295, 358, 361], "ani": [7, 8, 14, 19, 32, 93, 94, 132, 134, 139, 181, 182, 217, 220, 227, 236, 238, 244, 245, 246, 270, 278, 279, 295, 298, 315, 325, 356, 357, 359, 360], "mciindex": [7, 8, 93], "computetransportblocks": [7, 8, 9, 93, 94, 186, 294, 301, 322, 323, 351], "includ": [7, 11, 14, 15, 16, 18, 19, 26, 44, 57, 69, 76, 87, 93, 112, 119, 143, 144, 145, 147, 148, 152, 159, 203, 204, 210, 227, 268, 269, 270, 271, 273, 275, 276, 277, 280, 281, 283, 295, 298, 315, 320, 325, 331, 332, 338, 340, 341, 344], "relat": [7, 11, 38, 39, 44, 46, 69, 93, 112, 143, 148, 238, 260, 264, 267, 293, 295, 298, 346, 353, 358], "non": [7, 8, 9, 10, 11, 12, 14, 17, 18, 19, 29, 44, 55, 57, 69, 74, 76, 93, 112, 117, 119, 130, 131, 132, 136, 137, 142, 143, 146, 148, 149, 152, 159, 193, 195, 202, 203, 204, 205, 210, 215, 216, 218, 219, 227, 230, 238, 246, 248, 249, 251, 260, 261, 270, 278, 299, 308, 315, 329, 333, 361], "ve": [7, 8, 9, 11, 44, 57, 62, 64, 65, 69, 76, 81, 83, 84, 93, 106, 107, 112, 119, 124, 126, 127, 143, 148, 152, 159, 163, 164, 165, 167, 168, 189, 210, 231, 240, 241, 242], "c": [7, 8, 10, 14, 19, 33, 55, 64, 65, 74, 83, 84, 93, 106, 107, 117, 126, 127, 142, 146, 163, 165, 167, 168, 186, 194, 198, 204, 227, 236, 240, 242, 249, 254, 265, 270, 285, 287, 289, 291, 294, 304, 305, 306, 307, 308, 315, 327, 328, 334, 339, 342, 346, 348], "kbar": [7, 8, 93, 186], "kcb": [7, 93, 186], "measur": [7, 93, 196, 197, 198, 199, 200, 203, 205, 206, 275, 276, 302, 309, 329, 330, 332, 352, 358, 361], "packet": [7, 85, 87, 93, 94, 283], "best": [8, 10, 11, 44, 55, 69, 74, 93, 112, 117, 142, 143, 146, 149, 195, 280, 291, 294, 302, 320, 322, 323, 324, 329, 330, 332, 334, 348, 349, 351, 352, 358, 362], "To": [8, 28, 93, 128, 133, 140, 149, 177, 178, 189, 223, 224, 225, 233, 264, 301, 329, 342, 356, 357, 358, 359, 360, 362], "shall": [8, 12, 93, 94, 103, 104, 149, 228, 229, 231, 279], "bound": [8, 17, 88, 93, 149, 325, 327, 328, 334], "limit": [8, 87, 88, 90, 91, 93, 94, 102, 149, 181, 182, 196, 197, 198, 206, 207, 209, 244, 245, 254, 298, 308, 318, 327, 328], "exce": [8, 14, 17, 19, 93, 149, 236, 278, 309], "smaller": [8, 93, 149, 309], "individu": [8, 11, 44, 69, 92, 93, 112, 143, 148, 149, 197], "ratemat": [8, 93, 149], "dematch": [8, 93, 149, 189], "upcom": [8, 9, 31, 65, 84, 93, 107, 127, 149, 162, 168, 239, 243, 358, 361], "small": [8, 10, 11, 12, 16, 18, 44, 55, 69, 74, 93, 112, 117, 141, 142, 143, 145, 146, 149, 150, 156, 157, 176, 179, 186, 196, 198, 206, 227, 234, 244, 245, 307, 326, 335, 338, 340, 341, 344, 346], "demonstr": [8, 11, 12, 44, 62, 69, 81, 92, 93, 94, 95, 112, 124, 143, 148, 149, 164, 205, 241, 289, 291, 294, 295, 304, 326, 327, 328, 330, 331, 332, 347, 349, 352, 358], "wai": [8, 11, 12, 18, 19, 44, 64, 69, 83, 93, 106, 112, 126, 143, 149, 163, 167, 195, 198, 205, 240, 265, 280, 358], "crctblock": [8, 93, 95, 108], "cbsegment": [8, 93, 95], "212": [8, 10, 11, 12, 24, 44, 55, 69, 74, 87, 92, 93, 95, 101, 102, 108, 112, 117, 142, 143, 145, 146, 149, 175, 181, 182, 207, 208, 301], "inputs": [8, 9, 93], "lpdc": [8, 93, 182], "kb": [8, 93, 186, 315], "rmbit": [8, 92, 95, 184], "3gppts38212pdsch": [8, 24, 92, 101, 102, 186, 207, 208], "python": [8, 24, 29, 92, 101, 208, 227, 236, 278, 286, 290, 292, 293, 295, 310, 318, 347, 352, 356, 357, 358, 359, 360, 361], "tblength": [9, 94], "ldpcparam": 9, "liftfactor": 9, "ncb": [9, 100, 102, 186, 207], "relev": [9, 10, 11, 18, 19, 21, 44, 55, 65, 69, 74, 84, 107, 112, 117, 127, 142, 143, 146, 162, 168, 205, 206, 239, 244, 260, 267, 269, 275, 276, 281, 299, 346, 360], "physicalchannel": [9, 25, 85, 86, 87, 88, 94, 95, 108, 181, 182, 184, 185, 188, 189, 285, 287, 288, 289, 291, 294, 301, 320, 322, 323, 324, 325, 348, 349, 350, 351], "form": [9, 196, 227, 244, 245, 269, 270, 278, 283, 295, 298, 299], "mcsindex": [9, 87, 88, 90, 91, 94, 181, 182, 264, 280, 294, 301, 322, 323, 351], "packag": [10, 55, 74, 117, 142, 146, 195, 205, 206, 226, 243, 289, 302, 320, 332, 348, 349, 356, 357, 359, 360], "build": [10, 18, 19, 55, 74, 117, 142, 146], "top": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "level": [10, 11, 15, 16, 18, 19, 29, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 186, 189, 206, 227, 230, 236, 243, 275, 278, 279, 280, 281, 304, 306, 307, 308, 309, 310, 318, 325, 327, 328, 329, 330, 331, 332, 338, 340, 341, 344, 352, 358, 361], "easili": [10, 55, 74, 117, 142, 146, 295, 327, 328, 356, 357, 359, 360, 361], "integr": [10, 55, 74, 117, 142, 146, 299, 325, 335, 358, 361], "convei": [10, 39, 46, 55, 64, 74, 83, 106, 117, 126, 142, 146, 163, 167, 184, 240, 262, 266, 285], "wireless": [10, 22, 28, 49, 55, 72, 74, 99, 115, 117, 142, 146, 169, 174, 190, 193, 195, 196, 197, 198, 203, 204, 228, 243, 257, 268, 271, 273, 275, 276, 280, 281, 283, 285, 295, 298, 318, 333, 334, 339, 343, 347, 352, 353, 358], "mother": [10, 55, 74, 117, 142, 146], "seg": [10, 55, 74, 117, 142, 146], "il": [10, 11, 27, 44, 55, 69, 74, 112, 117, 142, 143, 145, 146, 302, 327, 328, 329, 330, 331, 332], "bil": [10, 26, 55, 58, 74, 77, 117, 120, 142, 146, 153, 158, 211], "512": [10, 55, 65, 74, 84, 107, 117, 127, 142, 146, 165, 168, 175, 184, 242, 285, 287, 288, 291, 301, 324, 333, 336, 338, 340, 341, 344, 348, 349], "864": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 184, 235, 237, 248, 251, 335], "140": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 238, 267, 285, 287, 288, 289, 291, 301, 302, 324, 327, 329, 330, 332, 335, 348, 349], "8192": [10, 55, 74, 117, 142, 146, 175, 336], "format3": [10, 55, 74, 117, 142, 146], "1706": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146], "1024": [10, 29, 55, 74, 117, 142, 146, 175, 203, 205, 273, 285, 287, 288, 294, 315, 322, 323, 327, 328, 331, 332, 333, 334, 338, 340, 341, 342, 343, 350, 351], "format4": [10, 55, 74, 117, 142, 146], "31": [10, 55, 74, 117, 142, 146, 250, 278, 315, 329, 330, 331, 337, 348], "16384": [10, 55, 74, 117, 142, 146], "figur": [10, 12, 14, 19, 55, 74, 117, 142, 146, 186, 204, 206, 227, 234, 236, 278, 285, 294, 305, 306, 307, 308, 309, 324, 326, 327, 328, 342, 343, 344, 345, 348, 350], "3gppts38212polar": [10, 11, 26, 27, 28, 44, 55, 58, 59, 69, 74, 77, 78, 112, 117, 120, 121, 142, 143, 146, 149, 153, 154, 158, 211, 212], "nbatch": [10, 55, 74, 117, 142, 146, 291, 294, 320, 324, 325, 348, 349], "verbos": [10, 11, 44, 55, 69, 74, 87, 88, 90, 112, 117, 142, 143, 146, 149, 181, 182, 188, 189, 263, 264, 273, 294, 301, 322, 323, 335, 350, 351], "polarencoder5g": [10, 54, 55, 73, 74, 116, 117, 142, 146, 184, 185, 188, 189, 335], "polarencod": [10, 55, 74, 117, 142, 146], "built": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 315, 358], "modif": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 276, 298], "moreov": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 235, 237, 243], "complainc": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "being": [10, 11, 15, 17, 18, 19, 44, 55, 57, 64, 65, 69, 74, 76, 83, 84, 87, 88, 106, 107, 112, 117, 119, 126, 127, 130, 131, 142, 143, 146, 149, 152, 159, 163, 165, 167, 168, 181, 182, 210, 215, 216, 227, 240, 242, 265, 270, 278, 315, 339, 342, 343, 344, 346], "out": [10, 11, 18, 19, 44, 55, 57, 64, 65, 69, 74, 76, 83, 84, 102, 106, 107, 112, 117, 119, 126, 127, 142, 143, 146, 149, 162, 163, 167, 168, 207, 210, 239, 240, 244, 245, 289, 301, 315, 326, 358], "except": [10, 11, 12, 39, 44, 46, 48, 55, 57, 60, 69, 71, 74, 76, 79, 98, 103, 104, 112, 114, 117, 119, 122, 142, 143, 146, 149, 152, 159, 170, 173, 203, 210, 229, 237, 238, 244, 258, 262, 266, 267, 269, 272, 273, 274, 275, 276, 289], "invalid": [10, 11, 44, 55, 64, 65, 69, 74, 83, 84, 94, 102, 103, 104, 106, 107, 112, 117, 126, 127, 130, 131, 134, 136, 137, 142, 143, 146, 149, 163, 165, 167, 168, 207, 209, 215, 216, 217, 218, 219, 228, 229, 231, 236, 238, 240, 242, 244, 249, 254, 262, 263, 266, 267, 269, 270, 302, 331, 332], "uci": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 144, 145, 146, 147, 149, 175, 176, 221, 234, 326, 335], "although": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "consortium": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "agre": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "curv": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "aid": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 271, 352, 358], "sc": [10, 11, 29, 33, 34, 36, 44, 55, 69, 74, 103, 104, 112, 117, 142, 143, 146, 149, 185, 188, 202, 203, 204, 205, 229, 230, 233, 236, 245, 254, 267, 278, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 335, 339, 340, 348, 349, 351], "bp": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 188, 322, 323, 351], "materi": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 325, 335], "lead": [10, 11, 32, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 280, 305], "effect": [10, 11, 26, 27, 28, 35, 37, 44, 55, 58, 59, 64, 69, 74, 77, 78, 83, 106, 112, 117, 120, 121, 126, 142, 143, 146, 149, 153, 154, 158, 163, 167, 211, 212, 240, 268, 269, 270, 271, 281, 283, 310, 318, 320, 327, 328, 331, 338, 340, 341, 342, 344, 346, 358], "loss": [10, 11, 16, 18, 19, 44, 48, 55, 60, 69, 71, 74, 79, 98, 112, 114, 117, 122, 142, 143, 146, 149, 170, 173, 258, 301, 315, 320, 338, 340, 341, 344, 347, 352], "trade": [10, 22, 55, 74, 117, 142, 146, 309], "off": [10, 22, 55, 74, 117, 142, 146, 309, 362], "accuraci": [10, 55, 74, 117, 142, 146, 195, 197, 198, 202, 203, 204, 271, 275, 276, 301, 302, 327, 328, 329, 330, 331, 352, 358], "poor": [10, 55, 74, 117, 142, 146, 227, 278, 280, 281, 304], "scl": [10, 55, 74, 117, 142, 146, 188, 291, 294, 320, 325, 335, 348, 349], "list_siz": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146], "good": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 196, 198, 206, 278, 310, 318, 356, 359, 360], "hybscl": [10, 55, 74, 117, 142, 146, 188], "highest": [10, 39, 46, 55, 74, 117, 142, 146, 184, 195, 204, 262, 266, 280, 281, 301, 348], "lowest": [10, 55, 74, 117, 142, 146, 195, 204, 227, 230, 238, 270, 283, 301], "poorest": [10, 55, 74, 117, 142, 146], "100": [10, 11, 15, 17, 18, 19, 29, 44, 49, 55, 69, 72, 74, 99, 112, 115, 117, 142, 143, 146, 171, 174, 196, 198, 206, 259, 267, 285, 301, 302, 309, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 342, 345, 349, 351, 352, 358, 362], "dec_typ": [10, 11, 44, 54, 55, 69, 73, 74, 112, 116, 117, 142, 143, 146, 184, 185, 188, 189, 335], "success": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 268, 291, 294, 325, 348, 356, 357, 359, 360], "cancel": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 198, 203], "polardecoder5g": [10, 11, 44, 54, 55, 69, 73, 74, 112, 116, 117, 142, 143, 146, 184, 185, 188, 189, 335], "bitest": [10, 11, 44, 48, 55, 60, 69, 71, 74, 79, 98, 112, 114, 117, 122, 142, 143, 146, 170, 173, 258, 291, 294, 320, 348], "iff": [10, 55, 74, 117, 142, 146], "accept": [10, 12, 17, 40, 48, 55, 60, 64, 65, 71, 74, 79, 83, 84, 87, 88, 94, 98, 102, 106, 107, 114, 117, 122, 126, 127, 134, 142, 146, 163, 165, 167, 168, 170, 173, 181, 182, 189, 207, 217, 240, 242, 249, 258, 264, 281], "binari": [10, 12, 55, 74, 117, 142, 146, 189, 227, 230, 298, 362], "unknown": [10, 55, 74, 117, 142, 146, 273], "afloat": [10, 55, 74, 117, 142, 146], "complet": [10, 27, 28, 39, 46, 55, 74, 117, 142, 146, 186, 189, 299, 301, 331, 339, 342, 356, 357, 358, 359, 360], "subsect": [10, 55, 74, 117, 142, 146, 326, 335, 336, 338, 340, 341, 344, 350], "inputbitinterleav": [10, 11, 23, 27, 43, 44, 68, 69, 111, 112, 142, 143, 184, 185, 188, 189], "inputbitdeinterleav": [10, 11, 23, 27, 43, 44, 68, 69, 111, 112, 142, 143, 184, 185, 188, 189], "condo": [10, 55, 74, 117, 142, 146], "land": [10, 55, 74, 117, 142, 146], "new": [10, 55, 74, 117, 142, 146, 206, 279, 304, 305, 306, 307, 308, 309, 333, 356, 357, 358, 359, 360], "radio": [10, 55, 62, 64, 65, 74, 81, 83, 84, 85, 86, 106, 107, 117, 124, 126, 127, 132, 138, 142, 146, 163, 164, 165, 167, 168, 175, 176, 185, 196, 199, 236, 240, 241, 242, 246, 247, 254, 260, 269, 270, 271, 278, 283, 284, 285, 295, 304, 305, 306, 307, 308, 309, 320, 333, 339, 361], "survei": [10, 55, 74, 117, 142, 146], "vol": [10, 55, 74, 117, 142, 146, 315], "pp": [10, 55, 74, 117, 142, 146, 196, 199, 284, 301, 315], "29": [10, 55, 74, 117, 142, 146, 278, 301, 315, 329, 330, 331, 337, 340, 348, 362], "40": [10, 55, 74, 117, 142, 146, 175, 176, 236, 265, 267, 278, 285, 287, 288, 289, 291, 294, 302, 304, 305, 307, 308, 309, 315, 323, 324, 329, 330, 331, 337, 348, 349], "quarter": [10, 55, 74, 117, 142, 146, 358], "2021": [10, 55, 74, 117, 142, 146, 189, 199, 284], "often": [11, 44, 69, 112, 143, 268, 271, 279], "vari": [11, 22, 31, 44, 69, 112, 143, 268, 275, 276, 280, 281, 302, 315, 327, 328, 342], "import": [11, 14, 16, 19, 29, 32, 39, 44, 46, 48, 60, 69, 71, 79, 98, 112, 114, 122, 143, 170, 173, 206, 227, 236, 258, 262, 266, 278, 286, 290, 292, 293, 295, 296, 305, 306, 307, 308, 309, 310, 318, 330, 332, 337, 345, 347, 352, 356, 357, 358, 359, 360], "henc": [11, 39, 44, 46, 58, 64, 69, 77, 83, 106, 112, 120, 126, 143, 163, 167, 184, 196, 198, 211, 234, 240, 260, 262, 266, 276, 278, 305, 308, 357, 360], "becom": [11, 44, 69, 112, 143], "split": [11, 44, 69, 112, 143], "qualiti": [11, 44, 69, 94, 112, 143, 195, 269, 270, 271, 275, 276, 279, 280, 281, 283, 285, 302, 318, 331, 332, 339, 352, 358], "servic": [11, 44, 69, 112, 143, 279, 280, 281, 283, 298, 329, 331, 332], "polarcod": [11, 26, 27, 28, 44, 57, 58, 59, 69, 76, 77, 78, 112, 119, 120, 121, 143, 148, 149, 152, 153, 154, 158, 159, 210, 211, 212, 291, 294, 320, 348, 349], "numtargetbit": [11, 44, 69, 88, 102, 112, 143, 148, 149, 189, 209, 271, 294, 322, 323, 351], "formatpucch": [11, 44, 69, 112, 129, 130, 131, 143, 149, 175, 176, 179, 215, 216], "th": [11, 44, 69, 112, 143, 149, 196, 198, 204, 343], "bioglio": [11, 44, 69, 112, 143, 149], "describ": [11, 25, 44, 69, 89, 102, 112, 143, 148, 175, 176, 180, 181, 182, 207, 227, 280, 298, 320, 336, 338, 339, 340, 341, 342, 343, 344, 346, 357, 358], "enabl": [11, 18, 19, 21, 26, 27, 32, 44, 58, 69, 77, 87, 88, 91, 102, 112, 120, 130, 131, 132, 134, 136, 137, 138, 139, 143, 153, 158, 181, 182, 196, 206, 207, 209, 211, 215, 216, 217, 218, 219, 220, 238, 246, 247, 265, 268, 269, 270, 275, 276, 281, 285, 287, 289, 291, 294, 301, 327, 329, 331, 332, 350, 358, 362], "input_bit": [11, 25, 26, 27, 28, 44, 58, 59, 69, 77, 78, 112, 120, 121, 143, 153, 154, 158, 211, 212], "less": [11, 12, 18, 19, 27, 39, 44, 46, 57, 62, 69, 76, 81, 95, 112, 119, 124, 143, 144, 145, 147, 152, 159, 164, 189, 202, 203, 204, 205, 210, 231, 235, 238, 241, 244, 245, 267, 279, 283, 301, 315, 324, 338, 339, 340, 341, 342, 343, 344, 345, 346], "165": [11, 27, 44, 69, 112, 143], "k_il_max": [11, 27, 44, 69, 112, 143], "interleavepattern": [11, 26, 27, 28, 44, 58, 59, 69, 77, 78, 112, 120, 121, 143, 153, 154, 158, 211, 212], "164": [11, 27, 44, 69, 112, 143], "amd": [11, 27, 44, 69, 112, 143], "protect": [12, 280, 298], "awgn": [12, 48, 60, 71, 79, 86, 98, 114, 122, 130, 170, 173, 215, 258, 301, 318, 319, 326, 336, 352, 358], "reedmullerencoder5g": [12, 326], "numcodeword": [12, 95], "umber": 12, "3gppts38211_rm": 12, "reedmullerdecod": 12, "hardin": 12, "hard_in": 12, "reedmullerdecoder5g": [12, 326], "rxbit": [12, 294, 326, 335], "llrest": [12, 315, 319, 326, 335], "typeerror": [12, 130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 244, 245, 246, 247, 254], "primarili": [13, 20, 22, 153, 154, 155, 156, 158, 159, 343], "togeth": [14, 227, 270], "current": [14, 17, 19, 29, 31, 39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 195, 206, 238, 240, 242, 249, 260, 269, 270, 273, 274, 278, 280, 281, 295, 304, 305, 306, 307, 308, 309, 325, 342, 343, 348], "901": [14, 15, 16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "uniform": [14, 19, 279, 338, 340, 341], "ula": 14, "planar": 14, "upa": 14, "multi": [14, 193, 195, 199, 202, 203, 204, 205, 281, 284, 323, 334, 344, 358, 361], "panel": [14, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "mpa": 14, "tr": [14, 15, 18, 19], "channelmodel": [14, 15, 17, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "antennatyp": [14, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "omni": [14, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "centerfrequ": [14, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "arraystructur": [14, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "uint16": 14, "antennaspac": [14, 18, 19], "antparamet": 14, "phasediff": 14, "thetagrid": 14, "pi": [14, 19, 32, 33, 48, 49, 60, 71, 72, 79, 86, 98, 99, 114, 115, 122, 170, 171, 173, 174, 244, 258, 259, 273, 302, 315, 324, 327, 328, 329, 330, 331, 332, 334, 342, 349, 361], "180": [14, 302, 324, 331, 332, 342, 349], "phigrid": 14, "3gpp_38": [14, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "dual": [14, 29, 280, 339, 342, 346, 347, 352, 358, 361], "ref": [14, 15, 18, 19, 196, 197, 198, 199, 206], "radiat": [14, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 351, 361], "3d": [14, 18, 144, 147, 269, 296, 302, 327, 328, 330, 331, 332, 339, 361], "displayantennaradiationpattern": [14, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 351], "surfac": [14, 18, 19], "displayantennaarrayfactor": 14, "rotat": [14, 193, 203], "rotateantennaradiationpattern": 14, "angl": [14, 16, 17, 18, 19, 193, 195, 197, 200, 206, 243, 302, 327, 328, 329, 330, 332, 334, 338, 339, 340, 341, 342, 345, 348, 352, 358, 361], "alpha": [14, 19, 244, 302, 315, 320, 322, 323, 327, 328, 329, 330, 331, 332, 342, 349, 351], "beta": [14, 228, 334], "gama": 14, "also": [14, 17, 18, 19, 29, 32, 91, 130, 131, 132, 136, 137, 138, 139, 175, 182, 202, 203, 204, 205, 215, 216, 218, 219, 220, 236, 246, 247, 249, 255, 256, 271, 278, 280, 283, 307, 308, 315, 324, 333, 339, 342, 345, 360], "euler": 14, "http": [14, 356, 357, 358, 359, 360], "en": [14, 357], "wikipedia": 14, "org": 14, "wiki": 14, "euler_angl": 14, "hertzian_dipol": 14, "linear_dipol": 14, "ntn_antenna": 14, "vsat": 14, "hz": [14, 15, 19, 202, 203, 204, 205, 267, 285, 287, 288, 289, 291, 294, 320, 325, 338, 339, 340, 341, 342, 343, 344, 345, 346], "ghz": [14, 15, 18, 19, 29, 39, 46, 184, 249, 262, 266, 267, 302, 324, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 342, 344, 348, 349], "alwai": [14, 19, 49, 58, 72, 77, 99, 115, 120, 130, 131, 132, 136, 137, 138, 171, 174, 211, 215, 216, 218, 219, 227, 235, 238, 244, 245, 246, 247, 254, 259, 278, 279, 285, 315, 342], "geometri": [14, 16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 340, 341, 342, 347, 348, 349, 351, 352, 358], "mg": 14, "ng": [14, 29], "p": [14, 29, 33, 206, 236, 250, 251, 252, 253, 254, 265, 278, 284, 302, 304, 305, 306, 307, 308, 309, 320, 322, 323, 326, 327, 328, 329, 330, 331, 332, 333, 335, 336, 337, 338, 340, 341, 351, 357, 362], "vertic": [14, 29, 195, 302, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 345, 346, 348], "greater": [14, 17, 19, 35, 37, 102, 145, 193, 195, 204, 205, 207, 233, 280, 342], "horizont": [14, 29, 195, 302, 327, 328, 329, 330, 331, 332, 334, 345, 348], "column": [14, 19, 26, 193, 195, 227, 270, 338, 339, 340, 341, 342, 343, 346, 348], "dgv": 14, "dgh": 14, "dv": 14, "dh": [14, 19, 340], "theta_3db": 14, "half": [14, 19, 39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 235, 237, 238, 240, 242, 249, 262, 266, 272, 348], "beamwidth": 14, "along": [14, 19, 32, 139, 193, 195, 204, 217, 218, 219, 220, 227, 269, 270, 329, 338, 340, 341, 358], "elev": [14, 18, 193, 195, 196, 197, 206, 302, 332, 339, 347, 352], "65": [14, 285, 289, 291, 294, 309, 323, 329, 330, 331, 337, 348, 349, 352], "slav": 14, "lobe": 14, "attenu": 14, "30": [14, 90, 145, 204, 230, 236, 244, 245, 267, 278, 285, 288, 291, 294, 301, 302, 307, 308, 309, 315, 322, 323, 324, 327, 328, 329, 330, 331, 332, 334, 337, 338, 339, 340, 341, 342, 343, 346, 348, 349, 350, 351], "phi_3db": 14, "azimuth": [14, 16, 17, 18, 19, 193, 195, 196, 197, 206, 302, 324, 331, 332, 338, 339, 340, 341, 344, 347, 349, 352], "amax": 14, "max": [14, 29, 32, 39, 46, 48, 60, 64, 65, 71, 79, 83, 84, 98, 106, 107, 114, 122, 126, 127, 145, 162, 163, 165, 167, 168, 170, 173, 184, 235, 237, 239, 240, 242, 249, 255, 258, 262, 266, 272, 273, 278, 285, 288, 289, 291, 294, 301, 302, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 342, 345, 348, 349, 351], "wave": [14, 199, 318, 333, 346, 352, 358], "phase": [14, 15, 18, 19, 32, 203, 221, 233, 243, 268, 273, 275, 276, 296, 299, 322, 323, 327, 328, 331, 332, 334, 338, 340, 341, 347, 352], "rad": [14, 17], "theta": [14, 193, 195, 196, 302, 315, 324, 327, 328, 329, 330, 331, 332, 334, 348, 349], "zenith": [14, 16, 18, 338, 340, 341, 344, 345], "radian": [14, 17, 19, 197, 206, 342], "orientationperpanel": 14, "orient": [14, 17, 18, 19, 228, 339, 342], "correpond": 14, "bear": 14, "down": [14, 18, 19, 236, 320, 324, 325, 349, 358], "tilt": 14, "slant": 14, "numofpanel": 14, "polarizationslantangl": 14, "directionalgainmax": 14, "gain": [14, 58, 77, 120, 211, 285, 287, 288, 289, 291, 294, 346], "dbi": 14, "neither": [14, 19, 132, 138, 203, 205, 236, 246, 247, 254, 265, 302, 329, 330, 332, 350], "nor": [14, 19, 132, 138, 236, 246, 247], "instanc": [14, 17, 19, 236, 278, 305, 307, 309, 342, 343], "snippet": [14, 19, 29, 198, 278, 285, 315, 338, 340, 341, 342, 343, 344], "orienat": 14, "num": [14, 18, 19, 85, 87, 202, 205, 206, 263, 264, 294, 325, 339, 342, 343, 346, 351], "here": [14, 57, 76, 119, 152, 159, 210, 236, 269, 270, 275, 276, 279, 285, 295, 298, 315, 318, 329, 352, 360], "psa": 14, "antarrayobj": 14, "hertzina": [14, 16], "90": [14, 267, 278, 285, 287, 288, 289, 291, 294, 301, 302, 309, 324, 327, 328, 329, 330, 331, 332, 348, 349], "look": [14, 19, 301, 309], "fc": [14, 15, 18, 326, 333, 338, 340, 341, 344], "antenna_3gpp_38901": [14, 16], "3gpp_38901": 14, "antenaa": 14, "antenna_hertziandipol": [14, 16], "antenna_lineardipol": [14, 16], "usual": 14, "ge_max": 14, "carrierfrequ": [14, 15, 16, 19, 29, 238, 267, 285, 287, 289, 291, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "initi": [14, 17, 19, 33, 39, 46, 85, 103, 104, 132, 138, 184, 198, 206, 215, 216, 217, 218, 219, 220, 229, 233, 243, 245, 246, 247, 249, 250, 262, 263, 266, 271, 272, 273, 339, 342, 343, 350, 352, 357, 358, 359, 360], "lamda": [14, 275, 285, 287, 289, 291, 294, 302, 324, 327, 328, 329, 330, 331, 332, 334, 348, 349], "fieldtheta": 14, "fieldphi": 14, "field": [14, 39, 46, 85, 87, 88, 90, 91, 94, 103, 104, 181, 182, 184, 229, 233, 262, 263, 264, 266, 271, 348], "cluster": [15, 16, 18, 19, 338, 340, 341, 344], "coeffici": [15, 16, 18, 269, 270, 328, 329, 330, 347, 352], "timedomain": 15, "3gppts38901_channelgener": 15, "terrain": [15, 16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 332, 334, 339, 342, 343, 344, 346, 347, 348, 349, 351, 352, 358], "txlocat": 15, "rxlocat": 15, "txvelocityvector": 15, "rxvelocityvector": 15, "scenario": [15, 18, 19, 28, 202, 203, 204, 268, 275, 276, 279, 280, 302, 305, 310, 318, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 344, 346, 347, 348, 349, 352, 358], "locat": [15, 17, 18, 19, 57, 76, 85, 86, 102, 103, 104, 119, 189, 196, 197, 198, 199, 200, 206, 207, 210, 226, 229, 233, 235, 236, 237, 238, 251, 275, 276, 291, 294, 302, 309, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 346, 348, 349, 351, 358], "tx": [15, 18, 19, 196, 282, 285, 287, 288, 290, 292, 294, 295, 302, 318, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 342, 343, 344, 347, 349, 351, 352, 358], "typic": [15, 18, 19, 235, 236, 237, 268, 269, 270, 271, 278, 282, 283, 296, 302, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 335, 338, 340, 341, 348, 349, 351], "station": [15, 16, 17, 18, 19, 29, 87, 227, 236, 250, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 282, 283, 285, 294, 296, 305, 306, 307, 320, 322, 323, 325, 327, 328, 329, 331, 332, 334, 338, 339, 340, 341, 342, 344, 346, 349, 352, 358], "bss": [15, 17, 18, 19, 65, 84, 107, 127, 165, 168, 242, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "dl": [15, 19, 39, 46, 184, 196, 198, 206, 227, 231, 236, 243, 248, 251, 254, 262, 266, 275, 325, 327, 352, 361], "dimension": [15, 18, 29, 188, 273, 278, 315, 339], "numsnapshot": [15, 18, 22, 344, 348, 351], "numb": [15, 18], "snapshot": [15, 16, 17, 18, 19, 324, 338, 339, 340, 341, 343, 344, 345, 346, 347, 349, 352], "rx": [15, 18, 19, 29, 273, 285, 287, 288, 289, 291, 294, 302, 318, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 342, 343, 344, 347, 349, 351, 352, 358], "equip": [15, 16, 17, 19, 27, 91, 108, 132, 138, 144, 147, 148, 149, 175, 176, 181, 182, 196, 198, 215, 216, 246, 247, 250, 252, 253, 255, 256, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 285, 296, 320, 324, 329, 331, 332, 338, 339, 340, 341, 342, 344, 346, 349], "numu": [15, 18, 19, 22, 278, 279, 291, 294, 301, 304, 305, 306, 307, 308, 310, 318, 322, 323, 324, 344, 348, 349, 351], "veloc": [15, 17, 18, 19], "subcarrierspac": [15, 39, 46, 202, 203, 204, 205, 228, 231, 261, 265, 267, 302, 324, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 344, 346, 348], "15000": [15, 39, 46, 184, 228, 231, 236, 238, 262, 266, 267, 278, 285, 287, 288, 289, 291, 294, 301, 302, 323, 324, 329, 330, 332, 333, 334, 348, 349], "fftsize": [15, 267, 273, 285, 287, 288, 289, 291, 294, 322, 323, 324, 333, 338, 340, 341, 344, 349, 351], "128": [15, 228, 315, 329, 333, 336, 348], "normalizechannel": [15, 320, 322, 323, 325, 349, 351], "fft": [15, 29, 32, 33, 193, 195, 267, 268, 273, 285, 287, 288, 291, 294, 322, 323, 324, 325, 327, 328, 331, 333, 334, 338, 339, 340, 341, 344, 346, 348, 349, 351], "khz": [15, 29, 85, 103, 104, 189, 228, 229, 230, 231, 236, 238, 248, 249, 251, 267, 270, 271, 278, 301, 324, 327, 328, 329, 330, 331, 332, 338, 340, 341, 349], "ifft": [15, 273, 338, 339, 340, 341, 344, 346, 348], "respons": [15, 18, 19, 32, 85, 236, 269, 270, 271, 275, 276, 280, 283, 320, 327, 331, 334, 346, 347, 352, 358], "ignor": [15, 206, 244, 245, 266, 280, 294, 329, 338, 339, 343, 345, 346, 348], "passband": 15, "boolean": [15, 17, 18, 19, 39, 46, 88, 184, 189, 265, 269, 279, 281], "normal": [15, 18, 19, 227, 235, 237, 267, 273, 285, 287, 288, 289, 291, 294, 301, 318, 324, 328, 331, 333, 348, 349], "forc": [15, 19, 49, 72, 99, 115, 171, 174, 259, 269, 270, 271, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 345, 346, 348, 349, 351], "averag": [15, 18, 19, 269, 271, 315, 318, 350, 352, 358], "nfft": [15, 29, 202, 205, 228, 261, 267, 285, 287, 288, 289, 291, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 344, 346, 348, 349, 351], "accross": [15, 32, 279, 327, 328, 347, 352], "subcarri": [15, 29, 32, 33, 34, 35, 36, 37, 39, 46, 130, 131, 136, 137, 184, 202, 203, 204, 205, 215, 216, 218, 219, 231, 235, 237, 238, 256, 262, 265, 266, 267, 271, 273, 275, 276, 281, 285, 287, 289, 291, 294, 301, 322, 323, 324, 327, 328, 329, 330, 331, 332, 333, 334, 338, 340, 341, 346, 347, 348, 349, 351, 352], "numcarrierfreq": 15, "instant": [15, 18, 19, 33, 204, 339, 342, 343, 346], "numbss": [15, 18, 19, 22, 65, 84, 86, 87, 88, 107, 127, 165, 168, 233, 242, 294, 301, 322, 323, 344, 348, 351], "numrxant": 15, "numtxant": 15, "studi": [15, 18, 19, 318, 347, 352, 358], "five": 16, "name": [16, 17, 18, 19, 22, 29, 85, 86, 87, 88, 264, 298, 307], "across": [16, 19, 28, 38, 65, 84, 95, 101, 107, 127, 162, 168, 198, 202, 203, 204, 205, 208, 234, 235, 237, 239, 252, 253, 255, 256, 269, 271, 275, 276, 279, 325, 327, 328, 331, 339, 347, 352], "deploy": [16, 19, 268, 280, 318, 320, 327, 328, 331], "insid": [16, 19, 57, 76, 119, 152, 159, 210, 342, 343], "particular": [16, 19, 65, 84, 107, 127, 162, 168, 236, 239, 278, 282, 307], "parametergenear": 16, "necessari": [16, 18, 29, 204, 227, 236, 269, 270, 278, 315, 320, 339, 342, 343, 344, 345, 346, 348], "lsp": [16, 18, 19, 322, 323, 334, 338, 339, 340, 341, 342, 343, 344, 346], "ssp": [16, 18, 19, 322, 323, 334, 338, 339, 340, 341, 342, 343, 344, 346], "spread": [16, 18, 19, 28, 37, 135, 136, 137, 179, 218, 219, 222, 226, 234, 320, 333, 338, 340, 341, 344, 347, 352], "angular": [16, 18, 19, 331, 338, 340, 341, 344, 347, 352], "path": [16, 18, 19, 193, 195, 202, 203, 204, 205, 236, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 347, 348, 349, 350, 351, 352, 362], "rai": [16, 18, 299], "departur": [16, 18, 19, 345, 352, 358], "channelgenear": 16, "found": [16, 19, 34, 36, 64, 83, 106, 126, 163, 167, 204, 235, 237, 240, 249, 289, 333], "parabol": [16, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 344, 346, 348, 349, 351], "dipol": [16, 339, 342, 343, 346], "3gpp_38_901": 16, "hertzian": 16, "displayrout": [16, 17, 324, 339, 342, 343, 344, 349], "walk": 16, "circular": [16, 57, 76, 102, 119, 207, 210, 227, 270, 339, 342, 343], "rout": [16, 19, 338, 339, 340, 341, 342, 344, 347, 352], "vehicl": [16, 343], "highwai": 16, "bslocat": [16, 18, 19, 302, 324, 327, 328, 329, 330, 331, 332, 338, 339, 340, 341, 342, 343, 344, 346], "isd": [16, 18, 19, 196, 198, 206, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "ueloc": [16, 18, 19, 302, 324, 327, 328, 329, 330, 331, 332, 338, 339, 340, 341, 342, 343, 344, 346], "uedistibut": [16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 344, 345, 348, 349, 351], "ueheightdistribut": [16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 344, 348, 349, 351], "bsantennaarrai": [16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "bsrout": [16, 19, 343], "clutterdens": [16, 19, 302, 338, 340, 341], "clutterheight": [16, 19, 302, 338, 340, 341, 345], "clutters": [16, 19, 338, 340, 341, 345], "correlationdistanceindoor": [16, 19], "correlationdistancelo": [16, 19], "correlationtypeindoor": [16, 19], "correlationtypelo": [16, 19], "enablespatialconsistencyindoor": [16, 19, 339, 342, 343, 346], "enablespatialconsistencylo": [16, 19, 324, 339, 342, 343, 349], "force3gppspatialconsistencyparamet": [16, 19, 324, 349], "forcelo": [16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 345, 346, 348, 349, 351], "heightofb": [16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "heightofroom": [16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 345, 348, 349, 351], "heightofu": [16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "indooruefract": [16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 348, 349, 351], "layoutlength": [16, 19, 302, 327, 329, 330, 332, 334], "layouttyp": [16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "layoutwidth": [16, 19, 302, 327, 329, 330, 332, 334], "lengthofindoorobject": [16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 348, 349, 351], "maxnumberoffloor": [16, 19, 327, 345], "memoryeffici": [16, 18, 19, 339, 342, 343, 346], "minnumberoffloor": [16, 19, 345], "minuebsdist": [16, 18, 19, 320, 325, 338, 340, 341], "numofb": [16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "numofsectorspersit": [16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "numofsnapshot": [16, 19], "numofu": [16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "radiusforcircularuedrop": [16, 19], "routetyp": [16, 19], "ueantennaarrai": [16, 18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "uedropmethod": [16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 344, 345, 348, 349, 351], "uerout": [16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 344, 348, 349, 351], "widthofindoorobject": [16, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 348, 349, 351], "hexagon": [16, 18, 320, 322, 323, 324, 325, 327, 328, 329, 331, 334, 339, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 358], "rectangular": [16, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 348, 349, 351], "typeofmobl": [17, 343], "randomwalk": [17, 19, 324, 344, 349], "typical": 17, "static": [17, 269, 271, 327, 328, 331, 339, 342, 343, 344], "fall": [17, 280], "move": [17, 269, 271, 324, 339, 342, 343], "meter": [17, 18, 19, 198, 206, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 345, 348, 349, 351], "trajectori": [17, 339, 342], "anywher": [17, 19], "circumfer": [17, 339, 342], "circl": [17, 19, 206, 302, 329, 330, 331, 332, 339, 342, 343, 346, 352, 358], "start": [17, 32, 33, 57, 76, 88, 102, 119, 130, 131, 132, 134, 136, 137, 138, 139, 181, 182, 198, 202, 204, 207, 209, 210, 215, 216, 217, 218, 219, 220, 227, 228, 230, 231, 233, 236, 246, 247, 254, 265, 267, 270, 273, 278, 285, 287, 289, 291, 294, 301, 325, 342, 343, 350, 351, 356, 357, 358, 359], "deg": [17, 18], "kind": [17, 18], "option": [17, 33, 227, 235, 237, 244, 280, 285, 287, 289, 291, 294, 301, 320, 327, 328, 343, 348, 349], "optiona": [17, 343], "optionb": 17, "optionc": 17, "lane": 17, "width": [17, 18, 19, 206, 270, 273, 285, 287, 288, 289, 291, 294, 301, 302, 305, 309, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 338, 339, 340, 341, 342, 345, 346, 348, 349, 351, 362], "postivi": 17, "nodeorient": 17, "timeinst": [17, 18, 19, 324, 339, 342, 343, 344, 349], "velocityvector": 17, "initloc": 17, "noderout": 17, "circularrout": 17, "dropvehicleshighwai": 17, "numnod": [17, 18], "minveloc": 17, "maxveloc": 17, "phimin": 17, "7853981633974483": [17, 324, 349], "phimax": 17, "randomizeorient": [17, 343], "decreas": [17, 19, 204, 308], "radiusmin": 17, "radiusmax": 17, "833": [17, 339, 342, 343], "isinitsnapshotlocationrandom": 17, "initangl": [17, 339, 342], "kmph": [17, 339, 342, 343], "initiat": 17, "snap": [17, 18, 19, 339], "shot": [17, 18, 19], "lanewidth": [17, 343], "numlan": [17, 343], "numvehicl": [17, 343], "vehicledroptyp": [17, 343], "correl": [18, 19, 204, 244, 245, 268, 273, 286, 290, 292, 293, 295, 348, 361], "displayclust": [18, 302, 320, 322, 323, 324, 327, 328, 329, 330, 331, 332, 334, 339, 343, 346, 348, 349, 351], "fetch": [18, 267, 285, 287, 288, 289, 291, 294, 324, 348, 349, 356, 359, 360], "through": [18, 19, 22, 64, 83, 86, 106, 126, 163, 167, 240, 268, 271, 279, 283, 294, 302, 315, 322, 323, 326, 329, 330, 332, 335, 336, 346, 350, 352, 356, 357, 358, 359, 360, 362], "getchannel": [18, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 351], "3gppts38901_parametergener": 18, "lo": [18, 19, 197, 204, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 351], "phiaoa_lo": [18, 338, 339, 340, 341, 342, 343, 344, 346], "phiaod_lo": [18, 302, 331, 332, 338, 339, 340, 341, 342, 343, 344, 346], "thetaaoa_lo": [18, 338, 339, 340, 341, 342, 343, 344, 346], "thetaaod_lo": [18, 302, 331, 332, 338, 339, 340, 341, 342, 343, 344, 346], "shadow": [18, 347, 352], "fade": [18, 19, 28, 268, 269, 270, 271, 275, 276, 280, 281, 283, 320, 339, 347, 352], "shadowfad": [18, 338, 339, 340, 341, 342, 343, 344, 345, 346], "rician": [18, 347, 352], "kfactor": [18, 345], "delayspread": [18, 19, 323, 324, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349], "phiaod_spread": [18, 338, 339, 340, 341, 342, 343, 344, 345, 346], "phiaoa_spread": [18, 338, 339, 340, 341, 342, 343, 344, 345, 346], "thetaaod_spread": [18, 338, 339, 340, 341, 342, 343, 344, 345, 346], "thetaaoa_spread": [18, 338, 339, 340, 341, 342, 343, 344, 345, 346], "pathloss": [18, 329, 338, 339, 340, 341, 342, 343, 344, 345, 346], "casa": 18, "casd": 18, "czsa": 18, "pathdelai": [18, 338, 339, 340, 341, 342, 343, 344, 346], "pathpow": [18, 338, 339, 340, 341, 342, 343, 344, 346], "phiaoa_mn": [18, 338, 339, 340, 341, 342, 343, 344, 346], "phiaod_mn": [18, 338, 339, 340, 341, 342, 343, 344, 346], "thetaaoa_mn": [18, 338, 339, 340, 341, 342, 343, 344, 346], "thetaaod_mn": [18, 338, 339, 340, 341, 342, 343, 344, 346], "cross": [18, 29, 361], "xprnm": 18, "locb": 18, "locu": [18, 206, 331, 352, 358], "d3d": [18, 345], "d2d": [18, 299, 329, 343, 345, 361], "hallvolum": [18, 19], "surfacearea": [18, 19], "avgbuildingheight": [18, 19], "avgstreetwidth": [18, 19], "bsvelocityvector": [18, 19, 338, 339, 340, 341, 342, 343, 344, 346], "bsorient": [18, 19, 338, 339, 340, 341, 342, 343, 344, 346], "uevelocityvector": [18, 338, 339, 340, 341, 342, 343, 344, 346], "ueorient": [18, 338, 339, 340, 341, 342, 343, 344, 346], "enablespatialconsistencyforlsp": [18, 19, 324, 339, 342, 343, 349], "enablespatialconsistencyforssp": [18, 19, 324, 339, 342, 343, 349], "enablespatialconsistencyforinitialphas": [18, 19, 324, 339, 342, 343, 349], "equpi": 18, "volum": [18, 19], "hall": [18, 19, 327], "cubic": [18, 19, 275, 276, 294, 302, 323, 329, 330, 332, 334], "indoor": [18, 19, 199, 284, 302, 320, 322, 323, 324, 325, 327, 328, 329, 331, 334, 338, 339, 347, 348, 349, 351, 352, 358], "area": [18, 19, 269, 339, 358], "squar": [18, 19, 200, 206, 268, 269, 270, 271, 327, 328, 329, 330, 332, 348], "vaild": [18, 19], "height": [18, 19, 196, 197, 198, 199, 202, 204, 205, 206, 273, 275, 285, 289, 291, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "street": [18, 19], "compuat": [18, 19], "numofcarrierfrequ": 18, "ram": [18, 19, 301], "slow": [18, 19], "execut": [18, 19, 64, 83, 87, 88, 90, 106, 126, 163, 167, 181, 182, 240, 298, 356, 357, 359, 360], "spatial": [18, 19, 281, 283, 296, 299, 322, 323, 331, 334, 347, 352, 358, 361], "among": [18, 19, 188, 279, 306], "linkstatevec": [18, 338, 339, 340, 341, 342, 343, 344, 346], "nlo": [18, 19, 198, 327, 328, 329, 331, 338, 339, 340, 341, 342, 343, 344], "nanosec": 18, "mukdb": [18, 19, 327, 328], "varianc": [18, 19, 327, 328, 331], "sigmakdb": [18, 19, 327, 328], "angularspreadaod": [18, 19, 323], "defualt": 18, "angularspreadaoa": [18, 19, 323], "mulog10": [18, 19, 302], "absolut": [18, 19], "subtract": [18, 19], "tap": [18, 19, 32], "impuls": [18, 19, 32, 271, 338, 340, 341, 344, 346], "tdl": [18, 19], "cdl": [18, 19, 331, 351, 352, 358], "sigmalog10": [18, 19, 302], "enableabsolutedelai": [18, 19, 324, 349], "enableabsoluteangl": [18, 19], "sight": [18, 19, 302, 329, 347, 352], "numclust": [18, 338, 340, 341, 344], "zeta": [18, 198, 206, 333], "deviat": [18, 19, 315], "cd": 18, "nano": [18, 19], "Of": [18, 254, 265, 342, 350, 358], "positon": 18, "sens": [18, 299], "under": [18, 29, 236, 278, 281, 307, 315, 320, 338, 340, 341, 344], "indic": [18, 19, 29, 32, 33, 39, 46, 85, 86, 88, 94, 102, 103, 104, 130, 131, 132, 134, 136, 137, 138, 139, 184, 185, 188, 189, 206, 207, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 233, 236, 237, 238, 246, 247, 254, 262, 266, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 291, 293, 295, 315, 323, 325, 334, 339, 343, 345, 346, 348], "rayindex": [18, 302, 320, 322, 323, 324, 327, 328, 329, 330, 331, 332, 334, 339, 343, 346, 348, 349, 351], "carrierindex": [18, 339, 343, 346], "radiustx": [18, 339, 343, 346], "radiusrx": [18, 339, 343, 346], "displayplot": [18, 19, 204, 206, 324, 339, 343, 346], "third": [18, 38, 253, 255, 322, 323, 334], "boolen": [18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351], "applypathloss": [18, 338, 339, 340, 341, 342, 343, 344, 346], "scm": [18, 19], "uma": [18, 19, 324, 328, 334, 338, 339, 344, 345, 346, 348], "umi": [18, 19, 329, 343, 345], "inh": [18, 19, 330, 341], "oo": [18, 19, 39, 46, 330, 341], "carrierfreq": [18, 19, 39, 45, 46, 184, 262, 266, 291, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "numcarri": [18, 19, 344], "empti": [18, 19, 102, 207, 302, 327, 328, 329, 330, 331, 332, 342, 344], "simlayoutobj": [18, 19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "19": [18, 19, 278, 291, 301, 308, 309, 315, 327, 328, 329, 330, 331, 332, 334, 337, 339, 344, 348, 350, 362], "500": [18, 19, 285, 315, 324, 338, 339, 342, 343, 344, 346, 349], "35": [18, 19, 245, 289, 294, 301, 307, 309, 315, 323, 324, 327, 328, 329, 330, 331, 332, 337, 339, 342, 343, 344, 345, 346, 348], "topologi": [18, 19, 302, 322, 323, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 351, 352, 358], "display2dtopologi": [18, 19, 302, 322, 323, 324, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "paramgenobj": [18, 338, 339, 340, 341, 342, 343, 344, 346], "bstrack": [18, 19, 338, 339, 340, 341, 342, 343, 344, 346], "uetrack": [18, 338, 339, 340, 341, 342, 343, 344, 346], "linkstat": [18, 19, 324, 339, 342, 343, 345, 349], "now": [18, 285, 287, 288, 289, 291, 294, 301, 319, 322, 323, 329, 338, 339, 343, 345, 346, 351, 356, 357, 359, 360], "3gpptr38901_simlayout": 19, "deploi": [19, 327, 328, 331, 347, 352, 358], "chosen": [19, 87, 206, 227, 230, 236, 270, 278, 305, 325], "getparametergener": [19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "orbitparamet": 19, "600": [19, 248, 251], "78539816": 19, "initsatelliteparamet": 19, "57079633": 19, "useinitueloc": [19, 343], "exponenti": [19, 319], "50": [19, 90, 91, 94, 181, 182, 267, 301, 302, 308, 309, 315, 323, 327, 328, 329, 330, 331, 332, 334, 335, 337, 340, 341, 344, 345, 348], "probabl": [19, 65, 84, 107, 127, 162, 168, 239, 278, 283, 315, 318, 327, 328, 331, 347, 352, 358], "basic": [19, 286, 289, 291, 294, 295, 296, 352], "sector": [19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "intersit": [19, 196, 198, 206, 327, 328, 331], "neighbour": [19, 65, 84, 107, 127, 162, 168, 239, 269, 270, 271, 275, 348], "site": [19, 289, 302, 320, 322, 323, 324, 325, 327, 328, 330, 331, 332, 334, 338, 339, 340, 341, 343, 344, 345, 346, 347, 348, 349, 351, 352, 358], "placement": 19, "uedistribut": 19, "distribut": [19, 65, 84, 95, 101, 107, 127, 162, 168, 208, 239, 278, 279, 298, 302, 304, 305, 306, 307, 309, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 338, 339, 340, 341, 347, 348, 349, 351, 352], "choosen": [19, 236, 304, 309], "edg": [19, 278], "outermost": 19, "rectangl": 19, "uniformli": [19, 327, 328, 331], "point": [19, 32, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 227, 230, 238, 240, 242, 270, 295, 301, 333, 339, 352, 356, 357, 358, 359, 362], "row": [19, 26, 103, 104, 193, 195, 227, 228, 229, 231, 270, 302, 332, 334, 338, 340, 341], "orbit": 19, "satellit": 19, "altitud": 19, "eccentr": 19, "inclin": 19, "earth": 19, "perfect": [19, 86, 193, 195, 270, 302, 319, 332], "highli": [19, 280, 358], "closer": 19, "interv": [19, 22, 87, 95, 103, 104, 204, 205, 227, 228, 229, 231, 235, 248, 249, 251, 253, 255, 256, 268, 269, 270, 272, 285, 329, 333, 339, 342, 343, 344, 345, 346], "plane": 19, "equitori": 19, "longitud": 19, "ascend": 19, "periapsi": 19, "anomali": 19, "equin": 19, "vertox": 19, "perige": 19, "accord": [19, 144, 147, 181, 182, 227, 233, 325], "pick": [19, 238], "manual": [19, 285, 287, 288, 289, 291, 294], "gaussian": [19, 21, 32, 315], "hotspot": 19, "factori": [19, 327, 329, 338, 341, 347, 352, 358], "rural": [19, 347, 352, 358], "macro": [19, 328, 344, 347, 352, 358], "rma": [19, 331, 342, 345], "urban": [19, 328, 331, 339, 344, 352, 358], "micro": [19, 352, 358], "open": [19, 347, 352, 356, 357, 358, 359, 360], "offic": [19, 347, 352, 358], "mix": 19, "mo": 19, "clutter": [19, 338, 340, 341], "inf": [19, 302, 327, 332, 338, 340, 341], "sl": [19, 188, 235, 253, 256, 338, 340, 341], "sh": [19, 302, 327, 332, 351, 356, 357, 359], "dens": [19, 280, 302, 315, 320, 327, 328, 329, 330, 331, 332, 347, 352, 358], "hh": 19, "caputur": 19, "entri": [19, 227, 230, 270], "unexpect": [19, 254, 329, 338, 339, 343, 345, 346], "turn": [19, 279, 315, 362], "lie": [19, 236, 345], "close": [19, 32, 196, 305, 356, 359, 360], "fraction": [19, 281, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 348, 349, 351], "room": [19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351], "ceil": [19, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 348, 349, 350, 351], "minval": [19, 324], "maxval": 19, "depend": [19, 32, 39, 46, 86, 87, 94, 102, 132, 138, 181, 184, 206, 207, 236, 238, 246, 247, 262, 266, 268, 270, 272, 278, 281, 302, 307, 331, 332, 358], "floor": [19, 204, 285, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 348, 349, 350, 351], "invok": [19, 254, 264], "is3gppbaselin": 19, "necessarili": 19, "restrict": [19, 236, 267], "li": [19, 327, 328], "rightarrow": 19, "supportedterrain": 19, "doe": [19, 39, 46, 58, 77, 120, 134, 184, 211, 217, 227, 236, 262, 266, 269, 271, 278, 304, 305, 306, 307, 308, 309], "belong": [19, 24, 87, 101, 102, 207, 208, 227, 236, 244, 245, 253, 254, 255, 256, 295, 315], "come": [19, 338, 340, 341, 344, 360], "inter": [19, 22, 65, 84, 107, 127, 162, 168, 195, 239, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "antnennaarrai": 19, "center": [19, 294, 326, 339, 342, 343, 345, 346], "speicifi": 19, "geometr": 19, "By": [19, 87, 88, 130, 131, 132, 134, 136, 137, 138, 139, 181, 182, 197, 203, 204, 215, 216, 217, 218, 219, 220, 246, 247, 268, 269, 270, 271, 275, 276, 280, 281, 285, 329, 331, 332], "percentag": [19, 278, 280], "effic": [19, 294], "mode": [19, 29, 285, 287, 288, 289, 291, 294, 323, 334], "outdoor": [19, 347, 352, 358], "uepoints": 19, "facecolor": [19, 301, 342], "royalblu": [19, 302, 326, 327, 328, 329, 330, 331, 332, 335, 336, 337, 342, 343], "isequalaspectratio": [19, 302, 327, 328, 329, 330, 331, 332], "displaylinkst": 19, "refb": [19, 328, 340, 341, 345], "displaysectorlabel": 19, "abl": [19, 203, 301, 356, 357, 359], "adjust": [19, 57, 76, 119, 152, 159, 210, 265, 268, 269, 270, 271, 280, 281, 283], "transpar": [19, 289, 327, 362], "background": 19, "aspect": [19, 280, 281, 285, 287, 289, 291, 294, 324, 325, 327, 328, 339, 346, 348, 349], "wrt": [19, 197, 206, 273], "diplai": 19, "rest": [19, 264, 319, 346], "bsonli": 19, "ueonli": 19, "label": [19, 273, 285, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349, 350, 351, 362], "0000000000000001e": 19, "07": [19, 301, 304, 315, 362], "seen": [19, 29, 32], "60": [19, 230, 236, 238, 245, 267, 278, 285, 287, 288, 289, 291, 301, 302, 304, 305, 308, 309, 315, 323, 329, 330, 331, 337, 339, 342, 346], "09329365": 19, "2794876": 19, "45": [19, 227, 230, 255, 256, 270, 278, 294, 304, 309, 315, 323, 329, 330, 331, 337], "hexagonallayout": 19, "bsheight": 19, "intersitedist": 19, "numsectorspersit": 19, "rectangularlayout": 19, "numsit": [19, 342], "numsectorpersit": 19, "rectangulardrop": 19, "uedropdistribut": 19, "circulardrop": 19, "ueheight": 19, "hexagonaldrop": 19, "white": [21, 302, 315, 320, 322, 323, 325, 327, 328, 329, 330, 331, 332, 334], "addcfo": 21, "n0": [21, 348], "spectral": [21, 203, 204, 268, 280, 281, 283, 294, 309, 315], "noisi": [21, 283, 315, 362], "isfrequencydomain": [22, 322, 323, 348, 351], "enableintertxinterfer": [22, 322, 323, 348, 351], "memoryconsumptionlevel": [22, 322, 323, 348, 351], "beamform": [22, 29, 186, 189, 275, 276, 283, 299, 302, 320, 322, 323, 324, 325, 329, 330, 332, 346, 349, 352, 358], "h": [22, 29, 32, 193, 195, 198, 202, 203, 204, 205, 228, 275, 323, 327, 328, 334, 358], "multicel": [22, 338, 340, 341], "reperesent": 22, "matric": [22, 275, 276, 322, 323, 334], "interfer": [22, 65, 84, 107, 127, 162, 168, 203, 204, 239, 269, 270, 271, 275, 276, 280, 281, 283, 296, 299, 302, 320, 329, 330, 331, 332, 333, 361], "speed": [22, 199, 329, 333, 339, 342, 343, 358], "fastest": [22, 195], "most": [22, 39, 46, 184, 238, 262, 266, 279, 289, 295, 296, 302, 304, 309, 327, 328, 329, 330, 331, 332, 346, 348], "intens": 22, "slowest": 22, "numfrequ": [22, 348, 351], "numsymbol": [22, 48, 60, 71, 79, 86, 95, 98, 114, 122, 170, 173, 189, 193, 195, 231, 232, 235, 249, 258, 263, 264, 267, 270, 279, 283, 294, 301, 320, 322, 323, 324, 348, 349, 351], "numsampl": [22, 204, 205, 273, 301, 348, 351], "numfftpoint": [22, 348, 351], "numrxantenna": [22, 86, 275, 344, 348, 351], "numtxantenna": [22, 344, 348, 351], "onto": [22, 85, 131, 137, 139, 204, 215, 216, 217, 218, 219, 220, 230, 232, 350], "inconsist": [22, 34, 36, 95, 228, 231, 235, 248, 249, 251, 255, 256, 269], "pbchinterleav": [23, 25, 184], "pbchdeinterleav": [23, 25], "subblock_interleav": [23, 28, 56, 59, 75, 78, 118, 121, 150, 154, 157, 158, 160, 184, 185, 188, 189, 212], "subblock_deinterleav": [23, 28, 56, 59, 75, 78, 118, 121, 150, 154, 157, 158, 160, 184, 185, 188, 189, 212], "channelinterleav": [23, 26, 56, 58, 75, 77, 118, 120, 150, 153, 157, 158, 160, 184, 185, 188, 189, 211], "channeldeinterleav": [23, 26, 56, 58, 75, 77, 118, 120, 150, 153, 157, 158, 160, 184, 185, 188, 189, 211], "bitinterleav": [23, 24, 100, 101, 186, 188, 208], "bitdeinterleav": [23, 24, 100, 101, 186, 208], "matcher": [24, 26, 28, 58, 59, 77, 78, 88, 120, 121, 153, 154, 158, 185, 211, 212], "pf": [24, 101, 208], "re": [24, 101, 208, 227, 228, 231, 236, 284, 302, 320, 325, 327, 328, 329, 330, 331, 332, 358], "alter": [24, 65, 84, 101, 107, 127, 162, 168, 208, 239], "ensur": [24, 32, 101, 102, 207, 208, 268, 269, 270, 271, 275, 276, 278, 279, 280, 283, 285, 309, 333], "fit": [24, 57, 76, 101, 102, 119, 152, 159, 207, 208, 210, 315], "alloc": [24, 35, 37, 57, 76, 87, 88, 89, 90, 94, 101, 102, 103, 104, 119, 130, 131, 132, 134, 136, 137, 138, 139, 180, 181, 182, 188, 189, 207, 208, 210, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 232, 233, 236, 246, 247, 254, 264, 265, 270, 275, 278, 279, 283, 285, 291, 294, 299, 307, 308, 320, 348, 349, 350], "interleavedbit": 25, "numpbch": 25, "deinterleavedbit": 25, "triangular": 26, "isoscel": 26, "buffer": [26, 27, 57, 76, 87, 88, 90, 91, 102, 119, 181, 182, 207, 209, 210, 285, 287, 288, 289, 291, 294, 301], "constel": [26, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 290, 292, 293, 295, 318, 319, 323, 326, 333, 335, 336, 352, 358], "termin": [27, 356, 359, 360], "place": [27, 193, 195, 198, 206, 236, 348], "immedi": [27, 199], "sequenti": [27, 186, 279], "wait": 27, "alarm": 27, "rearrang": 28, "common": [28, 39, 46, 130, 131, 132, 134, 136, 137, 138, 139, 184, 202, 215, 216, 217, 218, 219, 220, 236, 246, 247, 262, 266, 268, 269, 270, 277, 278, 281, 304, 305, 306, 307, 308, 309, 325, 343, 348, 350], "sever": [28, 203, 204], "corrupt": [28, 203, 204], "sensit": [28, 301], "handl": [28, 204, 289, 327, 328, 338, 339, 340, 341, 342, 343, 344, 346], "burst": [28, 39, 46, 101, 184, 208, 214, 238, 262, 266, 272], "Such": [28, 87, 88, 181, 182, 343], "4g": 28, "assertionerror": [28, 59, 78, 121, 154, 158, 212], "complementari": [28, 59, 78, 121, 154, 158, 186, 212], "permut": [28, 59, 78, 121, 154, 158, 212], "dft": [29, 34, 35, 36, 37, 195, 205, 206, 327, 328, 348, 352, 358], "codebook": [29, 299, 334, 352, 358, 361], "28": [29, 87, 88, 94, 181, 182, 192, 194, 231, 244, 264, 278, 280, 301, 302, 304, 305, 315, 327, 328, 329, 330, 331, 332, 337, 340, 344, 348], "214": [29, 87, 94, 186, 236, 280, 301], "typeicodebook": [29, 30, 323, 334], "idealprecod": 29, "beam": [29, 39, 46, 196, 238, 243, 249, 275, 276, 283, 299, 327, 347, 352, 358, 361], "searchfre": [29, 30, 323, 334], "sf": [29, 136, 137, 218, 219, 333, 345], "pmi": [29, 361], "predefin": [29, 236], "full": [29, 361], "emploi": [29, 202, 268, 275, 276, 277, 279, 280, 329, 331], "n1": [29, 315], "atenna": 29, "n2": [29, 88], "thu": [29, 87, 88, 181, 182, 278, 306, 307, 325, 335], "pre": [29, 360], "multipli": [29, 32, 131, 134, 137, 138, 139, 216, 217, 219, 220, 247, 309], "w": [29, 206, 275, 315, 349, 362], "transmisson": [29, 227], "oversampl": [29, 202, 205], "3gppts38214type1cb": 29, "mimoprocess": [29, 285, 287, 288, 289, 291, 294, 323, 324, 334, 348, 349], "codebooktyp": [29, 323, 334], "antennastructur": [29, 323, 334], "antennapolar": [29, 323, 334], "typei": [29, 323, 334], "singlepanel": [29, 323, 334], "multipanel": 29, "horizonat": [29, 339, 342, 343, 346], "addition": [29, 202, 280], "sinc": [29, 32, 35, 37, 227, 333], "numiter": [29, 196, 198, 206, 304, 305, 306, 307, 308, 309, 323, 334], "ideal": [29, 327, 328, 333, 334, 338, 339, 340, 341, 344, 346, 358], "svd": [29, 281, 323, 352, 358], "type1": 29, "nt": [29, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 346, 348, 349, 351], "codebookmod": [29, 323, 334], "fd": [29, 103, 104, 228, 229, 334], "resouc": 29, "rb": [29, 33, 87, 189, 227, 230, 234, 235, 236, 237, 238, 245, 265, 266, 267, 270, 279, 285, 287, 288, 289, 291, 294, 322, 323, 324, 325, 327, 328, 331, 348, 349, 350, 351], "times32": 29, "band": [29, 186, 189, 198, 238, 262, 266, 267, 268, 270, 279, 283, 285, 287, 288, 291, 323, 324, 334, 347, 348, 349, 352, 358, 361], "patch": [29, 227, 236, 278, 285, 287, 288, 302, 304, 305, 306, 307, 308, 309, 320, 325, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 346], "mpatch": [29, 227, 236, 278, 302, 304, 305, 306, 307, 308, 309, 327, 328, 329, 330, 331, 332, 334], "mpl": [29, 227, 236, 278, 302, 304, 305, 306, 307, 308, 309, 320, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 338, 340, 341, 344, 345, 350, 351], "numrb": [29, 35, 37, 85, 87, 88, 90, 91, 94, 103, 104, 129, 130, 131, 132, 135, 136, 137, 138, 139, 179, 181, 182, 189, 215, 216, 218, 219, 220, 222, 229, 231, 233, 238, 244, 245, 246, 247, 254, 262, 264, 266, 267, 271, 275, 276, 279, 283, 285, 287, 288, 291, 294, 301, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351], "bwpoffset": [29, 270, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 349, 351], "txantstrutur": [29, 322, 323, 324, 349, 351], "rxantstrutur": [29, 322, 323, 324, 349, 351], "subband": 29, "subbands": [29, 323, 334], "prb": [29, 85, 103, 104, 130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 233, 246, 247, 270, 278, 323, 325, 334, 350], "numsubband": [29, 323, 334], "subbandscindic": [29, 323, 334], "vh": [29, 322, 323, 334, 351], "linalg": [29, 294, 302, 315, 322, 323, 324, 327, 328, 329, 330, 331, 332, 334, 351], "hf": [29, 39, 46, 202, 203, 204, 205, 235, 237, 270, 272, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 351], "conj": [29, 322, 323, 334, 351], "transpos": [29, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351], "combin": [29, 39, 46, 94, 103, 104, 184, 197, 203, 204, 228, 229, 231, 238, 262, 266, 267, 272, 324, 326, 334, 335, 336, 349, 350, 351, 352, 358, 361], "newaxi": [29, 294, 302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 348, 349, 351], "axi": [29, 193, 195, 278, 294, 302, 305, 309, 315, 319, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "xbeam": [29, 322, 323, 351], "txgrid": [29, 294, 320, 322, 323, 325, 351], "type1cb": [29, 323, 334], "numport": [29, 103, 104, 189, 229, 232, 233, 323, 334], "prod": [29, 302, 320, 323, 324, 325, 327, 329, 330, 332, 334, 345, 349], "type1precod": [29, 323, 334], "complex_": [29, 323, 334], "nsb": [29, 323, 334], "hk": [29, 193, 195, 302, 323, 332, 334], "s2": [29, 323, 334], "eig": [29, 323, 334], "nb": [29, 302, 323, 324, 327, 328, 329, 330, 331, 332, 349], "cbbeamformedgrid": 29, "sp": [29, 302, 327, 328, 329, 330, 331, 332, 334], "mode1": 29, "federico": 29, "penna": 29, "hongb": 29, "cheng": 29, "jungwon": 29, "lee": 29, "simplifi": 31, "broadband": 31, "characteris": 31, "furthermor": [31, 62, 81, 124, 164, 241, 301, 326, 327, 328, 331, 336, 338, 339, 340, 341, 342, 343, 344, 346, 356, 359, 360], "facilit": [31, 234, 269, 270, 271, 285, 324, 358], "prefix": [31, 32, 33, 267, 268, 273, 348], "sampl": [32, 33, 34, 35, 36, 37, 193, 195, 202, 204, 205, 260, 267, 268, 273, 286, 288, 289, 291, 294, 295, 315, 318, 333, 348, 358], "fft_size": [32, 33, 268], "l_min": 32, "cyclic_prefix_length": [32, 33, 268, 333], "represent": [32, 33, 39, 46, 184, 262, 266, 315, 346], "waveform": [32, 203, 204, 221, 299, 333, 361], "timechannel": 32, "pair": [32, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 203, 238, 258, 259, 262, 266, 267, 329], "y_b": 32, "ell": 32, "l_": [32, 64, 65, 83, 84, 106, 107, 126, 127, 162, 163, 165, 167, 168, 233, 239, 240, 242, 249, 254], "bar": [32, 33, 39, 46, 184, 249, 262, 265, 266, 291, 294, 309, 324, 348], "x_": 32, "w_b": 32, "quad": 32, "n_b": 32, "discret": [32, 33, 192, 202], "w_": 32, "cut": 32, "piec": 32, "throw": 32, "awai": [32, 324], "trail": 32, "fourier": [32, 192, 202], "window": [32, 33, 289, 352, 356, 359], "shift": [32, 132, 138, 215, 216, 217, 218, 219, 220, 221, 227, 244, 246, 247, 252, 253, 254, 265, 270, 275, 276, 320, 325, 348, 350], "j2": 32, "le": 32, "largest": [32, 273, 352], "lag": 32, "explicitli": 32, "step": [32, 196, 198, 203, 204, 206, 269, 270, 272, 301, 318, 326, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 348, 350, 356, 357, 358, 359, 360], "pilot": [32, 103, 104, 229, 233, 268, 269, 271, 276, 327, 328, 330, 331, 332], "interpol": [32, 202, 205, 269, 270, 271, 275, 276, 285, 287, 289, 291, 294, 302, 318, 323, 324, 325, 329, 330, 331, 332, 334, 339, 346, 348, 349, 352, 358], "ofdmchannel": 32, "cir_to_time_channel": 32, "prepend": [32, 33], "num_ofdm_symbol": [32, 33], "nonneg": [32, 268], "cp": [33, 267, 268, 285, 287, 288, 289, 291, 294, 324, 348, 349, 352, 358], "_l": 33, "mu": [33, 63, 64, 65, 82, 83, 84, 85, 103, 104, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 194, 196, 198, 204, 206, 228, 229, 230, 231, 236, 240, 242, 248, 249, 251, 254, 265, 270, 271, 278, 304, 305, 306, 307, 308, 309, 320, 325], "n_": [33, 64, 65, 83, 84, 85, 103, 104, 106, 107, 126, 127, 163, 165, 167, 168, 189, 196, 198, 228, 229, 230, 231, 235, 236, 240, 242, 244, 245, 248, 249, 251, 252, 253, 254, 255, 256, 270, 271, 278, 285, 327, 328, 331], "mathrm": 33, "a_": 33, "left": [33, 238, 301, 309, 322, 323, 326, 334, 335, 336, 337], "k_0": 33, "right": [33, 298, 301, 326, 350], "delta": [33, 85, 103, 104, 189, 198, 206, 228, 229, 230, 231, 236, 238, 244, 245, 248, 249, 251, 254, 270, 271, 278, 327, 328, 331, 345, 348], "f": [33, 85, 103, 104, 189, 226, 228, 229, 230, 231, 235, 236, 237, 238, 248, 249, 251, 254, 265, 270, 271, 275, 278, 291, 294, 327, 328, 331, 333, 345, 348, 349], "t_": 33, "express": [33, 203, 236, 278, 298], "deriv": [33, 86, 280], "definit": [33, 333], "associ": [33, 227, 278, 298], "numerologi": [33, 230, 236, 238, 260, 267, 278, 320, 325], "durat": [33, 103, 104, 227, 229, 230, 233, 234, 236, 270, 278, 294, 320, 325, 346, 351], "longer": [33, 196, 198, 206], "numsubcarri": [34, 35, 36, 37, 86, 202, 203, 204, 205, 228, 230, 231, 270, 281, 334], "fdm": [34, 36], "numset": [34, 35, 36, 37], "stream": [34, 35, 36, 37, 57, 76, 85, 119, 152, 159, 210, 263, 264, 281], "tranform": [34, 35, 36, 37], "ngroupptr": [35, 37], "nsampgroup": [35, 37], "so": [35, 37, 88, 130, 131, 132, 136, 137, 138, 139, 198, 215, 216, 218, 219, 220, 238, 246, 247, 264, 304, 309], "slot": [35, 37, 48, 49, 60, 71, 72, 79, 85, 87, 88, 90, 91, 94, 98, 99, 103, 104, 114, 115, 122, 130, 131, 132, 134, 136, 137, 138, 139, 170, 171, 173, 174, 181, 182, 189, 215, 216, 217, 218, 219, 220, 228, 229, 230, 231, 232, 234, 236, 246, 247, 248, 249, 251, 252, 253, 254, 258, 259, 265, 270, 271, 278, 279, 283, 294, 304, 305, 306, 307, 308, 309, 318, 320, 322, 323, 325, 327, 328, 331, 350, 351, 352, 358], "possvalu": [35, 37, 271], "self": [35, 37, 39, 46, 94, 95, 103, 104, 228, 229, 231, 244, 254, 279, 280, 289], "__ngroupptr": [35, 37], "constitu": [38, 252, 253, 255, 256], "load": [38, 85, 103, 104, 189, 229, 230, 231, 232, 235, 236, 237, 238, 248, 251, 252, 253, 254, 255, 256, 264, 265, 266, 270, 271, 278, 279, 285, 287, 289, 291, 294, 301, 302, 320, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 348, 349, 351], "middl": [38, 252, 253, 255, 256, 322, 323, 334], "payloadgener": [38, 39, 46], "argc": 38, "dcityp": 38, "n_rb": [38, 238, 289, 294, 348, 349], "3gppts38211_dci": 38, "choic": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 228, 235, 236, 237, 238, 240, 242, 249, 262, 266, 269, 272, 278, 301, 304, 305, 306, 307, 308, 309, 315, 334, 348, 350], "choicebit": [39, 45, 46, 184, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "na": [39, 46, 49, 65, 72, 84, 99, 107, 115, 127, 162, 168, 171, 174, 239, 243, 259], "subcarrierspacingcommon": [39, 45, 46, 184, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "dmrstypeaposit": [39, 45, 46, 85, 103, 104, 184, 229, 233, 262, 263, 264, 266, 271, 285, 287, 289, 291, 294, 322, 323, 324, 348, 349, 351], "controlresourceset0": [39, 45, 46, 86, 184, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "searchspace0": [39, 45, 46, 86, 184, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "cellbar": [39, 45, 46, 184, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "intrafrequencyreselect": [39, 45, 46, 184, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "ssbsubcarrieroffset": [39, 45, 46, 86, 184, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "ssbindex": [39, 45, 46, 63, 64, 65, 82, 83, 84, 86, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 235, 237, 240, 242, 249, 262, 266, 272, 285, 287, 289, 291, 294, 324, 348, 349], "nssbcandidatesinhrf": [39, 45, 46, 184, 235, 237, 249, 262, 266, 272, 285, 287, 289, 291, 294, 324, 348, 349], "ati": [39, 46, 289, 291, 348, 352, 358], "systemframenumb": [39, 45, 46, 184, 262, 265, 266, 285, 287, 289, 291, 294, 302, 324, 329, 330, 332, 348, 349], "mibgener": [39, 45, 46, 184], "dmrsposit": [39, 46], "cresourcesetzero": [39, 46], "searchspacezero": [39, 46], "hrfbit": [39, 45, 46, 184, 235, 237, 249, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "titl": [39, 46, 262, 266, 291, 294, 309, 345], "misnom": [39, 46, 262, 266], "52": [39, 46, 184, 238, 262, 266, 305, 329, 330, 331, 337], "30000": [39, 46, 103, 104, 184, 228, 229, 231, 233, 261, 262, 266, 267, 301, 322, 324, 328, 331, 334, 348, 349, 351], "120000": [39, 46, 184, 262, 266, 327, 334], "240000": [39, 46, 184, 262, 266, 334], "sib1": [39, 46, 130, 131, 132, 134, 136, 137, 138, 139, 184, 215, 216, 217, 218, 219, 220, 246, 247, 262, 266, 348], "msg": [39, 46, 184, 262, 266], "si": [39, 46, 184, 194, 204, 236, 262, 266, 301, 348, 349], "typea": [39, 46, 184, 262, 266, 291, 294, 348], "dm": [39, 46, 85, 103, 104, 184, 229, 233, 262, 263, 266, 271, 348], "pos2": [39, 46, 85, 103, 104, 184, 229, 233, 262, 263, 264, 266, 271, 294, 322, 323, 351], "pos3": [39, 46, 85, 103, 104, 184, 229, 233, 262, 263, 264, 266, 271, 294, 322, 323, 351], "controlresourceset": [39, 46, 184, 262, 266, 348], "crucial": [39, 46, 184, 196, 198, 206, 262, 266, 268, 269, 270, 271, 275, 276, 280, 285, 304, 305, 306, 307, 308, 309, 339, 349], "reselect": [39, 46, 184, 262, 266, 348], "intra": [39, 46, 130, 131, 132, 134, 136, 137, 138, 139, 184, 215, 216, 217, 218, 219, 220, 246, 247, 262, 266, 348], "treat": [39, 46, 184, 262, 266, 348], "frame": [39, 46, 64, 65, 83, 84, 85, 103, 104, 106, 107, 126, 127, 132, 138, 163, 165, 167, 168, 184, 189, 228, 229, 230, 231, 235, 236, 237, 238, 240, 242, 246, 247, 248, 249, 251, 254, 260, 262, 265, 266, 267, 268, 270, 271, 272, 278, 286, 294, 295, 296, 301, 304, 305, 306, 308, 309, 320, 324, 325, 327, 328, 331, 342, 348, 349, 358], "1023": [39, 46, 132, 138, 184, 246, 247, 254, 262, 265, 266], "msb": [39, 46, 184, 262, 266, 348], "sfn": [39, 46, 65, 84, 107, 127, 162, 168, 184, 239, 262, 266, 348], "ie": [39, 46, 184, 254, 262, 266], "lsb": [39, 46, 184, 262, 266], "outsid": [39, 46, 184, 262, 266, 295, 329, 343, 345], "overal": [39, 46, 184, 262, 266, 268, 271, 279, 280, 281, 283, 285, 306, 320, 329, 331, 348], "fr1": [39, 46, 184, 238, 262, 266, 267], "fr2": [39, 46, 184, 238, 249, 262, 266, 267], "configsib1": [39, 46, 184, 262, 266, 348], "ss": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 188, 238, 240, 242, 249, 255, 256, 262, 266, 272, 348], "clear": [39, 46, 184, 262, 266, 272, 285, 288, 289, 291, 294, 342], "cellid": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 188, 240, 242, 269, 272, 291, 294, 348, 349], "1007": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 188, 237, 240, 242, 249, 269, 272], "candid": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 236, 240, 242, 249, 262, 266, 272, 278, 304, 305, 307, 308, 309, 310, 318, 325, 358], "upon": [39, 46, 102, 132, 181, 184, 207, 246, 262, 266, 269, 270, 272, 275, 276], "monitor": [39, 46, 236, 262, 266, 270, 281, 283, 305, 306, 308, 325], "No": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 198, 206, 240, 242, 252, 253, 255, 256, 275, 289, 315, 319, 327, 328, 331, 354], "5ghz": [39, 46, 238], "notbar": [39, 46, 348], "notallow": [39, 46, 291, 348], "typeb": [39, 46, 348], "15khz": [39, 46, 238], "30khz": [39, 46], "120khz": [39, 46], "240khz": [39, 46], "100ghz": [39, 46, 238], "3ghz": [39, 46], "6ghz": [39, 46, 238], "22": [39, 46, 189, 236, 238, 278, 284, 309, 315, 323, 324, 327, 328, 329, 330, 331, 332, 334, 337, 348, 362], "displayparamet": [39, 45, 46, 291, 294, 348], "mibextract": [39, 45, 46, 184], "payloadseq": [39, 46], "3gppts38211_mib": [39, 46], "similarli": [40, 195], "bpsk": [48, 49, 60, 71, 72, 79, 86, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 315, 319, 326, 335, 336, 361], "3db": [48, 60, 71, 79, 98, 114, 122, 170, 173, 258], "maxlog": [48, 60, 71, 79, 86, 98, 114, 122, 170, 173, 185, 188, 258, 291, 294, 301, 315, 348, 349], "bipolar": [48, 60, 71, 79, 98, 114, 122, 170, 173, 258], "demapmethod": [48, 60, 71, 79, 98, 114, 122, 170, 173, 258, 294], "consttyp": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 294, 333], "mordul": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 294], "scramblingid": [48, 60, 64, 65, 71, 79, 83, 84, 85, 98, 103, 104, 106, 107, 114, 122, 126, 127, 163, 165, 167, 168, 170, 173, 185, 189, 228, 229, 230, 232, 233, 240, 242, 248, 249, 258, 261, 263, 270, 271, 294, 322, 323, 334, 351], "3gppts38211_csir": [48, 60, 71, 79, 98, 114, 122, 170, 173, 248, 258], "custom": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 309, 361, 362], "convers": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259], "keyvalu": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259], "complex128": [48, 60, 71, 79, 98, 114, 122, 170, 173, 258], "psk": [49, 72, 99, 115, 169, 171, 174, 257, 259, 315], "toolkit": [49, 72, 99, 115, 144, 147, 171, 174, 195, 196, 200, 205, 243, 259, 260, 267, 290, 292, 293, 295, 297, 298, 310, 318, 347, 352, 361], "program": [49, 72, 99, 115, 171, 174, 259, 295, 345], "similar": [49, 72, 99, 102, 115, 141, 171, 174, 175, 176, 207, 259, 295, 332, 339, 348], "eas": [49, 72, 99, 115, 171, 174, 259, 361], "3gppts38211_map": [49, 72, 99, 115, 171, 174, 259], "upto": [49, 72, 99, 115, 171, 174, 259, 301], "even": [49, 72, 99, 115, 171, 174, 193, 195, 203, 204, 205, 259, 301, 327, 328, 329, 331, 335], "1600": [49, 72, 99, 115, 171, 174, 259], "put": [49, 72, 99, 115, 171, 174, 259, 298, 327, 328], "kei": [49, 72, 99, 115, 171, 174, 259, 278, 280, 281, 293, 295, 322, 323, 326, 334, 335, 351, 356, 359, 360, 362], "bitdeselect": [56, 57, 75, 76, 100, 102, 118, 119, 150, 152, 157, 159, 160, 184, 185, 186, 188, 189, 207, 210, 336], "reflect": [57, 76, 102, 119, 207, 210], "repetit": [57, 76, 102, 119, 207, 210, 265, 361], "wherea": [57, 76, 89, 102, 119, 207, 210, 236, 278], "quantiti": [57, 76, 85, 103, 104, 119, 152, 159, 210, 229, 233, 263, 271], "involv": [57, 76, 89, 119, 152, 159, 175, 176, 180, 181, 182, 203, 204, 210, 268, 269, 270, 271, 272, 280, 281, 320, 326, 331, 332, 335, 336, 350], "choos": [57, 76, 119, 152, 159, 210, 236, 268, 278, 282, 307, 315, 325, 339, 342, 343, 346], "discard": [57, 76, 119, 152, 159, 210], "1st": [57, 76, 119, 152, 159, 189, 210, 323], "stage": [57, 76, 119, 152, 159, 189, 210], "term": [57, 76, 119, 152, 159, 188, 189, 210, 227, 236, 265, 278, 279, 281, 305, 307, 308, 325, 333, 339], "rm": [57, 76, 103, 104, 119, 152, 159, 210, 229, 233], "bug": [57, 76, 119, 152, 159, 210], "reach": [57, 76, 119, 152, 159, 210, 329, 331, 358], "mach": [57, 76, 119, 152, 159, 189, 210], "revers": [57, 76, 119, 152, 159, 210], "restor": [57, 76, 119, 152, 159, 210, 269, 270], "origin": [57, 76, 119, 139, 152, 159, 210, 220, 269, 270, 322, 323, 324, 325, 327, 328, 332, 334, 339, 342, 343], "modifi": [57, 76, 119, 152, 159, 210, 298], "drm": [57, 76, 119, 152, 159, 210], "isocel": [58, 77, 120, 211], "triangl": [58, 77, 120, 211], "temporari": [62, 64, 65, 81, 83, 84, 85, 86, 106, 107, 124, 126, 127, 163, 164, 165, 167, 168, 175, 176, 185, 236, 240, 241, 242, 271, 278], "intend": [62, 81, 124, 164, 241], "unicast": [62, 81, 124, 164, 241], "multicast": [62, 81, 124, 164, 241], "distinguish": [62, 81, 87, 124, 164, 241], "3gppts38212_rnti": [62, 81, 124, 164, 241], "invers": [62, 64, 65, 81, 83, 84, 102, 106, 107, 124, 126, 127, 144, 147, 162, 163, 164, 167, 168, 207, 239, 240, 241], "unmask": [62, 81, 124, 164, 241], "dcibit": [62, 81, 124, 164, 185, 241, 320, 325], "11548": [62, 81, 124, 164, 241], "dcirnti": [62, 81, 124, 164, 185, 241], "65519": [62, 64, 65, 81, 83, 84, 85, 86, 106, 107, 124, 126, 127, 163, 164, 165, 167, 168, 185, 236, 240, 241, 242, 271, 278, 304, 305, 306, 307, 308, 309, 325], "lmax": [63, 64, 65, 82, 83, 84, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 238, 240, 242, 249, 272], "c_init": [63, 64, 65, 82, 83, 84, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 240, 242, 250], "nid": [63, 64, 65, 82, 83, 84, 85, 86, 105, 106, 107, 125, 126, 127, 129, 132, 135, 138, 150, 163, 165, 166, 167, 168, 175, 176, 179, 184, 185, 186, 188, 189, 215, 216, 217, 218, 219, 220, 240, 242, 246, 247, 249, 271, 272, 294, 320, 322, 323, 325, 350, 351], "q": [63, 64, 65, 82, 83, 84, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 240, 242, 294, 315, 358], "THe": [64, 83, 106, 126, 163, 167, 227, 235, 237, 240, 270, 338, 340, 341], "simpli": [64, 83, 106, 126, 163, 167, 240], "itself": [64, 83, 106, 126, 163, 167, 240, 272, 278, 356, 359, 360, 362], "bi": [64, 83, 106, 126, 163, 167, 186, 189, 240, 324, 349], "471": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "decrambl": [64, 83, 106, 126, 163, 167, 240], "pbchdescr": [64, 83, 106, 126, 163, 167, 240], "descrbit": [64, 83, 106, 126, 163, 167, 240, 322, 351], "scrbit": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 240, 242], "1051": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "18548": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "1151": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "cbindex": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "39742": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "pbchscr": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 240, 242], "seed": [64, 65, 83, 84, 106, 107, 126, 127, 162, 163, 165, 167, 168, 239, 240, 242, 245, 248, 249, 250, 251], "whom": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 196, 197, 198, 199, 240, 242, 249], "descrabl": [64, 83, 106, 126, 163, 167, 240], "n_cell_id": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 249], "math": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 189, 196, 198, 233, 238, 240, 242, 264], "toward": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 196, 198, 206, 240, 242], "lesser": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "65535": [64, 65, 83, 84, 85, 86, 103, 104, 106, 107, 126, 127, 163, 165, 167, 168, 185, 189, 229, 232, 233, 240, 242, 249, 254, 263, 271], "datascramblingidentitypdsch": [64, 65, 83, 84, 85, 86, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 271], "ident": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 175, 176, 240, 242, 249, 256, 272, 285], "671": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 249], "pd": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 249], "chdescrambl": [64, 83, 106, 126, 163, 167, 240], "pdcchdescrambl": [64, 83, 106, 126, 163, 167, 240], "nu": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 244, 265], "consecut": [65, 84, 107, 127, 162, 168, 239, 254, 278, 279], "occurr": [65, 84, 107, 127, 162, 168, 239, 298], "xor": [65, 84, 107, 127, 162, 168, 239], "ed": [65, 84, 107, 127, 162, 168, 239, 353, 358], "impact": [65, 84, 107, 127, 162, 168, 239, 285, 306, 310, 318, 320, 358], "decorrel": [65, 84, 107, 127, 162, 168, 239], "abd": [65, 84, 107, 127, 162, 168, 239], "comment": [65, 84, 107, 127, 162, 168, 239, 315], "aka": [65, 84, 107, 127, 162, 168, 239], "nd": [65, 84, 107, 127, 162, 168, 239], "scambl": [65, 84, 107, 127, 162, 168, 239], "psch": [65, 84, 107, 127, 162, 168, 239], "affect": [65, 84, 107, 127, 162, 168, 239, 331], "3gppts38211_scr": [65, 84, 107, 127, 165, 168, 242], "just": [65, 84, 107, 127, 165, 168, 242, 285, 287, 288, 289, 291, 294], "anoth": [65, 84, 107, 127, 165, 168, 242, 278, 289, 315, 339], "ch": [65, 84, 107, 127, 165, 168, 242, 249], "scramber": [65, 84, 107, 127, 165, 168, 242], "pdschlowerphi": [85, 186, 294, 301, 322, 323, 351], "pdschmappingtyp": [85, 103, 104, 229, 233, 263, 264, 271, 294, 322, 323, 351], "configurationtyp": [85, 103, 104, 229, 233, 263, 264, 271, 294, 322, 323, 351], "maxlength": [85, 103, 104, 229, 233, 263, 264, 271, 294, 322, 323, 351], "dmrsadditionalposit": [85, 103, 104, 229, 233, 263, 264, 271, 294, 322, 323, 351], "l0": [85, 103, 104, 229, 233, 263, 264, 271, 294, 322, 323, 351], "ld": [85, 103, 104, 229, 233, 263, 264, 271, 294, 322, 323, 351], "l1": [85, 103, 104, 229, 233, 263, 264, 271, 294, 322, 323, 351], "3gppts38211pdsch": [85, 86, 95, 186], "len1": [85, 103, 104, 229, 263, 264, 271, 294, 351], "len2": [85, 103, 104, 229, 233, 263, 264, 271, 322, 323], "pos0": [85, 103, 104, 229, 233, 263, 264, 271, 351], "pos1": [85, 103, 104, 229, 263, 264, 271, 322, 323], "l_0": [85, 103, 104, 228, 229, 254, 263, 264, 271], "l_d": [85, 103, 104, 229, 233, 263, 264, 271], "l_1": [85, 103, 104, 228, 229, 263, 264, 271], "bits1": 85, "occupi": [85, 87, 103, 104, 227, 228, 229, 230, 231, 233, 234, 278, 301, 320, 325, 327, 328, 331, 350], "port": [85, 87, 88, 94, 102, 103, 104, 181, 182, 207, 228, 229, 233, 254, 263, 264, 265, 276, 294, 362], "slotnumb": [85, 103, 104, 129, 132, 135, 138, 179, 189, 215, 216, 217, 218, 219, 220, 228, 229, 230, 231, 232, 233, 236, 246, 247, 248, 249, 251, 261, 270, 271, 278, 294, 304, 305, 306, 307, 308, 309, 320, 322, 323, 325, 327, 328, 331, 334, 350, 351], "nscid": [85, 103, 104, 229, 233, 249, 263, 271, 294, 322, 323, 351], "\ud835\udc5b": [85, 103, 104, 229, 233, 263, 271], "scid": [85, 103, 104, 229, 233, 249, 263, 271], "pdschstartsymbol": [85, 233, 264, 271], "bits2": [85, 294, 322, 323, 351], "phy": [85, 86, 87, 88, 186, 189, 263, 264, 283, 318, 358], "rmdmrspdsch": [85, 103, 104, 229, 233], "gather": 85, "resourcemap": [85, 103, 104, 130, 131, 134, 136, 137, 139, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 269, 285, 287, 288, 289, 291, 294, 302, 320, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349], "pdschindic": [85, 86, 294, 322, 351], "store": [85, 196, 197, 205, 294], "displaydmrsgrid": [85, 186, 294, 351], "displayresourcegrid": [85, 103, 104, 186, 226, 228, 229, 231, 233, 294, 327, 328, 331, 351], "portindex": [85, 228], "pdschdecoderlowerphi": [86, 186, 294, 301, 322, 323, 351], "ischannelperfect": [86, 322, 350, 351], "isequ": [86, 322, 351], "necessit": 86, "channelestim": [86, 323], "rxgrid": [86, 269, 271, 275, 276, 291, 294, 302, 320, 322, 323, 325, 327, 328, 329, 330, 331, 332, 334, 348, 351], "numrx": [86, 301], "portindic": 86, "subcarrierindic": [86, 334], "symbolsindic": 86, "numtb": [86, 87, 88, 90, 91, 181, 182, 264, 294, 301, 322, 323, 351], "constellationtyp": 86, "uncodedbit": [86, 323], "pdschupperphi": [87, 186, 294, 301, 322, 323, 351], "symbolsperslot": [87, 88, 90, 91, 94, 181, 182, 294, 301, 322, 323, 351], "numlay": [87, 88, 90, 91, 94, 95, 100, 102, 181, 182, 186, 207, 209, 294, 301, 322, 323, 336, 351], "scalingfield": [87, 88, 90, 91, 94, 181, 182, 264, 294, 301, 322, 323, 351], "additionaloverhead": [87, 88, 90, 91, 94, 181, 182, 264, 294, 301, 322, 323, 351], "dmrsre": [87, 88, 90, 94, 181, 294, 301, 322, 323, 351], "pdschtabl": [87, 88, 264, 294, 301, 322, 323, 351], "pdschtable1": [87, 88, 94, 264, 280, 294, 322, 323, 351], "scheme": [87, 88, 90, 91, 94, 181, 182, 264, 268, 275, 276, 280, 283, 315, 320, 361], "mc": [87, 88, 94, 181, 182, 264, 280, 281, 282, 320, 352, 358], "cqiindex": 87, "lowerbound": [87, 88, 264], "upperbound": [87, 88, 264], "pdschtable2": [87, 88, 94, 264, 280], "27": [87, 88, 264, 278, 280, 301, 315, 325, 329, 330, 331, 337, 348], "pdschtable3": [87, 88, 94, 264, 280], "pdschtable4": [87, 88, 94, 264], "26": [87, 88, 264, 301, 315, 329, 330, 331, 337, 342, 348, 350], "puschtable1": [87, 88, 94, 264], "puschtable2": [87, 88, 94, 264], "cqi": [87, 88, 94, 264, 275, 276, 361], "cqitable1": [87, 88, 94, 264], "cqitable2": [87, 88, 94, 264], "cqitable3": [87, 88, 94, 264], "cqitable4": [87, 88, 94, 264], "00": [87, 88, 90, 91, 94, 181, 182, 233, 264, 301, 315, 330], "01": [87, 88, 91, 94, 181, 182, 233, 264, 304, 315, 326, 330], "overhead": [87, 88, 90, 91, 94, 181, 182, 264], "lookup": [87, 88, 264], "progress": [87, 88, 90, 181, 182, 192, 194, 358], "tblock": [87, 108, 294, 322, 323, 351], "transfer": [87, 88, 94, 181, 182, 264, 350], "rvid": [87, 88, 90, 100, 102, 181, 186, 207, 209, 294, 301, 322, 323, 336, 351], "increment": [87, 102, 207, 327, 328, 361], "rvid1": [87, 91, 181, 182, 301], "rvid2": [87, 91, 301], "enablelbrm": [87, 88, 90, 91, 100, 102, 181, 182, 186, 207, 209, 294, 301, 322, 323, 336, 351], "concept": [87, 88, 102, 175, 176, 181, 182, 207, 271, 346], "lbrm": [87, 88, 102, 181, 182, 207], "minim": [87, 88, 101, 181, 182, 208, 271, 280, 308], "enablelbrm1": 87, "enablelbrm2": 87, "numtargetbits1": [87, 294, 322, 323, 351], "numtargetbits2": [87, 294, 322, 323, 351], "tblen2": [87, 91, 294, 322, 323, 351], "tblock2": [87, 91, 322, 323], "exist": [87, 88, 196, 197, 198, 199, 236, 264, 327, 328, 329, 330, 331, 332], "tblen1": [87, 91, 182, 294, 322, 323, 351], "tblock1": [87, 91, 182, 294, 301, 322, 323, 351], "pdschdecoderupperphi": [88, 186, 294, 301, 322, 323, 351], "symbolllr": 88, "numbertargetbit": [88, 294, 351], "k_ldpc2": 88, "n_ldpc2": 88, "liftingfactor2": 88, "fillerindic": [88, 102, 207, 336], "fillerindices2": 88, "filler": [88, 102, 207], "were": [88, 301], "crccheckforcb": [88, 301, 322, 323, 351], "crcchecktb": [88, 294, 301], "processes": [89, 180], "regard": [90, 181], "1000": [90, 181, 204, 205, 294, 304, 305, 307, 308, 309, 324, 343, 345, 350], "symbolestim": [90, 181, 323], "pdschrxobj": 90, "pdschdecod": 90, "pdschrxbit": 90, "wherein": [91, 182], "block1": [91, 182], "block2": 91, "pdschtxobj": 91, "pdschtxbit": 91, "213176": [91, 182], "rom": 94, "tbsobj": 94, "mcs_cqiindex": 94, "mcs_cqitabl": 94, "amount": [94, 279, 349, 362], "written": [94, 298, 360], "3gppts38214pdsch": [94, 186], "modulation_ord": 94, "code_r": 94, "alloca": 94, "warn": [94, 205, 206, 228, 231, 238, 253, 255, 256, 280, 320, 325, 329, 335, 338, 339, 342, 343, 345, 346, 348, 349, 362], "numr": 94, "send": [94, 315, 353], "__numrewithinrb": 94, "exceed": [94, 237, 342], "156": 94, "layermapp": [95, 186], "leq": [95, 254, 336], "codeword1": 95, "_1": 95, "codeword2": 95, "_2": 95, "repect": 95, "numsymbolperlay": 95, "__numcodeword": 95, "numlayerpercw": 95, "layerdemapp": [95, 186, 294, 323], "symbo": 95, "__numlayers1": 95, "__numlayers2": 95, "numsymbolsperlay": [95, 271], "k0": [100, 102, 186, 207, 209], "numcodedbit": [100, 102, 186, 207, 209, 336], "nldpc": [100, 102, 186, 207], "damag": [101, 208], "caus": [101, 208, 325, 335], "poorli": [101, 208], "local": [101, 196, 197, 198, 203, 204, 206, 208, 268, 326, 350, 352, 358], "erron": [101, 184, 185, 208], "numldpcout": [102, 209], "numgroup": [102, 209], "numcbingroup": [102, 209], "numbitingroup": [102, 209], "write": [102, 207], "bitselectionldpc": [102, 207], "atleast": [102, 198, 207, 270], "num_ldpc": [102, 207], "next": [102, 207, 228, 358], "obtain": [102, 203, 204, 207, 231, 269, 270, 315, 329, 338, 339, 340, 341, 342, 344, 346], "deselect": [102, 181, 207, 336], "fillerbit": [102, 207], "redundaci": [102, 207], "bitdeselectionldpc": [102, 207], "betadmr": [103, 104, 229, 233, 263, 294, 322, 323, 351], "13544": [103, 104, 229, 233], "resourcegrid": [103, 104, 189, 229, 233, 270, 294, 322, 323, 351], "fig0": [103, 104, 228, 229, 233], "ax0": [103, 104, 228, 229, 233], "cdm": [103, 104, 228, 229, 233, 249], "fig1": [103, 104, 228, 229, 233, 285], "ax1": [103, 104, 228, 229, 233, 285, 324], "displaycdmpattern": [103, 104, 186, 226, 228, 229, 233, 334], "symol": [103, 104, 229, 233], "doubl": [103, 104, 229, 233, 307], "3gppts38211_pdschdmr": [103, 104, 229, 233], "nrofport": [103, 104, 228, 229, 231, 261, 275, 334], "cdmtype": [103, 104, 228, 229, 231, 261, 334], "3gppts38211_csirsrm": [103, 104, 228, 229], "cdm21": [103, 104, 228, 229], "numresourceblock": [103, 104, 189, 229, 232, 233], "enter": [103, 104, 229, 233, 271], "maxport": [103, 104, 229], "what": [103, 104, 229, 236, 301, 339], "hell": [103, 104, 229], "__pdschmappingtyp": [103, 104, 229], "__maxlength": [103, 104, 229], "minld": [103, 104, 229], "maxld": [103, 104, 229], "someth": [103, 104, 229, 326, 356, 357, 359], "went": [103, 104, 229, 356, 357, 359], "wrong": [103, 104, 229, 356, 357, 359], "displaygrid": [103, 104, 226, 228, 229, 235, 237, 285, 287, 289, 291, 294, 324, 348, 349], "tbprocess": 108, "transportblocktxprocess": [108, 186], "rtbprocess": 108, "transportblockrxprocess": [108, 186], "rtblock1": 108, "chk1": 108, "rtblock": 108, "controlinfo": [129, 132, 179, 246, 350], "indexpucch": [129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 179, 215, 216, 217, 218, 219, 220, 222, 246, 247, 350], "initial_cyclicshift": [129, 132, 135, 138, 179, 215, 216, 246, 247], "m_c": [129, 132, 135, 138, 179, 215, 216, 217, 218, 219, 220, 246, 247, 352, 358], "numinterlacedrb": [129, 130, 131, 132, 135, 136, 137, 138, 139, 179, 215, 216, 217, 218, 219, 220, 222, 246, 247, 350], "numberofsymb": [129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 179, 215, 216, 217, 218, 219, 220, 222, 246, 247, 350], "pucch_grouphop": [129, 132, 135, 138, 139, 179, 215, 216, 217, 218, 219, 220, 246, 247, 350], "seqnumb": [129, 132, 179, 246], "start_symbindex": [129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 179, 215, 216, 217, 218, 219, 220, 222, 246, 247], "resourcemapperformat0": [129, 131, 179, 215, 216], "interlaceindex_0": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 350], "interlaceindex_1": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 350], "maxnumprb": [129, 130, 131, 134, 135, 136, 137, 138, 179, 215, 216, 217, 218, 219, 222, 247], "numofinterlac": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 350], "rg_size": [129, 130, 131, 135, 136, 137, 179, 215, 216, 218, 219, 222], "secondhopprb": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 350], "seqlength": [129, 130, 131, 134, 135, 136, 137, 139, 179, 215, 216, 217, 218, 219, 220, 222, 250], "startingprb": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 350], "resourcedemapperformat0": [129, 130, 179, 215], "interlacedtransmiss": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 350], "interlac": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 350], "pucch_resourcecommon": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 350], "intraslotfreqhop": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 350], "hop": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 254, 265, 350], "symbolindex_start": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 350], "resourceblock": [130, 131, 132, 215, 216, 246], "rmop": [130, 131, 136, 137, 215, 216, 217, 218, 219], "rdemobj": [130, 136, 215, 217, 218], "rdemop": [130, 134, 136, 215, 217, 218], "dedic": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 268, 275, 276, 350], "179": [130, 131, 215, 216], "275": [130, 131, 134, 136, 137, 138, 215, 216, 217, 218, 219, 247, 350], "initialis": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247], "bandwidth": [130, 131, 132, 134, 136, 137, 138, 215, 216, 217, 218, 219, 227, 230, 236, 238, 245, 246, 247, 254, 260, 265, 267, 270, 275, 276, 281, 285, 287, 288, 289, 291, 294, 301, 302, 320, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349], "bandwidthpart": [130, 131, 134, 136, 137, 138, 215, 216, 217, 218, 219, 247], "tend": [130, 131, 134, 136, 137, 139, 215, 216, 217, 218, 219, 220], "inputofdmgrid": [130, 136, 215, 218], "consider": [130, 131, 132, 136, 137, 138, 139, 203, 204, 215, 216, 218, 219, 220, 246, 247, 329], "intraslot": [130, 131, 136, 137, 138, 139, 215, 216, 218, 219, 220, 247, 350], "format0": [130, 131, 132, 179, 215, 216, 246, 350], "plu": [130, 131, 132, 136, 137, 138, 139, 206, 215, 216, 218, 219, 220, 246, 247, 280], "bwp": [130, 131, 132, 136, 137, 138, 215, 216, 218, 219, 227, 230, 236, 246, 247, 267, 270, 278, 285, 287, 288, 291, 324, 325, 327, 328, 331, 334, 348, 349], "intraslothop": [130, 131, 136, 137, 215, 216, 218, 219], "213": [130, 131, 132, 134, 136, 137, 138, 139, 186, 215, 216, 217, 218, 219, 220, 236, 244, 245, 246, 247, 255, 256, 278], "bullet": [130, 131, 132, 134, 136, 137, 138, 139, 181, 182], "edit": [130, 131, 132, 134, 136, 137, 138, 139, 181, 182], "format0_seq": [131, 132, 215, 216, 246], "rmobj": [131, 137, 215, 216, 217, 218, 219, 325], "beta_pucch0": [131, 216], "amplitud": [131, 137, 216, 219, 275, 276, 285, 288, 289, 291, 294, 331, 332, 333, 346, 347, 352], "conform": [131, 137, 216, 219], "prior": [131, 132, 137, 138, 216, 219, 246, 247, 268, 350], "inputseq": [131, 136, 137, 139, 216, 218, 219, 220], "658": [132, 215, 216, 246], "format0_seqgenobj": [132, 215, 216, 246], "287": [132, 215, 216, 246], "408": [132, 215, 216, 246, 254], "sequencegener": [132, 138, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 285, 287, 288, 289, 291, 294, 324, 348, 349, 350], "But": [132, 134, 138, 217, 227, 246, 247, 270, 302, 327, 328, 356, 357, 359], "And": [132, 138, 139, 145, 176, 220, 246, 247], "interpret": [132, 246, 315], "beteen": [132, 138, 246, 247], "withi": [132, 246], "numofsymbol": [134, 136, 137, 138, 139, 217, 218, 219, 220, 247, 350], "timedomainocc": [134, 135, 139, 179, 217, 218, 219, 220, 222], "cover": [134, 139, 217, 218, 219, 220, 260, 264, 275, 276, 331, 335, 339, 342, 343, 346, 348, 358, 360], "despreadingobj": [134, 217], "despreadingformat1": [134, 135, 179, 217, 222], "despreadedseq": [134, 217], "despread": [134, 217], "numofhop": [134, 217], "initilis": [134, 217], "spreadingfactor": [134, 135, 139, 179, 220], "statu": [134, 139, 350], "nhop": [135, 138, 179, 217, 218, 219, 220, 247], "spreadingformat1": [135, 139, 179, 217, 218, 219, 220, 222], "resourcemapperformat1": [135, 137, 179, 217, 218, 219, 222], "resourcedemapperformat1": [135, 136, 179, 217, 218, 222], "he": [136, 218], "irb": [136, 137, 139, 218, 219, 220], "format1": [136, 137, 179, 218, 219], "spreadedseq": [137, 139, 217, 218, 219, 220], "beta_pucch1": [137, 219], "157": [138, 247], "initialcycshift": [138, 217, 218, 219, 220, 247, 350], "format1_sequ": [138, 139, 217, 218, 219, 220, 247], "astyp": [138, 217, 218, 219, 220, 247, 289, 294, 315, 319, 323, 326, 335, 336], "format1_seqgenobj": [138, 217, 218, 219, 220, 247], "format1_seq": [138, 217, 218, 219, 220, 247], "symb": [138, 182, 217, 218, 219, 220, 235, 247, 254, 315, 319, 320, 325, 326, 333, 335, 336], "hoppingrefvar": [138, 217, 218, 219, 220, 247], "pucch_format1_seqgener": [138, 247], "inputsymb": [138, 247], "bwtween": [138, 247], "spreadingobj": [139, 217, 218, 219, 220], "occ": [139, 220], "othogon": [139, 220], "happen": [139, 220], "thr": [144, 147], "3gppts38212": [144, 145, 147, 148], "explain": [144, 147, 243], "numinfobit": [144, 147, 148, 175, 176], "uciblock": [144, 147, 176], "chsblobj": [144, 147], "channelcodingsmallblocklen": [144, 147], "numofseg": [144, 147, 148, 175], "decis": [144, 147, 280, 283, 320], "chdesblobj": [144, 147], "channeldecodingsmallblocklen": [144, 147], "physial": [145, 181, 182], "pc": 145, "wm": 145, "192": [145, 285, 287, 288, 289, 291, 294], "200": [148, 267, 301, 315, 320, 322, 323, 325, 327, 328, 329, 331, 332, 334, 348, 361], "4224": [148, 149], "cbconcaten": 148, "1555": 148, "2112": 148, "codewordsegreg": 148, "3gppts38212_polar": 149, "segmentationobj": 149, "codeseg": 149, "aggrobj": 149, "codeblockaggregationpucch": 149, "aggrop": 149, "codingof": [151, 161], "47": [163, 165, 167, 168, 278, 315, 329, 330, 331, 337], "35967": [163, 165, 167, 168], "pucchdescr": [163, 167], "pucchscr": [165, 168], "3gppts38212_pucch": [175, 176], "3gppts38211_pucch": [175, 176], "3gppts38211_pucch_format2": [175, 176], "3gppts38211_pucch_formats3and4": [175, 176], "sectio": 175, "detach": [175, 181], "100000": [175, 198, 319], "45976": [175, 176], "545": [175, 176, 331], "1654": [175, 176], "1792": 175, "838": 175, "bumber": 175, "equalized_symbol": 175, "pucchupperphydecoder_obj": 175, "pucchupperphydecod": 175, "10779": [175, 176], "377": [175, 176], "51": [175, 245, 278, 301, 329, 330, 331, 337], "better": [176, 196, 197, 198, 199, 202, 279, 280, 305, 327, 328, 331, 332, 358], "unerstand": 176, "pucchupperphy_obj": 176, "pucchupperphi": 176, "puschupperphi": [180, 182], "puschdecoderupperphi": [180, 181], "3gppts38211_pusch": [181, 182], "descript": [181, 182], "3gppts38212_pusch": [181, 182], "puschrx": 181, "puschdatarx": 181, "tha": 181, "estsymb": 181, "demappertyp": 181, "chri": [181, 182], "jhonson": [181, 182], "3gppts38214_pusch": 182, "puschtx": 182, "puschdata": 182, "3gppts38212pusch": 182, "pdcchdecod": [183, 185, 320, 325], "pbchdecod": [183, 184, 285, 287, 288, 289, 291, 294, 324, 348, 349], "psbchdecod": [183, 188], "pscchupperphi": [183, 189], "pscchlowerphi": [183, 189], "pscchupperphydecod": [183, 189], "pscchlowerphydecod": [183, 189], "3gppts38211pbch": 184, "432": [184, 235, 237, 269, 289, 291, 349], "pbchil": 184, "pbch_iil": 184, "sbbil": 184, "scr2": 184, "payloadmib": [184, 348], "mibsequ": [184, 291, 294], "requenc": 184, "ilbit": 184, "payloadcrc": 184, "iilbit": 184, "sbil_bit": 184, "scr2bit": [184, 291, 294, 348], "chil_bit": 184, "polardectyp": [184, 291, 294, 348, 349], "symboldemappertyp": [184, 291, 294, 348, 349], "mibflag": 184, "crccheck": [184, 349], "pbche": 184, "channeldeinterleaverbit": 184, "decrcbit": 184, "descrambledbit": 184, "descrambled2llr": 184, "inputdeinteleavedbit": 184, "mibrx": [184, 291, 294, 348], "pbchdeinterleavedbit": [184, 291, 294], "polardecodedbit": 184, "ratedematedbit": 184, "subblockdeinterleavedbit": 184, "3gppts38211pdcch": 185, "dcipayload": 185, "dcibil": 185, "dcicrc": 185, "dciibi": 185, "dcirm": 185, "dciscr": [185, 320], "demappingmethod": [185, 320, 325], "equalizedsymbol": 185, "decodedbit": 185, "dematchedbit": 185, "descrambledllr": 185, "ibdilbit": 185, "sbdbit": 185, "unmaskedbit": 185, "upperphi": [186, 189], "lowerphi": [186, 189], "rf": [186, 189, 196, 286, 290, 292, 293, 295, 361], "3gppts38213pdsch": 186, "entertain": [186, 189], "arrang": [186, 358], "develop": [186, 297, 358], "modular": [186, 361], "plug": [186, 358, 361], "plai": [186, 196, 198, 206, 271, 275, 276, 280, 281, 283, 358, 361], "research": [186, 339, 358, 361], "independ": [186, 203, 205, 236, 238, 278], "3gppts38211psbch": 188, "synchronis": 188, "scan": [188, 285], "camp": 188, "1386": 188, "1782": [188, 301], "verbal": 188, "explan": [188, 331], "subblockinterleav": 188, "symboldemapp": [188, 291, 294, 348, 349], "inputsymbol": 188, "polardecod": [188, 291, 294, 320, 348, 349], "possess": 188, "scl8": 188, "scl32": 188, "subblockdeinterleav": 188, "inputdeinterleav": 188, "3gppts38211pscch": 189, "3gppts38212pscch": 189, "comst": 189, "3057017": 189, "ofbit": 189, "scibit": 189, "scirm": 189, "sci": 189, "43": [189, 294, 315, 327, 328, 329, 330, 331, 337, 348], "symbnumb": [189, 232, 249], "v2x": [189, 343, 361], "complex32": [189, 232, 233], "payloadindic": 189, "descrllr": 189, "gpp": 189, "138": [189, 236, 278], "rscibit": 189, "pscchllr": 189, "5th": 190, "dft_doa": [192, 195, 206], "juli": [192, 194, 195], "sorri": [192, 194], "inconveni": [192, 194], "invari": [193, 203], "ntx": [193, 195, 302, 331, 332, 348], "nty": [193, 195, 302, 331, 332], "dtx": [193, 195, 302, 332], "dty": [193, 195, 302, 332], "taken": [193, 195, 206, 233, 235, 256, 298, 301, 302, 332], "propoerti": [193, 302, 332], "lpath": [193, 195, 202, 205, 302, 327, 328, 329, 330, 332], "strongest": [193, 195, 202, 203, 204, 205, 324], "espritdoa": [193, 302, 332], "esprit_doa": [193, 195, 206, 332], "xoa_est": [193, 195], "nr_x": [193, 195, 302, 348], "nr_y": [193, 195, 302, 348], "nobserv": [193, 195, 302], "exploit": [193, 195, 203, 204, 268, 281, 346], "y": [193, 195, 196, 197, 198, 199, 275, 285, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 315, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 348, 349, 350, 351, 362], "theta_": [193, 195, 345], "phi_": [193, 195, 345], "trace": [193, 195, 299], "d_spcgx_rx": [193, 195], "d_spcgy_rx": [193, 195], "numpath": [193, 195, 202, 205, 338, 340, 341, 344], "thei": [193, 195, 236, 255, 256, 278, 333, 356, 357, 358, 359], "ltipl": [194, 204], "gnal": [194, 204], "lassif": [194, 204], "music_doa": [194, 195, 206], "doa": [195, 200, 206, 302, 331, 332], "planner": 195, "offer": [195, 197, 203, 204, 280, 283, 298, 329], "oof": 195, "increas": [195, 196, 198, 202, 206, 227, 281, 285, 287, 288, 289, 291, 294, 306, 307, 308, 309, 319, 342], "resolut": [195, 196, 202, 203, 204, 284, 331, 332], "music": [195, 202, 205, 206, 327, 328], "medium": [195, 294, 309, 310, 318, 329, 335], "esprit": [195, 205, 206, 302, 327, 328, 329, 330, 331, 332], "yet": [195, 354, 355], "doaestim": [195, 206, 302], "aoa": [195, 196, 197, 200, 206, 302, 347, 352, 358, 361], "nomenclatur": [196, 198], "aod": [196, 200, 206, 347, 352, 358, 361], "rsrp": [196, 200, 206, 349, 352, 358, 361], "newton": [196, 200, 206], "raphson": [196, 200, 206], "ul": [196, 198, 206, 236, 243, 254, 318, 352, 358, 361], "rtoa": [196, 198, 206], "reli": [196, 198, 268, 280, 281, 329], "gd": [196, 198], "converg": [196, 198, 206], "global": [196, 198, 206], "optima": [196, 198, 206], "inspir": [196, 198, 199], "3gppdoa": 196, "refloc": [196, 324], "nref": [196, 197, 198, 199], "xoa": [196, 197, 206, 302, 331, 332], "posestim": [196, 197, 206, 302, 331, 332], "leastsquaredoa": [196, 206, 331, 332], "framework": [196, 197, 198, 199, 200, 296, 318], "equiheight": [196, 197, 198, 199], "phenomenon": [196, 197, 198, 199, 346], "co": [196, 197, 198, 199, 302, 315, 324, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 346, 349], "ordin": [196, 197, 198, 199], "uncertainti": [196, 197, 198, 199, 206, 280], "numepoch": [196, 198, 206], "toler": [196, 198, 206], "stepsiz": [196, 198, 206], "gradientdescentdoa": [196, 206], "numiterationperepoch": [196, 198, 206], "1e": [196, 198, 206], "06": [196, 198, 206, 294, 301, 315, 319, 351, 362], "phi_i": 196, "theta_i": 196, "epoch": [196, 198, 206, 301, 315], "000001": 196, "solut": [196, 198, 206, 353, 358], "refposit": [196, 197, 198, 199, 206], "odd": [196, 198, 206, 269, 271, 275, 276], "get": [196, 198, 206, 267, 279, 291, 294, 308, 322, 323, 334, 345, 348, 356, 357, 358, 359], "stuck": [196, 198, 206], "role": [196, 198, 206, 271, 275, 276, 280, 281, 283], "sucept": [196, 198, 206], "minima": [196, 198, 206], "nrefnod": [196, 197, 198, 199], "trilater": [196, 197, 198, 329], "tdoa": [196, 200, 206, 302, 330, 352, 358, 361], "wang": [196, 304, 305, 306, 307, 308, 309], "shi": 196, "yu": 196, "huang": 196, "chen": 196, "2019": [196, 301], "16th": 196, "workshop": [196, 301], "navig": [196, 329, 331, 332], "wpnc": 196, "bremen": 196, "germani": 196, "doi": [196, 199, 284, 301, 315], "1109": [196, 199, 284, 301, 315], "wpnc47567": 196, "8970182": 196, "leverag": [197, 268, 271, 331, 332], "strength": [197, 280, 339], "approach": [197, 279], "accur": [197, 198, 203, 204, 268, 269, 270, 271, 275, 276, 285, 302, 320, 327, 328, 329, 330, 331, 332, 339], "fuse": 197, "multilater": [197, 329, 331, 332], "mitig": [197, 255, 256, 268, 269, 270, 271, 283, 329, 331], "resolv": 197, "ambigu": 197, "constraint": [197, 281, 283, 315, 333], "refin": [197, 268, 361], "strong": [197, 203, 204], "hybridtoaaoa": [197, 206], "txposit": [197, 198, 199, 206, 302, 327, 328, 329, 330, 331, 332], "numtranmitt": [197, 206], "doaest": [197, 206, 302, 332], "toae": [197, 198, 199, 206, 302, 327, 328, 329, 330, 331, 332], "refpositionaoa": [197, 206, 302], "hybridtdoaaoa": [197, 206], "tdoaest": [197, 206], "handbooktdoa": 198, "otdoa": 198, "rstd": 198, "leastsquar": [198, 206, 328, 330], "newtonraphson": [198, 206], "gradientdesc": [198, 206], "suffer": [198, 202], "calibr": 198, "major": [198, 302, 305, 320, 322, 323, 325, 327, 328, 329, 330, 331, 332, 334, 346, 349, 351], "challeng": [198, 281, 329, 331, 358], "degrad": [198, 202, 204, 269, 270, 302, 325, 335], "significantli": [198, 302, 327], "leastsquaretdoa": [198, 206, 327, 329], "rxpositionestim": [198, 327, 328, 329, 330, 331, 332], "tau_": [198, 206], "tau_i": [198, 206], "tau_r": [198, 206], "neq": [198, 206], "gradientdescenttdoa": [198, 206], "numrepetit": [198, 302, 329, 330, 332], "0000000001": 198, "newtonraphsontdoa": [198, 206], "overcom": 198, "rmb": 198, "reza": 198, "zekavat": 198, "oxford": 198, "innov": 198, "wilei": 198, "press": 198, "2011": 198, "34": [198, 289, 294, 301, 315, 320, 329, 330, 331, 337, 348, 349], "hppinf": 199, "leastsquaretoa": [199, 206, 327, 329], "locestim": 199, "poserror": 199, "speed_of_light": 199, "light": [199, 329], "em": 199, "singh": [199, 284], "masal": [199, 284], "klutto": [199, 284], "milleth": [199, 284], "ramamurthi": [199, 284], "massiv": [199, 284, 334, 346, 352, 358, 361], "beyond": [199, 284, 318, 347, 352, 358], "32nd": [199, 284], "annual": [199, 284, 356, 359, 360], "person": [199, 284], "pimrc": [199, 284], "helsinki": [199, 284], "finland": [199, 284], "1234": [199, 284], "1240": [199, 284], "pimrc50174": [199, 284], "9569480": [199, 284], "rtt": [200, 206, 231, 330, 361], "gradient": [200, 206, 302, 315, 327, 331, 332], "descent": [200, 206, 302, 315, 327, 331, 332], "mrtt": [200, 206], "profil": [202, 205, 338, 339, 340, 341, 344, 346], "pdp": [202, 206], "peak": [202, 204, 273, 275, 352, 358], "experi": [202, 227, 283, 285, 301, 304, 331, 346], "unavail": [202, 278, 295], "situat": [202, 279], "numobserv": [202, 203, 204, 205], "osfactor": 202, "dfttoa": 202, "dft_toa": [202, 205, 206], "promin": [202, 204, 205, 273, 285, 289, 291, 294, 348], "displaypdp": 202, "document": [202, 203, 204, 205, 206, 244, 245, 253, 254, 256, 269, 273, 274, 276], "oversamplingfactor": [202, 205, 327, 328], "domin": [202, 204], "heigth": [202, 204, 205], "spike": [202, 204, 205, 273, 275], "spectrum": [202, 204, 205, 238, 262, 266, 281, 285, 289, 292, 293, 295, 333, 347, 352], "find_peak": [202, 204, 205, 273], "scipi": [202, 204, 205, 269, 273, 276, 302, 327, 328, 329, 330, 331, 332, 334, 356, 359, 360], "xmin": [202, 205, 302, 327, 329, 330, 332], "xmax": [202, 205, 302, 327, 329, 330, 332], "principl": [203, 204, 329], "covari": [203, 204], "context": [203, 269, 270, 289, 322, 323, 334, 346], "cyclostationar": [203, 268], "mathemat": [203, 315, 322, 323, 334], "eigenvalu": [203, 204], "decomposit": [203, 204, 322, 323, 334], "subspac": [203, 204], "interest": [203, 260, 280, 305, 358], "eigenvector": [203, 204], "onc": [203, 204, 206, 279, 329, 356, 357, 359, 360], "analyz": [203, 204, 268, 310, 315, 318, 320, 322, 323, 326, 327, 328, 331, 332, 334, 342, 344, 350, 358, 361], "adjac": 203, "trigonometr": 203, "relationship": 203, "advantag": [203, 204, 278], "presenc": [203, 204, 315, 331], "knowledg": [203, 204, 268], "narrowband": [203, 204], "exhibit": [203, 204, 346], "particularli": [203, 204, 280, 322, 323, 334, 346], "critic": [203, 204, 268, 269, 281, 283, 285, 362], "radar": [203, 204], "esprit_toa": [203, 205, 206], "numberofpath": [203, 204, 205, 302, 327, 328, 329, 330], "report": [203, 221, 234, 275, 276, 361], "experienc": [203, 204, 359], "ob": [203, 205], "observ": [203, 205, 315, 326, 327, 328, 335, 336, 338, 340, 341, 344, 350], "classif": 204, "popular": 204, "eigenstructur": 204, "decompos": [204, 322, 323, 334], "separ": [204, 260, 268], "suppress": 204, "leav": 204, "pseudospectrum": 204, "abil": [204, 331, 332, 333], "statist": [204, 268, 315, 347, 352, 358], "stationar": 204, "min_delai": [204, 205], "max_delai": [204, 205], "music_toa": [204, 205, 206], "displaymusicspectrum": 204, "displayeigenvalu": 204, "eigen": [204, 280, 281, 322, 323, 334, 351], "delaygrid": 204, "flaat": 204, "musicspectrum": 204, "peakvalu": 204, "numspik": 204, "manag": [204, 243, 254, 270, 283, 285, 296, 331, 332, 352, 358, 361], "actual": [204, 327, 328, 331, 345, 349], "multipath": [204, 268, 329, 331, 339, 346], "immun": 204, "miss": 204, "weak": [204, 338, 340, 341, 344], "idxlow": [204, 205], "idxhigh": [204, 205], "basi": [204, 206, 315], "till": [204, 278, 361], "toaestim": [205, 206, 302, 327, 328, 329, 330, 331, 332], "sort": [205, 302, 327, 328, 329, 330], "toaest": [205, 206], "noth": [205, 355], "devic": [206, 238, 244, 245, 285, 289, 295, 299, 301, 318, 343, 352, 358, 361], "positioningmethod": 206, "optimizationmethod": [206, 328, 330], "ecid": 206, "Not": [206, 233, 301, 327, 328, 331, 339, 342, 356, 359], "00000001": [206, 301], "txpositiontoa": 206, "txpositionaoa": 206, "due": [206, 268, 280, 301, 329, 333, 338, 340, 341, 344, 346, 362], "gdop": [206, 302], "numrefnod": 206, "fig_ax_tupl": 206, "visual": [206, 286, 295, 318, 352, 358], "circlelw": 206, "75": [206, 230, 281, 285, 288, 289, 291, 294, 301, 302, 308, 309, 322, 323, 324, 327, 328, 329, 330, 331, 332, 334, 336, 337, 342, 345, 348], "circlel": 206, "estlocs": 206, "estlocmark": 206, "estloccolor": 206, "reflocs": 206, "reflocmark": 206, "refloccolor": 206, "displaylegend": 206, "style": [206, 285, 287, 288, 294, 301, 302, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 339, 342, 345, 346, 349, 351, 362], "sign": 206, "append": [206, 236, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "visibl": [206, 326], "wheather": [206, 362], "superimpos": 206, "serv": [214, 279, 282], "3gppts38211_format0": [215, 216, 246], "3gppts38212_format0": [215, 216, 246], "3gppts38213_format0": [215, 216, 246], "3gppts38211_dsformat1": 217, "3gppts38213_dsformat1": 217, "3gppts38211_dmformat1": 218, "3gppts38213_dmformat1": 218, "3gppts38211_rmformat1": 219, "3gppts38213_rmformat1": 219, "3gppts38211_sformat1": 220, "3gppts38213_sformat1": 220, "fill": [226, 230, 232, 275, 279, 302, 327, 328, 329, 330, 331, 332], "dmrsindic": [226, 237, 269, 291, 294, 348], "pbchindic": [226, 237, 269, 291, 294, 348], "pssindic": [226, 237], "sssindic": [226, 237], "displaycoresetreg_cce_map": [226, 227], "3gppts38211coreset": 227, "cce": [227, 230, 236, 270, 278, 304, 305, 306, 307, 308, 309, 320, 325], "quantifi": [227, 325], "assign": [227, 236, 278, 279, 320], "coverag": [227, 234, 244, 245, 254, 269, 278, 280, 283, 305, 309, 310, 318, 339, 352, 358], "accommod": 227, "frequencydomainresourc": [227, 230, 270, 320, 325], "contigu": [227, 230, 236, 270], "activ": [227, 236, 279, 301, 315, 357, 358], "270": [227, 278, 320, 325, 332], "reg": [227, 230, 270, 320, 325], "mappingtyp": 227, "bundl": [227, 230, 270, 320, 325], "bundles": 227, "permit": 227, "interleavers": [227, 270, 320, 325], "bandwith": [227, 309], "paramt": 227, "shiftlndex": 227, "nshift": [227, 230, 270, 320, 325], "274": [227, 270], "organis": 227, "72": [227, 244, 325, 329, 330, 331, 333, 337], "bwpstartprbindex": 227, "numrbincoreset": 227, "manner": [227, 279], "0th": [227, 230, 270], "sum": [227, 230, 270, 278, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 325, 327, 328, 329, 330, 331, 332, 333, 334, 342, 343, 345, 349], "cce_reg_mappingtyp": [227, 270, 320, 325], "reg_bundles": [227, 270, 320, 325], "shiftindex": [227, 270, 320, 325], "word": [227, 270, 315], "numberofrb": [227, 270], "numprbsincoreset": 227, "numregincoreset": 227, "displaycoreset": 227, "frequecydomainresourc": 227, "cce_reg_map": [227, 320, 325], "instansti": [227, 236], "coresetobj": [227, 320, 325], "coresetprbindic": [227, 320, 325], "numccesincoreset": [227, 325], "startprb": [228, 231, 261, 334], "nrofprb": [228, 231, 261, 334], "configurations___": [228, 334], "rowindex": [228, 231, 261, 334], "parameters__________________________________________": [228, 334], "13254": 228, "numslotsperfram": [228, 231, 278, 302, 304, 305, 306, 308, 309, 329, 330, 332], "_____________________________________________________________": [228, 334], "resources____________________": [228, 334], "betacsir": [228, 261, 334], "firstofdmsymbolintimedomain": [228, 231, 261, 334], "firstofdmsymbolintimedomain2": [228, 231, 261, 334], "frequencydomainalloc": [228, 231, 261, 334], "rmcsir": [228, 334], "csirsgrid": [228, 334], "3gppts38211_ssbgrid": [228, 235, 237, 238], "nocdm": 228, "cdm2": [228, 334], "cdm4": 228, "fd2": 228, "td2": 228, "cdm8": 228, "td4": 228, "4095": [228, 230, 231, 248, 251, 270], "k_i": 228, "resourcegridsizeinrb": [228, 265, 302, 329, 330, 332, 334], "unit": [228, 238, 266, 281], "resou": 228, "__rowindex": [228, 231], "numscmap": [228, 231], "__nrofport": [228, 231], "__densiti": [228, 231], "possiblecdmtyp": [228, 231], "possibledens": [228, 231], "interg": [228, 231, 232], "batchindex": 228, "3gppts38211pdcchrm": 230, "monitoringsymbolswithinslot": [230, 270, 320, 325], "3gppts38211_pdcchrm": 230, "120": [230, 236, 245, 250, 267, 278, 302, 309, 324, 327, 329, 330, 332, 334, 340, 342], "region": [230, 236, 278, 280, 326], "pdcchpayload": 230, "numpdcchbit": 230, "interleavertyp": 230, "chosencceindic": [230, 320], "al": [230, 236, 278, 304, 306, 307, 308, 309, 310, 318, 320, 325, 358], "3gppts38211_prsrm": 231, "dl_prs_numsymbol": [231, 327, 328, 331], "dl_prs_combsizen": [231, 327, 328, 331], "comb": [231, 254, 265, 327, 328, 331], "dl_prs_resourcesymboloffset": [231, 327, 328, 331], "dl_prs_reoffset": [231, 327, 328, 331], "dl_prs_sequenceid": [231, 327, 328, 331], "1031": [231, 328, 331], "betapr": [231, 327, 328, 331], "prsmapper": 231, "prsgrid": [231, 327, 328, 331], "combsiz": [231, 327, 328], "reoffset": 231, "startsymbol": [231, 263, 264, 294, 301, 322, 323, 351], "sequenceid": [231, 254, 265, 302, 329, 330, 332], "\ud835\udc3e": 231, "combsizen": 231, "andreoffset": 231, "compens": [231, 268, 269, 270, 271], "resourcesymboloffset": 231, "3gppts38211pscchrm": 232, "nrb": [232, 267, 285, 287, 288, 289, 291, 294, 324, 348, 349], "nsymbperslot": 232, "lptr": 233, "kptr": 233, "offsetindex": 233, "ts38": [233, 301], "pt": [233, 302, 324, 327, 328, 329, 330, 331, 332, 334, 348, 349], "k_": [233, 254, 265, 327, 328, 331, 345, 348], "offset00": 233, "offset01": 233, "offset10": 233, "offset11": 233, "tale": 233, "latenc": [234, 280], "classifi": 234, "short": [234, 346], "span": [234, 235, 237], "acknowledg": [234, 350], "puchh": 234, "unlik": 234, "energi": [234, 281, 309, 315, 346], "coher": [234, 249], "240": [235, 237, 238, 249, 269, 272, 274, 285, 287, 289, 291, 294, 301, 324, 348, 349], "127": [235, 237, 252, 253, 255, 256, 329], "144": [235, 237, 245, 249, 269, 285, 287, 289, 291, 294, 324, 348, 349], "numssb": [235, 237, 266, 269], "n_id1": [235, 237, 285, 287, 289, 291, 294, 348, 349], "336": [235, 237, 256, 285, 287, 289, 291, 294, 348], "n_id2": [235, 237, 273, 285, 287, 289, 291, 294, 348, 349], "n_id": [235, 237, 249, 285, 287, 289, 291, 294, 348, 349], "pssobject": [235, 237, 285, 287, 289, 291, 294, 324, 348, 349], "psssequenc": [235, 237, 252, 285, 287, 289, 291, 294, 324, 348, 349], "sssobject": [235, 237, 285, 287, 289, 291, 294, 324, 348, 349], "ssssequenc": [235, 237, 255, 256, 285, 287, 289, 291, 294, 324, 348, 349], "dmrslen": [235, 237, 249, 285, 287, 289, 291, 294, 324, 348, 349], "dmrsobject": [235, 237, 249, 285, 287, 289, 291, 294, 324, 348, 349], "dmrssequenc": [235, 237, 249, 285, 287, 289, 291, 294, 324, 348, 349], "pbchsymbol": [235, 237, 269, 285, 287, 289, 291, 294, 324, 348, 349], "ssbobject": [235, 237, 285, 287, 289, 291, 294, 324, 348, 349], "nid1": [235, 255, 256, 274, 324], "nid2": [235, 252, 253, 255, 256, 273, 274, 285, 288, 291, 294, 324, 348], "335": [235, 255, 256, 274], "isnorm": [235, 237], "un": [235, 237, 260, 261, 262, 263, 264, 265, 266, 267, 302, 329, 330, 332], "spss": [235, 253], "ssss": [235, 256], "33": [235, 278, 294, 301, 305, 309, 315, 327, 328, 329, 330, 331, 336, 337, 348], "99": [235, 301, 322, 326, 329, 330, 331, 335, 336], "shouldn": [235, 237], "pbchsymb": [235, 237], "dmrsseq": [235, 237, 285, 287, 289, 291, 294, 348, 349], "132": 235, "sl_ssb": 235, "254": 235, "heat": [235, 237, 285, 287, 289, 291, 294], "rel": [235, 237, 279, 301, 331, 332, 343], "3gppts38213_searchspaceset": 236, "blind": [236, 268, 310, 318, 352, 358], "css": [236, 278, 304, 305, 306, 307, 308, 309, 325], "uss": [236, 278, 304, 305, 306, 307, 308, 309, 325], "would": [236, 278, 295], "page": [236, 348, 353, 356, 357, 358, 359, 360], "ra": 236, "tpc": 236, "command": [236, 267, 356, 357, 359, 360], "searchspacetyp": [236, 278, 304, 305, 306, 307, 308, 309, 325], "numcandid": [236, 304, 305, 306, 307, 308, 309, 325], "coresetdur": [236, 270, 325], "monitoringperiod": 236, "monitoringoffset": 236, "searchspacesetdur": 236, "attempt": [236, 285], "serach": 236, "occas": 236, "period": [236, 261, 265, 269, 270, 275, 276, 285, 302, 329, 330, 332], "searchspac": 236, "candiat": [236, 278, 308], "correspondingli": [236, 278], "monitoringslotperiodicityandoffset": 236, "160": [236, 265], "320": [236, 265], "640": [236, 265], "1280": [236, 265, 331], "2560": [236, 265], "monitoringperiodicti": 236, "aggregationlevel": 236, "restric": 236, "coresets": [236, 308, 309, 325], "coresetid": [236, 278, 304, 305, 306, 307, 308, 309, 325], "pdcchmonitoringslotindic": 236, "pdcchmonitoringsymbolswithinslot": 236, "sy": [236, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 362], "numoffram": 236, "numofslotsperframepernumerologi": 236, "slotnum": 236, "sstype": [236, 325], "corset": 236, "54": [236, 270, 278, 294, 301, 304, 305, 306, 307, 320, 323, 325, 329, 330, 331, 337, 340, 350], "hash": [236, 278], "periodicti": 236, "22051": 236, "sssobj": 236, "candidatecc": 236, "36": [236, 244, 245, 254, 265, 289, 294, 301, 304, 305, 315, 323, 325, 329, 330, 331, 337, 345, 348], "37": [236, 289, 294, 315, 329, 330, 331, 332, 337, 348], "48": [236, 249, 278, 289, 291, 294, 301, 305, 315, 323, 327, 329, 330, 331, 334, 337, 348], "49": [236, 278, 301, 315, 329, 330, 331, 337], "zoom": [236, 326, 342], "pssseq": 237, "sssseq": 237, "maor": 237, "ssbtype": [238, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "casea": [238, 262, 266, 285, 287, 289, 291, 294, 324, 349], "3600000000": [238, 267, 348], "ispairedband": [238, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "withsharedspectrumchannelaccess": [238, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "caseb": [238, 262, 266], "casec": [238, 262, 266], "casef": 238, "caseg": 238, "kssb": [238, 289, 294, 348, 349], "offsettopointa": [238, 266, 285, 287, 289, 291, 294, 348, 349], "jointli": [238, 268], "offsetinsubcarri": [238, 262, 266, 285, 287, 291, 294, 324, 348, 349], "offsetinrb": [238, 262, 266, 285, 287, 291, 294, 324, 348, 349], "ssbpositioninburst": [238, 262, 266, 285, 287, 289, 291, 294, 324, 348, 349], "60khz": 238, "equival": 238, "rememb": 238, "overlap": [238, 278, 306, 333], "regardless": [238, 279], "nhf": [238, 249, 272, 289, 294, 348, 349], "5m": [238, 327, 328, 331], "boundari": [238, 252, 253, 285, 342], "272": [238, 279, 302, 315, 329, 330], "273": 238, "ones": [238, 266, 285, 287, 289, 291, 294, 320, 324, 331, 333, 345, 348, 349], "bitmap": 238, "copi": [238, 291, 294, 320, 348], "4x240": 238, "x4x240": 238, "3gppts38211_ssbrm": 238, "table1": [243, 280], "table2": 243, "preambl": 243, "3gppts38211lowpapr": [244, 245], "3gppts38213lowpapr": [244, 245], "constrain": [244, 245, 309, 324], "altern": [244, 245, 279], "gold": [244, 245, 250, 255, 256, 325, 326, 327, 328, 334, 335, 336, 337, 342], "excel": [244, 245, 273], "lengthofsequ": [244, 245, 254, 265], "lowpapr": [244, 245], "seq": [244, 245], "96": [244, 301, 329, 330, 331, 336], "84": [244, 329, 330, 331, 334, 337], "131": 244, "cyclicshift": 244, "groupnumb": [244, 245], "basesequencenumb": 244, "dummi": [244, 245], "like": [244, 245, 268, 326, 339], "n_c": 244, "n_u": [244, 245], "mzc": 244, "chose": [244, 245, 254, 278, 325], "accrodingli": [244, 245, 254], "u_or_cinit": 245, "122": [245, 324, 329, 348], "151": 245, "groupnumber_or_cinit": 245, "cinit": 245, "c_": [245, 248, 249, 250, 251], "3gppts38211_format1": 247, "3gppts38212_format1": 247, "3gppts38213_format1": 247, "ofdmsymbolnumb": [248, 251, 334], "symbolnumb": [248, 249, 251], "198": [248, 331], "csirslength": 248, "csirsobject": 248, "csirssequ": 248, "1075": [248, 251], "187": [248, 251], "3gppts38211_dmr": 249, "lambda": [249, 315], "lengthdmr": 249, "2ghz": 249, "mmwave": [249, 346], "n_cell_id_sl": 249, "scramblingid0": 249, "scramblingid1": 249, "lambdabar": 249, "scaler": [249, 250, 252, 253, 255, 256], "nscidbar": 249, "ofr": 250, "3gppts38211_pn": 250, "reproduc": [250, 298, 301, 315], "pnobject": 250, "1x120": 250, "21359": 250, "2780": 250, "161": 250, "3x161": 250, "dlprssequenceid": 251, "3gppts38211_pr": 251, "prslength": 251, "prsobject": [251, 327, 328, 331], "prssequenc": 251, "aim": [252, 253, 255, 256, 269, 270, 271, 274, 280, 281], "3gppts38211_pss": 252, "1x127": [252, 253, 255, 256], "4x127": [252, 253, 255, 256], "id2": [252, 253, 255, 256, 291, 294, 348], "3gppts38211_s_pss": 253, "spsssequenc": 253, "zadoff": 254, "chu": 254, "mind": [254, 353], "multiport": 254, "3gppts38211_sr": 254, "nrofsrs_port": [254, 265, 302, 329, 330, 332], "transmissioncomb": [254, 265, 302, 329, 330, 332], "nrofsymbol": [254, 265, 302, 329, 330, 332], "startposit": [254, 265, 302, 329, 330, 332], "nrofcyclicshift": [254, 265, 302, 329, 330, 332], "grouporsequencehop": [254, 265, 302, 329, 330, 332], "sequencehop": [254, 265], "974": 254, "slotindex": [254, 265, 327, 328, 331], "numid": 254, "grouphop": [254, 265], "tc": [254, 265], "nrofcyclicshiftmax": 254, "numsequenceid": [254, 276], "symbolindic": [254, 265, 324, 349], "behaviour": [254, 329, 338, 339, 343, 346], "symbolindex": 254, "m_": 254, "p_": [254, 327, 328, 331], "repetitionfactor": [254, 265, 302, 329, 330, 332], "confiur": 254, "ind": [254, 265], "ex": [254, 265], "ic": [254, 265], "centr": [255, 256], "3gppts38211_sss": 255, "204": [255, 256], "98": [255, 256, 294, 301, 329, 330, 331, 344, 351], "2x127": [255, 256], "101": [255, 256, 329], "3x127": [255, 256], "len": [255, 326, 335, 336, 337, 350], "3gppts38211_s_sss": 256, "fourth": 256, "fifth": 256, "sssssequenc": 256, "rrc": [260, 265], "influenc": [260, 281], "overwhelm": 260, "compli": 260, "acquir": [261, 265], "tdd": 261, "reciproc": [261, 265, 299], "slotoffset": 261, "numslot": [261, 302, 327, 328, 329, 330, 331, 332, 334], "nscsoffset": [262, 285, 287, 289, 291, 294, 324, 348, 349], "unconfigur": 263, "mcstabl": [264, 280, 294, 322, 323, 351], "config": [264, 285, 287, 288, 289, 291, 294, 334], "maintain": [264, 268, 269, 279, 280, 281, 305], "comboffset": [265, 302, 329, 330, 332], "resourcetyp": [265, 302, 329, 330, 332], "bsr": [265, 302, 329, 330, 332], "csr": [265, 302, 329, 330, 332], "bhop": [265, 302, 329, 330, 332], "freqscalingfactor": [265, 302, 329, 330, 332], "startrbindex": [265, 302, 329, 330, 332], "enablestartrbhop": [265, 302, 329, 330, 332], "freqdomainshift": [265, 302, 329, 330, 332], "freqdomainposit": [265, 302, 329, 330, 332], "periodicityinslot": 265, "offsetinslot": 265, "betasr": [265, 302, 329, 330, 332], "disbal": [265, 301], "hopp": 265, "67": [265, 309, 327, 328, 329, 330, 331, 336, 337], "268": 265, "p_f": 265, "inteer": 265, "repet": 265, "semi": 265, "persist": 265, "aperiod": 265, "legit": [266, 267, 327, 328], "equaval": 266, "guard": 267, "don": [267, 295, 320, 324, 325, 349], "bandwidthtx": [267, 324, 348, 349], "nsymbolfram": [267, 285, 287, 288, 289, 291, 294, 301, 324, 348, 349], "tfparam": [267, 285, 287, 288, 289, 291, 294, 301, 324, 348, 349], "typecp": [267, 285, 287, 288, 289, 291, 294, 301, 324, 348, 349], "transit": [267, 285, 287, 288, 289, 291, 294, 324, 348, 349], "neff": [267, 285, 287, 288, 289, 291, 294, 324, 348, 349], "exclud": [267, 285, 287, 288, 291, 324, 348, 349], "gaurd": [267, 285, 287, 288, 291, 324, 348, 349], "lengthcp": [267, 273, 285, 287, 288, 289, 291, 294, 324, 348, 349], "100000000": 267, "mhz": [267, 301, 324, 327, 328, 329, 330, 331, 332, 349], "prfix": 267, "acn": 267, "extend": [267, 269, 327, 328, 331], "possiblecombinations_fr1": 267, "39": [267, 294, 301, 315, 329, 330, 331, 337, 338, 339, 342, 343, 344, 345, 346, 348, 362], "possiblecombinations_fr2": 267, "400": [267, 285, 325, 328, 330, 331], "getgaurdband_fr1": 267, "gaird": 267, "getgaurdband_fr2": 267, "getnumberrb_fr1": 267, "getnumberrb_fr2": 267, "oscil": 268, "inaccuraci": 268, "doppler": [268, 320, 343, 347, 352], "proper": [268, 269, 270, 285], "recept": [268, 269, 270, 271, 283, 286, 290, 292, 293, 295, 320, 331, 332], "embed": [268, 315], "align": [268, 285, 299], "tone": 268, "do": [268, 333], "explicit": 268, "joint": [268, 280], "inher": 268, "essenti": [268, 269, 270, 283, 285, 320, 339, 346], "therefor": 268, "seamless": [268, 280, 285], "environment": [268, 331], "receiveralgorithm": [268, 269, 270, 271, 272, 273, 274, 275, 276, 285, 287, 288, 289, 291, 294, 302, 320, 323, 324, 325, 329, 330, 332, 334, 348, 349], "narrow": 268, "nearli": 268, "flat": [268, 281], "pssofdmsymbol": 268, "numcfoiter": 268, "despit": [269, 270, 280], "variat": [269, 270, 279, 280, 310, 318, 326, 329, 339, 345, 347, 352, 358], "gnb": [269, 270, 285, 320, 324, 327, 328, 329], "rss": [269, 270], "mmse": [269, 270], "fde": [269, 270], "distort": [269, 270, 271, 331], "final": [269, 270, 280, 301, 327, 328, 330, 331, 332, 358], "zf": [269, 291, 294, 348, 349], "nearest": [269, 270, 271, 275, 285, 287, 289, 291, 294, 324, 339, 346, 348, 349], "spline": [269, 275, 276, 294, 302, 327, 328, 329, 330, 331, 332, 334], "estimatortyp": [269, 291, 294, 348, 349], "interpolatortyp": [269, 275, 276, 291, 294, 302, 329, 330, 332, 334, 348, 349], "nn": [269, 275, 276, 291, 294, 315, 323, 334, 348], "chest": [269, 294, 302, 329, 330, 332, 334], "channelestimationandequ": [269, 285, 287, 288, 289, 291, 294, 324, 348, 349], "randn": [269, 272, 274, 315], "1j": [269, 272, 273, 274, 302, 315, 319, 324, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 349, 350], "pilotloc": 269, "tk": [269, 356, 357, 359, 360, 362], "dataloc": 269, "isuemobil": [269, 271, 291, 294, 323, 348, 349], "chanel": [269, 270], "ssbgrid": [269, 285, 287, 289, 291, 294, 324, 348, 349], "knot": [269, 275, 276, 334], "ssbestim": [269, 272, 274, 291, 294, 348], "possiblevalu": 269, "handov": [270, 285, 358], "hi": [270, 301], "speialli": 270, "vital": [271, 285], "delv": 271, "gnodeb": [271, 275, 276, 279, 280, 283, 331, 332], "intersymbol": 271, "isi": 271, "accordingli": 271, "sophist": [271, 275, 276], "1x1": 271, "2x2": 271, "3x3": 271, "4x4": 271, "5x5": 271, "6x6": 271, "7x7": 271, "8x8": 271, "reciv": 271, "unquil": 271, "interpolatortypefrequ": [271, 323], "extrapol": [271, 275, 276], "cubicsplin": [271, 323, 331], "blow": 272, "1008": [272, 334], "dmrsdet": 272, "ssbest": [272, 274, 324, 349], "l_max": 272, "897": 272, "halfframeindex": 272, "cellid2": [272, 324], "cellid1": [272, 324], "channelassist": [272, 274, 291, 294, 348], "wire": 273, "fro": 273, "st": [273, 291, 294], "largestpeak": [273, 285, 288, 289, 291, 294, 348], "detectortyp": 273, "peakdetector": 273, "timesynch": 273, "timeindex": 273, "rand": [273, 302, 324, 327, 328, 329, 330, 331, 332, 334, 348], "rxsampl": 273, "exp": [273, 302, 324, 327, 328, 329, 330, 331, 332, 334, 345, 349], "256": [273, 289, 318, 322, 333], "freqoffset": [273, 285, 288, 289, 291, 294, 348], "psspeakindic": [273, 285, 288, 289, 291, 294, 348], "psscorrel": [273, 285, 288, 289, 291, 294, 348], "rasteroffset": [273, 285, 288, 289, 291, 294, 348], "vline": [273, 285, 288, 289, 291, 294, 324, 331, 348], "ymin": [273, 285, 288, 289, 291, 294, 302, 324, 327, 329, 330, 331, 332, 348], "ymax": [273, 285, 288, 289, 291, 294, 302, 324, 327, 329, 330, 331, 332, 348], "purpl": [273, 285, 288, 289, 291, 294, 324, 325, 326, 327, 328, 334, 335, 336, 337, 342, 348], "set_ylim": [273, 285, 288, 289, 291, 294, 301, 302, 305, 309, 320, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 342, 348, 349, 351], "recevi": [273, 352, 358], "________________________________________________________________": [273, 285, 288, 289, 291, 294, 327, 328, 332, 348], "futur": 273, "threshold": [273, 278, 281, 285, 289, 291, 294, 309, 348], "025": [273, 275], "frequencei": 273, "sssdet": 274, "312": [274, 331], "receivecombin": [274, 285, 287, 288, 289, 291, 294, 324, 348, 349], "fundament": [275, 276, 315], "technic": [275, 276], "goal": [275, 276, 280, 295, 315], "sweep": [275, 276, 327], "feedback": [275, 276, 280, 281, 361], "dynam": [275, 276, 279, 280, 281, 283], "summari": [275, 276, 285, 315, 346], "numrxantennaport": 275, "csirsresourcemapp": 275, "akima": [275, 276, 334], "pchip": [275, 276, 334], "spline_and_denois": [275, 334], "smoothen": 275, "lagrangian": 275, "smooth": 275, "channelestimatorcsi": 275, "resourcemappersr": [275, 276, 302, 329, 330, 332], "numsc": [275, 276, 333], "numcyclicshit": 276, "numsrsport": 276, "unequil": 276, "srsresourcemapp": 276, "numcyclicshift": 276, "3gppts38213pdcch": 278, "evalu": [278, 304, 305, 306, 308, 309, 318, 320, 327, 328, 330, 331, 332, 352, 358], "metric": [278, 283, 294, 326, 335], "numcc": [278, 309], "numcandidatesundereach": [278, 307], "nci": [278, 304, 305, 306, 307, 308, 309], "ca": 278, "uesundereach": 278, "likewis": 278, "strategi": [278, 280, 281, 283, 304, 305, 306, 308, 309, 310, 318, 320, 358], "conserv": [278, 280, 304, 305, 306, 307, 308, 309], "aggress": [278, 280, 307], "priorit": [278, 307], "dimenison": 278, "successfulli": [278, 308, 356, 357, 359], "opportun": [278, 279], "ith": 278, "continu": [278, 280, 336], "entir": 278, "135": [278, 301, 309], "those": [278, 327, 328], "sinr": [278, 280, 281, 304], "moder": 278, "decent": 278, "nccep": [278, 304, 305, 306, 307, 308, 309], "numerlogi": [278, 304, 305, 306, 307, 308, 309], "agglevelprobdistribut": [278, 306, 307, 308, 309], "multinomi": [278, 304, 305, 306, 307, 308, 309], "replac": [278, 295, 301, 304, 305, 306, 307, 308, 309], "pdcchschedulerobj": [278, 304, 305, 306, 307, 308, 309], "count": [278, 302, 304, 305, 306, 307, 308, 309, 315, 327, 328, 329, 330, 331, 332, 333, 345], "cceindic": 278, "numblockedu": [278, 304, 305, 306, 307, 308, 309], "14766": 278, "34333": 278, "8673": 278, "37708": 278, "57818": 278, "42": [278, 294, 301, 315, 323, 329, 330, 331, 337, 348], "41": [278, 294, 315, 329, 330, 331, 337, 348], "44": [278, 294, 305, 315, 329, 330, 331, 337, 348], "46": [278, 294, 301, 315, 329, 330, 331, 337, 342, 362], "int64": 278, "mark": [278, 342], "fair": [279, 283], "equit": 279, "prioriti": [279, 299], "cycl": [279, 348], "fashion": [279, 298], "prevent": 279, "monopol": [279, 327, 328, 331], "begin": 279, "maxim": [279, 280, 281, 283], "meet": [279, 280, 283, 304, 310, 318], "qo": [279, 280, 281, 283], "proport": 279, "concern": 279, "strict": 279, "commonli": [279, 331], "balanc": [279, 280], "straightforward": 279, "numuescheduledacrossfreq": [279, 283], "numuescheduledacrosstim": [279, 283], "firstacrosstim": [279, 283], "accorss": 279, "contend": 279, "mulipl": 279, "numsymbolperu": 279, "numrbperu": 279, "resgrid": [279, 320, 325, 327, 328], "postiv": 279, "displayuealloc": 279, "availbl": 279, "appropri": [280, 281, 283, 362], "advers": 280, "mechan": [280, 281, 320, 324, 329], "rssi": 280, "amc": 280, "quickli": [280, 358], "fluctuat": 280, "prevail": [280, 281], "contribut": [280, 346], "mcsindic": 280, "descib": 280, "2nd": [280, 323], "pdchtable3": 280, "singular": [280, 281, 322, 323, 334], "sigma": [280, 281], "p_t": [280, 281, 327, 328, 331, 348], "n_0": [280, 281], "blertarget": 280, "decibel": 280, "blermargin": 280, "margin": [280, 342], "safeti": 280, "phenomena": [280, 346], "failur": 280, "diagram": [280, 290, 292, 293, 295, 326, 335, 336, 352, 358], "uncertain": 280, "ambiti": 280, "table3": 280, "selectmc": [280, 283], "minsnrvalu": 280, "simpler": [281, 339], "account": [281, 356, 359, 360], "favor": 281, "traffic": 281, "demand": 281, "therebi": [281, 350], "snrdbmin": 281, "isrankindicatorsubcarrierspecif": 281, "n_l": 281, "n_t": 281, "n_r": 281, "suit": 281, "protocol": 283, "stack": [283, 302, 315, 324, 331, 332, 349], "deal": 283, "weight": 283, "coordin": [283, 285, 302, 327, 328, 329, 330, 332, 338, 339, 340, 341, 342, 343, 344], "partit": 283, "deliv": 283, "satisfactori": 283, "ravi": 284, "kumar": 284, "super": 284, "manuscript": 284, "isj": 284, "15236": 284, "submit": 284, "journal": 284, "watch": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 362], "youtub": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 362], "view": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 362], "github": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 356, 357, 358, 359, 360, 362], "notebook": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351, 358, 360, 362], "breakdown": 285, "uniqu": 285, "nearbi": 285, "clock": [285, 329], "alongsid": 285, "benefit": [285, 298, 320, 331], "ipython": [285, 287, 288, 294, 301, 302, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 339, 342, 345, 346, 349, 351, 362], "html": [285, 287, 288, 294, 301, 302, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 339, 342, 345, 346, 349, 351, 357, 358, 362], "adi": [285, 287, 288, 289, 291, 294, 295], "analogbeamform": [285, 287, 288, 289, 291, 294, 324, 348, 349], "center_frequ": [285, 287, 288, 289, 291], "1e9": [285, 287, 288, 289, 291], "subcarrier_spac": [285, 287, 288, 289, 291], "numofdmsymbol": [285, 287, 288, 289, 291, 294, 348], "sample_r": [285, 287, 288, 289, 291, 294], "puls": [285, 287, 288, 289, 291, 294], "numsamplespersymbol": [285, 287, 288, 289, 291, 294], "buffer_s": [285, 287, 288, 289, 291, 294], "___________________________________________________________________": [285, 287, 289, 291, 294, 348], "3e8": [285, 287, 289, 291, 294, 324, 348, 349], "ssbparamet": [285, 287, 289, 291, 294, 324, 348, 349], "nsc_ssb": [285, 287, 289, 291, 294, 324, 348, 349], "nsymb_ssb": [285, 287, 289, 291, 294, 324, 348, 349], "_______________________________________": [285, 287, 289, 291, 294, 324, 348, 349], "getsequ": [285, 287, 289, 291, 294, 348, 349], "tensorflow": [285, 287, 289, 291, 294, 301, 315, 348, 349, 358, 359, 362], "pbchobject": [285, 287, 289, 291, 294, 324, 348, 349], "ssbrgobject": [285, 287, 289, 291, 294, 324, 348, 349], "numofguardcarri": [285, 287, 289, 291, 294, 348], "firstscindex": [285, 287, 289, 291, 294, 348], "__________________________________________________": [285, 287, 289, 291, 294], "x_time": [285, 287, 289, 291, 294, 348], "flatten": [285, 287, 289, 291, 294, 333, 345, 348, 349], "______________________________________________________": [285, 287, 289, 291, 294, 348], "imshow": [285, 287, 289, 291, 294, 324, 325, 327, 328, 339, 346, 348, 349], "cmap": [285, 287, 289, 291, 294, 324, 325, 327, 328, 334, 339, 346, 348, 349], "hot": [285, 287, 289, 291, 294, 315, 324, 327, 328, 334, 339, 346, 348, 349], "auto": [285, 287, 289, 291, 294, 315, 324, 325, 327, 328, 339, 346, 348, 349], "gca": [285, 287, 289, 291, 294, 327, 328, 334, 339, 346, 348], "linestyl": [285, 287, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 315, 319, 320, 322, 323, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 339, 346, 348, 349, 351], "linewidth": [285, 287, 289, 291, 294, 327, 328, 334, 339, 346, 348], "gridlin": [285, 287, 289, 291, 294, 327, 328, 334, 339, 346, 348], "tick": [285, 287, 289, 291, 294, 309, 324, 327, 328, 334, 339, 346, 348], "pluto": [285, 287, 288, 289, 291, 294, 295, 361], "ip": [285, 287, 288, 289, 291, 294], "168": [285, 287, 288, 289, 291, 294, 331, 350], "tx_rf_bandwidth": [285, 287, 288, 289, 291, 294], "filter": [285, 287, 288, 289, 291, 294, 331], "cutoff": [285, 287, 288, 289, 291, 294], "tx_lo": [285, 287, 288, 289, 291, 294], "tx_hardwaregain_chan0": [285, 287, 288, 289, 291, 294], "gain_control_mode_chan0": [285, 287, 288, 289, 291, 294], "rx_hardwaregain_chan0": [285, 287, 288, 289, 291, 294], "74": [285, 287, 288, 289, 291, 294, 301, 329, 330, 331, 337], "slow_attack": [285, 287, 288, 289, 291, 294], "agc": [285, 287, 288, 289, 291, 294], "fast_attack": [285, 287, 288, 289, 291, 294], "rx_lo": [285, 287, 288, 289, 291, 294], "rx_rf_bandwidth": [285, 287, 288, 289, 291, 294], "rx_buffer_s": [285, 287, 288, 289, 291, 294], "tx_cyclic_buff": [285, 287, 289, 291, 294], "safe": [285, 288, 289, 291, 294], "raw_data": [285, 288, 289, 291, 294], "rx_sampl": [285, 288, 289, 291, 294], "tx_destroy_buff": [285, 288, 289, 291, 294], "rn_id2": [285, 288, 289, 291, 294, 348], "ssboffset": [285, 288, 289, 291, 294, 348], "startingsubcarrierindic": [285, 288, 289, 291, 294, 348], "scalefig": [285, 288, 291, 294, 338, 340, 341, 342, 344], "figsiz": [285, 288, 291, 294, 301, 302, 322, 323, 324, 325, 327, 330, 333, 334, 338, 339, 340, 341, 342, 343, 344, 346, 351, 362], "374": 285, "interact": [285, 356, 357, 358, 359], "maplotlib": 285, "anim": [285, 287, 288, 339, 343, 346, 347, 352], "squeez": 285, "pssrtime": 285, "draw": [285, 326, 342], "def": [285, 289, 315, 342], "With": [285, 306, 325, 339, 342, 343, 346], "set_xlim": [285, 289, 291, 294, 301, 302, 305, 307, 308, 324, 326, 327, 328, 329, 330, 331, 332, 333, 338, 339, 340, 341, 342, 344, 346, 348], "minx": 285, "maxi": 285, "freq": [285, 320], "fontsiz": [285, 301, 304, 305, 306, 307, 308, 326, 335, 336, 337, 342, 343, 349, 350], "85": [285, 309, 323, 327, 328, 329, 330, 331, 332, 351], "suptitl": [285, 338, 339, 340, 341, 342, 344, 346], "millisecond": [285, 342], "drawn": [285, 327, 328, 339, 342], "funcanim": [285, 342], "blit": [285, 342], "mp4": [285, 342], "ffmpeg": [285, 342], "writer": [285, 342], "writervideo": [285, 342], "ffmpegwrit": [285, 342], "fp": [285, 342], "simulationofnodemobl": [285, 342], "extra_arg": [285, 342], "vcodec": [285, 342], "libx264": [285, 342], "gif": [285, 342], "fig1ur": 285, "scalefig1": 285, "max1i": 285, "anim1": 285, "overall_fram": 285, "sdr": [286, 290, 292, 293, 297, 358, 361], "setup": [286, 290, 292, 293, 295, 352, 358, 359], "save": [286, 295, 327, 328, 329, 330, 331, 332, 342, 352, 358], "run": [286, 295, 315, 325, 342, 356, 357, 359, 360], "288": [287, 344, 348], "362": 288, "broadacast": [289, 291], "__": [289, 291, 327, 328, 331], "scscarrier": [289, 294, 348, 349], "ssbperiod": [289, 294, 348, 349], "nframe": [289, 294, 324, 348, 349], "savefig": [289, 327, 333, 337, 362], "svg": [289, 327, 333, 362], "png": [289, 327, 333, 337], "axhlin": [289, 291, 294, 302, 327, 328, 329, 330, 331, 332, 348], "axvlin": [289, 291, 294, 302, 327, 328, 329, 330, 331, 332, 334, 342, 348], "firstsymbolindex": 289, "timeouterror": 289, "traceback": 289, "recent": 289, "file": [289, 356, 359, 360], "miniconda3": [289, 356, 357, 359], "env": 289, "mysdr": 289, "lib": 289, "python3": 289, "context_manag": 289, "py": [289, 302, 320, 331, 332, 348, 349], "uri": 289, "_device_nam": 289, "gt": [289, 291, 294, 315, 327, 328, 338, 339, 340, 341, 342, 343, 344, 345, 348], "_ctx": 289, "iio": 289, "baseexcept": 289, "1358": 289, "_context": 289, "1357": 289, "elif": [289, 291, 294, 322, 334, 345, 348, 350], "_isstr": 289, "_new_uri": 289, "ascii": 289, "1359": 289, "_check_nul": 289, "func": 289, "55": [289, 294, 309, 329, 330, 331, 337], "err": 289, "get_last_error": 289, "_system": 289, "get_errno": 289, "oserror": 289, "_strerror": 289, "errno": 289, "110": [289, 309, 329, 335, 362], "rx_tx": 289, "717": 289, "rx_tx_def": 289, "714": 289, "715": 289, "union": 289, "716": 289, "rx_def": 289, "718": 289, "tx_def": 289, "720": 289, "__post_init__": 289, "636": 289, "632": 289, "633": 289, "634": 289, "shared_def": 289, "638": 289, "_rx_data_device_nam": 289, "639": 289, "_rxadc": 289, "find_devic": 289, "586": 289, "584": 289, "uri_ctx": 289, "585": 289, "587": [289, 331], "588": [289, 331], "required_devic": 289, "_control_device_nam": 289, "2048": [291, 294, 336, 339, 346], "894": 291, "pssstartindex": [291, 294, 348], "ssbscsoffset": [291, 294, 348], "magnitud": [291, 294, 327, 334, 347, 352], "spreactrum": [291, 294], "n_id_1": [291, 294], "rn_id1": [291, 294, 348], "rn_id": [291, 294, 348], "rxssbobject": [291, 294, 348], "rxdmrsindic": [291, 294, 348], "dmrsdetect": [291, 294, 348], "rssbindex": [291, 294, 348], "rhrfbit": [291, 294, 348], "rxdmrsobject": [291, 294, 348], "rxdmrsseq": [291, 294, 348], "interpolt": [291, 294, 348, 349], "chanest": [291, 294, 348, 349], "rxpbchindic": [291, 294, 348], "pbchestim": [291, 294, 348, 349], "extractmibinfo": [291, 294, 348, 349], "rxmib": [291, 294, 348, 349], "lw": [291, 294, 301, 302, 315, 319, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 342, 348, 349, 362], "loc": [291, 294, 301, 309, 320, 322, 323, 326, 327, 328, 331, 334, 335, 336, 337, 349, 350, 351, 362], "lt": [291, 294, 315, 327, 328, 338, 339, 340, 341, 342, 343, 344, 345, 348], "frozen": [291, 294], "494": [291, 294, 320, 348, 349], "userwarn": [291, 294, 320, 348, 349], "ressourc": [291, 294, 320, 348, 349], "blocklength": [291, 294, 320, 348, 349], "cpu_onli": [291, 294, 320, 348, 349], "2000000000": 291, "intrafreqreselect": [291, 294, 348], "303": 291, "issbindex": [291, 294, 348], "couldn": [291, 294, 348], "id1": [291, 294, 348], "uncod": [291, 294, 319, 348], "uncodedb": [291, 294, 319, 320, 322, 323, 348, 351], "codedb": [291, 294, 320, 322, 323, 348, 351], "verif": [292, 293, 295], "recours": [293, 295], "cost": [294, 301, 305], "thm": 294, "coars": 294, "170": 294, "pdschlowerphyconfig": [294, 322, 323, 351], "pdschupperphyconfig": [294, 322, 323, 351], "51216": 294, "layerpertb": [294, 351], "6015625": 294, "85680": 294, "65536": [294, 320, 322, 323, 351], "pdschlowerphychain": [294, 322, 323, 351], "transmis": [294, 322, 323, 351], "sqrt": [294, 302, 315, 319, 320, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 342, 349, 350], "norm": [294, 302, 315, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 338, 340, 341, 346, 348], "0001": [294, 339], "640x480": [294, 344, 345], "xlabel": [294, 315, 345], "ylabel": [294, 315, 345], "ssbresgrid": 294, "112": [294, 329, 350], "11629": 294, "328723559462": 294, "scalingfactor": 294, "pulseshap": 294, "1101004": 294, "1038": 294, "dtection": 294, "1000000000": 294, "694": [294, 331], "pdschstartindex": 294, "pdschgrid": 294, "53": [294, 301, 324, 329, 330, 331, 334, 337], "polyord": 294, "Will": 294, "rsymbol": 294, "laydemap": 294, "rlmsym": 294, "rxllr": 294, "scrobject": 294, "rscrbit": 294, "pdschupphydec": [294, 322, 323, 351], "thoughput": 294, "hertz": 294, "slotdur": [294, 301], "spectaleffici": 294, "mbp": [294, 301], "412": 294, "2804": 294, "1428571428571429": 294, "7893069130182532e": 294, "softwar": [295, 361], "board": [295, 358], "our": [295, 327, 328, 330, 331, 356, 357, 358, 359], "prototyp": [295, 358], "test": [295, 301, 318, 358, 361], "xilinx": 295, "zynq": 295, "ultrascal": 295, "rfsoc": 295, "pynq": 295, "ni": [295, 361], "usrp": [295, 361], "b200": 295, "b205": 295, "mini": [295, 361], "b210": 295, "uhd": 295, "analog": [295, 299, 352, 361], "phasor": 295, "exhaust": [295, 327, 328, 330, 331], "sole": 295, "famili": [295, 333], "mention": 295, "encount": [295, 302, 331, 332], "difficulti": 295, "hesit": 295, "gigayasa": [295, 298, 356, 357, 358, 359, 360], "com": [295, 356, 357, 358, 359, 360], "glad": 295, "organ": [295, 322, 323, 334, 362], "script": [295, 325, 326, 335, 336, 350, 356, 357, 358, 359], "audienc": [296, 297, 348], "taught": 296, "ii": [296, 299, 310, 315, 318, 358, 361], "remot": [296, 361], "cours": [297, 358], "introductori": [297, 358], "2023": [298, 301, 358, 362], "reserv": [298, 325], "r23": 298, "logo": 298, "regist": 298, "privat": 298, "consent": 298, "public": [298, 358], "owner": 298, "product": [298, 338, 340, 341, 358], "rather": 298, "editori": 298, "intent": 298, "infring": 298, "reveal": 298, "copyright": [298, 358], "unauthor": 298, "reproduct": 298, "strictli": 298, "prohibit": 298, "legal": 298, "action": 298, "herein": 298, "furnish": 298, "subject": [298, 356, 359, 360], "notic": 298, "guarante": 298, "commit": 298, "terrestri": [299, 361], "ntn": [299, 361], "ai": [299, 324, 349, 358, 361], "ml": [299, 358, 361], "latest": [299, 356, 357, 358, 359], "architectur": [299, 356, 359, 360], "noma": 299, "otf": 299, "twin": [299, 301], "r23a": [300, 356, 357, 358, 360, 362], "teach": [301, 358], "neural": [301, 315], "convent": 301, "combinatori": 301, "consum": 301, "internet": 301, "thing": [301, 358], "iot": [301, 352, 358], "propos": 301, "er": [301, 349], "rapidli": 301, "might": [301, 329, 338, 339, 343, 345, 346, 356, 357, 358, 359], "hour": 301, "gb": 301, "excercis": 301, "numfram": 301, "numpoint": [301, 320, 322, 323, 324, 349, 351], "numtrainingsampl": 301, "ticker": [301, 351], "formatstrformatt": [301, 351], "nodesperlay": 301, "hidden": 301, "activationfunct": 301, "numtestsampl": 301, "relu": [301, 315], "displaymap": 301, "bitloc": 301, "displayrealpart": 301, "651u": 301, "0184e": 301, "04": [301, 308, 315], "9938": 301, "580u": 301, "617u": 301, "5833e": 301, "9970": 301, "620u": 301, "660u": 301, "0046": 301, "9902": 301, "02": [301, 302, 304, 315, 330], "628u": 301, "4096": [301, 302, 320, 325, 329, 330], "585u": 301, "5838e": 301, "9895": 301, "95": [301, 302, 305, 309, 328, 329, 330, 331, 334, 349], "525u": 301, "579u": 301, "0524e": 301, "9724": 301, "97": [301, 329, 330, 331], "532u": 301, "595u": 301, "8327e": 301, "9935": 301, "559u": 301, "591u": 301, "0649e": 301, "9734": 301, "528u": [301, 315], "611u": 301, "3079e": 301, "9711": 301, "556u": [301, 315], "3204e": 301, "9839": 301, "scspace": 301, "numtx": 301, "4785": 301, "001": [301, 350], "artifici": [301, 315, 358, 361], "ann": [301, 315], "mimic": 301, "fed": [301, 315], "adam": [301, 315], "levenberg": 301, "marquardt": 301, "backpropag": 301, "batch_siz": [301, 315], "reason": [301, 307], "slighli": 301, "paper": [301, 304, 305, 306, 307, 308, 309, 358], "claim": 301, "unabl": 301, "predict": [301, 315, 339, 353], "emit": [301, 331], "maxthroughput": 301, "mcsidx": 301, "pdschupphi": 301, "snrindex": [301, 315, 319, 326, 335, 336], "tbest": 301, "mod": [301, 342, 350], "_______________________________________________________": 301, "025147934868943605": 301, "028224781572676726": 301, "1536": 301, "776u": 301, "7875": 301, "9571": 301, "767u": 301, "0052": 301, "9923": 301, "761u": 301, "0027": 301, "9948": 301, "757u": 301, "0019": 301, "9952": 301, "647u": 301, "0018": 301, "49725": 301, "523u": [301, 315], "02535378607360339": 301, "511111111111111": 301, "016092136616362194": 301, "995": 301, "302160": 301, "00000000023": 301, "01816587238549113": 301, "943u": 301, "8334": 301, "9536": 301, "942u": 301, "0104": 301, "9900": 301, "950u": 301, "0034": 301, "9942": 301, "945u": 301, "0020": 301, "9954": 301, "675u": 301, "0013": 301, "9964": 301, "593u": 301, "01622584061424411": 301, "9975": 301, "151079": 301, "99999999677": 301, "622222222222223": 301, "0077429176595181365": 301, "6043199": 301, "999999999": 301, "009148795340217104": 301, "9425": 301, "3474839": 301, "9999999995": [301, 322], "1m": [301, 315, 345], "8134": 301, "9645": 301, "988u": 301, "0096": 301, "9915": 301, "976u": 301, "0028": 301, "9941": 301, "967u": 301, "9953": 301, "678u": 301, "0021": 301, "9961": 301, "61": [301, 302, 329, 330, 331, 337], "599u": 301, "00787595975642044": 301, "733333333333333": 301, "003140058247286206": 301, "645": 301, "21453360": 301, "003892308710616892": 301, "7224999999999999": 301, "16769880": 301, "000000004": 301, "9520": 301, "9576": 301, "997u": 301, "0037": 301, "9933": 301, "989u": 301, "9955": 301, "993u": 301, "0015": [301, 315], "665u": 301, "0014": 301, "9963": 301, "63": [301, 329, 330, 331, 337], "609u": 301, "003194334127614509": 301, "6525000000000001": 301, "21000119": 301, "999999996": [301, 351], "844444444444445": 301, "000560630129732592": 301, "29000000000000004": 301, "42906720": 301, "0007045935927985173": 301, "3325": 301, "40338360": 301, "958u": 301, "9824": 301, "9567": 301, "965u": 301, "0100": 301, "953u": 301, "0030": 301, "9931": 301, "9947": 301, "9950": 301, "598u": 301, "0005801562086311888": 301, "29500000000000004": 301, "42604560": 301, "955555555555556": 301, "00010424940428911835": 301, "08499999999999996": 301, "55295280": 301, "0001290706910246227": 301, "10499999999999998": 301, "54086640": 301, "971u": 301, "0082": 301, "9494": 301, "0094": 301, "948u": 301, "949u": 301, "0023": 301, "652u": 301, "00010325655281969817": 301, "066666666666667": 301, "942811755361398e": 301, "010000000000000009": [301, 322, 349], "59827680": 301, "1252316653428647e": 301, "015000000000000013": [301, 320, 351], "59525519": 301, "99999999": 301, "972u": 301, "1142": 301, "9508": 301, "951u": 301, "0042": 301, "9925": 301, "9949": 301, "947u": 301, "0016": [301, 315], "666u": 301, "0012": 301, "9960": 301, "597564204395023e": 301, "012499999999999956": 301, "59676600": 301, "177777777777778": 301, "3095048980672493e": 301, "0024999999999999467": 301, "60280920": 301, "60432000": 301, "0939": 301, "9534": 301, "930u": 301, "0038": 301, "9945": 301, "918u": 301, "926u": 301, "9956": 301, "679u": 301, "0017": 301, "569u": 301, "28888888888889": 301, "619009796134499e": 301, "0050000000000000044": [301, 320, 322], "60129839": 301, "935u": 301, "0920": 301, "9517": 301, "917u": 301, "0095": 301, "9910": 301, "924u": 301, "9939": 301, "909u": 301, "0026": 301, "655u": 301, "0024": 301, "916u": 301, "2061": 301, "9545": 301, "900u": 301, "0070": 301, "9918": 301, "904u": 301, "9959": 301, "661u": 301, "0031": 301, "586u": 301, "040188703800104114": 301, "04859621724796113": 301, "968u": 301, "8221": 301, "8768": 301, "952u": 301, "0433": 301, "9830": 301, "0163": 301, "9899": 301, "939u": 301, "0109": 301, "9908": 301, "9919": 301, "581u": 301, "04115499739718896": 301, "644444444444444": 301, "026602680895366996": 301, "036362571577303486": 301, "980u": 301, "9707": 301, "8692": 301, "962u": 301, "1349": [301, 331], "9510": 301, "0256": 301, "9822": 301, "940u": 301, "0161": 301, "9851": 301, "0138": 301, "9869": 301, "69": [301, 329, 330, 331, 337], "590u": 301, "028235944820406037": 301, "78888888888889": 301, "014358623980565678": 301, "9833333333333333": 301, "1536800": 301, "0000000047": 301, "023304919312857886": 301, "946u": 301, "2150": 301, "8748": 301, "0673": 301, "9768": 301, "0209": 301, "9893": 301, "0149": 301, "0115": 301, "594u": 301, "01549540170050321": 301, "985": 301, "1383120": 301, "0000000012": 301, "933333333333334": 301, "005127754641679681": 301, "8066666666666666": 301, "17826880": 301, "010303444386604198": 301, "2766240": 301, "0000000023": 301, "981u": 301, "3736": 301, "8757": 301, "966u": 301, "1384": 301, "9678": 301, "986u": 301, "0278": 301, "9870": 301, "955u": 301, "0187": 301, "9882": 301, "682u": 301, "0160": 301, "9887": 301, "87": [301, 329, 330, 331, 362], "603u": 301, "006156949505465903": 301, "845": 301, "14292240": 301, "000000002": 301, "077777777777778": 301, "0009125021690091967": 301, "405": 301, "54863759": 301, "0024898056567759846": 301, "685": 301, "29045519": 301, "889u": 301, "4978": 301, "8656": 301, "848u": 301, "1237": 301, "9658": 301, "858u": 301, "0273": 301, "9871": 301, "862u": 301, "0174": 301, "9889": 301, "644u": 301, "0151": 301, "9886": 301, "86": [301, 322, 329, 330, 331], "564u": [301, 315], "0012116085372201979": 301, "44333333333333336": 301, "51329119": 301, "222222222222223": [301, 323], "00011886170397362485": 301, "11333333333333329": 301, "81757760": 301, "00032838799236508765": 301, "22999999999999998": [301, 320], "71000160": 301, "911u": 301, "9472": 301, "8702": 301, "1385": 301, "9595": 301, "0353": 301, "9880": 301, "0234": 301, "9905": 301, "635u": 301, "0182": 301, "9921": 301, "00018154606975533577": 301, "79759920": 301, "366666666666667": 301, "326739545375672e": 301, "90824880": 301, "017178552837064e": 301, "026666666666666616": 301, "89749120": 301, "890u": 301, "3447": 301, "8683": 301, "880u": 301, "0913": 301, "9728": 301, "870u": 301, "0263": 301, "0154": 301, "9913": 301, "634u": 301, "0113": 301, "9928": 301, "541u": 301, "1929550581294465e": 301, "01666666666666672": 301, "90671200": 301, "92208000": 301, "1858": 301, "8540": 301, "1405": 301, "9655": 301, "0335": 301, "9883": 301, "0232": 301, "9897": 301, "654u": 301, "0198": 301, "9888": 301, "88": [301, 329, 330, 331], "1690091965989935e": 301, "0016666666666667052": 301, "92054319": 301, "655555555555557": 301, "902u": 301, "6813": 301, "8733": 301, "905u": 301, "1776": 301, "9657": 301, "0431": 301, "9854": 301, "923u": 301, "9884": 301, "639u": 301, "0189": 301, "9894": [301, 345], "94": [301, 329, 330, 331], "557u": [301, 315], "2463": 301, "8624": 301, "861u": 301, "9677": 301, "859u": 301, "0383": 301, "884u": 301, "0240": 301, "570u": 301, "009899100172025936": 301, "92": [301, 322, 329, 330, 331], "9672959": 301, "999999994": 301, "026978959904724098": 301, "933u": 301, "5861": 301, "8235": 301, "920u": 301, "7076": 301, "9146": 301, "2689": 301, "9565": 301, "2034": 301, "9612": 301, "9594": 301, "04042411009659918": 301, "004650489612280005": 301, "7362500000000001": 301, "31890539": 301, "01804337038507344": 301, "302279": 301, "99999999354": 301, "7435": 301, "8228": 301, "6509": 301, "9322": 301, "961u": 301, "2652": 301, "9601": 301, "1813": [301, 331], "9653": 301, "1469": 301, "9664": 301, "027669544792907237": 301, "622222222222222": 301, "00196969696969697": 301, "49250000000000005": 301, "61362839": 301, "010304684398570862": 301, "96625": 301, "4080779": 301, "9999999935": 301, "910u": 301, "7789": 301, "8164": 301, "0580": 301, "9194": 301, "879u": 301, "3600": 301, "9580": 301, "869u": 301, "2619": 301, "9620": 301, "2258": 301, "9636": 301, "02898752811962419": 301, "733333333333334": 301, "00041898240042344845": 301, "21375": 301, "95067060": 301, "003805577610162763": 301, "30228000": 301, "907u": 301, "4401": 301, "8270": 301, "875u": 301, "8994": 301, "9237": 301, "3270": 301, "9573": 301, "2392": 301, "9637": 301, "624u": 301, "2117": 301, "560u": [301, 315], "021652937673680032": 301, "262935027127167e": 301, "07125000000000004": 301, "112297019": 301, "000882956199550086": 301, "37124999999999997": 301, "76023420": 301, "2444": 301, "8299": 301, "5827": 301, "9457": 301, "2849": 301, "2227": 301, "9648": 301, "1923": 301, "9681": 301, "81": [301, 329, 330, 331, 337], "568u": [301, 315], "008769849146486701": 301, "88125": 301, "14358300": 301, "60447267434167e": 301, "018750000000000044": 301, "118644899": 301, "00021106259097525474": 301, "11250000000000004": 301, "107309399": 301, "5266": 301, "8456": 301, "0916": 301, "9118": 301, "4076": 301, "9557": 301, "898u": 301, "2505": 301, "9698": 301, "2088": 301, "540u": [301, 315], "005416832076220722": 301, "76125": 301, "28867740": 301, "066666666666666": 301, "270477702792113e": 301, "0012499999999999734": 301, "120760860": 301, "4721450310969962e": 301, "7788": 301, "8309": 301, "9726": 301, "9291": 301, "3830": 301, "9591": 301, "897u": 301, "2585": 301, "9626": 301, "9646": 301, "565u": 301, "0014949715495567023": 301, "71942640": 301, "177777777777777": 301, "120912000": 301, "308191081116845e": 301, "899u": 301, "7222": 301, "8061": 301, "6367": 301, "8986": 301, "5433": 301, "9480": 301, "3280": 301, "9633": 301, "613u": 301, "2776": 301, "9649": 301, "587u": [301, 315], "0021064906709011514": 301, "56828640": 301, "8219": 301, "8436": 301, "9256": 301, "4170": 301, "9586": 301, "3252": 301, "9659": 301, "2890": 301, "9674": 301, "572u": 301, "0008334987428873892": 301, "2825": 301, "86754360": 301, "931u": 301, "7185": 301, "8259": 301, "0952": 301, "9265": 301, "4467": 301, "3370": 301, "9619": 301, "623u": 301, "3024": 301, "9624": 301, "574u": 301, "0002639936482731243": 301, "106402560": 301, "mediumspringgreen": [301, 319], "solid": [301, 302, 304, 305, 306, 307, 308, 319, 326, 327, 328, 329, 330, 331, 332, 335, 336, 337], "mec": [301, 315, 319, 320, 322, 323, 349], "crimson": [301, 302, 319, 326, 327, 328, 329, 330, 331, 332, 335, 336, 337, 342, 343], "mfc": [301, 315, 319, 349], "darkblu": [301, 319], "green": [301, 315, 319, 324, 326, 327, 328, 333, 335, 336, 337], "oliv": [301, 315, 319, 326, 335, 336, 337], "tomato": [301, 315, 319], "cyan": [301, 315, 319, 324, 326, 335, 336, 337], "dataset_2": 301, "axr": 301, "twinx": 301, "rcparam": [301, 333, 335, 336, 337], "font": [301, 333, 335, 336, 337], "aggregateddatabas": 301, "npz": [301, 302, 320, 322, 323, 326, 327, 328, 329, 330, 331, 332, 335, 336, 337, 349, 351], "xaxi": [301, 351], "set_major_formatt": [301, 351], "1f": [301, 351], "author": 301, "paer": 301, "slighlti": 301, "complexitylogmap": 301, "832": 301, "3840": 301, "17408": 301, "complexitymaxlogmap": 301, "208": 301, "680": 301, "5000": [301, 306, 352], "complexityllrnet": 301, "608": 301, "1472": 301, "normalizedcomplexitymaxlogmap": 301, "normalizedcomplexityllrnet": 301, "throughputlogmap": 301, "throughputmaxlogmap": 301, "throughputllrnet": 301, "59": [301, 329, 330, 331, 337], "normalizedthroughputmaxlogmap": 301, "normalizedthroughputllrnet": 301, "snrdbvalu": 301, "edgecolor": [301, 302, 327, 328, 329, 330, 331, 332, 342], "impract": 301, "onlin": 301, "computation": 301, "fpga": 301, "soc": 301, "bulkier": 301, "shental": 301, "hoydi": [301, 315], "machin": [301, 358, 361], "llrning": 301, "softli": 301, "globecom": 301, "gc": 301, "wkshp": 301, "waikoloa": 301, "usa": 301, "gcwkshps45667": 301, "9024433": 301, "lack": 302, "suffici": 302, "insuffici": 302, "matlib": [302, 328, 329, 330, 331, 332, 334], "io": [302, 328, 329, 330, 331, 332, 334, 357, 358], "spio": [302, 328, 329, 330, 331, 332, 334], "constant": [302, 327, 328, 329, 330, 331, 332, 334], "propterrain": [302, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 346, 348], "numofbss": [302, 327, 329, 330, 332, 334], "nbss": [302, 320, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349], "nue": [302, 320, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349], "ueantarrai": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "bsantarrai": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "mindist": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "ueht": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "bsht": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "bslayouttyp": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 344, 345, 348, 349, 351], "uedroptyp": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 344, 345, 348, 349, 351], "htdist": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 348, 349, 351], "uedist": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 340, 341, 348, 349, 351], "nsectorspersit": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 351], "maxnumfloor": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351], "minnumfloor": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 348, 349, 351], "paramgen": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 345, 348, 349, 351], "130": [302, 309, 327, 329, 330, 332], "numantenna": [302, 322, 323, 324, 327, 328, 329, 330, 331, 332, 334, 339, 342, 343, 346, 348, 349, 351], "srsperiodicityinslot": [302, 329, 330, 332], "srsoffsetinslot": [302, 329, 330, 332], "numuesperslot": [302, 329, 330, 332], "frameindic": [302, 329, 330, 332], "slotindic": [302, 329, 330, 332], "lpath2": 302, "xoaest": [302, 331, 332], "srsgrid": [302, 329, 330, 332], "srsobject": [302, 329, 330, 332], "xgrid": [302, 327, 328, 329, 330, 331, 332, 334, 349], "del": [302, 329, 330, 332], "pt_dbm": [302, 327, 328, 329, 330, 331, 332, 334, 348], "wt": [302, 327, 328, 329, 330, 332, 334], "xf": [302, 320, 324, 325, 327, 328, 329, 330, 331, 332, 334, 349], "xgrid1": [302, 327, 328, 329, 330, 332, 334], "ueindic": [302, 329, 330, 332], "yf": [302, 320, 324, 325, 327, 328, 329, 330, 331, 332, 334, 349], "boltzmanconst": [302, 324, 327, 328, 329, 330, 331, 332, 334], "380649": [302, 324, 327, 328, 329, 330, 331, 332, 334, 348], "temperatur": [302, 324, 327, 328, 329, 330, 331, 332, 334], "300": [302, 324, 327, 328, 329, 330, 331, 332, 334, 339, 342, 348], "noisefiguredbi": [302, 334], "noisefigur": [302, 334], "noisepow": [302, 324, 327, 328, 329, 330, 331, 332, 334], "kppm": [302, 324, 327, 328, 329, 330, 331, 332, 334, 348], "fcfo": [302, 324, 327, 328, 329, 330, 331, 332, 334, 348], "standard_norm": [302, 315, 319, 326, 329, 330, 332, 335, 336, 350], "hfest": [302, 327, 328, 329, 330, 332, 334], "chgrid": [302, 329, 330, 332], "hest": [302, 329, 330, 332, 334], "delayestim": [302, 327, 328, 329, 330], "home": [302, 320, 332, 348, 349], "tenet": [302, 320, 332, 348, 349], "startup": [302, 320, 332, 348, 349], "5g_toolkit": [302, 320, 332, 348, 349, 358], "version15": [302, 320, 332, 349], "hybrid_positioning_in_5g_network": 302, "angle_estim": [302, 332], "104": [302, 329, 331], "runtimewarn": [302, 331, 332], "arcsin": [302, 332], "kx": [302, 332], "ui": [302, 324, 332, 349], "ky": [302, 332], "vi": [302, 332], "rxposit": [302, 327, 328, 329, 330, 331, 332], "error1": 302, "bsindices1": 302, "argsort": [302, 327, 328, 329, 330, 331, 332, 345], "error2": 302, "bsindices2": 302, "error31": 302, "bsindices31": 302, "error32": 302, "bsindices32": 302, "error41": 302, "bsindices41": 302, "error42": 302, "bsindices42": 302, "rxpositionestimate1": 302, "rxpositionestimate2": 302, "rxpositionestimate3": 302, "rxpositionestimate4": 302, "rangeest_2d": [302, 327, 328, 329, 330, 331, 332], "linestyle_tupl": [302, 326, 327, 328, 329, 330, 331, 332, 335, 336, 337], "dash": [302, 326, 327, 328, 329, 330, 331, 332, 335, 336, 337], "dashdot": [302, 326, 327, 328, 329, 330, 331, 332, 335, 336, 337], "loos": [302, 327, 328, 329, 330, 331, 332], "dashdotdot": [302, 327, 328, 329, 330, 331, 332], "circle1": [302, 327, 328, 329, 330, 331, 332], "zorder": [302, 324, 327, 328, 329, 330, 331, 332, 339, 342, 343], "add_artist": [302, 327, 328, 329, 330, 331, 332], "nbin": [302, 327, 328, 329, 330, 331, 332, 345], "xlimit": [302, 327, 328, 329, 330, 331, 332], "ylimit": [302, 327, 328, 329, 330, 331, 332], "poserror2dtdoa": 302, "poserror3dtdoa": 302, "isnan": [302, 327, 328, 329, 330, 331, 332, 334], "bins_count": [302, 327, 328, 329, 330, 331, 332, 345], "histogram": [302, 327, 328, 329, 330, 331, 332, 333, 345], "bin": [302, 327, 328, 329, 330, 331, 332, 333, 345], "pdf": [302, 327, 328, 329, 330, 331, 332, 333, 345], "cdf": [302, 327, 328, 329, 330, 331, 332, 333, 345], "cumsum": [302, 327, 328, 329, 330, 331, 332, 333, 345], "poserror2daoa": 302, "poserror3daoa": 302, "poserror2dhybrid": 302, "poserror3dhybrid": 302, "poserror2dhybrid2": 302, "poserror3dhybrid2": 302, "set_ytick": [302, 305, 320, 322, 323, 325, 327, 328, 329, 330, 331, 332, 334, 349, 351], "magenta": [302, 327, 328, 329, 330, 331, 332], "66": [302, 326, 327, 328, 329, 330, 331, 332, 337], "midnightblu": [302, 325, 327, 328, 329, 330, 331, 332, 334, 342], "cm": [302, 327, 328, 329, 330, 331, 332], "databas": [302, 318, 320, 322, 323, 326, 327, 328, 329, 330, 331, 332, 335, 336, 349, 358], "poserror3dhybridtdoa_aoa": 302, "poserror2dhybridtdoa_aoa": 302, "poserror3dhybridtoa_aoa": 302, "poserror2dhybridtoa_aoa": 302, "fact": 304, "____________________________________________________________________________________________________________________": 304, "maxnumu": [304, 305, 307], "parameter": 304, "agglevelprobdistributionforgoodcoverag": 304, "outcom": 304, "blockag": [304, 318, 358], "probofblockingforgoodcoverag": 304, "enough": 304, "prob": [304, 305, 306, 307, 308, 309, 315, 333, 345], "uealdistribut": [304, 305, 306, 307, 308, 309], "agglevelprobdistributionformediumcoverag": 304, "probofblockingformediumcoverag": 304, "agglevelprobdistributionforextremecoverag": 304, "probofblockingforextremecoverag": 304, "clearli": 304, "recreat": [304, 305, 306, 307, 308, 309], "referenc": [304, 305, 306, 307, 308, 309], "mohammad": [304, 305, 306, 307, 308, 309], "mozaffari": [304, 305, 306, 307, 308, 309], "eric": [304, 305, 306, 307, 308, 309], "kittipong": [304, 305, 306, 307, 308, 309], "kittichokechai": [304, 305, 306, 307, 308, 309], "intuit": [305, 308], "probabilti": [305, 308], "al1": [305, 306], "agglevelprobdistributionforal1": 305, "probofblockingforal1": [305, 306], "al2": [305, 306], "agglevelprobdistributionforal2": 305, "probofblockingforal2": [305, 306], "al4": [305, 306], "agglevelprobdistributionforal4": 305, "probofblockingforal4": [305, 306], "al8": 305, "agglevelprobdistributionforal8": 305, "probofblockingforal8": 305, "al16": 305, "agglevelprobdistributionforal16": 305, "probofblockingforal16": 305, "tick_param": [305, 325, 327, 328, 334], "grid_linewidth": [305, 325, 327, 328, 334], "grid_linestyl": [305, 325, 327, 328, 334], "seper": 306, "supportednumcand": 306, "versu": [306, 307, 308], "incres": 306, "reduct": 306, "benefici": [306, 309], "probail": 306, "bd": [306, 308], "probofblockingforstrategy1": 307, "probofblockingforstrategy2": 307, "outperform": 307, "aproxim": 307, "fewer": 308, "flexibilti": 308, "around": [308, 327, 328, 339, 342, 343, 346], "mincc": [308, 309], "maxcc": [308, 309], "probofblockingrefcas": 308, "ovelap": 308, "almost": 308, "probofblockingbdcase_a": 308, "probofblockingbdcase_b": 308, "prevalindic": 308, "problem": [309, 353, 356, 358, 359, 360], "condidt": 309, "desir": 309, "perspect": 309, "blindli": [309, 325], "therfor": 309, "probofblock": 309, "targetblockingprob": 309, "mincoresetsize5fornumues5": 309, "mincoresetsize10fornumues5": 309, "mincoresetsize15fornumues5": 309, "mincoresetsize20fornumues5": 309, "105": [309, 329], "115": [309, 329], "mincoresetsize5fornumues10": 309, "mincoresetsize10fornumues10": 309, "mincoresetsize15fornumues10": 309, "mincoresetsize20fornumues10": 309, "mincoresetsize5fornumues15": 309, "mincoresetsize10fornumues15": 309, "mincoresetsize15fornumues15": 309, "mincoresetsize20fornumues15": 309, "cleari": 309, "speci": 309, "penguin_mean": 309, "item": 309, "rect": [309, 324], "bar_label": 309, "pad": 309, "ncol": 309, "oppos": 315, "tradit": 315, "alphabet": 315, "ae": 315, "idea": 315, "behind": 315, "intermedi": 315, "faithfulli": 315, "perturb": 315, "hyper": [315, 327, 328], "snr_train": 315, "alreadi": [315, 356, 357, 359], "implment": 315, "softmax": 315, "aposteriori": 315, "oneshot": 315, "n_test": 315, "blockerrorr": 315, "sklearn": 315, "stochast": 315, "neighbor": [315, 320, 329], "tsne": 315, "scikit": 315, "inlin": [315, 320, 325], "gaussiannois": 315, "batchnorm": 315, "sgd": 315, "backend": 315, "snr_db": 315, "generail": 315, "log2": [315, 325], "5714285714285714": 315, "noise_stddev": 315, "symbol_encod": 315, "ey": [315, 324, 346, 349], "9600000": 315, "1500": 315, "train_label": 315, "temp": [315, 345, 348], "train_data": 315, "verifi": [315, 356, 357, 359, 360], "templabel_train": 315, "6634013": 315, "5698954": 315, "7797983": 315, "1647048": 315, "8484082": 315, "5849713": 315, "6844526": 315, "1561517": 315, "3625133": 315, "6378228": 315, "3180495": 315, "1370770": 315, "5104703": 315, "16000": 315, "test_label": 315, "test_data": 315, "temptestlabel": 315, "11519": 315, "4498": 315, "10702": 315, "6711": 315, "2993": 315, "9873": 315, "5688": 315, "normalizeavgpow": 315, "normalizeenergi": 315, "l2_normal": 315, "onehot": 315, "dense1": 315, "dense2": 315, "avg": 315, "stddev": 315, "dense3": 315, "learning_r": 315, "compil": [315, 362], "categorical_crossentropi": 315, "_________________________________________________________________": 315, "param": 315, "input_1": 315, "inputlay": 315, "dense_1": 315, "gaussian_nois": 315, "gaussianno": 315, "ise": 315, "dense_2": 315, "dense_3": 315, "791": [315, 331], "09": 315, "byte": 315, "validation_data": 315, "1172": 315, "3m": [315, 338, 340, 341], "0619": 315, "val_loss": 315, "8036e": 315, "1638e": 315, "0011": 315, "2494e": 315, "0464e": 315, "0000e": 315, "9008e": 315, "7934e": 315, "0910e": 315, "8701e": 315, "5150e": 315, "3850e": 315, "4894e": 315, "9537e": 315, "8190e": 315, "9939e": 315, "6062e": 315, "6521e": 315, "4805e": 315, "6737e": 315, "5437e": 315, "3964e": 315, "1038e": 315, "5104e": 315, "2465e": 315, "3718e": 315, "2150e": 315, "2325e": 315, "2213e": 315, "0728e": 315, "0278e": 315, "3612e": 315, "0515e": 315, "1903e": 315, "2265e": 315, "9100e": 315, "7689e": 315, "8344e": 315, "7145e": 315, "9232e": 315, "5073e": 315, "7231e": 315, "4049e": 315, "3347e": 315, "5009e": 315, "5302e": 315, "3693e": 315, "4082e": 315, "4123e": 315, "5702e": 315, "3058e": 315, "3849e": 315, "src": 315, "callback": 315, "histori": 315, "0x29775d74b80": 315, "channelinput": 315, "channeloutput": 315, "rxinput": 315, "rx1": 315, "rxoutput": 315, "uncom": [315, 330, 342], "snr_linear": 315, "noise_std": 315, "noise_mean": 315, "num_error": 315, "num_sampl": 315, "x_hat": 315, "x_hat_noisi": 315, "y_hat": 315, "sym_estim": 315, "argmax": [315, 324, 331], "517u": 315, "503u": 315, "498375": 315, "567u": 315, "458625": 315, "522u": 315, "4203125": 315, "555u": 315, "38725": 315, "515u": 315, "566u": 315, "3485625": 315, "543u": 315, "3043125": 315, "662u": 315, "2595": 315, "529u": 315, "535u": 315, "2265625": 315, "1879375": 315, "152": 315, "536u": 315, "518u": 315, "122375": 315, "548u": 315, "092": 315, "551u": 315, "0673125": 315, "578u": 315, "544u": 315, "0513125": 315, "512u": 315, "03275": 315, "553u": 315, "02025": 315, "538u": 315, "011375": 315, "520u": 315, "0071875": 315, "504u": 315, "549u": 315, "0045625": 315, "533u": 315, "539u": 315, "0011875": 315, "575u": 315, "00025": 315, "000125": 315, "489u": 315, "527u": 315, "510u": 315, "numdim": 315, "1000000": 315, "mapperobject": [315, 319], "enc": 315, "codedblerhard": [315, 319], "codedblersoft": [315, 319], "uncbit": [315, 319], "spheredecod": [315, 319], "487595": 315, "554942": 315, "450965": 315, "522681": 315, "413592": 315, "49012": 315, "373975": 315, "454293": 315, "334565": 315, "416966": 315, "29465": 315, "378652": 315, "254375": 315, "340119": 315, "215441": 315, "301021": 315, "17943": 315, "261749": 315, "145708": 315, "225524": 315, "114448": 315, "189009": 315, "086905": 315, "154485": 315, "063574": 315, "123722": 315, "045241": 315, "095985": 315, "030357": 315, "072166": 315, "019361": 315, "052022": 315, "011799": 315, "036823": 315, "006764": 315, "024702": 315, "003584": 315, "015639": 315, "001758": 315, "009331": 315, "000827": 315, "005393": 315, "000329": 315, "00284": 315, "000129": 315, "001444": 315, "9e": 315, "000658": 315, "6e": 315, "000263": 315, "plote": 315, "pink": [315, 324, 326, 327, 328, 335, 336, 337], "previou": [315, 358], "retrain": 315, "constellationpoint": 315, "sin": [315, 324, 331, 332, 342, 349], "31m": 315, "x_noisi": 315, "x_embed": 315, "n_compon": 315, "n_iter": 315, "35000": 315, "random_st": 315, "perplex": 315, "fit_transform": 315, "resembl": 315, "ari": 315, "apsk": 315, "shea": 315, "deep": 315, "transact": 315, "cognit": 315, "563": 315, "575": 315, "dec": 315, "2017": 315, "tccn": 315, "2758370": 315, "postprocess": [318, 358], "train": [318, 358], "infer": [318, 358], "llrnet": [318, 358], "64000": [318, 358], "conclus": [318, 352, 358], "redcap": [318, 358], "srcnn": [318, 358], "dncnn": [318, 358], "autoencod": [318, 358], "millimet": [318, 346, 347, 352, 358], "2000": [318, 322, 323, 345, 351, 352, 358], "dist2": [319, 326, 335, 336], "python3_11": [319, 326, 335, 336, 356, 357, 359, 360], "codedberhard": 319, "codedbersoft": 319, "17671": 319, "18611285714285714": 319, "666666666666667": [319, 320, 322], "12653": 319, "14775285714285713": 319, "3333333333333335": [319, 322], "081805": 319, "11270857142857142": 319, "0436425": 319, "07803428571428571": 319, "333333333333333": [319, 320, 322, 323], "0185": 319, "04909714285714286": 319, "666666666666666": [319, 320, 322], "0063725": 319, "027304285714285715": 319, "0014125": 319, "01259": 319, "333333333333332": [319, 349], "000145": 319, "004475714285714286": 319, "5e": 319, "0011442857142857142": 319, "00018": 319, "demonst": [319, 338, 339, 340, 341, 343, 344, 346], "assess": 320, "made": [320, 329], "especi": [320, 339], "valuabl": 320, "behavior": 320, "flow": [320, 322, 323, 326, 335, 336], "bsarraygeometri": [320, 325], "uearraygeometri": [320, 325], "agglevel": [320, 325], "startsymindex": [320, 325], "nonzero": [320, 325], "fdr1": 320, "fdr2": 320, "fdr4": 320, "fdr8": 320, "fdr16": 320, "65518": 320, "numpdcchsymbol": 320, "numpdcchdmr": [320, 325], "rmpdcch": 320, "hp": [320, 325], "channelest": 320, "equalized_sym": 320, "rdcibit": 320, "965": 320, "765": 320, "6666666666666665": [320, 322], "333333333333334": [320, 322, 323], "666666666666668": [320, 323, 349], "link_level_and_system_level_simulation_for_physical_downlink_control_channel": 320, "825": 320, "444444444444445": [320, 322, 323, 349], "31499999999999995": 320, "888888888888889": [320, 323], "03500000000000003": 320, "7777777777777777": [320, 322], "8888888888888893": [320, 322], "745": 320, "020000000000000018": 320, "6666666666666679": 320, "975": 320, "44999999999999996": 320, "222222222222221": [320, 349], "05500000000000005": 320, "111111111111111": [320, 322], "555555555555557": [320, 323], "7777777777777786": [320, 322], "ls1": [320, 322, 323], "ls2": [320, 322, 323], "ls3": [320, 322, 323], "ytck": [320, 322, 323, 349, 351], "tile": [320, 322, 323, 331, 349, 351], "pdcch_ll": 320, "hello1": 321, "stand": [322, 323, 334], "manipul": [322, 323, 334], "signular": [322, 323, 334], "ant": [322, 323, 351], "strutur": [322, 323, 351], "intial": [322, 323, 334], "kpi": [322, 323, 351], "ptc": [322, 323, 348, 351], "ygrid": [322, 323, 351], "rgrid": [322, 323, 351], "pdschdeclowerphi": [322, 351], "temp1": 322, "temp2": 322, "566720": 322, "32999999999999996": 322, "2712160": 322, "0000000005": 322, "16000000000000003": 322, "3400319": 322, "030000000000000027": 322, "3926560": 322, "4007520": 322, "4048000": [322, 323], "222222222222222": 322, "78080": 322, "00000000007": 322, "5555555555555554": 322, "624639": 322, "9999999997": 322, "1952000": 322, "7808000": 322, "89": [322, 329, 330, 331, 336], "1295360": 322, "8888888888888888": [322, 336], "11776000": 322, "6666666666666667": 322, "4444444444444446": 322, "2222222222222223": 322, "775": 322, "5299200": 322, "23434240": 322, "23552000": 322, "filenam": [322, 323, 327, 328, 329, 330, 331, 332, 349, 351], "snrdba": [322, 323], "codedbera": [322, 323], "blera": [322, 323], "throughputa": [322, 323], "xticksa": [322, 323], "numdb": [322, 323], "cbbeamform": 323, "lmobject": 323, "rcodeword1": 323, "rcodeword2": 323, "bits_1": 323, "descrobject1": 323, "decscrambledbits1": 323, "bits_2": 323, "descrobject2": 323, "decscrambledbits2": 323, "decscrambledout": 323, "777777777777778": 323, "555555555555555": [323, 349], "1111111111111107": 323, "777777777777779": 323, "1212000": 323, "0000000002": 323, "2828000": 323, "6060000": 323, "8080000": 323, "111111111111114": 323, "6024000": 323, "12048000": 323, "88888888888889": [323, 349], "77777777777778": [323, 349], "44444444444444": 323, "15662400": 323, "333333333333336": 323, "24096000": 323, "22222222222223": 323, "type1sp": 323, "focus": 324, "timeinterv": [324, 349], "endpoint": [324, 349, 351], "secangl": [324, 349], "antloc": [324, 331, 349], "nbm": [324, 349], "steeringvector": [324, 331, 349], "beamvector": [324, 331, 349], "numrxbeam": [324, 349], "ssbesti": [324, 349], "log10": [324, 333, 339, 342, 343, 345, 346], "183": 324, "bestbeam": 324, "ueindex": [324, 327, 328, 331, 334, 339, 346], "lightblu": 324, "black": [324, 326, 327, 328, 333, 335, 336, 337], "075": 324, "bottom": 324, "121": [324, 329], "ax2": 324, "idx": [324, 327, 328, 329, 330, 331, 332, 342, 349], "argwher": [324, 349], "numbeam": [324, 331], "beamangl": 324, "nbeam": 324, "arctan2": 324, "set_rmax": 324, "set_rtick": 324, "radial": 324, "set_rlabel_posit": 324, "set_thetagrid": 324, "450": 324, "transimt": 325, "pdcchcandidateblinddecod": 325, "nofdmsymperslot": 325, "nsc": 325, "numcandidatesper": 325, "ssobj": 325, "uecand": 325, "uecc": 325, "numpdcchsym": 325, "kmax": 325, "pdcchobj": 325, "mapp": 325, "nsymbol": 325, "3240": 325, "palegreen": [325, 327, 328, 334, 342, 343], "lightcor": [325, 327, 328, 334, 342], "listedcolormap": [325, 327, 328, 334], "boundarynorm": [325, 327, 328, 334], "numsym": 325, "snrbd": 325, "equalizedgrid": 325, "intiat": 325, "bdobj": 325, "unsuccess": 325, "solomon": 326, "walsh": 326, "hadamard": 326, "testabl": [326, 350], "character": [326, 350], "mpl_toolkit": [326, 335, 336, 337, 345], "axes_grid1": [326, 335, 336, 337, 345], "inset_loc": [326, 335, 336, 337], "zoomed_inset_ax": [326, 335, 336, 337], "mark_inset": [326, 335, 336, 337], "folow": [326, 335, 336], "500000": [326, 335, 336], "montecarloiter": [326, 335, 336, 350], "kindex": [326, 335], "0886": 326, "012": 326, "0002": 326, "2209": 326, "087": 326, "011": 326, "0003": 326, "22253333333333333": 326, "09186666666666667": 326, "014066666666666667": 326, "0003333333333333333": 326, "2183": 326, "0982": 326, "01245": 326, "21296": 326, "0866": 326, "01604": 326, "00064": 326, "22046666666666667": 326, "08643333333333333": 326, "013": [326, 332], "0005333333333333334": 326, "422": 326, "29897142857142855": 326, "12937142857142858": 326, "016457142857142858": 326, "419075": 326, "31415": 326, "13155": 326, "017875": 326, "00015": 326, "41706666666666664": 326, "3154888888888889": 326, "13177777777777777": 326, "014177777777777777": 326, "0003111111111111111": 326, "42402": 326, "31048": 326, "12976": 326, "016": 326, "00034": 326, "42805454545454547": 326, "31236363636363634": 326, "1381090909090909": 326, "0156": 326, "0001818181818181818": 326, "reliablilti": [326, 335, 336, 350], "99990": [326, 335, 336], "99999": 326, "poorer": 326, "color_tupl": [326, 335, 336, 337], "orang": [326, 335, 336, 337, 342], "brown": [326, 327, 328, 335, 336, 337], "grai": [326, 335, 336, 337], "markcolor_tupl": [326, 335, 336, 337], "navi": [326, 335, 336, 337], "yellow": [326, 327, 328, 335, 336, 337], "springgreen": [326, 335, 336, 337], "aqua": [326, 335, 336, 337], "marker_tupl": [326, 335, 336, 337], "flip": [326, 335, 336, 337], "markers": [326, 335, 336, 337, 344], "bern": 326, "bervssnr": [326, 362], "axin": 326, "axins2": 326, "want": 326, "trial": [326, 356, 359, 360], "elegantli": 326, "date": 326, "x1": 326, "x2": 326, "y1": [326, 342], "1295": 326, "y2": [326, 342], "13375": 326, "xtick": [326, 351], "ytick": 326, "loc1": 326, "loc2": 326, "ec": 326, "0127": 326, "01325": 326, "150": [327, 332], "foe": [327, 328, 330, 331], "inturn": [327, 328, 330, 331], "tool": [327, 328, 330, 331], "rd": [327, 328, 330, 331], "parti": [327, 328, 330, 331], "quadriga": [327, 328, 330, 331], "efficaci": [327, 328, 330, 331, 332], "veric": [327, 328, 330, 331, 332], "150000000": 327, "200m": [327, 328], "35m": [327, 328, 331], "hertizian": [327, 328, 331], "960x480": [327, 328, 342, 343, 344, 348], "axes3d": [327, 328, 342, 343, 344, 348], "231": [327, 331], "numbssperslot": [327, 328, 331], "darkorang": [327, 328], "get_cmap": [327, 328], "gist_rainbow": [327, 328], "fontweight": [327, 328], "bold": [327, 328], "borderaxespad": [327, 328], "resour": [327, 328, 331, 334], "1020": [327, 328, 331], "bsindex": [327, 328, 331, 334, 339, 346], "grid_alpha": [327, 334], "heatmap": [327, 334, 346, 347, 352, 358], "dbm": [327, 328, 331, 348], "bemform": [327, 328, 331], "lb": [327, 328, 331], "lue": [327, 328, 331], "k_b": [327, 328, 331], "boltzmann": [327, 328, 331], "ppm": [327, 328, 331], "antidx": [327, 328], "splrep": [327, 328], "splev": [327, 328], "sa": [327, 328], "hfint": [327, 328], "prsindic": [327, 328, 331], "tck": [327, 328], "amp": [327, 328], "der": [327, 328], "unwrap": [327, 328, 339], "yeild": [327, 328], "suffic": [327, 328], "avaiabl": [327, 328], "te": [327, 328], "intersect": [327, 328, 329, 332], "correspsond": [327, 328], "locus": [327, 328, 332], "potenti": [327, 328, 332], "measnur": [327, 328, 331], "inaccuract": [327, 328, 331], "compromis": [327, 328, 331], "somehow": [327, 328, 331], "bsindic": [327, 328, 329, 330, 331, 332], "rxstdestim": [327, 328, 329, 330], "kbestindic": [327, 328, 329, 330, 331, 332], "accurci": [327, 328, 331], "disclaim": 327, "intract": [327, 330, 331, 332, 342], "perfrorm": [327, 328, 331], "percentil": [327, 328, 331], "ththan": [327, 328, 331], "5cm": [327, 328], "0cm": [327, 328], "6cm": [327, 328], "1cm": [327, 328], "poserror3d": [327, 328, 329, 330, 331, 332], "poserror2d": [327, 328, 329, 330, 331, 332], "dltdoa": [327, 328], "savez": [327, 328, 329, 330, 331, 332, 349], "bsarraystructur": [327, 328, 329, 330, 331, 332], "uearraystructur": [327, 328, 329, 330, 331, 332], "ioo_20m_fr1": 327, "f_c": [327, 328, 331, 338, 340, 341, 344, 348], "terrian": [327, 328, 331], "squrar": [328, 331], "eqaul": [328, 331], "30000000": [328, 331], "argmin": [328, 329, 331], "siteindic": [328, 329, 331], "dltoa": 328, "gp": 329, "atom": 329, "centimet": 329, "hyperboloid": 329, "face": 329, "ultra": 329, "emerg": [329, 331], "asset": [329, 331, 332], "10m": [329, 343], "5km": [329, 343], "57": [329, 330, 331, 337], "58": [329, 330, 331, 337], "62": [329, 330, 331, 337], "68": [329, 330, 331, 337], "71": [329, 330, 331, 337], "73": [329, 330, 331, 337], "76": [329, 330, 331, 337], "77": [329, 330, 331, 337], "78": [329, 330, 331, 337], "79": [329, 330, 331, 337], "82": [329, 330, 331, 337], "83": [329, 330, 331, 336, 337], "91": [329, 330, 331], "93": [329, 330, 331], "102": 329, "103": [329, 332], "106": [329, 331], "107": 329, "108": 329, "109": 329, "111": 329, "113": 329, "114": 329, "116": 329, "117": 329, "118": 329, "123": 329, "124": 329, "126": 329, "ultdoa": 329, "poserror3da": 329, "poserror2da": 329, "4215363": 330, "78032138": 330, "50797252": 330, "16600051": 330, "90443573": 330, "47474593": 330, "74856967": 330, "4471635": 330, "54521712": 330, "55050478": 330, "43931444": 330, "13662121": 330, "85489926": 330, "08774903": 330, "52755895": 330, "82279784": 330, "13361618": 330, "52349518": 330, "5575103": 330, "19681135": 330, "26737552": 330, "60794566": 330, "99476197": 330, "36027376": 330, "31028088": 330, "81732425": 330, "54359212": 330, "52461434": 330, "94843593": 330, "63401437": 330, "94944578": 330, "86232628": 330, "53715152": 330, "19626289": 330, "6363511": 330, "54316006": 330, "7766177": 330, "35418832": 330, "55182393": 330, "43763633": 330, "87677854": 330, "62842819": 330, "10258347": 330, "4317454": 330, "59871804": 330, "45307278": 330, "21452399": 330, "50998389": 330, "6464587": 330, "29464303": 330, "48682503": 330, "7587386": 330, "66229737": 330, "3835427": 330, "09971438": 330, "38507528": 330, "56703222": 330, "27252005": 330, "49408869": 330, "51767149": 330, "50213423": 330, "48030113": 330, "45949887": 330, "34462303": 330, "70412479": 330, "55940963": 330, "73676558": 330, "92578187": 330, "53169568": 330, "8547753": 330, "25440928": 330, "98212604": 330, "19296202": 330, "54132648": 330, "32365498": 330, "77500617": 330, "42255216": 330, "09675432": 330, "67607949": 330, "57987014": 330, "6925936": 330, "64046494": 330, "46865462": 330, "10059595": 330, "76752975": 330, "5878385": 330, "98563099": 330, "57898981": 330, "35617641": 330, "71111502": 330, "62758124": 330, "53094812": 330, "53053351": 330, "28051672": 330, "58516008": 330, "23063984": 330, "5500853": 330, "70358831": 330, "78052461": 330, "65531585": 330, "03970877": 330, "94894052": 330, "94009105": 330, "54089155": 330, "46149577": 330, "30705674": 330, "50187354": 330, "81744142": 330, "20506424": 330, "34471406": 330, "6483784": 330, "82144281": 330, "65057101": 330, "96426838": 330, "84613361": 330, "52809127": 330, "88183982": 330, "11692189": 330, "58092568": 330, "93255383": 330, "38596413": 330, "59088241": 330, "25763775": 330, "68921659": 330, "20074089": 330, "81871701": 330, "69916647": 330, "53817887": 330, "51638345": 330, "47014703": 330, "40071319": 330, "2191626": 330, "51207671": 330, "39257366": 330, "03684626": 330, "84860336": 330, "54572661": 330, "25958808": 330, "2801732": 330, "54925611": 330, "33437177": 330, "97326886": 330, "40693121": 330, "77308687": 330, "55953016": 330, "54205399": 330, "37610009": 330, "69339739": 330, "55662449": 330, "70189609": 330, "91514189": 330, "36600061": 330, "04513222": 330, "16133817": 330, "44517894": 330, "7716385": 330, "06307136": 330, "74075402": 330, "88460837": 330, "18871943": 330, "56949855": 330, "38266674": 330, "41449171": 330, "7346757": 330, "03350867": 330, "10186089": 330, "53488833": 330, "22157414": 330, "90806661": 330, "52708948": 330, "68240337": 330, "3120393": 330, "54565456": 330, "28301869": 330, "33792782": 330, "45110431": 330, "53908043": 330, "85546729": 330, "78521653": 330, "48409296": 330, "22177424": 330, "57523293": 330, "15941007": 330, "78749999": 330, "73683759": 330, "44544035": 330, "86865145": 330, "64336069": 330, "35673933": 330, "56513093": 330, "5104806": 330, "60731411": 330, "82421342": 330, "51323781": 330, "55865781": 330, "25305943": 330, "56305746": 330, "95872640e": 330, "77777011e": 330, "40148740e": 330, "80487407": 330, "82597089": 330, "52462734": 330, "84607066": 330, "53499602": 330, "57322733": 330, "82271079": 330, "36624418": 330, "4931076": 330, "59937911": 330, "16257303": 330, "65244339": 330, "67199244": 330, "76979372": 330, "55504678": 330, "27434072": 330, "58968042": 330, "54840076": 330, "35417842": 330, "89519595": 330, "68217251": 330, "26139614": 330, "94628174": 330, "3467783": 330, "99286639": 330, "44242967": 330, "14347406": 330, "28613448": 330, "30173949": 330, "64951933": 330, "51189734": 330, "56883229": 330, "00950839": 330, "39584732": 330, "62997557": 330, "68447328": 330, "15068034": 330, "34475186": 330, "46649924": 330, "09782035": 330, "79949224": 330, "51584499": 330, "79591351": 330, "6532013": 330, "39373625": 330, "0590222": 330, "11642352": 330, "55516197": 330, "65251898e": 330, "69197461e": 330, "27168134e": 330, "29946676": 330, "58691584": 330, "49303903": 330, "97450764": 330, "12167271": 330, "55384096": 330, "20689123": 330, "74646458": 330, "46958445": 330, "92385396": 330, "92520705": 330, "56564703": 330, "25366506": 330, "25672017": 330, "54979235": 330, "51188666": 330, "02819049": 330, "5397252": 330, "21662599": 330, "9655319": 330, "8884634": 330, "69419361": 330, "36651313": 330, "93550523": 330, "17105725": 330, "34864251": 330, "56813769": 330, "42779779": 330, "99143863": 330, "96956844": 330, "4434574": 330, "27896067": 330, "60876896": 330, "25819762": 330, "89316955": 330, "57901224": 330, "01349784": 330, "85114446": 330, "5497744": 330, "2879282": 330, "76396538": 330, "44778045": 330, "70869654": 330, "65021639": 330, "49618658": 330, "13428528": 330, "31297916": 330, "39113546": 330, "ultoa": 330, "triangul": [331, 332], "wider": 331, "deliveri": [331, 332], "awar": [331, 332], "nearestndinterpol": 331, "make_interp_splin": 331, "pchipinterpol": 331, "akima1dinterpol": 331, "position_estim": 331, "100m": 331, "1732": 331, "dbp": [331, 342, 345], "3958": 331, "406982421875": 331, "nbeamsphi": 331, "nbeamstheta": 331, "phimean": 331, "phistd": 331, "thetamean": 331, "thetastd": 331, "azimuthgrid": 331, "elevationgrid": 331, "markerlin": 331, "stemlin": 331, "baselin": 331, "stem": [331, 338, 339, 340, 341, 344, 346], "azimuthgridnew": 331, "rsrpnew": 331, "set_linewidth": 331, "set_markers": 331, "set_linestyl": 331, "beamindic": [331, 349], "std": [331, 332], "359": 331, "01876144": 331, "417": 331, "47088924": 331, "41016588": 331, "78669819": 331, "174": 331, "58115965": 331, "51680364": 331, "779": [331, 350], "10774189": 331, "81345912": 331, "66695834": 331, "182": [331, 362], "05063066": 331, "279": 331, "76018999": 331, "4014134": 331, "97485771": 331, "725": [331, 351], "42467735": 331, "03582379": 331, "418": 331, "68949763": 331, "63860667": 331, "95735549": 331, "347": 331, "31445659": 331, "203": 331, "84958682": 331, "62075529": 331, "395": 331, "13081408": 331, "3275688": 331, "66068703": 331, "305": 331, "60487736": 331, "776": 331, "44800372": 331, "75456728": 331, "576": 331, "9003876": 331, "71920292": 331, "06830207": 331, "334": 331, "75067944": 331, "262": 331, "58239455": 331, "19317779": 331, "18868112": 331, "28143355": 331, "66991935": 331, "679": 331, "37966381": 331, "481": 331, "38075781": 331, "23397206": 331, "318": 331, "50683548": 331, "15121481": 331, "32300754": 331, "559": 331, "30578699": 331, "215": 331, "5184474": 331, "09216752": 331, "2368": 331, "5875262": 331, "635": 331, "42440274": 331, "81445601": 331, "1906": 331, "8665596": 331, "68524732": 331, "46693427": 331, "2590": 331, "51569143": 331, "431": 331, "75573784": 331, "31983926": 331, "1456": 331, "77187222": 331, "12215914": 331, "07774653": 331, "2382": 331, "16254384": 331, "21674582": 331, "19592682": 331, "1387": 331, "33095929": 331, "543": 331, "99864225": 331, "32340611": 331, "2055": 331, "50388465": 331, "28497084": 331, "3900648": 331, "1158": 331, "26048815": 331, "414": 331, "02959409": 331, "72228914": 331, "81287085": 331, "93856921": 331, "17215767": 331, "2052": 331, "24832918": 331, "741": 331, "11608934": 331, "39182262": 331, "1647": 331, "43827205": 331, "602": 331, "81414949": 331, "44005139": 331, "2471": 331, "5986077": 331, "3680525": 331, "59277088": 331, "1327": 331, "23205468": 331, "134": 331, "94130645": 331, "83156608": 331, "2236": 331, "41048839": 331, "15011382": 331, "85800926": 331, "1410": 331, "0594": 331, "437": 331, "43269124": 331, "12643322": 331, "1663": 331, "09387474": 331, "1634": 331, "92986144": 331, "85570637": 331, "75362162": 331, "1409": 331, "41515279": 331, "92185182": 331, "70080146": 331, "1651": 331, "31026302": 331, "07257801": 331, "486": 331, "97779167": 331, "71374113": 331, "86127804": 331, "19397683": 331, "1350": 331, "02714357": 331, "45520646": 331, "1402": 331, "61079238": 331, "1559": 331, "69378179": 331, "22889458": 331, "813": 331, "04515911": 331, "1935": 331, "29235127": 331, "92112269": 331, "1486": 331, "22465188": 331, "1009": 331, "23907728": 331, "53187137": 331, "36130781": 331, "1110": 331, "40170535": 331, "75877958": 331, "1262": 331, "66757708": 331, "2198": 331, "21464019": 331, "35152197": 331, "1221": 331, "4887303": 331, "1288": 331, "78872932": 331, "44011282": 331, "19047402": 331, "1394": 331, "60711561": 331, "07534023": 331, "542": 331, "46449497": 331, "984": 331, "70649096": 331, "42142474": 331, "790": 331, "239718": 331, "1301": 331, "40456874": 331, "99330555": 331, "860": 331, "14610741": 331, "1735": 331, "78429058": 331, "64408335": 331, "969": 331, "48684934": 331, "2404": 331, "42615328": 331, "58621319": 331, "1134": 331, "82147955": 331, "2294": 331, "01818634": 331, "45202281": 331, "342": 331, "9157313": 331, "1679": 331, "30515952": 331, "57225551": 331, "730": 331, "84942838": 331, "736": 331, "3472413": 331, "94300512": 331, "816": 331, "78895508": 331, "1609": 331, "24331023": 331, "97490925": 331, "177": 331, "88119986": 331, "1149": 331, "67488905": 331, "53432483": 331, "547": 331, "69956874": 331, "1873": 331, "02627622": 331, "21545543": 331, "352": 331, "33454538": 331, "2009": 331, "3689197": 331, "74280221": 331, "1730": 331, "56175809": 331, "1290": 331, "26476032": 331, "26835123": 331, "283": 331, "45938857": 331, "935": 331, "10717211": 331, "90767655": 331, "1229": 331, "1693352": 331, "1399": 331, "97775435": 331, "17238544": 331, "1102": 331, "92491167": 331, "1531": 331, "1702206": 331, "49089528": 331, "693": 331, "17734376": 331, "29430399": 331, "07834947": 331, "1982": 331, "29472944": 331, "97878568": 331, "65760135": 331, "2142": 331, "39537827": 331, "647": 331, "3928471": 331, "40096387": 331, "2412": 331, "80617459": 331, "58952957": 331, "7406165": 331, "2063": 331, "61114326": 331, "627": 331, "06836296": 331, "50960189": 331, "2251": 331, "37727569": 331, "294": 331, "62929819": 331, "42629727": 331, "2406": 331, "30027313": 331, "389": 331, "6391116": 331, "37741679": 331, "2376": 331, "10349713": 331, "616": 331, "55458813": 331, "633375": 331, "1881": 331, "49272956": 331, "95006205": 331, "8512651": 331, "1616": 331, "3788927": 331, "57797906": 331, "53307558": 331, "2246": 331, "83339547": 331, "672": 331, "96263995": 331, "05195825": 331, "1493": 331, "37269841": 331, "65312303": 331, "51736564": 331, "2333": 331, "13188826": 331, "99405237": 331, "98471568": 331, "1893": 331, "04890434": 331, "280": 331, "7433992": 331, "83153548": 331, "1711": 331, "31276025": 331, "917": 331, "93176809": 331, "24532617": 331, "684": 331, "50866104": 331, "1814": 331, "1033381": 331, "20054161": 331, "667": 331, "31562928": 331, "2273": 331, "74722883": 331, "150375": 331, "1144": 331, "31590136": 331, "2016": 331, "75718266": 331, "42903418": 331, "569": 331, "4109725": 331, "883": 331, "99722987": 331, "03101273": 331, "1076": 331, "19568404": 331, "2114": 331, "78498633": 331, "00410155": 331, "461": 331, "4559225": 331, "1333": 331, "63924489": 331, "11010613": 331, "1695": 331, "36953111": 331, "65305988": 331, "45221372": 331, "695": 331, "08475296": 331, "1744": 331, "0502098": 331, "9867078": 331, "1197": 331, "41226215": 331, "755": 331, "22717687": 331, "93978465": 331, "23904268": 331, "1415": 331, "12273306": 331, "62348287": 331, "186": 331, "27005466": 331, "1615": 331, "65180073": 331, "31867804": 331, "799": 331, "31871766": 331, "1725": 331, "4556035": 331, "29838114": 331, "67700583": 331, "1637": 331, "65770434": 331, "57990531": 331, "1505": 331, "83197435": 331, "1375": 331, "59758004": 331, "85237886": 331, "1201": 331, "76762636": 331, "1122": 331, "7141471": 331, "37681137": 331, "1281": 331, "41068836": 331, "1652": 331, "65774792": 331, "63387359": 331, "762": 331, "21947203": 331, "999": 331, "14308765": 331, "21407282": 331, "253": 331, "13034854": 331, "2074": 331, "25781085": 331, "30823231": 331, "1377": 331, "79550784": 331, "1810": 331, "07727844": 331, "19178143": 331, "469": 331, "66045386": 331, "53616327": 331, "24595016": 331, "1272": 331, "20853414": 331, "1058": 331, "99189859": 331, "7584014": 331, "1418": 331, "51259671": 331, "2154": 331, "39879911": 331, "08808944": 331, "1307": 331, "051491": 331, "1184": 331, "32848574": 331, "85571692": 331, "998": 331, "14092356": 331, "1608": 331, "59937354": 331, "46111491": 331, "1244": 331, "89130973": 331, "1911": 331, "9021219": 331, "96026782": 331, "1332": 331, "68917835": 331, "1022": 331, "5080149": 331, "65556915": 331, "32076588": 331, "1645": 331, "18490969": 331, "31428473": 331, "239": 331, "27480029": 331, "1127": 331, "49411185": 331, "71727841": 331, "dlaod": 331, "tmp": 331, "ipykernel_56393": 331, "3860440226": 331, "360": [332, 342, 348], "angle_based_posit": 332, "ro": 332, "ulaoa": 332, "apart": 333, "wi": 333, "fi": 333, "lte": [333, 348], "evolut": 333, "wimax": 333, "chapter": 333, "roman": 333, "binsiz": 333, "cdfofdm": 333, "bincountofdm": 333, "samplespow": 333, "avgpoweroutput": 333, "peakpoweroutput": 333, "pointpaproutput": 333, "countout": 333, "bins_countout": 333, "loop": [333, 345], "cumul": [333, 345], "papr_ofdm": 333, "cdfdft": 333, "bincountdft": 333, "ortho": [333, 338, 340, 341, 346, 348], "00001": 333, "papr_dft": 333, "papr_comparison": 333, "3000": 333, "symbolperiod": 333, "symbolperiodcp": 333, "scscp": 333, "sf2": 333, "60000": 334, "599": 334, "rep": 334, "pcolor": 334, "txantidx": 334, "rxantidx": 334, "symbindex": 334, "hideal": 334, "0000285": 334, "0000325": 334, "maxrank": 334, "condition_numb": 334, "repsect": 335, "27399998903274536": 335, "08749999850988388": 335, "0020000000949949026": 335, "4251999855041504": 335, "17100000381469727": 335, "00559999980032444": 335, "48124998807907104": 335, "453000009059906": 335, "18912500143051147": 335, "004999999888241291": 335, "48818182945251465": 335, "4808181822299957": 335, "42027273774147034": 335, "049272727221250534": 335, "49235713481903076": 335, "4894285798072815": 335, "47942855954170227": 335, "24899999797344208": 335, "004142857156693935": 335, "polar_bervssnr": 335, "rindex": [336, 337], "3305785123966942": 336, "2787500023841858": 336, "011250000447034836": 336, "32124999165534973": 336, "26625001430511475": 336, "16875000298023224": 336, "02250000089406967": 336, "7547169811320755": 336, "32749998569488525": 336, "29249998927116394": 336, "2175000011920929": 336, "15625": 336, "036249998956918716": 336, "32249999046325684": 336, "2874999940395355": 336, "2537499964237213": 336, "17624999582767487": 336, "07874999940395355": 336, "tbindex": 336, "31975001096725464": 336, "2562499940395355": 336, "15012499690055847": 336, "0017500000540167093": 336, "32233333587646484": 336, "2644583284854889": 336, "15429165959358215": 336, "3272361159324646": 336, "2646944522857666": 336, "16170834004878998": 336, "3237692415714264": 336, "2660336494445801": 336, "16290384531021118": 336, "30405065417289734": 336, "24077533185482025": 336, "1438588947057724": 336, "fixx": 336, "ber_vs_snr": 336, "ldpc_bervssnr_fin": 336, "ber_vs_tbsiz": 336, "ldpc_bervssnr_tbsiz": 336, "ldpc_bervssnr0": 337, "ldpc_bervssnr": 337, "snrvsber_ldpc": 337, "_g": [338, 340, 341], "6m": [338, 340, 341], "4m": [338, 340, 341], "nsnapshot": [338, 339, 340, 341, 342, 343, 344, 345, 346], "bsgeometri": [338, 340, 341], "immendi": [338, 339, 340, 341, 342, 343, 344, 346], "ceilinght": [338, 340, 341], "clutterht": [338, 340, 341], "clutterden": [338, 340, 341], "0x7f929a1a3fd0": 338, "pl": [338, 340, 341, 344], "xpr": [338, 339, 340, 341, 342, 343, 344, 346], "hb": [338, 339, 343, 346], "bandlimit": [338, 340, 341, 344], "widen": [338, 340, 341, 344], "ht": [338, 339, 340, 341, 344, 346], "stabil": 339, "behav": 339, "engin": 339, "throughout": 339, "unchang": 339, "250": [339, 342, 343], "motion": [339, 342, 343, 346], "isinitlocationrandom": [339, 342], "isinitorientationrandom": [339, 342], "snapshotinterv": [339, 342, 343], "enablespatialconsist": [339, 342, 343, 346], "initialloc": [339, 342, 343], "0x7fca11a9ef10": 339, "coeffic": [339, 342, 343, 346], "efficeint": [339, 342, 343, 346], "coefficeint": [339, 342, 343, 346], "hue": [339, 342, 343, 345, 346], "bsantindex": [339, 346], "ueantindex": [339, 346], "inidc": [339, 346], "hdoppler": 339, "snapindex": [339, 346], "tau0": 339, "9999": 339, "0x7fd999829f10": 340, "0x7f73c2c5ea10": 341, "ruralmacro": 342, "ue2antarrai": 342, "ueroute2": 342, "0x7f7940973750": 342, "2638": 342, "93798828125": 342, "intiti": [342, 343], "discalim": 342, "wrapto30": 342, "ang": 342, "wrap": 342, "plotlayout": 342, "delangl": 342, "colour": 342, "hex": 342, "regularpolygon": 342, "numvertic": 342, "add_patch": 342, "wedg": 342, "theta1": 342, "theta2": 342, "bounddist": 342, "y0": 342, "past": 342, "loaction": 342, "grater": 342, "scenrio": 343, "everyth": [343, 356, 357, 359], "scerario": 343, "0x7fb96d21c390": 343, "milli": 343, "displayarrai": 344, "0x7f4c0d32b050": 344, "numcarrierfrequ": 344, "make_axes_locat": 345, "ceilingheight": 345, "plo": 345, "dist": 345, "proboflo": 345, "problo": 345, "10001": 345, "emper": 345, "aoaspread": 345, "aodspread": 345, "zoaspread": 345, "zodspread": 345, "10km": 345, "2199": 345, "114990234375": 345, "400634765625": 345, "count_sf": 345, "bins_count_sf": 345, "tau": [345, 346], "sigma_": 345, "count_kf": 345, "bins_count_kf": 345, "k_f": 345, "log_": 345, "count_phiaoa": 345, "bins_count_phiaoa": 345, "pdf_phiaoa": 345, "cdf_phiaoa": 345, "count_phiaod": 345, "bins_count_phiaod": 345, "pdf_phiaod": 345, "cdf_phiaod": 345, "count_thetaaoa": 345, "bins_count_thetaaoa": 345, "pdf_thetaaoa": 345, "cdf_thetaaoa": 345, "count_thetaaod": 345, "bins_count_thetaaod": 345, "pdf_thetaaod": 345, "cdf_thetaaod": 345, "signific": [346, 348], "neglig": 346, "aris": 346, "natur": 346, "impli": 346, "subset": 346, "inact": 346, "irrelev": 346, "focu": 346, "respond": 346, "rich": [346, 358], "scindex": 346, "oversamplingfactortx": 346, "oversamplingfactorrx": 346, "ftx": 346, "frx": 346, "hbeam": 346, "txantenna": 346, "rxantenna": 346, "genar": [347, 352, 358], "rough": [347, 352], "charaterist": [347, 352], "sparsiti": [347, 352, 358], "realist": [347, 352, 358], "incapsul": 348, "topic": 348, "condsid": 348, "nt_x": 348, "nt_y": 348, "considerd": 348, "mont": 348, "carlo": 348, "msg2": 348, "msg4": 348, "iab": 348, "mt": 348, "spare": 348, "unus": 348, "resourceset0": 348, "space0": 348, "bfangl": 348, "abf": 348, "x_beam": 348, "pt_a": 348, "nsymbforschedul": 348, "startofdmsymbolindic": 348, "iscustombeamform": 348, "htime": 348, "numfreq": 348, "k_bolt": 348, "yn": 348, "raster": 348, "boundri": 348, "rxarrai": 348, "rxcombin": 348, "combinertyp": 348, "numdftbeam": 348, "8183": 348, "ylim": 348, "firstsymbolindic": 348, "tranmit": 348, "version14": 348, "hurrai": 348, "ohh": 348, "470": 348, "pbchresequencebit": 348, "004629629629629629": 348, "rxbeamidx": 349, "bool_": 349, "yr": 349, "snr_vs_bler": 349, "link_level_and_system_level_simulation_for_physical_broadcast_channel": 349, "19999999999999996": 349, "07999999999999996": 349, "040000000000000036": 349, "11111111111111": 349, "dataset": [349, 352, 358], "_nr": 349, "cyclicshifthop": 350, "pucchformat0": 350, "pucchformat0decod": 350, "mcsestim": 350, "maxprb": 350, "initialc": 350, "validhoppinginfo": 350, "interlacedrb": 350, "refnum": 350, "853": 350, "pucchformat0obj": 350, "pucchformat0grid": 350, "initialcyclicshift": 350, "symbolindexstart": 350, "3300": 350, "pucchformat0decoderobj": 350, "pucchformat0decoderop": 350, "hardout": 350, "obj_mc": 350, "estimatem_c": 350, "offest": 350, "bin_arr": 350, "retriv": 350, "ber1": 350, "ber2": 350, "5023446658851114": 350, "2511723329425557": 350, "00206913808111479": 350, "4806565064478312": 350, "2403282532239156": 350, "004281332398719396": 350, "5005861664712778": 350, "2502930832356389": 350, "008858667904100823": 350, "5046893317702228": 350, "2523446658851114": 350, "018329807108324356": 350, "4783118405627198": 350, "2391559202813599": 350, "0379269019073225": 350, "4859320046893318": 350, "2429660023446659": 350, "07847599703514611": 350, "48182883939038684": 350, "24091441969519342": 350, "16237767391887217": 350, "4349355216881594": 350, "2174677608440797": 350, "3359818286283782": 350, "36518171160609614": 350, "18259085580304807": 350, "6951927961775608": 350, "1776084407971864": 350, "0888042203985932": 350, "4384498882876635": 350, "016998827667057445": 350, "008499413833528723": 350, "976351441631318": 350, "158482110660259": 350, "742749857031342": 350, "366508987303583": 350, "55594781168523": 350, "88378916846895": 350, "233": 350, "57214690901213": 350, "483": 350, "2930238571757": 350, "12040": 351, "513671875": 351, "23460": 351, "009053156146179402": 351, "009252344416027281": 351, "004455980066445183": 351, "004647485080988918": 351, "0018064784053156147": 351, "0019855072463768114": 351, "0006735880398671096": 351, "0007374254049445865": 351, "481600": 351, "0000000004": 351, "00021760797342192692": 351, "00024424552429667517": 351, "6622000": 351, "000000001": 351, "64451827242525e": 351, "734867860187553e": 351, "33499999999999996": 351, "16013200": 351, "475083056478405e": 351, "1935208866155157e": 351, "04500000000000004": 351, "22996399": 351, "4916943521594684e": 351, "4100596760443308e": 351, "23718800": 351, "24080000": 351, "mcsindex3": 351, "aclr": [352, 358], "extern": 352, "libari": 352, "odfm": 352, "extact": 352, "libraier": 352, "20000": [352, 358], "se": [352, 358], "p1": [352, 358, 361], "geni": [352, 358], "industri": [352, 358], "1300": [352, 358], "email": [353, 356, 357, 359, 360], "month": [353, 356, 358, 359, 360], "arxiv": [353, 358], "x86_64": [356, 357, 359, 360], "llvm": [356, 359, 360], "anaconda": [356, 357, 359], "skip": [356, 357, 359], "instruct": [356, 357, 359, 362], "lighter": [356, 357, 359], "outdat": [356, 357, 359], "linux": [356, 357, 359], "sudo": [356, 357, 359], "apt": [356, 357, 359], "shortcut": [356, 359], "ctrl": [356, 359], "alt": [356, 359], "wget": [356, 357, 359], "repo": [356, 357, 359], "bash": [356, 357, 359], "conda": [356, 359, 360], "click": [356, 357, 359, 360], "button": [356, 357, 359], "prompt": [356, 357, 359], "pip": [356, 357, 359, 360], "readi": [356, 357, 359], "cach": [356, 357, 359, 360], "dir": [356, 357, 359, 360], "gigayasawireless": [356, 357, 358, 359, 360], "raw": [356, 357, 359, 360], "python3_7": [356, 357, 360], "py3": [356, 357, 359, 360], "whl": [356, 357, 359, 360], "python3_8": [356, 357, 359, 360], "python3_9": [356, 357, 359, 360], "python3_10": [356, 357, 359, 360], "truli": [356, 357, 359], "browser": [356, 357, 359], "__version__": [356, 357, 359, 362], "still": [356, 357, 359], "struggl": [356, 357, 359], "mailto": [356, 357, 359], "vikram": [356, 357, 358, 359], "happi": [356, 357, 359], "purchas": [356, 359, 360], "perpetu": [356, 359, 360], "central": [356, 359, 360], "hub": [356, 359, 360], "unzip": [356, 359, 360], "login": [356, 359, 360], "try": [356, 359, 360], "templat": [357, 360], "licens": [357, 358], "md": 357, "doc": 357, "myenv": 357, "buggi": [357, 360], "tpu": 358, "cpu": [358, 362], "pytorch": 358, "intellig": [358, 361], "quarterli": 358, "upgrad": 358, "24x7": 358, "homepag": 358, "technologi": 358, "pxsch": 358, "pxcch": 358, "pxbch": 358, "dvanc": 358, "ntenna": 358, "ystem": 358, "aa": 358, "rtifici": 358, "ntellig": 358, "achin": 358, "earn": 358, "ybrid": 358, "utomat": 358, "epeat": 358, "uest": 358, "releasenot": 358, "instal": 358, "guid": 358, "lai": 358, "recip": 358, "solv": 358, "art": 358, "tent": 358, "week": 358, "young": 358, "repositori": 358, "reward": 358, "portal": 358, "miniconda": 358, "jupyt": [358, 360], "confirm": [358, 360], "video": 358, "hello": 358, "world": 358, "tentet": 358, "septemb": 358, "march": 358, "2024": 358, "trademark": 358, "5gtoolkit": 358, "jump": 359, "conflict": 359, "r24a": 359, "virtual": 360, "compress": 361, "chase": 361, "p2": 361, "ri": 361, "rsrq": 361, "pssch": 361, "rim": 361, "dmrss": 361, "hap": 361, "drone": 361, "duplex": 361, "sbfd": 361, "phaser": 361, "ettu": 361, "210": 361, "205": 361, "lime": 361, "nm": 361, "newbi": 362, "08": 362, "651000": 362, "core": 362, "cc": 362, "onednn": 362, "tf_enable_onednn_opt": 362, "779554": 362, "platform": 362, "cpu_feature_guard": 362, "avx2": 362, "avx512f": 362, "avx512_vnni": 362, "fma": 362, "rebuild": 362, "478801": 362, "tf2tensorrt": 362, "py_util": 362, "trt": 362, "could": 362, "tensorrt": 362, "dpi": 362, "9600": 362, "15873515625": 362, "0block": 362, "8957356524063758": 362, "08426328125": 362, "8957356524063758block": 362, "5938136638046276": 362, "029006510416666666": 362, "5938136638046276block": 362, "812920690579611": 362, "004522395833333333": 362, "812920690579611block": 362, "8428": 362, "91549665014884": 362, "00016276041666666666": 362, "91549665014884block": 362, "06489999999999996": 362, "484367468222267": 362, "8125e": 362, "484367468222267block": 362, "00029999999999996696": 362, "41588833612777": 362, "41588833612777block": 362, "99225435691065": 362, "99225435691065block": 362, "166": 362, "81005372000593": 362, "81005372000593block": 362, "316": 362, "22776601683796": 362, "22776601683796block": 362, "28259557291666665": 362, "21662265625": 362, "1511671875": 362, "09119765625": 362, "04033958333333333": 362, "010061197916666667": 362, "9855": 362, "0008690104166666667": 362, "2984": 362, "333333333333334e": 362, "0032999999999999696": 362, "3536518229166667": 362, "3059221354166667": 362, "24816536458333333": 362, "18723645833333333": 362, "1307921875": 362, "08174973958333333": 362, "040142447916666664": 362, "011923697916666667": 362, "9943": 362, "0014354166666666667": 362, "43820000000000003": 362, "96875e": 362, "01200000000000001": 362}, "objects": {"toolkit5G.CRC": [[3, 0, 1, "", "CRCDecoder"], [4, 0, 1, "", "CRCEncoder"]], "toolkit5G.ChannelCoder.HammingCoder.hammingDecoder": [[5, 0, 1, "", "HammingDecoder"], [5, 0, 1, "", "HammingSphereDecoder"], [5, 0, 1, "", "HammingSyndromeDecoder"]], "toolkit5G.ChannelCoder.HammingCoder.hammingEncoder": [[5, 0, 1, "", "HammingEncoder"]], "toolkit5G.ChannelCoder.LDPC": [[93, 0, 1, "", "CodeBlockAggregation"], [92, 0, 1, "", "CodeBlockConcatenation"], [93, 0, 1, "", "CodeBlockSegmentation"], [92, 0, 1, "", "CodeBlockSegregation"], [9, 0, 1, "", "LDPCparameters"]], "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation": [[93, 1, 1, "", "C"], [93, 1, 1, "", "Kbar"], [93, 1, 1, "", "Kcb"], [93, 1, 1, "", "baseGraph"], [93, 1, 1, "", "codeRate"], [93, 1, 1, "", "crcType"], [93, 1, 1, "", "tbSize"]], "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation": [[93, 1, 1, "", "B"], [93, 1, 1, "", "C"], [93, 1, 1, "", "K"], [93, 1, 1, "", "Kb"], [93, 1, 1, "", "Kbar"], [93, 1, 1, "", "L"], [93, 1, 1, "", "Zc"], [93, 1, 1, "", "baseGraph"], [93, 1, 1, "", "codeRate"]], "toolkit5G.ChannelCoder": [[96, 0, 1, "", "LDPCDecoder5G"], [96, 0, 1, "", "LDPCEncoder5G"], [146, 0, 1, "", "PolarDecoder5G"], [146, 0, 1, "", "PolarEncoder5G"], [12, 0, 1, "", "ReedMullerDecoder5G"], [12, 0, 1, "", "ReedMullerEncoder5G"]], "toolkit5G.ChannelCoder.LDPCDecoder5G": [[96, 1, 1, "", "bm"], [96, 2, 1, "", "computeIls"], [96, 1, 1, "", "i_ls"], [96, 1, 1, "", "k_ldpc"], [96, 1, 1, "", "llr_max"], [96, 1, 1, "", "n"], [96, 1, 1, "", "n_ldpc"], [96, 1, 1, "", "nb_pruned_nodes"], [96, 1, 1, "", "prune_pcm"]], "toolkit5G.ChannelCoder.LDPCEncoder5G": [[96, 1, 1, "", "bm"], [96, 2, 1, "", "computeIls"], [96, 1, 1, "", "i_ls"], [96, 1, 1, "", "k"], [96, 1, 1, "", "n"], [96, 1, 1, "", "n_ldpc"], [96, 1, 1, "", "pcm"], [96, 1, 1, "", "z"]], "toolkit5G.ChannelCoder.PolarCoder": [[149, 0, 1, "", "CodeBlockAggregation"], [148, 0, 1, "", "CodeBlockConcatenation"], [149, 0, 1, "", "CodeBlockSegmentation"], [148, 0, 1, "", "CodeBlockSegregation"], [143, 0, 1, "", "InputBitDeInterleaver"], [143, 0, 1, "", "InputBitInterleaver"]], "toolkit5G.ChannelCoder.PolarDecoder5G": [[146, 1, 1, "", "E"], [146, 1, 1, "", "K"], [146, 1, 1, "", "N"], [146, 1, 1, "", "dec_type"], [146, 1, 1, "", "llr_max"], [146, 1, 1, "", "output_dtype"]], "toolkit5G.ChannelCoder.PolarEncoder5G": [[146, 1, 1, "", "N"]], "toolkit5G.ChannelCoder.ReedMullerDecoder5G": [[12, 1, 1, "", "dtype"], [12, 1, 1, "", "hardIn"], [12, 1, 1, "", "k"]], "toolkit5G.ChannelCoder.ReedMullerEncoder5G": [[12, 1, 1, "", "dtype"], [12, 1, 1, "", "k"]], "toolkit5G.ChannelModels": [[14, 0, 1, "", "AntennaArrays"], [15, 0, 1, "", "ChannelGenerator"], [17, 0, 1, "", "NodeMobility"], [18, 0, 1, "", "ParameterGenerator"], [19, 0, 1, "", "SimulationLayout"]], "toolkit5G.ChannelModels.NodeMobility": [[17, 2, 1, "", "displayRoute"]], "toolkit5G.ChannelModels.SimulationLayout": [[19, 1, 1, "", "BSLocations"], [19, 1, 1, "", "ISD"], [19, 1, 1, "", "UELocations"], [19, 1, 1, "", "UEdistibution"], [19, 1, 1, "", "UEheightDistribution"], [19, 1, 1, "", "bsAntennaArray"], [19, 1, 1, "", "bsRoute"], [19, 1, 1, "", "carrierFrequency"], [19, 1, 1, "", "clutterDensity"], [19, 1, 1, "", "clutterHeight"], [19, 1, 1, "", "clutterSize"], [19, 1, 1, "", "correlationDistanceIndoor"], [19, 1, 1, "", "correlationDistanceLoS"], [19, 1, 1, "", "correlationTypeIndoor"], [19, 1, 1, "", "correlationTypeLoS"], [19, 1, 1, "", "enableSpatialConsistencyIndoor"], [19, 1, 1, "", "enableSpatialConsistencyLoS"], [19, 1, 1, "", "force3GPPSpatialConsistencyParameters"], [19, 1, 1, "", "forceLOS"], [19, 1, 1, "", "heightOfBS"], [19, 1, 1, "", "heightOfRoom"], [19, 1, 1, "", "heightOfUE"], [19, 1, 1, "", "indoorUEfraction"], [19, 1, 1, "", "layoutLength"], [19, 1, 1, "", "layoutType"], [19, 1, 1, "", "layoutWidth"], [19, 1, 1, "", "lengthOfIndoorObject"], [19, 1, 1, "", "maxNumberOfFloors"], [19, 1, 1, "", "memoryEfficient"], [19, 1, 1, "", "minNumberOfFloors"], [19, 1, 1, "", "minUEBSDistance"], [19, 1, 1, "", "numOfBS"], [19, 1, 1, "", "numOfSectorsPerSite"], [19, 1, 1, "", "numOfSnapShots"], [19, 1, 1, "", "numOfUE"], [19, 1, 1, "", "radiusForCircularUEDrop"], [19, 1, 1, "", "routeType"], [19, 1, 1, "", "terrain"], [19, 1, 1, "", "ueAntennaArray"], [19, 1, 1, "", "ueDropMethod"], [19, 1, 1, "", "ueRoute"], [19, 1, 1, "", "widthOfIndoorObject"]], "toolkit5G.ChannelModels.antennaArrays": [[14, 0, 1, "", "Antenna_3GPP_38901"], [14, 0, 1, "", "Antenna_HertzianDipole"], [14, 0, 1, "", "Antenna_LinearDipole"]], "toolkit5G.ChannelModels.nodeMobility": [[17, 0, 1, "", "CircularRoute"], [17, 0, 1, "", "DropVehiclesHighway"], [17, 0, 1, "", "RandomWalk"]], "toolkit5G.ChannelModels.simulationLayout": [[19, 0, 1, "", "HexagonalLayout"], [19, 0, 1, "", "RectangularLayout"]], "toolkit5G.ChannelProcessing": [[21, 0, 1, "", "AddNoise"], [22, 0, 1, "", "ApplyChannel"]], "toolkit5G.ChannelProcessing.ApplyChannel": [[22, 1, 1, "", "enableInterTxInterference"], [22, 1, 1, "", "isFrequencyDomain"], [22, 1, 1, "", "memoryConsumptionLevel"]], "toolkit5G.Configurations": [[261, 0, 1, "", "CSIConfiguration"], [262, 0, 1, "", "GenerateValidSSBParameters"], [263, 0, 1, "", "PDSCHLowerPhyConfiguration"], [264, 0, 1, "", "PDSCHUpperPhyConfiguration"], [265, 0, 1, "", "SRSConfiguration"], [266, 0, 1, "", "SSBConfiguration"], [267, 0, 1, "", "TimeFrequency5GParameters"]], "toolkit5G.Configurations.SRSConfiguration": [[265, 1, 1, "", "bHop"], [265, 1, 1, "", "bSRS"], [265, 1, 1, "", "betaSRS"], [265, 1, 1, "", "cSRS"], [265, 1, 1, "", "combOffset"], [265, 1, 1, "", "enableStartRBHopping"], [265, 1, 1, "", "freqDomainPosition"], [265, 1, 1, "", "freqDomainShift"], [265, 1, 1, "", "freqScalingFactor"], [265, 1, 1, "", "groupOrSequenceHopping"], [265, 1, 1, "", "lengthOfSequence"], [265, 1, 1, "", "nrOfCyclicShift"], [265, 1, 1, "", "nrofSRS_Ports"], [265, 1, 1, "", "nrofSymbols"], [265, 1, 1, "", "offsetInSlots"], [265, 1, 1, "", "periodicityInSlots"], [265, 1, 1, "", "purpose"], [265, 1, 1, "", "repetitionFactor"], [265, 1, 1, "", "resourceGridSizeinRBs"], [265, 1, 1, "", "resourceType"], [265, 1, 1, "", "sequenceId"], [265, 1, 1, "", "slotIndex"], [265, 1, 1, "", "startPosition"], [265, 1, 1, "", "startRBIndex"], [265, 1, 1, "", "symbolIndices"], [265, 1, 1, "", "systemFrameNumber"], [265, 1, 1, "", "transmissionComb"]], "toolkit5G.Configurations.TimeFrequency5GParameters": [[267, 2, 1, "", "getGaurdBand_FR1"], [267, 2, 1, "", "getGaurdBand_FR2"], [267, 2, 1, "", "getNumberRB_FR1"], [267, 2, 1, "", "getNumberRB_FR2"]], "toolkit5G.MIMOProcessing": [[29, 0, 1, "", "SearchFree"], [29, 0, 1, "", "TypeICodeBook"]], "toolkit5G.OFDM": [[32, 0, 1, "", "OFDMDemodulator"], [33, 0, 1, "", "OFDMModulator"], [35, 0, 1, "", "TransformDecoding5G"], [36, 0, 1, "", "TransformPrecoding"], [37, 0, 1, "", "TransformPrecoding5G"]], "toolkit5G.PayloadGeneration": [[38, 0, 1, "", "DCIExtraction"], [38, 0, 1, "", "DCIGeneration"], [46, 0, 1, "", "MIBExtraction"], [46, 0, 1, "", "MIBGeneration"]], "toolkit5G.PayloadGeneration.MIBExtraction": [[46, 1, 1, "", "carrierFreq"], [46, 1, 1, "", "cellBarred"], [46, 1, 1, "", "choiceBit"], [46, 1, 1, "", "controlResourceSet0"], [46, 2, 1, "", "displayParameters"], [46, 1, 1, "", "dmrsTypeAPosition"], [46, 1, 1, "", "hrfBit"], [46, 1, 1, "", "intraFrequencyReselection"], [46, 1, 1, "", "nssbCandidatesInHrf"], [46, 1, 1, "", "searchSpace0"], [46, 1, 1, "", "ssbIndex"], [46, 1, 1, "", "ssbSubCarrierOffset"], [46, 1, 1, "", "subCarrierSpacingCommon"], [46, 1, 1, "", "systemFrameNumber"]], "toolkit5G.PayloadGeneration.MIBGeneration": [[46, 1, 1, "", "carrierFreq"], [46, 1, 1, "", "cellBarred"], [46, 1, 1, "", "choiceBit"], [46, 1, 1, "", "controlResourceSet0"], [46, 2, 1, "", "displayParameters"], [46, 1, 1, "", "dmrsTypeAPosition"], [46, 1, 1, "", "hrfBit"], [46, 1, 1, "", "intraFrequencyReselection"], [46, 1, 1, "", "nssbCandidatesInHrf"], [46, 1, 1, "", "searchSpace0"], [46, 1, 1, "", "ssbIndex"], [46, 1, 1, "", "ssbSubCarrierOffset"], [46, 1, 1, "", "subCarrierSpacingCommon"], [46, 1, 1, "", "systemFrameNumber"]], "toolkit5G.PhysicalChannels": [[184, 0, 1, "", "PBCH"], [184, 0, 1, "", "PBCHDecoder"], [185, 0, 1, "", "PDCCH"], [185, 0, 1, "", "PDCCHDecoder"], [86, 0, 1, "", "PDSCHDecoderLowerPhy"], [88, 0, 1, "", "PDSCHDecoderUpperPhy"], [85, 0, 1, "", "PDSCHLowerPhy"], [87, 0, 1, "", "PDSCHUpperPhy"], [188, 0, 1, "", "PSBCH"], [188, 0, 1, "", "PSBCHDecoder"], [189, 0, 1, "", "PSCCHLowerPhy"], [189, 0, 1, "", "PSCCHLowerPhyDecoder"], [189, 0, 1, "", "PSCCHUpperPhy"], [189, 0, 1, "", "PSCCHUpperPhyDecoder"], [181, 0, 1, "", "PUSCHDecoderUpperPhy"], [182, 0, 1, "", "PUSCHUpperPhy"]], "toolkit5G.PhysicalChannels.PBCH": [[25, 0, 1, "", "PBCHDeInterleaver"], [25, 0, 1, "", "PBCHInterleaver"], [184, 1, 1, "", "chIL_bits"], [184, 1, 1, "", "encBits"], [184, 1, 1, "", "iILBits"], [184, 1, 1, "", "ilBits"], [184, 1, 1, "", "mib"], [184, 1, 1, "", "payloadCRC"], [184, 1, 1, "", "payloadMIB"], [184, 1, 1, "", "rmBits"], [184, 1, 1, "", "sBIL_bits"], [184, 1, 1, "", "scr2bits"], [184, 1, 1, "", "scrBits"]], "toolkit5G.PhysicalChannels.PBCHDecoder": [[184, 1, 1, "", "channelDeInterleaverBits"], [184, 1, 1, "", "crcCheck"], [184, 1, 1, "", "deCRCBits"], [184, 1, 1, "", "deScrambledBits"], [184, 1, 1, "", "descrambled2LLRs"], [184, 1, 1, "", "inputDeinteleavedBits"], [184, 1, 1, "", "llr"], [184, 1, 1, "", "mibRx"], [184, 1, 1, "", "pbchDeInterleavedBits"], [184, 1, 1, "", "polarDecodedBits"], [184, 1, 1, "", "rateDematedBits"], [184, 1, 1, "", "subBlockDeinterleavedBits"]], "toolkit5G.PhysicalChannels.PDCCH": [[185, 1, 1, "", "dciBIL"], [185, 1, 1, "", "dciCRC"], [185, 1, 1, "", "dciIBI"], [185, 1, 1, "", "dciRM"], [185, 1, 1, "", "dciRNTI"], [185, 1, 1, "", "dciSCR"], [185, 1, 1, "", "encBits"]], "toolkit5G.PhysicalChannels.PDCCHDecoder": [[185, 1, 1, "", "check"], [185, 1, 1, "", "dciBits"], [185, 1, 1, "", "decodedBits"], [185, 1, 1, "", "dematchedBits"], [185, 1, 1, "", "descrambledLLRs"], [185, 1, 1, "", "ibDILBits"], [185, 1, 1, "", "llr"], [185, 1, 1, "", "sbdBits"], [185, 1, 1, "", "unmaskedBits"]], "toolkit5G.PhysicalChannels.PDSCH": [[94, 0, 1, "", "ComputeTransportBlockSize"], [95, 0, 1, "", "LayerDemapper"], [95, 0, 1, "", "LayerMapper"], [108, 0, 1, "", "TransportBlockRxProcessing"], [108, 0, 1, "", "TransportBlockTxProcessing"]], "toolkit5G.PhysicalChannels.PDSCHLowerPhy": [[85, 2, 1, "", "displayDMRSGrid"], [85, 2, 1, "", "displayResourceGrid"]], "toolkit5G.Positioning": [[192, 0, 1, "", "DFT_DoA"], [202, 0, 1, "", "DFT_ToA"], [195, 0, 1, "", "DoAEstimation"], [193, 0, 1, "", "ESPRIT_DoA"], [203, 0, 1, "", "ESPRIT_ToA"], [196, 0, 1, "", "GradientDescentDoA"], [198, 0, 1, "", "GradientDescentTDoA"], [197, 0, 1, "", "HybridTDoAAoA"], [197, 0, 1, "", "HybridToAAoA"], [196, 0, 1, "", "LeastSquareDoA"], [198, 0, 1, "", "LeastSquareTDoA"], [199, 0, 1, "", "LeastSquareToA"], [194, 0, 1, "", "MUSIC_DoA"], [204, 0, 1, "", "MUSIC_ToA"], [198, 0, 1, "", "NewtonRaphsonTDoA"], [206, 0, 1, "", "PositionEstimation"], [205, 0, 1, "", "ToAEstimation"]], "toolkit5G.Ratematcher.LDPC": [[208, 0, 1, "", "BitDeinterleaver"], [207, 0, 1, "", "BitDeselection"], [208, 0, 1, "", "BitInterleaver"], [207, 0, 1, "", "BitSelection"], [209, 0, 1, "", "RatematchParameters"]], "toolkit5G.Ratematcher.LDPC.BitDeinterleaver": [[208, 1, 1, "", "modOrder"], [208, 1, 1, "", "numBits1"], [208, 1, 1, "", "numBits2"]], "toolkit5G.Ratematcher.LDPC.BitDeselection": [[207, 1, 1, "", "Ncb"], [207, 1, 1, "", "baseGraph"], [207, 1, 1, "", "enableLBRM"], [207, 1, 1, "", "k0"], [207, 1, 1, "", "liftingFactor"], [207, 1, 1, "", "nLDPC"], [207, 1, 1, "", "rvID"]], "toolkit5G.Ratematcher.LDPC.BitInterleaver": [[208, 1, 1, "", "modOrder"], [208, 1, 1, "", "numBits1"], [208, 1, 1, "", "numBits2"]], "toolkit5G.Ratematcher.LDPC.BitSelection": [[207, 1, 1, "", "baseGraph"], [207, 1, 1, "", "enableLBRM"], [207, 1, 1, "", "k0"], [207, 1, 1, "", "liftingFactor"], [207, 1, 1, "", "modOrder"], [207, 1, 1, "", "numCBs"], [207, 1, 1, "", "numCodedBits"], [207, 1, 1, "", "numLayers"], [207, 1, 1, "", "rvID"], [207, 1, 1, "", "tbSize"]], "toolkit5G.Ratematcher.LDPC.RatematchParameters": [[209, 1, 1, "", "baseGraph"], [209, 1, 1, "", "enableLBRM"], [209, 1, 1, "", "k0"], [209, 1, 1, "", "liftingFactor"], [209, 1, 1, "", "modOrder"], [209, 1, 1, "", "numCodeBlocks"], [209, 1, 1, "", "numCodedBits"], [209, 1, 1, "", "numLayers"], [209, 1, 1, "", "rvID"], [209, 1, 1, "", "tbSize"]], "toolkit5G.Ratematcher.PolarCoder": [[210, 0, 1, "", "BitDeSelection"], [210, 0, 1, "", "BitSelection"], [211, 0, 1, "", "ChannelDeInterleaver"], [211, 0, 1, "", "ChannelInterleaver"], [212, 0, 1, "", "Subblock_DeInterleaver"], [212, 0, 1, "", "Subblock_Interleaver"]], "toolkit5G.ReceiverAlgorithms": [[268, 0, 1, "", "CarrierFrequencyOffsetEstimation"], [269, 0, 1, "", "ChannelEstimationAndEqualizationPBCH"], [270, 0, 1, "", "ChannelEstimationAndEqualizationPDCCH"], [271, 0, 1, "", "ChannelEstimationAndEqualizationPDSCH"], [275, 0, 1, "", "ChannelEstimationCSIRS"], [276, 0, 1, "", "ChannelEstimationSRS"], [272, 0, 1, "", "DMRSParameterDetection"], [273, 0, 1, "", "PSSDetection"], [274, 0, 1, "", "SSSDetection"]], "toolkit5G.ResourceMapping": [[227, 0, 1, "", "CORESET"], [217, 0, 1, "", "DeSpreadingFormat1"], [215, 0, 1, "", "ResourceDeMapperFormat0"], [218, 0, 1, "", "ResourceDeMapperFormat1"], [228, 0, 1, "", "ResourceMapperCSIRS"], [229, 0, 1, "", "ResourceMapperDMRSPDSCH"], [216, 0, 1, "", "ResourceMapperFormat0"], [219, 0, 1, "", "ResourceMapperFormat1"], [231, 0, 1, "", "ResourceMapperPRS"], [233, 0, 1, "", "ResourceMapperPTRSPDSCH"], [238, 0, 1, "", "ResourceMapperSSB"], [230, 0, 1, "", "ResourceMappingPDCCH"], [232, 0, 1, "", "ResourceMappingPSCCH"], [237, 0, 1, "", "SSB_Grid"], [235, 0, 1, "", "SSSB_Grid"], [236, 0, 1, "", "SearchSpaceSet"], [220, 0, 1, "", "SpreadingFormat1"]], "toolkit5G.ResourceMapping.CORESET": [[227, 2, 1, "", "displayCoresetREG_CCE_Mapping"]], "toolkit5G.ResourceMapping.DeSpreadingFormat1": [[134, 1, 1, "", "SpreadingFactor"], [217, 1, 1, "", "indexPUCCH"], [217, 1, 1, "", "maxNumPRBs"], [217, 1, 1, "", "numberOfSymb"], [217, 1, 1, "", "start_SymbIndex"], [217, 1, 1, "", "timedomainOCC"]], "toolkit5G.ResourceMapping.ResourceDeMapperFormat0": [[215, 1, 1, "", "formatPUCCH"], [215, 1, 1, "", "indexPUCCH"], [215, 1, 1, "", "interlaceIndex_0"], [215, 1, 1, "", "interlaceIndex_1"], [215, 1, 1, "", "maxNumPRBs"], [215, 1, 1, "", "numInterlacedRBs"], [215, 1, 1, "", "numOfInterlaces"], [215, 1, 1, "", "numRBs"], [215, 1, 1, "", "numberOfSymb"], [215, 1, 1, "", "offset"], [215, 1, 1, "", "rg_Size"], [215, 1, 1, "", "secondHopPRB"], [215, 1, 1, "", "seqLength"], [215, 1, 1, "", "start_SymbIndex"], [215, 1, 1, "", "startingPRB"]], "toolkit5G.ResourceMapping.ResourceDeMapperFormat1": [[218, 1, 1, "", "indexPUCCH"], [218, 1, 1, "", "interlaceIndex_0"], [218, 1, 1, "", "interlaceIndex_1"], [218, 1, 1, "", "maxNumPRBs"], [218, 1, 1, "", "numInterlacedRBs"], [218, 1, 1, "", "numOfInterlaces"], [218, 1, 1, "", "numRBs"], [218, 1, 1, "", "numberOfSymb"], [218, 1, 1, "", "offset"], [218, 1, 1, "", "rg_Size"], [218, 1, 1, "", "secondHopPRB"], [218, 1, 1, "", "seqLength"], [218, 1, 1, "", "start_SymbIndex"], [218, 1, 1, "", "startingPRB"]], "toolkit5G.ResourceMapping.ResourceMapperCSIRS": [[228, 2, 1, "", "displayCDMPattern"], [228, 2, 1, "", "displayResourceGrid"]], "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH": [[229, 2, 1, "", "displayCDMPattern"], [229, 2, 1, "", "displayResourceGrid"]], "toolkit5G.ResourceMapping.ResourceMapperFormat0": [[216, 1, 1, "", "formatPUCCH"], [216, 1, 1, "", "indexPUCCH"], [216, 1, 1, "", "interlaceIndex_0"], [216, 1, 1, "", "interlaceIndex_1"], [216, 1, 1, "", "maxNumPRBs"], [216, 1, 1, "", "numInterlacedRBs"], [216, 1, 1, "", "numOfInterlaces"], [216, 1, 1, "", "numRBs"], [216, 1, 1, "", "numberOfSymb"], [216, 1, 1, "", "offset"], [216, 1, 1, "", "rg_Size"], [216, 1, 1, "", "secondHopPRB"], [216, 1, 1, "", "seqLength"], [216, 1, 1, "", "start_SymbIndex"], [216, 1, 1, "", "startingPRB"]], "toolkit5G.ResourceMapping.ResourceMapperFormat1": [[219, 1, 1, "", "indexPUCCH"], [219, 1, 1, "", "interlaceIndex_0"], [219, 1, 1, "", "interlaceIndex_1"], [219, 1, 1, "", "maxNumPRBs"], [219, 1, 1, "", "numInterlacedRBs"], [219, 1, 1, "", "numOfInterlaces"], [219, 1, 1, "", "numRBs"], [219, 1, 1, "", "numberOfSymb"], [219, 1, 1, "", "offset"], [219, 1, 1, "", "rg_Size"], [219, 1, 1, "", "secondHopPRB"], [219, 1, 1, "", "seqLength"], [219, 1, 1, "", "start_SymbIndex"], [219, 1, 1, "", "startingPRB"]], "toolkit5G.ResourceMapping.SSB_Grid": [[237, 2, 1, "", "displayGrid"], [237, 1, 1, "", "dmrsIndices"], [237, 1, 1, "", "pbchIndices"], [237, 1, 1, "", "pssIndices"], [237, 1, 1, "", "sssIndices"]], "toolkit5G.ResourceMapping.SSSB_Grid": [[235, 2, 1, "", "displayGrid"]], "toolkit5G.ResourceMapping.SpreadingFormat1": [[139, 1, 1, "", "SpreadingFactor"], [220, 1, 1, "", "indexPUCCH"], [220, 1, 1, "", "numRBs"], [220, 1, 1, "", "numberOfSymb"], [220, 1, 1, "", "start_SymbIndex"], [220, 1, 1, "", "timedomainOCC"]], "toolkit5G.Scheduler": [[280, 0, 1, "", "LinkAdaptation"], [278, 0, 1, "", "PDCCHScheduler"], [281, 0, 1, "", "RankAdaptation"], [279, 0, 1, "", "RoundRobinScheduler"]], "toolkit5G.Scheduler.LinkAdaptation": [[280, 2, 1, "", "selectMCS"]], "toolkit5G.Scheduler.RoundRobinScheduler": [[279, 1, 1, "", "firstAcrossTime"], [279, 1, 1, "", "numRB"], [279, 1, 1, "", "numSymbol"], [279, 1, 1, "", "numUEscheduledAcrossFreq"], [279, 1, 1, "", "numUEscheduledAcrossTime"]], "toolkit5G.Scrambler": [[240, 0, 1, "", "DeScrambler"], [241, 0, 1, "", "RNTImasking"], [242, 0, 1, "", "Scrambler"]], "toolkit5G.Scrambler.DeScrambler": [[240, 1, 1, "", "Lmax"], [240, 1, 1, "", "c_init"], [240, 1, 1, "", "id"], [240, 1, 1, "", "mu"], [240, 1, 1, "", "nID"], [240, 1, 1, "", "purpose"], [240, 1, 1, "", "q"], [240, 1, 1, "", "rnti"], [240, 1, 1, "", "ssbIndex"]], "toolkit5G.Scrambler.RNTImasking": [[241, 1, 1, "", "rnti"]], "toolkit5G.Scrambler.Scrambler": [[242, 1, 1, "", "Lmax"], [242, 1, 1, "", "c_init"], [242, 1, 1, "", "id"], [242, 1, 1, "", "mu"], [242, 1, 1, "", "nID"], [242, 1, 1, "", "purpose"], [242, 1, 1, "", "q"], [242, 1, 1, "", "rnti"], [242, 1, 1, "", "ssbIndex"]], "toolkit5G.SequenceGeneration": [[248, 0, 1, "", "CSIRS"], [249, 0, 1, "", "DMRS"], [244, 0, 1, "", "LowPAPRSequenceType1"], [245, 0, 1, "", "LowPAPRSequenceType2"], [250, 0, 1, "", "PNSequence"], [251, 0, 1, "", "PRS"], [252, 0, 1, "", "PSS"], [246, 0, 1, "", "PUCCHFormat0Sequence"], [247, 0, 1, "", "PUCCHFormat1Sequence"], [254, 0, 1, "", "SRS"], [255, 0, 1, "", "SSS"], [253, 0, 1, "", "S_PSS"], [256, 0, 1, "", "S_SSS"]], "toolkit5G.SequenceGeneration.LowPAPRSequenceType1": [[244, 1, 1, "", "baseSequenceNumber"], [244, 1, 1, "", "cyclicShift"], [244, 1, 1, "", "delta"], [244, 1, 1, "", "groupNumber"], [244, 1, 1, "", "lengthOfSequence"], [244, 1, 1, "", "numRBs"]], "toolkit5G.SequenceGeneration.LowPAPRSequenceType2": [[245, 1, 1, "", "cinit"], [245, 1, 1, "", "delta"], [245, 1, 1, "", "groupNumber"], [245, 1, 1, "", "groupNumber_Or_cinit"], [245, 1, 1, "", "lengthOfSequence"], [245, 1, 1, "", "numRBs"]], "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence": [[246, 1, 1, "", "controlInfo"], [246, 1, 1, "", "indexPUCCH"], [246, 1, 1, "", "initial_CyclicShift"], [246, 1, 1, "", "m_CS"], [246, 1, 1, "", "nID"], [246, 1, 1, "", "numBatches"], [246, 1, 1, "", "numInterlacedRBs"], [246, 1, 1, "", "numRBs"], [246, 1, 1, "", "numberOfSymb"], [246, 1, 1, "", "pucch_GroupHopping"], [246, 1, 1, "", "seqNumber"], [246, 1, 1, "", "slotNumber"], [246, 1, 1, "", "start_SymbIndex"]], "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence": [[247, 1, 1, "", "indexPUCCH"], [247, 1, 1, "", "initial_CyclicShift"], [247, 1, 1, "", "m_CS"], [247, 1, 1, "", "maxNumPRBs"], [247, 1, 1, "", "nHop"], [247, 1, 1, "", "nID"], [247, 1, 1, "", "numInterlacedRBs"], [247, 1, 1, "", "numRBs"], [247, 1, 1, "", "numberOfSymb"], [247, 1, 1, "", "pucch_GroupHopping"], [247, 1, 1, "", "slotNumber"], [247, 1, 1, "", "start_SymbIndex"]], "toolkit5G.SequenceGeneration.SRS": [[254, 1, 1, "", "lengthOfSequence"], [254, 1, 1, "", "nrOfCyclicShift"], [254, 1, 1, "", "nrofSymbols"], [254, 1, 1, "", "sequenceId"], [254, 1, 1, "", "slotIndex"], [254, 1, 1, "", "startPosition"], [254, 1, 1, "", "symbolIndices"], [254, 1, 1, "", "transmissionComb"]], "toolkit5G.SymbolMapping": [[258, 0, 1, "", "Demapper"], [259, 0, 1, "", "Mapper"]]}, "objtypes": {"0": "py:class", "1": "py:property", "2": "py:method"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "property", "Python property"], "2": ["py", "method", "Python method"]}, "titleterms": {"get": [0, 362], "start": [0, 362], "understand": 0, "api": [0, 1], "document": [0, 1, 358], "hello": 0, "world": 0, "import": [0, 285, 287, 288, 289, 291, 294, 301, 302, 304, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 331, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 350, 351, 362], "python": [0, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 307, 308, 309, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 349, 350, 351, 362], "librari": [0, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 350, 351, 356, 359, 360, 362], "how": [0, 358, 360], "5g": [0, 1, 12, 23, 33, 35, 37, 65, 84, 107, 127, 151, 161, 162, 168, 196, 198, 206, 234, 239, 260, 267, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 296, 301, 302, 303, 304, 305, 307, 308, 309, 310, 313, 314, 316, 317, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349, 350, 351, 356, 357, 358, 359, 360, 362], "toolkit": [0, 1, 284, 289, 291, 294, 301, 302, 304, 305, 307, 308, 309, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 344, 346, 348, 349, 350, 351, 356, 357, 358, 359, 360, 362], "creat": [0, 327, 328, 331, 357, 362], "object": [0, 362], "all": [0, 324], "modul": [0, 1, 33, 47, 70, 97, 113, 172, 289, 291, 301, 348], "gener": [0, 15, 18, 39, 40, 46, 132, 138, 235, 237, 243, 249, 285, 287, 289, 291, 294, 301, 302, 320, 322, 323, 324, 327, 328, 329, 330, 331, 332, 334, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 351, 362], "payload": [0, 39, 40, 45, 46, 348, 362], "bit": [0, 11, 24, 27, 43, 44, 56, 57, 68, 69, 75, 76, 101, 102, 111, 112, 118, 119, 143, 144, 147, 152, 159, 207, 208, 210, 301, 362], "encod": [0, 4, 6, 10, 12, 55, 74, 96, 117, 142, 144, 146, 147, 362], "them": 0, "symbol": [0, 49, 72, 99, 115, 169, 174, 257, 269, 270, 271, 286, 291, 301, 335, 336, 348, 362], "map": [0, 49, 72, 99, 115, 130, 131, 136, 137, 169, 174, 215, 216, 218, 219, 226, 238, 257, 301, 335, 336, 348], "pass": [0, 324, 327, 328, 331, 334, 348, 349, 351], "through": [0, 324, 327, 328, 331, 334, 348, 349, 351], "awgn": [0, 315, 335, 362], "channel": [0, 10, 15, 16, 18, 20, 22, 26, 55, 56, 58, 74, 75, 77, 103, 104, 117, 118, 120, 142, 144, 145, 146, 147, 153, 158, 183, 184, 185, 186, 187, 188, 189, 190, 191, 211, 228, 229, 230, 232, 233, 234, 248, 249, 261, 269, 270, 271, 275, 276, 291, 302, 303, 311, 313, 315, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 335, 338, 339, 340, 341, 342, 343, 344, 346, 347, 348, 349, 351, 362], "demap": [0, 301, 362], "detect": [0, 273, 274, 348, 362], "error": [0, 13, 301, 302, 315, 327, 328, 329, 330, 331, 332, 349, 362], "block": [0, 7, 11, 28, 39, 44, 46, 56, 59, 69, 75, 78, 92, 93, 94, 108, 112, 118, 121, 143, 144, 147, 148, 149, 151, 154, 158, 161, 212, 235, 237, 238, 301, 304, 305, 306, 307, 308, 309, 315, 336, 349, 362], "comput": [0, 9, 94, 309, 324, 331, 345, 348, 362], "rate": [0, 56, 75, 100, 102, 118, 151, 155, 156, 157, 159, 160, 161, 209, 213, 214, 301, 315, 336, 349], "constel": [0, 289, 291, 294, 315, 348, 362], "diagram": [0, 289, 291, 294, 348, 362], "tx": [0, 29, 289, 291, 315, 339, 346, 348], "rx": [0, 315, 339, 346, 348], "link": [0, 280, 320, 322, 323, 349, 351, 362], "level": [0, 305, 320, 322, 323, 349, 351, 362], "simul": [0, 19, 294, 301, 302, 304, 305, 306, 307, 308, 309, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349, 350, 351, 362], "perform": [0, 10, 55, 74, 117, 142, 146, 291, 294, 301, 302, 315, 319, 320, 326, 327, 328, 329, 330, 331, 332, 333, 335, 336, 348, 349, 350, 362], "resourc": [0, 130, 131, 136, 137, 215, 216, 218, 219, 226, 227, 238, 282, 294, 297, 324, 325, 327, 328, 334, 348], "script": 0, "tabl": [1, 2, 10, 23, 33, 39, 42, 46, 49, 51, 53, 55, 65, 67, 72, 74, 84, 99, 107, 110, 115, 117, 127, 142, 146, 162, 168, 171, 174, 196, 198, 234, 235, 237, 239, 243, 249, 259, 301, 326, 328, 331, 335, 350], "1": [1, 10, 23, 29, 33, 39, 46, 55, 65, 74, 84, 107, 117, 127, 133, 142, 144, 146, 147, 162, 168, 196, 198, 217, 218, 219, 220, 222, 234, 235, 237, 239, 243, 244, 247, 249, 274, 305, 323], "The": 1, "packag": 1, "support": [1, 29], "cyclic": [2, 41, 42, 50, 51, 53, 66, 67, 109, 110], "redund": [2, 41, 42, 50, 51, 53, 66, 67, 109, 110], "check": [2, 6, 41, 42, 50, 51, 53, 66, 67, 96, 109, 110, 336], "2": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 140, 141, 144, 147, 171, 174, 223, 243, 245, 259, 273, 305], "uplink": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 171, 174, 190, 191, 234, 243, 259, 276, 317, 329, 330, 332], "refer": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 171, 174, 228, 231, 243, 248, 249, 251, 254, 259, 261, 265, 301, 304, 305, 306, 307, 308, 309, 315, 327, 328, 331, 333, 348], "signal": [2, 22, 42, 49, 51, 53, 67, 72, 99, 110, 115, 171, 174, 228, 231, 235, 237, 238, 243, 252, 253, 255, 256, 259, 261, 265, 327, 328, 331, 348, 349], "its": [2, 10, 42, 49, 51, 53, 55, 67, 72, 74, 99, 110, 115, 117, 142, 146, 171, 174, 243, 259, 332], "util": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 171, 174, 243, 259], "crc": [3, 4, 362], "decod": [3, 5, 6, 10, 12, 34, 35, 55, 74, 86, 88, 96, 117, 142, 146, 291, 294, 308, 325, 348, 350, 362], "ham": [5, 315, 319], "coder": [5, 54, 57, 58, 59, 73, 76, 77, 78, 116, 119, 120, 121, 144, 145, 147, 152, 153, 154, 155, 158, 159, 160, 210, 211, 212, 213, 335, 336], "sphere": 5, "syndrom": 5, "base": [5, 192, 193, 194, 196, 197, 198, 199, 202, 203, 204, 285, 288, 289, 291, 294, 302, 311, 315, 321, 322, 323, 324, 327, 328, 329, 330, 331, 332, 350, 351], "low": [6, 96, 244, 245, 336], "densiti": [6, 96, 336], "pariti": [6, 96, 336], "code": [6, 7, 10, 11, 12, 29, 44, 55, 69, 74, 92, 93, 96, 112, 117, 142, 143, 144, 146, 147, 148, 149, 298, 312, 315, 319, 326, 335, 336], "ldpc": [6, 9, 96, 101, 102, 207, 208, 209, 312, 336], "codec": [6, 10, 55, 74, 96, 117, 142, 146], "subcompon": [6, 96], "codeblock": [7, 8, 92, 93], "process": [7, 8, 11, 20, 30, 44, 69, 90, 91, 108, 112, 143, 325, 348, 351], "receiv": [7, 11, 21, 44, 69, 90, 92, 93, 95, 108, 112, 143, 148, 149, 175, 181, 184, 185, 186, 188, 189, 277, 285, 288, 289, 291, 294, 324, 325, 334, 342, 343, 348, 349], "segreg": [7, 11, 44, 69, 92, 112, 143, 148], "aggreg": [7, 11, 44, 69, 93, 112, 143, 149, 305, 320, 348], "transmitt": [8, 11, 44, 69, 91, 92, 93, 95, 108, 112, 143, 148, 149, 176, 182, 184, 185, 186, 188, 189, 285, 287, 289, 291, 294, 315, 325, 327, 328, 331], "segment": [8, 11, 44, 69, 93, 112, 143, 149], "concaten": [8, 11, 44, 69, 92, 112, 143, 148], "paramet": [9, 18, 65, 84, 107, 127, 162, 168, 239, 249, 272, 285, 287, 288, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 315, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351], "polar": [10, 54, 55, 57, 58, 59, 73, 74, 76, 77, 78, 116, 117, 119, 120, 121, 142, 146, 152, 153, 154, 155, 158, 159, 160, 210, 211, 212, 213, 312, 335], "configur": [10, 55, 74, 117, 142, 146, 260, 261, 262, 263, 264, 265, 266, 267, 285, 287, 288, 289, 291, 294, 302, 329, 330, 332, 334, 335, 336, 349, 351], "differ": [10, 55, 74, 117, 142, 146, 302, 304, 305, 308, 309, 322, 323, 329, 336], "bioglio": [10, 55, 74, 117, 142, 146], "comparison": [10, 55, 74, 117, 142, 146, 302, 315, 333], "method": [10, 55, 74, 117, 142, 146, 192, 195, 202, 302, 327, 328, 329, 330, 331, 332], "compon": [10, 55, 74, 117, 142, 146, 150, 184, 185, 186, 188, 189, 235, 237], "input": [11, 27, 43, 44, 68, 69, 111, 112, 143, 301], "interleav": [11, 23, 24, 25, 26, 27, 28, 43, 44, 56, 58, 59, 68, 69, 75, 77, 78, 101, 111, 112, 118, 120, 121, 143, 153, 154, 158, 208, 211, 212], "deinterleav": [11, 24, 25, 27, 44, 69, 112, 143], "reed": [12, 144, 147, 312, 326], "muller": [12, 144, 147, 312, 326], "forward": 13, "correct": [13, 290], "antenna": [14, 338, 339, 340, 341, 342, 343, 344, 345, 346], "arrai": [14, 338, 339, 340, 341, 342, 343, 344, 345, 346], "element": 14, "3gpp_38_901": 14, "hertzian": 14, "dipol": 14, "linear": 14, "model": [16, 17, 315, 346, 347], "node": [17, 339, 342, 344], "mobil": [17, 339, 342, 343, 344], "random": [17, 187, 250], "walk": 17, "circular": [17, 19], "rout": [17, 343], "vehicl": 17, "drop": [17, 19], "highwai": 17, "layout": [19, 338, 339, 340, 341, 342, 343, 344, 345, 346], "b": [19, 287, 308, 343], "hexagon": [19, 338], "rectangular": 19, "ue": [19, 288, 302, 305, 307, 308, 309, 325, 327, 328, 329, 330, 331, 332, 342, 343], "hardwar": 20, "impair": 20, "add": [21, 324, 327, 328, 331, 334], "nois": [21, 324, 327, 328, 331, 334, 348], "cfo": [21, 268, 290], "appli": 22, "transmit": [22, 291, 294, 327, 328, 331, 334, 343, 348], "pbch": [25, 39, 45, 46, 52, 184, 262, 266, 269, 291, 294, 348, 349], "de": [26, 57, 58, 59, 76, 77, 78, 101, 102, 119, 120, 121, 130, 134, 136, 144, 147, 151, 152, 159, 161, 207, 208, 210, 211, 212, 215, 217, 218], "sub": [28, 56, 59, 75, 78, 118, 121, 154, 158, 212], "book": 29, "type": [29, 244, 245, 323, 334], "arrang": 29, "i": [29, 307, 334, 358], "singl": 29, "panel": 29, "assum": 29, "atleast": 29, "4": [29, 141, 178, 225, 243, 301, 305], "csi": [29, 228, 248, 261, 275, 334], "r": [29, 228, 248, 261, 275, 334], "port": 29, "multi": 29, "8": [29, 301, 305], "mimo": [30, 321, 322, 323], "orthogon": 31, "frequenc": [31, 267, 268, 288, 290, 324, 338, 339, 340, 341, 344, 349], "divis": 31, "multiplex": 31, "content": [31, 39, 46, 298, 301, 326, 328, 331, 335, 350, 358], "ofdm": [32, 33, 286, 289, 291, 324, 327, 328, 331, 333, 338, 339, 340, 341, 342, 343, 344, 346, 348, 349], "demodul": [32, 249, 291, 348], "posit": [33, 196, 197, 198, 199, 206, 231, 251, 276, 301, 302, 327, 328, 329, 330, 331, 332], "network": [33, 196, 198, 206, 285, 287, 288, 289, 290, 291, 292, 293, 294, 302, 310, 313, 321, 322, 323, 324, 325, 327, 328, 331, 332, 333, 349], "transform": [34, 35, 36, 37], "precod": [36, 37, 321, 322, 323, 334, 351], "downlink": [38, 103, 104, 185, 186, 229, 230, 233, 243, 275, 285, 287, 288, 289, 291, 292, 293, 294, 303, 316, 320, 321, 322, 323, 327, 328, 331, 334, 351], "control": [38, 185, 189, 190, 227, 230, 232, 234, 303, 320], "inform": [38, 39, 46, 144, 147, 228, 248, 261, 348, 350, 358], "dci": 38, "master": [39, 46], "mib": [39, 46, 324], "extract": [39, 46, 291, 294, 327, 328, 334], "demapp": [48, 60, 71, 79, 95, 98, 114, 122, 170, 173, 258, 326], "mapper": [49, 72, 95, 99, 115, 171, 174, 259, 326, 362], "scrambler": [52, 65, 84, 107, 127, 165, 168, 242], "match": [56, 75, 100, 102, 118, 151, 155, 156, 157, 159, 160, 161, 209, 213, 214], "select": [56, 57, 75, 76, 102, 118, 119, 152, 159, 207, 210, 309, 324, 327, 328, 331], "rnti": [61, 62, 80, 81, 123, 124, 164, 241], "mask": [61, 62, 80, 81, 123, 124, 164, 241], "scrambl": [63, 65, 82, 84, 105, 107, 125, 127, 162, 166, 168, 239], "pdcch": [63, 82, 125, 185, 230, 270, 278, 304, 305, 306, 307, 308, 309, 325], "descrambl": [64, 83, 106, 126, 163, 167, 240], "pdsch": [85, 86, 87, 88, 89, 105, 186, 263, 264, 271, 293, 294, 301, 351], "lower": [85, 86, 263], "physic": [85, 86, 87, 88, 103, 104, 175, 176, 183, 184, 185, 186, 187, 188, 189, 190, 191, 229, 230, 232, 233, 234, 263, 264, 303, 320, 349, 351], "layer": [85, 86, 87, 88, 95, 175, 176, 263, 264, 315], "chain": [85, 86, 87, 88, 89, 90, 91, 175, 176, 180, 181, 182], "upper": [87, 88, 175, 176, 264], "transport": [94, 108], "size": [94, 235, 237, 308, 309, 336], "share": [103, 104, 186, 191, 229, 233, 351], "dmr": [103, 104, 229, 249, 348], "pucch": [128, 133, 140, 150, 166, 175, 176, 177, 178, 179, 190, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 234, 246, 247, 350], "format": [128, 133, 140, 141, 177, 178, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 234, 246, 247, 350], "0": [128, 215, 216, 221, 246, 350, 358], "format0": 129, "sequenc": [132, 138, 243, 244, 245, 246, 247, 248, 249, 250, 251, 254, 348], "spread": [134, 139, 217, 220, 345], "format1": 135, "3": [141, 177, 224, 358], "small": [144, 147, 151, 161], "length": [144, 147, 151, 161, 336], "other": [144, 147], "pusch": [180, 191], "broadcast": [184, 188, 349], "access": [187, 348], "prach": [187, 317], "sidelink": [188, 189, 232, 235, 243, 253, 256], "psbch": 188, "pscch": [189, 232], "dft": [192, 202, 333], "aoa": [192, 332, 345], "esprit": [193, 203], "doa": [193, 194, 196, 197], "estim": [193, 194, 195, 196, 197, 198, 199, 203, 204, 205, 206, 268, 269, 270, 271, 272, 275, 276, 290, 291, 302, 313, 327, 328, 329, 330, 331, 332, 334, 345, 348, 350], "music": [194, 204], "direct": [195, 332], "arriv": [195, 196, 205, 327, 328, 329, 332], "least": [196, 197, 198, 199], "squar": [196, 197, 198, 199], "angl": [196, 331], "od": 196, "departur": [196, 331], "gradient": [196, 198], "descent": [196, 198], "hybrid": [197, 314], "toa": [197, 199, 203, 204, 205, 302, 327, 328, 329, 330, 331, 332], "mrtt": [197, 199], "tdoa": [197, 198, 327, 329], "4g": 198, "newton": 198, "raphson": 198, "optim": 200, "algorithm": [200, 277], "time": [205, 267, 273, 285, 286, 287, 288, 289, 291, 294, 324, 327, 328, 329, 338, 339, 340, 341, 342, 343, 344, 349], "delai": [205, 339, 345, 346], "submodul": 206, "set": [227, 236, 325, 349], "state": [228, 248, 261], "pr": [231, 251], "ptr": 233, "nr": 234, "synchron": [235, 237, 238, 252, 253, 255, 256, 273, 285, 286, 287, 288, 289, 291, 292, 294, 316, 317, 348, 349], "ssb": [235, 237, 238, 262, 266, 272, 285, 287, 289, 291, 292, 294, 316, 324, 348, 349], "grid": [235, 237, 285, 287, 289, 291, 294, 324, 325, 327, 328, 331, 334, 348, 349], "search": [236, 325], "space": [236, 325], "papr": [244, 245, 333], "each": [249, 320, 326, 335, 339, 349], "pseudo": 250, "pn": 250, "primari": [252, 253, 348], "": [253, 256, 333], "pss": [253, 273, 285, 286, 287, 288, 289, 291, 294, 348], "sound": [254, 265], "sr": [254, 265, 276, 302, 329, 330, 332], "secondari": [255, 256, 348], "sss": [256, 274, 348], "carrier": [268, 290, 344], "offset": [268, 290], "equal": [269, 270, 271, 291, 348], "cell": [273, 274, 329, 348], "id": [273, 274, 348], "us": [275, 276, 284, 285, 286, 287, 288, 292, 293, 294, 316, 317, 324, 329, 330, 332, 334, 357], "schedul": [278, 279, 283, 304, 305, 306, 307, 308, 309], "round": 279, "robin": 279, "adapt": [280, 281], "rank": [281, 322, 323, 334], "alloc": 282, "research": 284, "work": 284, "carri": 284, "out": 284, "frame": [285, 287, 288], "some": [285, 287, 288], "basic": [285, 287, 288, 320, 329], "emul": [285, 287, 288, 289, 291], "construct": [285, 287, 348], "transmiss": [285, 287, 289, 291, 294, 324, 327, 328, 331, 348, 349], "domain": [285, 287, 338, 339, 340, 341, 344, 346], "sampl": [285, 287, 301], "sdr": [285, 287, 288, 289, 291, 294, 295], "setup": [285, 287, 288, 289, 291, 294, 319, 362], "rf": [285, 287, 288, 289, 291, 294], "recept": [285, 288, 289, 291, 294], "correl": [285, 288, 289, 291, 294], "visual": [285, 302, 324, 327, 328, 329, 330, 331, 332], "save": [285, 351], "run": 285, "side": [287, 288, 325, 348, 351], "implement": [287, 288, 289, 291, 294, 351], "spectrum": [291, 294, 339, 348], "verif": [291, 294], "data": [293, 294, 315], "commun": [293, 294], "relat": 294, "recours": 294, "kei": 294, "indic": 294, "integr": 295, "introductori": 296, "cours": 296, "standard": 296, "learn": [297, 301, 315], "licens": [298, 356, 359, 360], "trademark": 298, "sourc": 298, "tentet": 299, "list": 299, "featur": [299, 358], "In": 299, "progress": 299, "To": 299, "releas": [299, 361], "soon": 299, "next": 299, "quarter": 299, "befor": 299, "septemb": 299, "2023": 299, "march": 299, "2024": 299, "previou": 300, "version": 300, "databas": 301, "preprocess": 301, "postprocess": 301, "train": [301, 315], "valid": 301, "infer": 301, "from": [301, 315, 348], "llrnet": 301, "output": 301, "m": 301, "6": 301, "throughput": [301, 322, 323], "ber": [301, 319, 320, 322, 323, 336, 348, 350, 362], "framework": 301, "deploy": 301, "section": 301, "evalu": [301, 319, 326, 335, 336, 348, 349, 350, 362], "v": [301, 307, 319, 320, 322, 323, 331, 333, 336, 362], "snr": [301, 319, 320, 322, 323, 336, 349, 362], "db": 301, "16": [301, 305], "qam": 301, "64": 301, "256": 301, "bler": [301, 315, 319, 320, 322, 323, 349, 362], "10000": [301, 322, 323, 349, 351], "batch": [301, 320, 322, 323, 349, 351], "64000": 301, "complex": 301, "analysi": [301, 302, 304, 310, 327, 328, 329, 330, 331, 332, 333, 348], "conclus": [301, 319], "limit": 301, "between": 302, "millimet": [302, 327, 332, 340], "wave": [302, 327], "wireless": [302, 320, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 338, 340, 341, 342, 344, 346, 348, 349, 351], "slot": [302, 329, 330, 332], "ul": [302, 329, 330, 332], "result": [302, 304, 322, 323, 336, 351], "averag": [302, 322, 323, 326, 333, 335, 336, 349, 351], "over": [302, 322, 323, 326, 335, 336, 349, 351], "2000": [302, 327, 328, 329, 330, 331], "probabl": [304, 305, 306, 307, 308, 309, 310, 345], "coverag": [304, 349], "condit": [304, 334], "good": 304, "scenario": [304, 343], "medium": 304, "extrem": 304, "plot": [304, 305, 306, 307, 308, 315, 326, 338, 340, 341, 342, 344, 350], "variat": [305, 306, 336, 342, 343], "al": 305, "impact": [305, 307, 308], "number": [305, 306, 307, 309, 334], "analyz": [306, 307, 308], "effect": 306, "candid": 306, "strategi": 307, "ii": 307, "capabl": 308, "case": 308, "coreset": [308, 309, 320, 325], "reduc": 308, "blind": [308, 325], "A": [308, 320, 322, 323, 325, 349], "minimum": 309, "given": 309, "target": 309, "numu": 309, "5": 309, "10": [309, 357, 360], "15": 309, "displai": [309, 325, 327, 328, 334, 342, 349, 362], "requir": [309, 356, 359, 360], "meet": 309, "blockag": 310, "redcap": 310, "devic": [310, 327], "interpol": [311, 327, 328], "srcnn": 311, "dncnn": 311, "compar": [312, 348], "studi": [312, 327, 328, 331, 342], "qualiti": [313, 327, 328], "beyond": [313, 314, 328, 331, 343], "automat": 314, "repeat": 314, "request": 314, "an": [315, 357], "phy": 315, "autoencod": 315, "step": 315, "test": 315, "normal": 315, "function": [315, 342], "defin": 315, "line": [315, 332, 345], "n": 315, "k": [315, 327, 328, 331, 345], "system": [316, 317, 348, 356, 357, 359, 360], "project": 318, "cdl": [320, 322, 323, 325, 349], "For": [320, 327, 328, 329, 330], "valu": [320, 349, 350], "reliabl": [320, 336], "20000": 320, "svd": [321, 322, 334, 351], "combin": [321, 322, 323, 348], "massiv": [321, 322, 323], "se": [322, 323], "codebook": 323, "p1": 324, "procedur": [324, 328, 331, 336, 360], "beam": [324, 331, 346], "manag": 324, "ati": 324, "power": [324, 333, 342, 343], "heatmap": [324, 339, 349], "rsrp": [324, 331], "station": 324, "topologi": 324, "65": 326, "dataset": [326, 335], "5000": 326, "point": [326, 335], "industri": 327, "iot": 327, "beamform": [327, 328, 331, 334, 348, 351], "locu": [327, 328, 332], "circl": [327, 328], "best": [327, 328, 331], "measur": [327, 328, 331], "geni": [327, 328, 331], "aid": [327, 328, 331], "further": [327, 328, 331, 342], "outdoor": [329, 338, 342, 345], "urban": 329, "micro": 329, "site": [329, 342], "indoor": [330, 332, 340, 341], "open": [330, 341], "offic": [330, 341], "rural": [331, 342], "macro": [331, 342], "terrain": [331, 338, 340, 341, 345], "window": [331, 357, 360], "index": 331, "aod": [331, 345], "dl": 331, "local": 332, "factori": [332, 340], "accuraci": 332, "1300": 332, "peak": [333, 348], "ratio": 333, "cp": 333, "aclr": 333, "100": [335, 336], "fix": 336, "follow": 336, "ar": 336, "tb": 336, "deploi": [338, 340], "geometri": 338, "coeffici": [338, 339, 340, 341, 342, 343, 344, 346], "magnitud": [338, 340, 341, 344], "respons": [338, 340, 341, 344], "spatial": 339, "consist": 339, "statist": 339, "realist": 339, "amplitud": 339, "subcarri": 339, "accross": 339, "One": 339, "phase": 339, "doppler": 339, "sparsiti": [339, 346], "dens": 340, "high": 340, "band": 340, "genar": 341, "user": 342, "connect": 342, "across": [342, 343], "anim": 342, "snapshot": 342, "dual": 343, "multipl": 344, "propag": 345, "characterist": 345, "rough": 345, "sight": 345, "path": 345, "loss": 345, "distribut": 345, "shadow": 345, "fade": 345, "rician": 345, "factor": 345, "charaterist": 345, "angular": 345, "azimuth": 345, "elev": 345, "demonstr": 346, "detail": [347, 357, 360], "tutori": [347, 352, 356, 359], "3gpp": 347, "initi": 348, "extern": 348, "libari": 348, "odfm": 348, "analog": 348, "addit": 348, "largest": 348, "reconstruct": 348, "extact": 348, "assist": 348, "libraier": 349, "m_c": 350, "mc": 350, "recevi": 351, "challeng": [353, 354], "Of": 353, "thi": [353, 355], "week": 353, "arxiv": 354, "ed": 354, "solut": 355, "month": 355, "problem": 355, "instal": [356, 357, 359, 360], "depend": [356, 359, 360], "miniconda": [356, 357, 359], "jupyt": [356, 357, 359], "notebook": [356, 357, 359], "final": [356, 357, 359], "confirm": [356, 357, 359], "activ": [356, 359, 360], "video": [356, 359], "ubuntu": [357, 360], "updat": 357, "11": [357, 360], "environ": 357, "conda": 357, "salient": 358, "technic": 358, "r24a": 358, "organ": 358, "look": 358, "help": 358, "more": 358, "20": 360, "04": 360, "22": 360, "note": 361}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Getting Started": [[0, "getting-started"]], "Understanding API Documentation": [[0, "understanding-api-documentation"]], "Hello World!": [[0, "hello-world"]], "Import Python Libraries": [[0, "import-python-libraries"], [294, "Import-Python-Libraries"], [301, "Import-Python-Libraries"], [302, "Import-Python-Libraries"], [304, "Import-Python-Libraries"], [322, "Import-Python-Libraries"], [322, "import-python-libraries-1"], [323, "Import-Python-Libraries"], [323, "import-python-libraries-1"], [333, "Import-Python-Libraries"], [334, "Import-Python-Libraries"], [334, "import-python-libraries-1"], [338, "Import-Python-Libraries"], [339, "Import-Python-Libraries"], [340, "Import-Python-Libraries"], [341, "Import-Python-Libraries"], [343, "Import-Python-Libraries"], [346, "Import-Python-Libraries"], [349, "Import-Python-Libraries"], [351, "Import-Python-Libraries"], [362, "Import-Python-Libraries"]], "How to import 5G Toolkit Libraries": [[0, "how-to-import-5g-toolkit-libraries"]], "Create Objects for all the Modules": [[0, "create-objects-for-all-the-modules"]], "Generate Payload bits and Encode them": [[0, "generate-payload-bits-and-encode-them"]], "Symbol Mapping the Encoded Bits": [[0, "symbol-mapping-the-encoded-bits"]], "Pass through AWGN Channel": [[0, "pass-through-awgn-channel"]], "Demapping the Symbols": [[0, "demapping-the-symbols"], [362, "Demapping-the-Symbols"]], "Detect Error in the Blocks": [[0, "detect-error-in-the-blocks"]], "Compute Bit and Block Error Rate": [[0, "compute-bit-and-block-error-rate"]], "Constellation Diagrams at the Tx and Rx": [[0, "constellation-diagrams-at-the-tx-and-rx"]], "Link Level Simulation": [[0, "link-level-simulation"], [362, "Link-Level-Simulation"]], "Bit/Block Error Rate Performance": [[0, "bit-block-error-rate-performance"]], "Resources and Scripts": [[0, "resources-and-scripts"]], "API Documentation": [[1, "api-documentation"]], "Table-1: The modules and packages supported by 5G Toolkit": [[1, "id1"]], "Cyclic Redundancy Check": [[2, "cyclic-redundancy-check"], [42, "cyclic-redundancy-check"], [51, "cyclic-redundancy-check"], [53, "cyclic-redundancy-check"], [67, "cyclic-redundancy-check"], [110, "cyclic-redundancy-check"]], "Table-2: Uplink Reference Signal and its utility": [[2, "id1"], [42, "id1"], [49, "id3"], [51, "id1"], [53, "id1"], [67, "id1"], [72, "id3"], [99, "id3"], [110, "id1"], [115, "id3"], [171, "id3"], [174, "id3"], [243, "id4"], [259, "id3"]], "CRC Decoder": [[3, "crc-decoder"]], "CRC Encoder": [[4, "crc-encoder"]], "Hamming Coder": [[5, "hamming-coder"]], "Hamming coder": [[5, "id1"]], "Hamming Decoder": [[5, "hamming-decoder"]], "Hamming Decoder - Sphere Decoding": [[5, "hamming-decoder-sphere-decoding"]], "Hamming Decoder - Syndrome Based Decoding": [[5, "hamming-decoder-syndrome-based-decoding"]], "Low Density Parity Check Codes": [[6, "low-density-parity-check-codes"], [96, "low-density-parity-check-codes"]], "LDPC Encoder": [[6, "ldpc-encoder"], [96, "ldpc-encoder"]], "LDPC Decoder": [[6, "ldpc-decoder"], [96, "ldpc-decoder"]], "LDPC Codec Subcomponents": [[6, "ldpc-codec-subcomponents"], [96, "ldpc-codec-subcomponents"]], "Codeblock Processing: Receiver": [[7, "codeblock-processing-receiver"]], "Code-block Segregation": [[7, "code-block-segregation"], [11, "code-block-segregation"], [44, "code-block-segregation"], [69, "code-block-segregation"], [112, "code-block-segregation"], [143, "code-block-segregation"]], "Codeblock Aggregation": [[7, "codeblock-aggregation"]], "Codeblock Processing: Transmitter": [[8, "codeblock-processing-transmitter"]], "Codeblock Segmentation": [[8, "codeblock-segmentation"]], "Codeblock Concatenation": [[8, "codeblock-concatenation"]], "LDPC Parameters Computation": [[9, "ldpc-parameters-computation"]], "Polar Codes": [[10, "polar-codes"], [55, "polar-codes"], [74, "polar-codes"], [117, "polar-codes"], [142, "polar-codes"], [146, "polar-codes"]], "Table-1: Polar codes and its configurations for different channels [Bioglio]": [[10, "id9"], [55, "id9"], [74, "id9"], [117, "id9"], [142, "id9"], [146, "id9"]], "Polar Encoder": [[10, "polar-encoder"], [55, "polar-encoder"], [74, "polar-encoder"], [117, "polar-encoder"], [142, "polar-encoder"], [146, "polar-encoder"]], "Polar Decoder": [[10, "polar-decoder"], [55, "polar-decoder"], [74, "polar-decoder"], [117, "polar-decoder"], [142, "polar-decoder"], [146, "polar-decoder"]], "Performance Comparison of Different Polar Decoding Methods.": [[10, "id10"], [55, "id10"], [74, "id10"], [117, "id10"], [142, "id10"], [146, "id10"]], "Polar Codec Components": [[10, "polar-codec-components"], [55, "polar-codec-components"], [74, "polar-codec-components"], [117, "polar-codec-components"], [142, "polar-codec-components"], [146, "polar-codec-components"]], "Code-block Processing: Transmitter": [[11, "code-block-processing-transmitter"], [44, "code-block-processing-transmitter"], [69, "code-block-processing-transmitter"], [112, "code-block-processing-transmitter"], [143, "code-block-processing-transmitter"]], "Code-block Segmentation": [[11, "code-block-segmentation"], [44, "code-block-segmentation"], [69, "code-block-segmentation"], [112, "code-block-segmentation"], [143, "code-block-segmentation"]], "Code-block Concatenation": [[11, "code-block-concatenation"], [44, "code-block-concatenation"], [69, "code-block-concatenation"], [112, "code-block-concatenation"], [143, "code-block-concatenation"]], "Code-block Processing: Receiver": [[11, "code-block-processing-receiver"], [44, "code-block-processing-receiver"], [69, "code-block-processing-receiver"], [112, "code-block-processing-receiver"], [143, "code-block-processing-receiver"]], "Code-block Aggregation": [[11, "code-block-aggregation"], [44, "code-block-aggregation"], [69, "code-block-aggregation"], [112, "code-block-aggregation"], [143, "code-block-aggregation"]], "Input Bit Interleavers": [[11, "input-bit-interleavers"], [44, "input-bit-interleavers"], [69, "input-bit-interleavers"], [112, "input-bit-interleavers"], [143, "input-bit-interleavers"]], "Input Bit Interleaver": [[11, "input-bit-interleaver"], [27, "input-bit-interleaver"], [27, "id1"], [43, "input-bit-interleaver"], [44, "input-bit-interleaver"], [68, "input-bit-interleaver"], [69, "input-bit-interleaver"], [111, "input-bit-interleaver"], [112, "input-bit-interleaver"], [143, "input-bit-interleaver"]], "Input Bit Deinterleaver": [[11, "input-bit-deinterleaver"], [44, "input-bit-deinterleaver"], [69, "input-bit-deinterleaver"], [112, "input-bit-deinterleaver"], [143, "input-bit-deinterleaver"]], "Reed Muller Codes": [[12, "reed-muller-codes"]], "Reed Muller Encoder 5G": [[12, "reed-muller-encoder-5g"]], "Reed Muller Decoder 5G": [[12, "reed-muller-decoder-5g"]], "Forward Error Correction": [[13, "forward-error-correction"]], "Antenna Array": [[14, "antenna-array"]], "Antenna Elements": [[14, "antenna-elements"]], "3GPP_38_901 Antenna Element": [[14, "gpp-38-901-antenna-element"]], "Hertzian Dipole Antenna Element": [[14, "hertzian-dipole-antenna-element"]], "Linear Dipole Antenna Element": [[14, "linear-dipole-antenna-element"]], "Channel Generator": [[15, "channel-generator"]], "Channel Models": [[16, "channel-models"]], "Node Mobility": [[17, "node-mobility"], [339, "Node-Mobility"], [342, "Node-Mobility"], [344, "Node-Mobility"]], "Mobility Models": [[17, "mobility-models"]], "Random-Walk": [[17, "random-walk"]], "Circular Route": [[17, "circular-route"]], "Vehicle Drops on HighWays": [[17, "vehicle-drops-on-highways"]], "Channel Parameter Generator": [[18, "channel-parameter-generator"]], "Simulation Layout": [[19, "simulation-layout"], [339, "Simulation-Layout"], [342, "Simulation-Layout"], [343, "Simulation-Layout"], [345, "Simulation-Layout"], [346, "Simulation-Layout"]], "BS Layouts": [[19, "bs-layouts"]], "Hexagonal Layout": [[19, "hexagonal-layout"]], "Rectangular Layout": [[19, "rectangular-layout"]], "UE Drops": [[19, "ue-drops"]], "Rectangular Drop": [[19, "rectangular-drop"]], "Circular Drop": [[19, "circular-drop"]], "Hexagonal Drop": [[19, "hexagonal-drop"]], "Channel Processing and Hardware Impairment": [[20, "channel-processing-and-hardware-impairment"]], "Add Noise and CFO at Receiver": [[21, "add-noise-and-cfo-at-receiver"]], "Apply Channel to Transmitted Signal": [[22, "apply-channel-to-transmitted-signal"]], "Interleavers": [[23, "interleavers"]], "Table-1: Interleavers in 5G": [[23, "id1"]], "Bit Interleavers": [[24, "bit-interleavers"]], "Bit Interleaver": [[24, "bit-interleaver"], [101, "bit-interleaver"], [208, "bit-interleaver"]], "Bit Deinterleaver": [[24, "bit-deinterleaver"]], "PBCH Interleaver": [[25, "pbch-interleaver"], [25, "id1"]], "PBCH DeInterleaver": [[25, "pbch-deinterleaver"]], "Channel Interleaver": [[26, "channel-interleaver"], [26, "id1"], [56, "channel-interleaver"], [58, "channel-interleaver"], [75, "channel-interleaver"], [77, "channel-interleaver"], [118, "channel-interleaver"], [120, "channel-interleaver"], [211, "channel-interleaver"]], "Channel De-interleaver": [[26, "channel-de-interleaver"], [58, "channel-de-interleaver"], [77, "channel-de-interleaver"], [120, "channel-de-interleaver"], [211, "channel-de-interleaver"]], "Input Bit DeInterleaver": [[27, "input-bit-deinterleaver"]], "Sub Block Interleaver": [[28, "sub-block-interleaver"], [28, "id1"], [28, "id4"], [56, "sub-block-interleaver"], [75, "sub-block-interleaver"], [118, "sub-block-interleaver"]], "Code-Books": [[29, "code-books"]], "Type-1 Code-Book": [[29, "type-1-code-book"]], "Arrangement of Type-I Single Panel assuming that Tx support atleast 4 CSI-RS ports.": [[29, "id3"]], "Arrangement of Type-I Multi Panel assuming that the Tx support atleast 8 CSI-RS ports": [[29, "id4"]], "MIMO Processing": [[30, "mimo-processing"]], "Orthogonal Frequency Division Multiplexing": [[31, "orthogonal-frequency-division-multiplexing"]], "Contents:": [[31, null], [358, null]], "OFDM: Demodulator": [[32, "ofdm-demodulator"]], "OFDM: Modulator": [[33, "ofdm-modulator"]], "Table-1: Positioning in 5G Networks": [[33, "id1"]], "Transform Decoding": [[34, "transform-decoding"]], "Transform Decoding for 5G": [[35, "transform-decoding-for-5g"]], "Transform Precoding": [[36, "transform-precoding"]], "Transform Precoding for 5G": [[37, "transform-precoding-for-5g"]], "Downlink Control Information (DCI)": [[38, "downlink-control-information-dci"]], "Master Information Block (MIB)": [[39, "master-information-block-mib"], [46, "master-information-block-mib"]], "Table-1: Content of PBCH Payload/MIB": [[39, "id1"], [46, "id1"]], "MIB Generation": [[39, "mib-generation"], [46, "mib-generation"]], "MIB Extraction": [[39, "mib-extraction"], [46, "mib-extraction"]], "Payload Generation": [[40, "payload-generation"]], "Cyclic Redundency Check": [[41, "cyclic-redundency-check"], [50, "cyclic-redundency-check"], [66, "cyclic-redundency-check"], [109, "cyclic-redundency-check"]], "PBCH Payload": [[45, "pbch-payload"]], "Modulation": [[47, "modulation"], [70, "modulation"], [97, "modulation"], [113, "modulation"], [172, "modulation"]], "Demapper": [[48, "demapper"], [60, "demapper"], [71, "demapper"], [79, "demapper"], [98, "demapper"], [114, "demapper"], [122, "demapper"], [170, "demapper"], [173, "demapper"], [258, "demapper"]], "Symbol Mapping": [[49, "symbol-mapping"], [72, "symbol-mapping"], [99, "symbol-mapping"], [115, "symbol-mapping"], [169, "symbol-mapping"], [174, "symbol-mapping"], [257, "symbol-mapping"]], "Mapper": [[49, "mapper"], [72, "mapper"], [99, "mapper"], [115, "mapper"], [171, "mapper"], [174, "mapper"], [259, "mapper"]], "PBCH Scrambler": [[52, "pbch-scrambler"]], "Polar Coder": [[54, "polar-coder"], [73, "polar-coder"], [116, "polar-coder"]], "Rate Matching": [[56, "rate-matching"], [75, "rate-matching"], [100, "rate-matching"], [118, "rate-matching"], [151, "rate-matching"], [157, "rate-matching"], [161, "rate-matching"]], "Bit Selection": [[56, "bit-selection"], [57, "bit-selection"], [75, "bit-selection"], [76, "bit-selection"], [102, "bit-selection"], [118, "bit-selection"], [119, "bit-selection"], [152, "bit-selection"], [159, "bit-selection"], [207, "bit-selection"], [210, "bit-selection"]], "Bit Selection for Polar Coder": [[57, "bit-selection-for-polar-coder"], [76, "bit-selection-for-polar-coder"], [119, "bit-selection-for-polar-coder"], [152, "bit-selection-for-polar-coder"], [159, "bit-selection-for-polar-coder"], [210, "bit-selection-for-polar-coder"]], "Bit De-selection": [[57, "bit-de-selection"], [76, "bit-de-selection"], [102, "bit-de-selection"], [119, "bit-de-selection"], [152, "bit-de-selection"], [159, "bit-de-selection"], [207, "bit-de-selection"], [210, "bit-de-selection"]], "Channel Interleaver for Polar Coder": [[58, "channel-interleaver-for-polar-coder"], [77, "channel-interleaver-for-polar-coder"], [120, "channel-interleaver-for-polar-coder"], [153, "channel-interleaver-for-polar-coder"], [158, "channel-interleaver-for-polar-coder"], [211, "channel-interleaver-for-polar-coder"]], "Sub Block Interleaver for Polar Coder": [[59, "sub-block-interleaver-for-polar-coder"], [78, "sub-block-interleaver-for-polar-coder"], [121, "sub-block-interleaver-for-polar-coder"], [154, "sub-block-interleaver-for-polar-coder"], [158, "sub-block-interleaver-for-polar-coder"], [212, "sub-block-interleaver-for-polar-coder"]], "Sub-block Interleaver": [[59, "sub-block-interleaver"], [78, "sub-block-interleaver"], [121, "sub-block-interleaver"], [212, "sub-block-interleaver"]], "Sub-block De-interleaver": [[59, "sub-block-de-interleaver"], [78, "sub-block-de-interleaver"], [121, "sub-block-de-interleaver"], [212, "sub-block-de-interleaver"]], "RNTI Masking": [[61, "rnti-masking"], [62, "rnti-masking"], [80, "rnti-masking"], [81, "rnti-masking"], [123, "rnti-masking"], [124, "rnti-masking"], [164, "rnti-masking"], [241, "rnti-masking"]], "Scrambling: PDCCH": [[63, "scrambling-pdcch"], [82, "scrambling-pdcch"], [125, "scrambling-pdcch"]], "Descrambler": [[64, "descrambler"], [83, "descrambler"], [106, "descrambler"], [126, "descrambler"], [163, "descrambler"], [167, "descrambler"], [240, "descrambler"]], "Scrambling": [[65, "scrambling"], [84, "scrambling"], [107, "scrambling"], [127, "scrambling"], [162, "scrambling"], [168, "scrambling"], [239, "scrambling"]], "Table-1: Scrambling and Scrambling parameters in 5G": [[65, "id4"], [84, "id4"], [107, "id4"], [127, "id4"], [162, "id1"], [168, "id4"], [239, "id1"]], "Scrambler": [[65, "scrambler"], [84, "scrambler"], [107, "scrambler"], [127, "scrambler"], [165, "scrambler"], [168, "scrambler"], [242, "scrambler"]], "PDSCH: Lower Physical layer Chain": [[85, "pdsch-lower-physical-layer-chain"]], "PDSCH: Lower Physical layer Chain Decoder": [[86, "pdsch-lower-physical-layer-chain-decoder"]], "PDSCH: Upper Physical layer Chain": [[87, "pdsch-upper-physical-layer-chain"]], "PDSCH: Upper Physical layer Chain Decoder": [[88, "pdsch-upper-physical-layer-chain-decoder"]], "PDSCH Chain": [[89, "pdsch-chain"]], "Receiver Processing": [[90, "receiver-processing"]], "Receiver": [[90, "receiver"]], "Receiver Chain": [[90, "receiver-chain"], [181, "receiver-chain"]], "Transmitter Processing": [[91, "transmitter-processing"]], "Transmitter": [[91, "transmitter"], [315, "Transmitter"]], "Transmitter Chain": [[91, "transmitter-chain"], [182, "transmitter-chain"]], "Code Block Concatenation": [[92, "code-block-concatenation"], [148, "code-block-concatenation"]], "Codeblock Concatenation: Transmitter": [[92, "codeblock-concatenation-transmitter"]], "Code-block Segregation: Receiver": [[92, "code-block-segregation-receiver"]], "Code Block Segmentation": [[93, "code-block-segmentation"], [149, "code-block-segmentation"]], "Codeblock Segmentation: Transmitter": [[93, "codeblock-segmentation-transmitter"]], "Code Block Aggregation: Receiver": [[93, "code-block-aggregation-receiver"], [149, "code-block-aggregation-receiver"]], "Transport Block Size Computation": [[94, "transport-block-size-computation"]], "Layer Mapper": [[95, "layer-mapper"]], "Layer Mapper: Transmitter": [[95, "layer-mapper-transmitter"]], "Layer Demapper: Receiver": [[95, "layer-demapper-receiver"]], "Bit Interleaver for LDPC": [[101, "bit-interleaver-for-ldpc"], [208, "bit-interleaver-for-ldpc"]], "Bit De-interleaver": [[101, "bit-de-interleaver"], [208, "bit-de-interleaver"]], "Rate matching for LDPC": [[102, "rate-matching-for-ldpc"], [209, "rate-matching-for-ldpc"]], "Bit Selection for LDPC": [[102, "bit-selection-for-ldpc"], [207, "bit-selection-for-ldpc"]], "Physical Downlink Shared Channel-DMRS": [[103, "physical-downlink-shared-channel-dmrs"], [104, "physical-downlink-shared-channel-dmrs"], [229, "physical-downlink-shared-channel-dmrs"]], "Scrambling: PDSCH": [[105, "scrambling-pdsch"]], "Transport Block Processing": [[108, "transport-block-processing"]], "Transport Block Processing: Transmitter": [[108, "transport-block-processing-transmitter"]], "Transport Block Processing: Receiver": [[108, "transport-block-processing-receiver"]], "PUCCH Format 0": [[128, "pucch-format-0"]], "Format0": [[129, "format0"]], "Resource De-Mapping": [[130, "resource-de-mapping"], [136, "resource-de-mapping"]], "Resource Mapping": [[131, "resource-mapping"], [137, "resource-mapping"], [226, "resource-mapping"]], "Sequence Generation": [[132, "sequence-generation"], [138, "sequence-generation"], [243, "sequence-generation"]], "PUCCH Format 1": [[133, "pucch-format-1"]], "De-Spreading": [[134, "de-spreading"]], "Format1": [[135, "format1"]], "Spreading": [[139, "spreading"]], "PUCCH Format 2": [[140, "pucch-format-2"]], "Format 2,3,4": [[141, "format-2-3-4"]], "Channel Coding of Small Block Length": [[144, "channel-coding-of-small-block-length"], [147, "channel-coding-of-small-block-length"]], "Encoding of 1-bit Information": [[144, "encoding-of-1-bit-information"], [147, "encoding-of-1-bit-information"]], "Encoding of 2-bit Information": [[144, "encoding-of-2-bit-information"], [147, "encoding-of-2-bit-information"]], "Encoding of other small block lengths (Reed Muller Coder)": [[144, "encoding-of-other-small-block-lengths-reed-muller-coder"], [147, "encoding-of-other-small-block-lengths-reed-muller-coder"]], "Channel De-Coding of Small Block Length": [[144, "channel-de-coding-of-small-block-length"], [147, "channel-de-coding-of-small-block-length"]], "Channel Coder": [[145, "channel-coder"]], "Code Block Concatenation: Transmitter": [[148, "code-block-concatenation-transmitter"]], "Code Block Segregation: Receiver": [[148, "code-block-segregation-receiver"]], "Code Block Segmentation: Transmitter": [[149, "code-block-segmentation-transmitter"]], "PUCCH Components": [[150, "pucch-components"]], "Rate matching for Small Block Length 5G": [[151, "rate-matching-for-small-block-length-5g"], [161, "rate-matching-for-small-block-length-5g"]], "De-Rate Matching": [[151, "de-rate-matching"], [161, "de-rate-matching"]], "Rate matching for Polar coder": [[155, "rate-matching-for-polar-coder"], [159, "rate-matching-for-polar-coder"], [213, "rate-matching-for-polar-coder"]], "Rate matching": [[156, "rate-matching"], [214, "rate-matching"]], "Rate Matching for Polar Coder": [[160, "rate-matching-for-polar-coder"]], "Scrambling: PUCCH": [[166, "scrambling-pucch"]], "PUCCH Receiver": [[175, "pucch-receiver"]], "PUCCH: Upper Physical Layer Chain": [[175, "pucch-upper-physical-layer-chain"], [176, "pucch-upper-physical-layer-chain"]], "PUCCH Transmitter": [[176, "pucch-transmitter"]], "PUCCH Format 3": [[177, "pucch-format-3"]], "PUCCH Format 4": [[178, "pucch-format-4"]], "PUCCH": [[179, "pucch"]], "PUSCH Chain": [[180, "pusch-chain"]], "Physical Channels": [[183, "physical-channels"]], "Physical Broadcast Channel (PBCH)": [[184, "physical-broadcast-channel-pbch"]], "PBCH Transmitter": [[184, "pbch-transmitter"]], "PBCH Receiver": [[184, "pbch-receiver"], [294, "PBCH-Receiver"]], "PBCH Components": [[184, "pbch-components"]], "Physical Downlink Control Channel (PDCCH)": [[185, "physical-downlink-control-channel-pdcch"], [230, "physical-downlink-control-channel-pdcch"]], "PDCCH Transmitter": [[185, "pdcch-transmitter"]], "PDCCH Receiver": [[185, "pdcch-receiver"]], "PDCCH Components": [[185, "pdcch-components"]], "Physical Downlink Shared Channel (PDSCH)": [[186, "physical-downlink-shared-channel-pdsch"]], "PDSCH Transmitter": [[186, "pdsch-transmitter"]], "PDSCH Receiver": [[186, "pdsch-receiver"], [294, "PDSCH-Receiver"]], "PDSCH Components": [[186, "pdsch-components"]], "Physical Random Access Channel (PRACH)": [[187, "physical-random-access-channel-prach"]], "Physical Sidelink Broadcast Channel (PSBCH)": [[188, "physical-sidelink-broadcast-channel-psbch"]], "PSBCH Transmitter": [[188, "psbch-transmitter"]], "PSBCH Receiver": [[188, "psbch-receiver"]], "PSBCH Components": [[188, "psbch-components"]], "Physical Sidelink Control Channel (PSCCH)": [[189, "physical-sidelink-control-channel-pscch"], [232, "physical-sidelink-control-channel-pscch"]], "PSCCH Transmitter": [[189, "pscch-transmitter"]], "PSCCH Receiver": [[189, "pscch-receiver"]], "PSCCH Components": [[189, "pscch-components"]], "Physical Uplink Control Channel (PUCCH)": [[190, "physical-uplink-control-channel-pucch"], [234, "physical-uplink-control-channel-pucch"]], "Physical Uplink Shared Channel (PUSCH)": [[191, "physical-uplink-shared-channel-pusch"]], "DFT based AoA Method": [[192, "dft-based-aoa-method"]], "ESPRIT based DoA Estimation": [[193, "esprit-based-doa-estimation"]], "MUSIC based DoA Estimation": [[194, "music-based-doa-estimation"]], "Direction of Arrival Estimation": [[195, "direction-of-arrival-estimation"]], "Direction of Arrival Estimation Methods": [[195, "id1"]], "Least Squares based Position Estimator for DoA": [[196, "least-squares-based-position-estimator-for-doa"]], "Table-1: Angle od Departure and Arrival based Positioning in 5G Networks": [[196, "id4"]], "Gradient Descent based Position Estimator for DoA": [[196, "gradient-descent-based-position-estimator-for-doa"]], "Least Square based Position Estimator for Hybrid ToA/mRTT and DoA": [[197, "least-square-based-position-estimator-for-hybrid-toa-mrtt-and-doa"]], "Least Square based Position Estimator for Hybrid TDoA and DoA": [[197, "least-square-based-position-estimator-for-hybrid-tdoa-and-doa"]], "Least Squares based Position Estimator for TDoA": [[198, "least-squares-based-position-estimator-for-tdoa"]], "Table-1: TDoA in 4G and 5G Networks": [[198, "id6"]], "Gradient Descent based Position Estimator for TDoA": [[198, "gradient-descent-based-position-estimator-for-tdoa"]], "Newton Raphson based Position Estimator for TDoA": [[198, "newton-raphson-based-position-estimator-for-tdoa"]], "Least Squares based Position Estimator for ToA/mRTT": [[199, "least-squares-based-position-estimator-for-toa-mrtt"]], "Optimization Algorithms": [[200, "optimization-algorithms"]], "DFT based Method": [[202, "dft-based-method"]], "ESPRIT based ToA Estimation": [[203, "esprit-based-toa-estimation"]], "MUSIC based ToA Estimation": [[204, "music-based-toa-estimation"]], "Time of Arrival (ToA)/Delay Estimation": [[205, "time-of-arrival-toa-delay-estimation"]], "Position Estimation": [[206, "position-estimation"], [206, "id1"]], "Positioning in 5G Networks": [[206, "id2"]], "Submodules": [[206, "submodules"]], "PUCCH Format 0 Resource De-Mapping": [[215, "pucch-format-0-resource-de-mapping"]], "PUCCH Format 0 Resource Mapping": [[216, "pucch-format-0-resource-mapping"]], "PUCCH Format-1 De-Spreading": [[217, "pucch-format-1-de-spreading"]], "PUCCH Format-1 Resource De-Mapping": [[218, "pucch-format-1-resource-de-mapping"]], "PUCCH Format-1 Resource Mapping": [[219, "pucch-format-1-resource-mapping"]], "PUCCH Format-1 Spreading": [[220, "pucch-format-1-spreading"]], "PUCCH Format-0": [[221, "pucch-format-0"]], "PUCCH Format-1": [[222, "pucch-format-1"]], "PUCCH Format-2": [[223, "pucch-format-2"]], "PUCCH Format-3": [[224, "pucch-format-3"]], "PUCCH Format-4": [[225, "pucch-format-4"]], "Control Resource Set": [[227, "control-resource-set"]], "Channel state Information reference signal (CSI-RS)": [[228, "channel-state-information-reference-signal-csi-rs"]], "Positioning Reference Signal (PRS)": [[231, "positioning-reference-signal-prs"]], "Physical Downlink Shared Channel-PTRS": [[233, "physical-downlink-shared-channel-ptrs"]], "Table-1: PUCCH Format in 5G-NR": [[234, "id1"]], "Sidelink Synchronization Signal Block (SSB) Grid Generation": [[235, "sidelink-synchronization-signal-block-ssb-grid-generation"]], "Table-1: Sizes of the components of SSBs": [[235, "id1"], [237, "id2"]], "Search Space Set": [[236, "search-space-set"]], "Synchronization Signal Block (SSB) Grid Generation": [[237, "synchronization-signal-block-ssb-grid-generation"]], "Synchronization Signal Block (SSB) Resource Mapping": [[238, "synchronization-signal-block-ssb-resource-mapping"]], "Table-1: Downlink Reference Signal and its utility": [[243, "id3"]], "Table-4: Sidelink Reference Signal and its utility": [[243, "id5"]], "Low PAPR Sequence Type 1": [[244, "low-papr-sequence-type-1"]], "Low PAPR Sequence Type 2": [[245, "low-papr-sequence-type-2"]], "PUCCH Format 0 Sequence": [[246, "pucch-format-0-sequence"]], "PUCCH Format 1 Sequence": [[247, "pucch-format-1-sequence"]], "Channel State Information Reference Sequence (CSI-RS)": [[248, "channel-state-information-reference-sequence-csi-rs"]], "Demodulation Reference Sequence (DMRS)": [[249, "demodulation-reference-sequence-dmrs"]], "Table-1: Parameters for generating DMRS for each channel.": [[249, "id3"]], "Pseudo Random (PN) Sequence": [[250, "pseudo-random-pn-sequence"]], "Positioning Reference Sequence (PRS)": [[251, "positioning-reference-sequence-prs"]], "Primary Synchronization Signal": [[252, "primary-synchronization-signal"]], "Primary Synchronization Signal for Sidelink (S-PSS)": [[253, "primary-synchronization-signal-for-sidelink-s-pss"]], "Sounding Reference Sequence (SRS)": [[254, "sounding-reference-sequence-srs"]], "Secondary Synchronization Signal": [[255, "secondary-synchronization-signal"]], "Secondary Synchronization Signal for Sidelink (S-SSS)": [[256, "secondary-synchronization-signal-for-sidelink-s-sss"]], "5G Configurations": [[260, "g-configurations"]], "Channel state information reference signal (CSI-RS) Configurations": [[261, "channel-state-information-reference-signal-csi-rs-configurations"]], "SSB/PBCH Configurations": [[262, "ssb-pbch-configurations"], [266, "ssb-pbch-configurations"]], "PDSCH Lower Physical Layer Configurations": [[263, "pdsch-lower-physical-layer-configurations"]], "PDSCH Upper Physical Layer Configurations": [[264, "pdsch-upper-physical-layer-configurations"]], "Sounding Reference Signal (SRS) Configurations": [[265, "sounding-reference-signal-srs-configurations"]], "Time-Frequency 5G-Configurations": [[267, "time-frequency-5g-configurations"]], "Carrier Frequency Offset (CFO) Estimation": [[268, "carrier-frequency-offset-cfo-estimation"]], "Channel Estimation and Symbol Equalization for PBCH": [[269, "channel-estimation-and-symbol-equalization-for-pbch"]], "Channel Estimation and Symbol Equalization for PDCCH": [[270, "channel-estimation-and-symbol-equalization-for-pdcch"]], "Channel Estimation and Symbol Equalization for PDSCH": [[271, "channel-estimation-and-symbol-equalization-for-pdsch"]], "SSB Parameters Estimation": [[272, "ssb-parameters-estimation"]], "Time Synchronization and PSS/Cell ID-2 Detection": [[273, "time-synchronization-and-pss-cell-id-2-detection"]], "SSS/Cell ID-1 Detection": [[274, "sss-cell-id-1-detection"]], "Downlink Channel Estimation using CSI-RS": [[275, "downlink-channel-estimation-using-csi-rs"], [334, "Downlink-Channel-Estimation-using-CSI-RS"]], "Uplink Channel Estimation using SRS for Positioning": [[276, "uplink-channel-estimation-using-srs-for-positioning"]], "Receiver Algorithms": [[277, "receiver-algorithms"]], "PDCCH Scheduler": [[278, "pdcch-scheduler"]], "Round Robin Scheduler": [[279, "round-robin-scheduler"]], "Link Adaptation": [[280, "link-adaptation"]], "Rank Adaptation": [[281, "rank-adaptation"]], "Resource Allocation": [[282, "resource-allocation"]], "Scheduler": [[283, "scheduler"]], "Research work carried out using 5G Toolkit": [[284, "research-work-carried-out-using-5g-toolkit"]], "Downlink Time/Frame Synchronization using PSS in 5G Networks": [[285, "Downlink-Time/Frame-Synchronization-using-PSS-in-5G-Networks"]], "Import Libraries": [[285, "Import-Libraries"], [287, "Import-Libraries"], [288, "Import-Libraries"], [289, "Import-Libraries"], [291, "Import-Libraries"], [301, "Import-Libraries"], [301, "id1"], [302, "Import-Libraries"], [319, "Import-Libraries"], [320, "Import-Libraries"], [325, "Import-Libraries"], [326, "Import-Libraries"], [327, "Import-Libraries"], [328, "Import-Libraries"], [329, "Import-Libraries"], [331, "Import-Libraries"], [333, "Import-Libraries"], [336, "Import-Libraries"], [338, "Import-Libraries"], [339, "Import-Libraries"], [340, "Import-Libraries"], [341, "Import-Libraries"], [342, "Import-Libraries"], [343, "Import-Libraries"], [344, "Import-Libraries"], [346, "Import-Libraries"], [348, "Import-Libraries"], [349, "Import-Libraries"], [350, "import-libraries"]], "Import Some Basic Python Libraries": [[285, "Import-Some-Basic-Python-Libraries"], [287, "Import-Some-Basic-Python-Libraries"], [288, "Import-Some-Basic-Python-Libraries"]], "Import 5G Libraries": [[285, "Import-5G-Libraries"], [287, "Import-5G-Libraries"], [288, "Import-5G-Libraries"], [343, "Import-5G-Libraries"]], "Emulation Parameters": [[285, "Emulation-Parameters"], [287, "Emulation-Parameters"], [288, "Emulation-Parameters"]], "Generate SSB Parameters": [[285, "Generate-SSB-Parameters"], [287, "Generate-SSB-Parameters"]], "Construct Transmission Grid and Generate Time Domain Samples": [[285, "Construct-Transmission-Grid-and-Generate-Time-Domain-Samples"], [287, "Construct-Transmission-Grid-and-Generate-Time-Domain-Samples"]], "SDR-Setup Configurations": [[285, "SDR-Setup-Configurations"], [287, "SDR-Setup-Configurations"], [288, "SDR-Setup-Configurations"], [289, "SDR-Setup-Configurations"], [291, "SDR-Setup-Configurations"], [294, "SDR-Setup-Configurations"]], "Transmission: SDR RF Transmitter": [[285, "Transmission:-SDR-RF-Transmitter"], [287, "Transmission:-SDR-RF-Transmitter"], [289, "Transmission:-SDR-RF-Transmitter"], [291, "Transmission:-SDR-RF-Transmitter"], [294, "Transmission:-SDR-RF-Transmitter"]], "Reception: SDR RF Receiver": [[285, "Reception:-SDR-RF-Receiver"], [288, "Reception:-SDR-RF-Receiver"], [289, "Reception:-SDR-RF-Receiver"], [291, "Reception:-SDR-RF-Receiver"], [294, "Reception:-SDR-RF-Receiver"]], "Time Synchronization: Based on PSS Correlation": [[285, "Time-Synchronization:-Based-on-PSS-Correlation"], [288, "Time-Synchronization:-Based-on-PSS-Correlation"], [289, "Time-Synchronization:-Based-on-PSS-Correlation"], [291, "Time-Synchronization:-Based-on-PSS-Correlation"], [294, "Time-Synchronization:-Based-on-PSS-Correlation"]], "Frame Synchronization: Visualization": [[285, "Frame-Synchronization:-Visualization"]], "Saving Running frames": [[285, "Saving-Running-frames"]], "Time/OFDM Symbol Synchronization using PSS in 5G": [[286, "time-ofdm-symbol-synchronization-using-pss-in-5g"]], "[BS Side Implementation]-Downlink Time/Frame Synchronization using PSS in 5G Networks": [[287, "[BS-Side-Implementation]-Downlink-Time/Frame-Synchronization-using-PSS-in-5G-Networks"]], "[UE Side Implementation]-Downlink Time/Frame Synchronization using PSS in 5G Networks": [[288, "[UE-Side-Implementation]-Downlink-Time/Frame-Synchronization-using-PSS-in-5G-Networks"]], "Time Frequency Configurations": [[288, "Time-Frequency-Configurations"]], "Downlink Synchronization in 5G Networks: SSB": [[289, "Downlink-Synchronization-in-5G-Networks:-SSB"], [291, "Downlink-Synchronization-in-5G-Networks:-SSB"]], "Import Python and SDR Libraries": [[289, "Import-Python-and-SDR-Libraries"], [291, "Import-Python-and-SDR-Libraries"]], "Import 5G Toolkit Libraries": [[289, "Import-5G-Toolkit-Libraries"], [291, "Import-5G-Toolkit-Libraries"], [302, "Import-5G-Toolkit-Libraries"], [304, "Import-5G-Toolkit-Libraries"], [329, "Import-5G-Toolkit-Libraries"], [338, "Import-5G-Toolkit-Libraries"], [340, "Import-5G-Toolkit-Libraries"], [341, "Import-5G-Toolkit-Libraries"], [362, "Import-5G-Toolkit-Libraries"]], "Emulation Configurations": [[289, "Emulation-Configurations"], [291, "Emulation-Configurations"]], "Transmitter Implementation": [[289, "Transmitter-Implementation"], [291, "Transmitter-Implementation"]], "Generate the SSB Grid for synchronization": [[289, "Generate-the-SSB-Grid-for-synchronization"], [291, "Generate-the-SSB-Grid-for-synchronization"]], "Constellation Diagram": [[289, "Constellation-Diagram"], [291, "Constellation-Diagram"], [294, "Constellation-Diagram"], [362, "Constellation-Diagram"]], "OFDM Modulation: Tx": [[289, "OFDM-Modulation:-Tx"], [291, "OFDM-Modulation:-Tx"]], "Receiver Implementation": [[289, "Receiver-Implementation"], [291, "Receiver-Implementation"]], "Carrier Frequency Offset (CFO) Estimation and Correction in 5G Networks": [[290, "carrier-frequency-offset-cfo-estimation-and-correction-in-5g-networks"]], "OFDM Demodulation and SSB Extraction": [[291, "OFDM-Demodulation-and-SSB-Extraction"]], "SSB Grid: Transmitter and Receiver": [[291, "SSB-Grid:-Transmitter-and-Receiver"], [294, "SSB-Grid:-Transmitter-and-Receiver"]], "Spectrum: Transmitted Grid and Received Grid": [[291, "Spectrum:-Transmitted-Grid-and-Received-Grid"], [294, "Spectrum:-Transmitted-Grid-and-Received-Grid"]], "Parameter Estimation for SSB and PBCH": [[291, "Parameter-Estimation-for-SSB-and-PBCH"]], "Channel Estimation and PBCH Symbol Equalization": [[291, "Channel-Estimation-and-PBCH-Symbol-Equalization"], [348, "Channel-Estimation-and-PBCH-Symbol-Equalization"]], "PBCH Decoding and Constellation": [[291, "PBCH-Decoding-and-Constellation"], [294, "PBCH-Decoding-and-Constellation"]], "Performance Verification": [[291, "Performance-Verification"], [294, "Performance-Verification"]], "Downlink Synchronization using SSB in 5G Networks": [[292, "downlink-synchronization-using-ssb-in-5g-networks"]], "Downlink Data Communication using PDSCH in 5G Networks": [[293, "downlink-data-communication-using-pdsch-in-5g-networks"]], "Downlink Data Communication in 5G Networks": [[294, "Downlink-Data-Communication-in-5G-Networks"]], "5G Toolkit Libraries": [[294, "5G-Toolkit-Libraries"], [319, "5G-Toolkit-Libraries"], [325, "5G-Toolkit-Libraries"], [326, "5G-Toolkit-Libraries"], [327, "5G-Toolkit-Libraries"], [328, "5G-Toolkit-Libraries"], [330, "5G-Toolkit-Libraries"], [331, "5G-Toolkit-Libraries"], [332, "5G-Toolkit-Libraries"], [336, "5G-Toolkit-Libraries"], [342, "5G-Toolkit-Libraries"], [344, "5G-Toolkit-Libraries"]], "Simulation Parameters": [[294, "Simulation-Parameters"], [301, "Simulation-Parameters"], [302, "Simulation-Parameters"], [304, "Simulation-Parameters"], [305, "Simulation-Parameters"], [306, "Simulation-Parameters"], [307, "Simulation-Parameters"], [308, "Simulation-Parameters"], [309, "Simulation-Parameters"], [320, "Simulation-Parameters"], [322, "Simulation-Parameters"], [323, "Simulation-Parameters"], [324, "Simulation-Parameters"], [325, "Simulation-Parameters"], [326, "Simulation-Parameters"], [327, "Simulation-Parameters"], [328, "Simulation-Parameters"], [329, "Simulation-Parameters"], [330, "Simulation-Parameters"], [331, "Simulation-Parameters"], [332, "Simulation-Parameters"], [333, "Simulation-Parameters"], [334, "Simulation-Parameters"], [338, "Simulation-Parameters"], [339, "Simulation-Parameters"], [340, "Simulation-Parameters"], [341, "Simulation-Parameters"], [342, "Simulation-Parameters"], [343, "Simulation-Parameters"], [344, "Simulation-Parameters"], [345, "Simulation-Parameters"], [346, "Simulation-Parameters"], [349, "Simulation-Parameters"], [350, "simulation-parameters"], [351, "Simulation-Parameters"]], "PDSCH Transmitter Implementation": [[294, "PDSCH-Transmitter-Implementation"]], "Generate the PDSCH related parameters: Use PDSCH Configurations": [[294, "Generate-the-PDSCH-related-parameters:-Use-PDSCH-Configurations"]], "Generate the PDSCH Resource Grid": [[294, "Generate-the-PDSCH-Resource-Grid"]], "SSB Transmitter Implementation": [[294, "SSB-Transmitter-Implementation"]], "Generate the SSB Resource Grid": [[294, "Generate-the-SSB-Resource-Grid"]], "Receiver Implementation: SSB": [[294, "Receiver-Implementation:-SSB"]], "PDSCH Recourse Implementation": [[294, "PDSCH-Recourse-Implementation"]], "Extract PDSCH Resource Grid": [[294, "Extract-PDSCH-Resource-Grid"]], "Key Performance Indicators": [[294, "Key-Performance-Indicators"]], "Integration with SDRs": [[295, "integration-with-sdrs"]], "Introductory Course on 5G Standards": [[296, "introductory-course-on-5g-standards"]], "Learning Resources": [[297, "learning-resources"]], "License": [[298, "license"]], "Trademarks": [[298, "trademarks"]], "Source Code": [[298, "source-code"]], "Content": [[298, "content"]], "Tentetive list of Feature": [[299, "tentetive-list-of-feature"]], "In Progress (To be Released soon):": [[299, "in-progress-to-be-released-soon"]], "Next Quarter": [[299, "next-quarter"]], "Before September 2023": [[299, "before-september-2023"]], "Before March 2024": [[299, "before-march-2024"]], "Previous Versions": [[300, "previous-versions"]], "Learning to Demap: Database Generation, Preprocessing, Postprocessing, Training, Validation and Inferences from the LLRNet": [[301, "Learning-to-Demap:-Database-Generation,-Preprocessing,-Postprocessing,-Training,-Validation-and-Inferences-from-the-LLRNet"]], "Table of Contents": [[301, "Table-of-Contents"], [350, "table-of-contents"]], "Import 5G Toolkit Modules": [[301, "Import-5G-Toolkit-Modules"]], "Learning to Demap the Symbols": [[301, "Learning-to-Demap-the-Symbols"]], "Input Output Mapping for M = 4": [[301, "Input-Output-Mapping-for-M-=-4"]], "Input Output Mapping for M = 6": [[301, "Input-Output-Mapping-for-M-=-6"]], "Input Output Mapping for M = 8": [[301, "Input-Output-Mapping-for-M-=-8"]], "Throughput and BER Performance of LLRnet": [[301, "Throughput-and-BER-Performance-of-LLRnet"]], "PDSCH Parameters": [[301, "PDSCH-Parameters"]], "LLRnet Parameters": [[301, "LLRnet-Parameters"]], "Training Framework": [[301, "Training-Framework"]], "Deployment Framework": [[301, "Deployment-Framework"]], "Simulation Section": [[301, "Simulation-Section"]], "Performance Evaluation": [[301, "Performance-Evaluation"], [326, "Performance-Evaluation"], [350, "performance-evaluation"]], "Throughput vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM": [[301, "Throughput-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM"]], "Bit Error rate (BER) vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM": [[301, "Bit-Error-rate-(BER)-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM"]], "Block Error Rate (BLER) vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM": [[301, "Block-Error-Rate-(BLER)-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM"]], "Performance Evaluation: 10000 batches and 64000 training samples for LLRNet": [[301, "Performance-Evaluation:-10000-batches-and-64000-training-samples-for-LLRNet"]], "Throughput vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM.": [[301, "Throughput-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM."]], "Bit Error rate (BER) vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM.": [[301, "Bit-Error-rate-(BER)-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM."]], "Block Error rate (BER) vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM.": [[301, "Block-Error-rate-(BER)-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM."]], "Complexity Analysis": [[301, "Complexity-Analysis"]], "Conclusion": [[301, "Conclusion"]], "Positives of the LLRnet:": [[301, "Positives-of-the-LLRnet:"]], "Limitations of the LLRnet:": [[301, "Limitations-of-the-LLRnet:"]], "References:": [[301, "References:"]], "Performance comparison between different Positioning Methods for millimeter wave 5G Networks": [[302, "Performance-comparison-between-different-Positioning-Methods-for-millimeter-wave-5G-Networks"]], "Generate Wireless Channels": [[302, "Generate-Wireless-Channels"], [329, "Generate-Wireless-Channels"], [330, "Generate-Wireless-Channels"], [332, "Generate-Wireless-Channels"]], "SRS Configurations": [[302, "SRS-Configurations"], [329, "SRS-Configurations"], [330, "SRS-Configurations"], [332, "SRS-Configurations"]], "Slot by Slot Simulation": [[302, "Slot-by-Slot-Simulation"], [329, "Slot-by-Slot-Simulation"], [330, "Slot-by-Slot-Simulation"], [332, "Slot-by-Slot-Simulation"]], "Position Estimation: Based on UL-ToA": [[302, "Position-Estimation:-Based-on-UL-ToA"], [329, "Position-Estimation:-Based-on-UL-ToA"], [330, "Position-Estimation:-Based-on-UL-ToA"], [332, "Position-Estimation:-Based-on-UL-ToA"]], "Visualization of Estimated Position": [[302, "Visualization-of-Estimated-Position"], [329, "Visualization-of-Estimated-Position"], [330, "Visualization-of-Estimated-Position"]], "Performance Analysis of Positioning Error for ToA based method": [[302, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"], [327, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"], [328, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"], [329, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"], [331, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"]], "Positioning Results Averaged over 2000 UEs": [[302, "Positioning-Results-Averaged-over-2000-UEs"]], "Physical downlink control Channel in 5G": [[303, "physical-downlink-control-channel-in-5g"]], "Analysis of Blocking Probability for different Coverage Conditions": [[304, "Analysis-of-Blocking-Probability-for-different-Coverage-Conditions"]], "PDCCH Scheduling Parameters": [[304, "PDCCH-Scheduling-Parameters"], [305, "PDCCH-Scheduling-Parameters"], [306, "PDCCH-Scheduling-Parameters"], [307, "PDCCH-Scheduling-Parameters"], [308, "PDCCH-Scheduling-Parameters"], [309, "PDCCH-Scheduling-Parameters"]], "PDCCH Scheduling for Good Coverage Scenarios": [[304, "PDCCH-Scheduling-for-Good-Coverage-Scenarios"]], "PDCCH Scheduling for Medium Coverage Scenarios": [[304, "PDCCH-Scheduling-for-Medium-Coverage-Scenarios"]], "PDCCH Scheduling for Extreme Coverage Scenarios": [[304, "PDCCH-Scheduling-for-Extreme-Coverage-Scenarios"]], "Plotting the results": [[304, "Plotting-the-results"]], "References": [[304, "References"], [305, "References"], [306, "References"], [307, "References"], [308, "References"], [309, "References"], [315, "References"], [333, "References"]], "Variation in Blocking Probability with Different Aggregation Levels (ALs)": [[305, "Variation-in-Blocking-Probability-with-Different-Aggregation-Levels-(ALs)"]], "Python Libraries": [[305, "Python-Libraries"], [307, "Python-Libraries"], [308, "Python-Libraries"], [309, "Python-Libraries"], [319, "Python-Libraries"], [325, "Python-Libraries"], [326, "Python-Libraries"], [327, "Python-Libraries"], [328, "Python-Libraries"], [330, "Python-Libraries"], [331, "Python-Libraries"], [332, "Python-Libraries"], [335, "Python-Libraries"], [342, "Python-Libraries"], [344, "Python-Libraries"], [350, "python-libraries"]], "5G-Toolkit Libraries": [[305, "5G-Toolkit-Libraries"], [307, "5G-Toolkit-Libraries"], [308, "5G-Toolkit-Libraries"], [309, "5G-Toolkit-Libraries"]], "Impact of AL 1": [[305, "Impact-of-AL-1"]], "Impact of AL 2": [[305, "Impact-of-AL-2"]], "Impact of AL 4": [[305, "Impact-of-AL-4"]], "Impact of AL 8": [[305, "Impact-of-AL-8"]], "Impact of AL 16": [[305, "Impact-of-AL-16"]], "Plot the Variation in Blocking Probability with number of UEs for different Aggregation levels.": [[305, "Plot-the-Variation-in-Blocking-Probability-with-number-of-UEs-for-different-Aggregation-levels."]], "Analyzing the effect of Number of Candidates on Blocking Probability": [[306, "Analyzing-the-effect-of-Number-of-Candidates-on-Blocking-Probability"]], "Plot the Variation in Blocking Probability with number of PDCCH candidates": [[306, "Plot-the-Variation-in-Blocking-Probability-with-number-of-PDCCH-candidates"]], "Analyzing the Impact of Scheduling Strategy on Blocking Probability": [[307, "Analyzing-the-Impact-of-Scheduling-Strategy-on-Blocking-Probability"]], "Simulation for Scheduling Strategy-I": [[307, "Simulation-for-Scheduling-Strategy-I"]], "Blocking probability vs number of UEs to be scheduled.": [[307, "Blocking-probability-vs-number-of-UEs-to-be-scheduled."]], "Simulation for Scheduling Strategy-II": [[307, "Simulation-for-Scheduling-Strategy-II"]], "Plotting Blocking Probability vs Number of UEs for Scheduling Strategy": [[307, "Plotting-Blocking-Probability-vs-Number-of-UEs-for-Scheduling-Strategy"]], "Analyze the Impact of UE Capability on Blocking Probability": [[308, "Analyze-the-Impact-of-UE-Capability-on-Blocking-Probability"]], "Simulating the Reference Case": [[308, "Simulating-the-Reference-Case"]], "Plot Blocking Probability for Different CORESET Sizes for Different UEs": [[308, "Plot-Blocking-Probability-for-Different-CORESET-Sizes-for-Different-UEs"], [308, "id1"]], "Simulating Reduced Blind Decoding Case-A": [[308, "Simulating-Reduced-Blind-Decoding-Case-A"]], "Simulating Reduced Blind Decoding Case-B": [[308, "Simulating-Reduced-Blind-Decoding-Case-B"]], "Selection of minimum CORESET Size for a Given Target Block Probability": [[309, "Selection-of-minimum-CORESET-Size-for-a-Given-Target-Block-Probability"]], "Compute minimum coreset size for numUEs = 5.": [[309, "Compute-minimum-coreset-size-for-numUEs-=-5."]], "Compute minimum coreset size for numUEs = 10.": [[309, "Compute-minimum-coreset-size-for-numUEs-=-10."]], "Compute minimum coreset size for numUEs = 15.": [[309, "Compute-minimum-coreset-size-for-numUEs-=-15."]], "Display Minimum CORESET size required to meet the Target Blocking Probability for different number of UEs.": [[309, "Display-Minimum-CORESET-size-required-to-meet-the-Target-Blocking-Probability-for-different-number-of-UEs."]], "Blockage Probability Analysis for RedCap Devices in 5G Networks": [[310, "blockage-probability-analysis-for-redcap-devices-in-5g-networks"]], "Channel Interpolation based on SRCNN and DnCNN": [[311, "channel-interpolation-based-on-srcnn-and-dncnn"]], "Comparative Study of Reed Muller codes, Polar Codes and LDPC codes": [[312, "comparative-study-of-reed-muller-codes-polar-codes-and-ldpc-codes"]], "Channel Quality Estimation in 5G and Beyond Networks": [[313, "channel-quality-estimation-in-5g-and-beyond-networks"]], "Hybrid Automatic repeat Request in 5G and Beyond": [[314, "hybrid-automatic-repeat-request-in-5g-and-beyond"]], "Constellation Learning in an AWGN Channel": [[315, "Constellation-Learning-in-an-AWGN-Channel"]], "PHY layer as AutoEncoder": [[315, "PHY-layer-as-AutoEncoder"]], "Steps": [[315, "Steps"]], "Importing Libraries": [[315, "Importing-Libraries"]], "Parameters of AutoEncoder": [[315, "Parameters-of-AutoEncoder"]], "Training Data": [[315, "Training-Data"]], "Testing Data": [[315, "Testing-Data"]], "Normalization Functions": [[315, "Normalization-Functions"]], "Defining AutoEncoder Model": [[315, "Defining-AutoEncoder-Model"]], "Training AutoEncoder": [[315, "Training-AutoEncoder"]], "Defining Tx, Channel and Rx from Trained AutoEncoder": [[315, "Defining-Tx,-Channel-and-Rx-from-Trained-AutoEncoder"]], "Block Error Rate (BLER) performance": [[315, "Block-Error-Rate-(BLER)-performance"]], "Hamming Codes": [[315, "Hamming-Codes"], [319, "Hamming-Codes"]], "BLER plot : comparison of AutoEncoder BLER with base line (n,k) Hamming Code BLER": [[315, "BLER-plot-:-comparison-of-AutoEncoder-BLER-with-base-line-(n,k)-Hamming-Code-BLER"]], "Constellation Learning": [[315, "Constellation-Learning"]], "learned constellation plot": [[315, "learned-constellation-plot"]], "Downlink Synchronization using SSB in 5G systems": [[316, "downlink-synchronization-using-ssb-in-5g-systems"]], "Uplink Synchronization using PRACH in 5G systems": [[317, "uplink-synchronization-using-prach-in-5g-systems"]], "Projects": [[318, "projects"]], "Hamming Codes Parameters": [[319, "Hamming-Codes-Parameters"]], "Simulation Setup": [[319, "Simulation-Setup"], [362, "Simulation-Setup"]], "Performance Evaluation: SNR vs BER": [[319, "Performance-Evaluation:-SNR-vs-BER"]], "Performance Evaluation: SNR vs BLER": [[319, "Performance-Evaluation:-SNR-vs-BLER"]], "Conclusions": [[319, "Conclusions"]], "Link Level Simulation for Physical Downlink Control Channels": [[320, "Link-Level-Simulation-for-Physical-Downlink-Control-Channels"]], "Import Basic Python Libraries": [[320, "Import-Basic-Python-Libraries"], [329, "Import-Basic-Python-Libraries"]], "Import 5G-Toolkit Libraries": [[320, "Import-5G-Toolkit-Libraries"], [322, "Import-5G-Toolkit-Libraries"], [323, "Import-5G-Toolkit-Libraries"], [333, "Import-5G-Toolkit-Libraries"], [334, "Import-5G-Toolkit-Libraries"], [351, "Import-5G-Toolkit-Libraries"]], "CORESET Parameters": [[320, "CORESET-Parameters"]], "Generate Wireless Channel: CDL-A": [[320, "Generate-Wireless-Channel:-CDL-A"], [322, "Generate-Wireless-Channel:-CDL-A"], [323, "Generate-Wireless-Channel:-CDL-A"]], "Link level Simulation: For each Aggregation level and Each SNR value": [[320, "Link-level-Simulation:-For-each-Aggregation-level-and-Each-SNR-value"]], "Reliability Performance: BER/BLER vs SNR": [[320, "Reliability-Performance:-BER/BLER-vs-SNR"]], "Reliability Performance: BER/BLER vs SNR for 20000 Batches": [[320, "Reliability-Performance:-BER/BLER-vs-SNR-for-20000-Batches"]], "SVD based Downlink Precoding and Combining for Massive MIMO in 5G Networks": [[321, "svd-based-downlink-precoding-and-combining-for-massive-mimo-in-5g-networks"]], "SVD based Downlink Precoding and Combining for Massive MIMO 5G Networks": [[322, "SVD-based-Downlink-Precoding-and-Combining-for-Massive-MIMO-5G-Networks"]], "Link level simulation: BLER/BER/Throughput/SE vs SNR for different ranks": [[322, "Link-level-simulation:-BLER/BER/Throughput/SE-vs-SNR-for-different-ranks"], [323, "Link-level-simulation:-BLER/BER/Throughput/SE-vs-SNR-for-different-ranks"]], "Simulation Results": [[322, "Simulation-Results"], [323, "Simulation-Results"], [351, "Simulation-Results"]], "Simulation Results: Averaged over 10000 batches": [[322, "Simulation-Results:-Averaged-over-10000-batches"], [323, "Simulation-Results:-Averaged-over-10000-batches"], [351, "Simulation-Results:-Averaged-over-10000-batches"]], "Type-1 codebook based Downlink Precoding and Combining for Massive MIMO 5G Networks": [[323, "Type-1-codebook-based-Downlink-Precoding-and-Combining-for-Massive-MIMO-5G-Networks"]], "P1 Procedure: Beam management in 5G networks using SSB": [[324, "P1-Procedure:-Beam-management-in-5G-networks-using-SSB"]], "Import librariers": [[324, "Import-librariers"]], "Import Python libraries": [[324, "Import-Python-libraries"]], "Import 5G Toolkit libraries": [[324, "Import-5G-Toolkit-libraries"]], "Generate Wireless Channel": [[324, "Generate-Wireless-Channel"]], "Generate Time Frequency Parameters and MIB+ATI Parameters": [[324, "Generate-Time-Frequency-Parameters-and-MIB+ATI-Parameters"]], "Generate OFDM Resource/Transmission Grid": [[324, "Generate-OFDM-Resource/Transmission-Grid"]], "Pass through the Wireless Channel": [[324, "Pass-through-the-Wireless-Channel"], [349, "Pass-through-the-Wireless-Channel"], [351, "Pass-through-the-Wireless-Channel"]], "Power Heatmap of Received Grid": [[324, "Power-Heatmap-of-Received-Grid"]], "Add Noise": [[324, "Add-Noise"], [327, "Add-Noise"], [328, "Add-Noise"], [331, "Add-Noise"]], "RSRP Computation": [[324, "RSRP-Computation"]], "Visualization of All Beam RSRP": [[324, "Visualization-of-All-Beam-RSRP"]], "Selected Base-station and Beam": [[324, "Selected-Base-station-and-Beam"]], "Simulation Topology": [[324, "Simulation-Topology"]], "Search space, CORESET and blind decoding of PDCCH channels in 5G Networks": [[325, "Search-space,-CORESET-and-blind-decoding-of-PDCCH-channels-in-5G-Networks"]], "CORESET and Search Space Set Parameters": [[325, "CORESET-and-Search-Space-Set-Parameters"]], "Transmitter Side Processing": [[325, "Transmitter-Side-Processing"]], "Displaying Resource Grid": [[325, "Displaying-Resource-Grid"]], "Wireless Channel : CDL-A": [[325, "Wireless-Channel-:-CDL-A"]], "Receiver Side Processing and Blind Decoding of UE": [[325, "Receiver-Side-Processing-and-Blind-Decoding-of-UE"]], "Reed Muller Codes in 5G": [[326, "Reed-Muller-Codes-in-5G"]], "Table of content:": [[326, "Table-of-content:"], [335, "Table-of-content:"]], "Mapper and Demapper Parameters": [[326, "Mapper-and-Demapper-Parameters"]], "Simulation": [[326, "Simulation"], [350, "simulation"]], "Performance Plot: Averaged over 65 datasets of 5000 points each.": [[326, "Performance-Plot:-Averaged-over-65-datasets-of-5000-points-each."]], "Downlink TDoA Based Positioning for Industrial IoT Devices in Millimeter Wave 5G Networks": [[327, "Downlink-TDoA-Based-Positioning-for-Industrial-IoT-Devices-in-Millimeter-Wave-5G-Networks"]], "Channel Generation": [[327, "Channel-Generation"], [328, "Channel-Generation"], [331, "Channel-Generation"], [348, "Channel-Generation"]], "Channel Parameters:": [[327, "Channel-Parameters:"], [328, "Channel-Parameters:"], [331, "Channel-Parameters:"]], "Position Reference Signal": [[327, "Position-Reference-Signal"], [328, "Position-Reference-Signal"], [331, "Position-Reference-Signal"]], "OFDM Transmitter: Create Transmission Grid": [[327, "OFDM-Transmitter:-Create-Transmission-Grid"], [328, "OFDM-Transmitter:-Create-Transmission-Grid"], [331, "OFDM-Transmitter:-Create-Transmission-Grid"]], "Display Transmission Grid": [[327, "Display-Transmission-Grid"], [328, "Display-Transmission-Grid"]], "Transmit Beamforming": [[327, "Transmit-Beamforming"], [328, "Transmit-Beamforming"], [331, "Transmit-Beamforming"], [334, "Transmit-Beamforming"]], "Pass the Beamformed Grid Through Wireless Channel": [[327, "Pass-the-Beamformed-Grid-Through-Wireless-Channel"], [328, "Pass-the-Beamformed-Grid-Through-Wireless-Channel"], [331, "Pass-the-Beamformed-Grid-Through-Wireless-Channel"]], "Extracting the Resource Grid": [[327, "Extracting-the-Resource-Grid"], [328, "Extracting-the-Resource-Grid"]], "Channel Estimation + Interpolation": [[327, "Channel-Estimation-+-Interpolation"], [328, "Channel-Estimation-+-Interpolation"]], "Display the quality of Channel Estimates": [[327, "Display-the-quality-of-Channel-Estimates"], [328, "Display-the-quality-of-Channel-Estimates"]], "ToA Estimation": [[327, "ToA-Estimation"], [328, "ToA-Estimation"]], "Visualization: Time of Arrival locus Circles": [[327, "Visualization:-Time-of-Arrival-locus-Circles"], [328, "Visualization:-Time-of-Arrival-locus-Circles"]], "Position Estimation + K-Best Measurement Selection (Genie Aided)": [[327, "Position-Estimation-+-K-Best-Measurement-Selection-(Genie-Aided)"], [328, "Position-Estimation-+-K-Best-Measurement-Selection-(Genie-Aided)"], [331, "Position-Estimation-+-K-Best-Measurement-Selection-(Genie-Aided)"]], "Measurement Selection:": [[327, "Measurement-Selection:"], [328, "Measurement-Selection:"], [331, "Measurement-Selection:"]], "Visualization of Positioning": [[327, "Visualization-of-Positioning"], [328, "Visualization-of-Positioning"], [331, "Visualization-of-Positioning"]], "Performance Analysis: For 2000 UEs": [[327, "Performance-Analysis:-For-2000-UEs"], [328, "Performance-Analysis:-For-2000-UEs"], [329, "Performance-Analysis:-For-2000-UEs"], [330, "Performance-Analysis:-For-2000-UEs"]], "Further Study": [[327, "Further-Study"], [328, "Further-Study"], [331, "Further-Study"], [342, "Further-Study"]], "Downlink Time of Arrival based Positioning in 5G and Beyond Networks": [[328, "Downlink-Time-of-Arrival-based-Positioning-in-5G-and-Beyond-Networks"]], "Positioning Procedure": [[328, "Positioning-Procedure"], [331, "Positioning-Procedure"]], "Table of Content:": [[328, "Table-of-Content:"], [331, "Table-of-Content:"]], "Positioning the Outdoor UEs using 5G Urban Micro cell sites based Uplink Time Difference of Arrival (UL-TDoA) method": [[329, "Positioning-the-Outdoor-UEs-using-5G-Urban-Micro-cell-sites-based-Uplink-Time-Difference-of-Arrival-(UL-TDoA)-method"]], "Positioning the Indoor Open Office UEs using Uplink ToA method": [[330, "Positioning-the-Indoor-Open-Office-UEs-using-Uplink-ToA-method"]], "Performance Analysis of Positioning Error for Uplink-ToA based method": [[330, "Performance-Analysis-of-Positioning-Error-for-Uplink-ToA-based-method"]], "Downlink Angle of Departure based Positioning for Rural Macro Terrain in 5G and Beyond Network": [[331, "Downlink-Angle-of-Departure-based-Positioning-for-Rural-Macro-Terrain-in-5G-and-Beyond-Network"]], "Compute the Measurement Windows": [[331, "Compute-the-Measurement-Windows"]], "RSRP vs beam Index": [[331, "RSRP-vs-beam-Index"]], "AoD Estimation": [[331, "AoD-Estimation"]], "Performance Analysis for DL-AoD method: 2000 UEs": [[331, "Performance-Analysis-for-DL-AoD-method:-2000-UEs"]], "Uplink AoA (UL-AoA) based Localization of the Indoor Factory UEs using millimeter 5G Networks": [[332, "Uplink-AoA-(UL-AoA)-based-Localization-of-the-Indoor-Factory-UEs-using-millimeter-5G-Networks"]], "Visualization: Direction of Arrival Locus Lines": [[332, "Visualization:-Direction-of-Arrival-Locus-Lines"]], "Visualization of Estimated Position and its accuracy": [[332, "Visualization-of-Estimated-Position-and-its-accuracy"]], "Performance Analysis of Positioning Error for UL-AoA method": [[332, "Performance-Analysis-of-Positioning-Error-for-UL-AoA-method"]], "Performance Analysis for UL-AoA method: 1300 UEs": [[332, "Performance-Analysis-for-UL-AoA-method:-1300-UEs"]], "Performance comparison of OFDM and DFT-s-OFDM in 5G Networks": [[333, "Performance-comparison-of-OFDM-and-DFT-s-OFDM-in-5G-Networks"]], "Peak to Average Power Ratio (PAPR) Analysis": [[333, "Peak-to-Average-Power-Ratio-(PAPR)-Analysis"]], "PAPR Analysis: CP-OFDM": [[333, "PAPR-Analysis:-CP-OFDM"]], "PAPR Analysis: DFT-s-OFDM": [[333, "PAPR-Analysis:-DFT-s-OFDM"]], "PAPR Performance Comparison: CP-OFDM vs DFT-s-OFDM": [[333, "PAPR-Performance-Comparison:-CP-OFDM-vs-DFT-s-OFDM"]], "ACLR Analysis: CP-OFDM vs DFT-s-OFDM": [[333, "ACLR-Analysis:-CP-OFDM-vs-DFT-s-OFDM"]], "ACLR Comparison of OFDM and DFT-s-OFDM": [[333, "ACLR-Comparison-of-OFDM-and-DFT-s-OFDM"]], "Generate Channel": [[334, "Generate-Channel"], [351, "Generate-Channel"]], "CSI Configurations": [[334, "CSI-Configurations"]], "Generate CSI-RS Resource Grid": [[334, "Generate-CSI-RS-Resource-Grid"]], "Generate the Transmit Grid": [[334, "Generate-the-Transmit-Grid"]], "Pass through the Channel": [[334, "Pass-through-the-Channel"]], "Add noise at Receiver": [[334, "Add-noise-at-Receiver"]], "Extract the Resource Grid": [[334, "Extract-the-Resource-Grid"]], "Estimate the Channel using CSI-RS": [[334, "Estimate-the-Channel-using-CSI-RS"]], "Display the Estimated channel": [[334, "Display-the-Estimated-channel"]], "Estimate the Rank and Condition number": [[334, "Estimate-the-Rank-and-Condition-number"]], "SVD of Channel and Condition number": [[334, "SVD-of-Channel-and-Condition-number"]], "Estimate the Precoder: Type-I": [[334, "Estimate-the-Precoder:-Type-I"]], "Polar Codes in 5G": [[335, "Polar-Codes-in-5G"]], "Import libraries": [[335, "Import-libraries"]], "5G Toolkit libraries": [[335, "5G-Toolkit-libraries"]], "Symbol Mapping Configurations": [[335, "Symbol-Mapping-Configurations"], [336, "Symbol-Mapping-Configurations"]], "Polar Coder Configurations": [[335, "Polar-Coder-Configurations"]], "Simulation: AWGN Channel": [[335, "Simulation:-AWGN-Channel"]], "Performance Evaluations": [[335, "Performance-Evaluations"], [362, "Performance-Evaluations"]], "Performance Evaluations: Averaging over a 100 dataset of 100 points each": [[335, "Performance-Evaluations:-Averaging-over-a-100-dataset-of-100-points-each"]], "Low Density Parity Check (LDPC) Codes in 5G": [[336, "Low-Density-Parity-Check-(LDPC)-Codes-in-5G"]], "Python LIbraries": [[336, "Python-LIbraries"]], "Simulation: Variation in Reliability with code-rate for fixed block-length": [[336, "Simulation:-Variation-in-Reliability-with-code-rate-for-fixed-block-length"]], "LDPC Parameters": [[336, "LDPC-Parameters"]], "Simulation Procedure": [[336, "Simulation-Procedure"]], "Performance Evaluation: BER vs SNR for different code-rates": [[336, "Performance-Evaluation:-BER-vs-SNR-for-different-code-rates"]], "Simulation: Variation in Reliability with block-length for fixed coderate": [[336, "Simulation:-Variation-in-Reliability-with-block-length-for-fixed-coderate"]], "Performance Evaluation: BER vs SNR for different block lengths": [[336, "Performance-Evaluation:-BER-vs-SNR-for-different-block-lengths"]], "Following results are averaged over 100 results": [[336, "Following-results-are-averaged-over-100-results"]], "BER vs SNR": [[336, "BER-vs-SNR"]], "BER vs TB-size": [[336, "BER-vs-TB-size"]], "Wireless Channel Generation for Outdoor Terrains deployed in Hexagonal Geometry": [[338, "Wireless-Channel-Generation-for-Outdoor-Terrains-deployed-in-Hexagonal-Geometry"]], "Generate Antenna Arrays": [[338, "Generate-Antenna-Arrays"], [340, "Generate-Antenna-Arrays"], [341, "Generate-Antenna-Arrays"]], "Generate Simulation Layout": [[338, "Generate-Simulation-Layout"], [340, "Generate-Simulation-Layout"], [341, "Generate-Simulation-Layout"], [344, "Generate-Simulation-Layout"]], "Generate Channel Parameters": [[338, "Generate-Channel-Parameters"], [340, "Generate-Channel-Parameters"], [341, "Generate-Channel-Parameters"], [344, "Generate-Channel-Parameters"]], "Generate Channel Coefficients": [[338, "Generate-Channel-Coefficients"], [340, "Generate-Channel-Coefficients"], [341, "Generate-Channel-Coefficients"], [344, "Generate-Channel-Coefficients"]], "Generate OFDM Channel": [[338, "Generate-OFDM-Channel"], [340, "Generate-OFDM-Channel"], [341, "Generate-OFDM-Channel"], [344, "Generate-OFDM-Channel"]], "Frequency Domain : Magnitude Response Plot": [[338, "Frequency-Domain-:-Magnitude-Response-Plot"], [340, "Frequency-Domain-:-Magnitude-Response-Plot"], [341, "Frequency-Domain-:-Magnitude-Response-Plot"], [344, "Frequency-Domain-:-Magnitude-Response-Plot"]], "Time Domain Channel response": [[338, "Time-Domain-Channel-response"], [340, "Time-Domain-Channel-response"], [341, "Time-Domain-Channel-response"], [344, "Time-Domain-Channel-response"]], "Generate Spatially Consistent Statistical Channels for Realistic Simulations": [[339, "Generate-Spatially-Consistent-Statistical-Channels-for-Realistic-Simulations"]], "Import 5G Toolkit": [[339, "Import-5G-Toolkit"], [346, "Import-5G-Toolkit"]], "Antenna Arrays": [[339, "Antenna-Arrays"], [342, "Antenna-Arrays"], [345, "Antenna-Arrays"], [346, "Antenna-Arrays"]], "Antenna Array at Rx": [[339, "Antenna-Array-at-Rx"], [346, "Antenna-Array-at-Rx"]], "Antenna Array at Tx": [[339, "Antenna-Array-at-Tx"], [346, "Antenna-Array-at-Tx"]], "Channel Parameters, Channel Coefficients and OFDM Channel": [[339, "Channel-Parameters,-Channel-Coefficients-and-OFDM-Channel"], [342, "Channel-Parameters,-Channel-Coefficients-and-OFDM-Channel"], [343, "Channel-Parameters,-Channel-Coefficients-and-OFDM-Channel"], [346, "Channel-Parameters,-Channel-Coefficients-and-OFDM-Channel"]], "Frequency Domain Consistency": [[339, "Frequency-Domain-Consistency"]], "Amplitude Spectrum: Each subcarrier accross time": [[339, "Amplitude-Spectrum:-Each-subcarrier-accross-time"]], "Amplitude Spectrum: One subcarrier accross time": [[339, "Amplitude-Spectrum:-One-subcarrier-accross-time"]], "Amplitude Heatmap": [[339, "Amplitude-Heatmap"]], "Phase Spectrum": [[339, "Phase-Spectrum"]], "Doppler Domain Sparsity": [[339, "Doppler-Domain-Sparsity"]], "Delay/Time Domain: Sparsity": [[339, "Delay/Time-Domain:-Sparsity"]], "Wireless Channel Generation for a Dense High Indoor Factory Terrain Deployed at millimeter band.": [[340, "Wireless-Channel-Generation-for-a-Dense-High-Indoor-Factory-Terrain-Deployed-at-millimeter-band."]], "Genarating the Wireless Channel for Indoor Open Office Terrain": [[341, "Genarating-the-Wireless-Channel-for-Indoor-Open-Office-Terrain"]], "Wireless Channel Generation for Outdoor Mobile User Connected to Rural Macro Site": [[342, "Wireless-Channel-Generation-for-Outdoor-Mobile-User-Connected-to-Rural-Macro-Site"]], "Variation in Channel Power across Time": [[342, "Variation-in-Channel-Power-across-Time"], [343, "Variation-in-Channel-Power-across-Time"]], "Animation: Displaying the variation in receiver power of a UE time snapshots": [[342, "Animation:-Displaying-the-variation-in-receiver-power-of-a-UE-time-snapshots"]], "Functions to Animate the Plot": [[342, "Functions-to-Animate-the-Plot"]], "Simulation Animation": [[342, "Simulation-Animation"]], "Channel Generation for Dual Mobility Scenarios in 5G and Beyond": [[343, "Channel-Generation-for-Dual-Mobility-Scenarios-in-5G-and-Beyond"]], "Generate Antenna Array": [[343, "Generate-Antenna-Array"], [344, "Generate-Antenna-Array"]], "Generate Transmit Arrays": [[343, "Generate-Transmit-Arrays"]], "Generate Receiver Arrays": [[343, "Generate-Receiver-Arrays"]], "Generate the Routes": [[343, "Generate-the-Routes"]], "Generate the BS Routes": [[343, "Generate-the-BS-Routes"]], "Generate the UE Routes": [[343, "Generate-the-UE-Routes"]], "Wireless Channel Generation for Multiple Carrier Frequencies": [[344, "Wireless-Channel-Generation-for-Multiple-Carrier-Frequencies"]], "Propagation Characteristics of Outdoor Terrains": [[345, "Propagation-Characteristics-of-Outdoor-Terrains"]], "Compute the Rough estimate of the Probability of line of sight": [[345, "Compute-the-Rough-estimate-of-the-Probability-of-line-of-sight"]], "Parameter Generator": [[345, "Parameter-Generator"]], "Path-loss Characteristics": [[345, "Path-loss-Characteristics"]], "Distribution of Shadow fading": [[345, "Distribution-of-Shadow-fading"]], "Probability Distribution of Rician K factor": [[345, "Probability-Distribution-of-Rician-K-factor"]], "Delay Spread Charateristics": [[345, "Delay-Spread-Charateristics"]], "Angular Spread Characteristics": [[345, "Angular-Spread-Characteristics"]], "Probability distribution of Azimuth-AoA": [[345, "Probability-distribution-of-Azimuth-AoA"]], "Probability distribution of Azimuth-AoD": [[345, "Probability-distribution-of-Azimuth-AoD"]], "Probability distribution of Elevation-AoA": [[345, "Probability-distribution-of-Elevation-AoA"]], "Probability distribution of Elevation-AoD": [[345, "Probability-distribution-of-Elevation-AoD"]], "Beam Domain and Delay Domain Sparsity in Wireless Channel Models": [[346, "Beam-Domain-and-Delay-Domain-Sparsity-in-Wireless-Channel-Models"]], "Demonstrating the Beam Domain Sparsity": [[346, "Demonstrating-the-Beam-Domain-Sparsity"]], "Demonstrating the Delay Domain Sparsity": [[346, "Demonstrating-the-Delay-Domain-Sparsity"]], "Detailed Tutorials on 3GPP Channel Models": [[347, "detailed-tutorials-on-3gpp-channel-models"]], "Initial Access in 5G": [[348, "Initial-Access-in-5G"]], "External Libaries": [[348, "External-Libaries"]], "5G Toolkit Modules": [[348, "5G-Toolkit-Modules"]], "System Parameters": [[348, "System-Parameters"]], "PBCH Information": [[348, "PBCH-Information"]], "Transmission-side Processing": [[348, "Transmission-side-Processing"]], "Generate Primary Synchronization Sequence (PSS)": [[348, "Generate-Primary-Synchronization-Sequence-(PSS)"]], "Generate Secondary Synchronization Sequence (SSS)": [[348, "Generate-Secondary-Synchronization-Sequence-(SSS)"]], "Generate Demodulation Reference Sequence (DMRS)": [[348, "Generate-Demodulation-Reference-Sequence-(DMRS)"]], "Generate the PBCH Payload": [[348, "Generate-the-PBCH-Payload"]], "Constellation Diagram: Tx": [[348, "Constellation-Diagram:-Tx"]], "Construct SSB Grid": [[348, "Construct-SSB-Grid"]], "Mapping SSB to Transmission Grid for ODFM": [[348, "Mapping-SSB-to-Transmission-Grid-for-ODFM"]], "OFDM-Modulator": [[348, "OFDM-Modulator"]], "Analog Beamforming": [[348, "Analog-Beamforming"]], "Pass Tx signal through Wireless Channel": [[348, "Pass-Tx-signal-through-Wireless-Channel"]], "Noise addition at receiver": [[348, "Noise-addition-at-receiver"]], "SSB Receiver Side": [[348, "SSB-Receiver-Side"]], "Receiver combining": [[348, "Receiver-combining"]], "PSS Detection: largest peak": [[348, "PSS-Detection:-largest-peak"]], "Largest peak": [[348, "Largest-peak"]], "OFDM Demodulation: Resource Grid reconstruction": [[348, "OFDM-Demodulation:-Resource-Grid-reconstruction"]], "SSB Extaction from Resource Grid": [[348, "SSB-Extaction-from-Resource-Grid"]], "Comparing Transmitted and Received SSB Grid": [[348, "Comparing-Transmitted-and-Received-SSB-Grid"]], "Spectrum Analysis": [[348, "Spectrum-Analysis"]], "(SSS Detection: PSS channel assisted) + Cell-ID estimation": [[348, "(SSS-Detection:-PSS-channel-assisted)-+-Cell-ID-estimation"]], "DMRS Parameters Detection + DMRS Sequence Generation": [[348, "DMRS-Parameters-Detection-+-DMRS-Sequence-Generation"]], "Constellation Diagram: Rx": [[348, "Constellation-Diagram:-Rx"]], "PBCH Decoding": [[348, "PBCH-Decoding"]], "Information Aggregation": [[348, "Information-Aggregation"]], "Performance Evaluations: BER + Cell-IDs + DMRS Parameter Detection": [[348, "Performance-Evaluations:-BER-+-Cell-IDs-+-DMRS-Parameter-Detection"]], "Cell-IDs Detection": [[348, "Cell-IDs-Detection"]], "DMRS Parameter Detection": [[348, "DMRS-Parameter-Detection"]], "BER computation": [[348, "BER-computation"]], "Coverage Evaluation of Physical Broadcast Channels (PBCH) in 5G Networks": [[349, "Coverage-Evaluation-of-Physical-Broadcast-Channels-(PBCH)-in-5G-Networks"]], "Import 5G Toolkit Libraiers": [[349, "Import-5G-Toolkit-Libraiers"]], "Generate the Wireless Channel : CDL-A": [[349, "Generate-the-Wireless-Channel-:-CDL-A"]], "Set SSB and Time-Frequency OFDM Configurations/Parameters": [[349, "Set-SSB-and-Time-Frequency-OFDM-Configurations/Parameters"]], "Generate the Synchronization Signal Block (SSB) Grid": [[349, "Generate-the-Synchronization-Signal-Block-(SSB)-Grid"]], "Generate the Transmission Grid": [[349, "Generate-the-Transmission-Grid"]], "Display the Heatmap for the Received Grid": [[349, "Display-the-Heatmap-for-the-Received-Grid"]], "Link level Simulation: BLER for each SNR value": [[349, "Link-level-Simulation:-BLER-for-each-SNR-value"]], "Block Error Rate Performance": [[349, "Block-Error-Rate-Performance"]], "Block Error Rate: Averaged over a 10000 batches": [[349, "Block-Error-Rate:-Averaged-over-a-10000-batches"]], "BER Performance of PUCCH Format 0": [[350, "ber-performance-of-pucch-format-0"]], "5G ToolKit Libraries": [[350, "g-toolkit-libraries"]], "Format 0": [[350, "format-0"]], "Format 0 Decoder": [[350, "format-0-decoder"]], "M_CS Estimation": [[350, "m-cs-estimation"]], "Information content based on MCS value": [[350, "information-content-based-on-mcs-value"]], "Performance Plot": [[350, "performance-plot"]], "Link Level Simulation for Physical Downlink Shared Channel in 5G": [[351, "Link-Level-Simulation-for-Physical-Downlink-Shared-Channel-in-5G"]], "PDSCH Configurations": [[351, "PDSCH-Configurations"]], "PDSCH Implementation": [[351, "PDSCH-Implementation"]], "SVD based Precoding and Beamforming": [[351, "SVD-based-Precoding-and-Beamforming"]], "Recevier Side Processing": [[351, "Recevier-Side-Processing"]], "Save Results": [[351, "Save-Results"]], "Tutorials": [[352, "tutorials"]], "Challenge Of this Week": [[353, "challenge-of-this-week"]], "Arxiv-ed Challenges": [[354, "arxiv-ed-challenges"]], "Solution of this Months Problems": [[355, "solution-of-this-months-problems"]], "Install 5G Toolkit": [[356, "install-5g-toolkit"], [356, "id2"], [357, "install-5g-toolkit"], [357, "id1"], [357, "id5"], [359, "install-5g-toolkit"], [359, "id3"], [360, "install-5g-toolkit"]], "System Requirements:": [[356, "system-requirements"], [359, "system-requirements"], [360, "system-requirements"]], "Dependent Libraries:": [[356, "dependent-libraries"], [360, "dependent-libraries"]], "Install Miniconda": [[356, "install-miniconda"], [357, "install-miniconda"], [357, "id2"], [359, "install-miniconda"]], "Install Jupyter Notebook": [[356, "install-jupyter-notebook"], [357, "install-jupyter-notebook"], [357, "id4"], [359, "install-jupyter-notebook"]], "Final Confirmation": [[356, "final-confirmation"], [357, "final-confirmation"], [357, "id6"], [359, "final-confirmation"]], "License 5G Toolkit": [[356, "license-5g-toolkit"], [359, "license-5g-toolkit"], [360, "license-5g-toolkit"]], "Activate the 5G Toolkit License": [[356, "activate-the-5g-toolkit-license"], [359, "activate-the-5g-toolkit-license"], [360, "activate-the-5g-toolkit-license"]], "Installation Tutorial: Video": [[356, "installation-tutorial-video"], [359, "installation-tutorial-video"]], "Detailed Installation on Ubuntu": [[357, "detailed-installation-on-ubuntu"]], "Update Ubuntu system": [[357, "update-ubuntu-system"]], "Detailed Installation on Windows 10/11": [[357, "detailed-installation-on-windows-10-11"]], "Create an environment using Conda": [[357, "create-an-environment-using-conda"]], "5G Toolkit": [[358, "g-toolkit"]], "Salient Features": [[358, "salient-features"]], "Technical Features": [[358, "technical-features"]], "5G Toolkit R24a.0.3 Documentation": [[358, "g-toolkit-version-documentation"]], "How the documentation is organized": [[358, "how-the-documentation-is-organized"]], "Looking for Help": [[358, "looking-for-help"]], "More Information": [[358, "more-information"]], "5G Toolkit Features": [[358, "g-toolkit-features"]], "Dependent Libraries": [[359, "dependent-libraries"], [360, "id2"]], "How to install 5G Toolkit:": [[360, "how-to-install-5g-toolkit"]], "system Requirements": [[360, "id1"]], "Install 5G Toolkit on Ubuntu (20.04/22.04) and Windows (10/11)": [[360, "install-5g-toolkit-on-ubuntu-20-04-22-04-and-windows-10-11"]], "Library Dependencies": [[360, "id3"]], "Detailed Installation Procedure": [[360, "detailed-installation-procedure"]], "Release Notes": [[361, "release-notes"]], "Getting Started with 5G Toolkit": [[362, "Getting-Started-with-5G-Toolkit"]], "Create Objects": [[362, "Create-Objects"]], "Payload Bits Generation and Encoding": [[362, "Payload-Bits-Generation-and-Encoding"]], "Symbol Mapper": [[362, "Symbol-Mapper"]], "AWGN Channel": [[362, "AWGN-Channel"]], "CRC Decoder: Error Detection": [[362, "CRC-Decoder:-Error-Detection"]], "BER and Block Error Computation": [[362, "BER-and-Block-Error-Computation"]], "Display BER/BLER vs SNR.": [[362, "Display-BER/BLER-vs-SNR."]]}, "indexentries": {"crcdecoder (class in toolkit5g.crc)": [[3, "toolkit5G.CRC.CRCDecoder"]], "crcencoder (class in toolkit5g.crc)": [[4, "toolkit5G.CRC.CRCEncoder"]], "hammingdecoder (class in toolkit5g.channelcoder.hammingcoder.hammingdecoder)": [[5, "toolkit5G.ChannelCoder.HammingCoder.hammingDecoder.HammingDecoder"]], "hammingencoder (class in toolkit5g.channelcoder.hammingcoder.hammingencoder)": [[5, "toolkit5G.ChannelCoder.HammingCoder.hammingEncoder.HammingEncoder"]], "hammingspheredecoder (class in toolkit5g.channelcoder.hammingcoder.hammingdecoder)": [[5, "toolkit5G.ChannelCoder.HammingCoder.hammingDecoder.HammingSphereDecoder"]], "hammingsyndromedecoder (class in toolkit5g.channelcoder.hammingcoder.hammingdecoder)": [[5, "toolkit5G.ChannelCoder.HammingCoder.hammingDecoder.HammingSyndromeDecoder"]], "ldpcdecoder5g (class in toolkit5g.channelcoder)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G"]], "ldpcencoder5g (class in toolkit5g.channelcoder)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G"]], "bm (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.bm"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.bm"]], "bm (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.bm"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.bm"]], "computeils() (toolkit5g.channelcoder.ldpcdecoder5g method)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.computeIls"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.computeIls"]], "computeils() (toolkit5g.channelcoder.ldpcencoder5g method)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.computeIls"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.computeIls"]], "i_ls (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.i_ls"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.i_ls"]], "i_ls (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.i_ls"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.i_ls"]], "k (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.k"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.k"]], "k_ldpc (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.k_ldpc"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.k_ldpc"]], "llr_max (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.llr_max"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.llr_max"]], "n (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.n"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.n"]], "n (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.n"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.n"]], "n_ldpc (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.n_ldpc"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.n_ldpc"]], "n_ldpc (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.n_ldpc"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.n_ldpc"]], "nb_pruned_nodes (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.nb_pruned_nodes"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.nb_pruned_nodes"]], "pcm (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.pcm"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.pcm"]], "prune_pcm (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.prune_pcm"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.prune_pcm"]], "z (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.z"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.z"]], "c (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.C"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.C"]], "codeblockaggregation (class in toolkit5g.channelcoder.ldpc)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation"]], "codeblocksegregation (class in toolkit5g.channelcoder.ldpc)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegregation"], [92, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegregation"]], "kbar (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.Kbar"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.Kbar"]], "kcb (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.Kcb"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.Kcb"]], "basegraph (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.baseGraph"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.baseGraph"]], "coderate (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.codeRate"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.codeRate"]], "crctype (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.crcType"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.crcType"]], "tbsize (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.tbSize"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.tbSize"]], "b (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.B"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.B"]], "c (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.C"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.C"]], "codeblockconcatenation (class in toolkit5g.channelcoder.ldpc)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockConcatenation"], [92, "toolkit5G.ChannelCoder.LDPC.CodeBlockConcatenation"]], "codeblocksegmentation (class in toolkit5g.channelcoder.ldpc)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation"]], "k (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.K"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.K"]], "kb (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Kb"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Kb"]], "kbar (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Kbar"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Kbar"]], "l (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.L"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.L"]], "zc (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Zc"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Zc"]], "basegraph (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.baseGraph"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.baseGraph"]], "coderate (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.codeRate"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.codeRate"]], "ldpcparameters (class in toolkit5g.channelcoder.ldpc)": [[9, "toolkit5G.ChannelCoder.LDPC.LDPCparameters"]], "e (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.E"]], "k (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.K"]], "n (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.N"]], "n (toolkit5g.channelcoder.polarencoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [55, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [74, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [117, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [142, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [146, "toolkit5G.ChannelCoder.PolarEncoder5G.N"]], "polardecoder5g (class in toolkit5g.channelcoder)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G"]], "polarencoder5g (class in toolkit5g.channelcoder)": [[10, "toolkit5G.ChannelCoder.PolarEncoder5G"], [55, "toolkit5G.ChannelCoder.PolarEncoder5G"], [74, "toolkit5G.ChannelCoder.PolarEncoder5G"], [117, "toolkit5G.ChannelCoder.PolarEncoder5G"], [142, "toolkit5G.ChannelCoder.PolarEncoder5G"], [146, "toolkit5G.ChannelCoder.PolarEncoder5G"]], "dec_type (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"]], "llr_max (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"]], "output_dtype (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"]], "codeblockaggregation (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [44, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [69, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [112, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [143, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [149, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"]], "codeblockconcatenation (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [44, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [69, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [112, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [143, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [148, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"]], "codeblocksegmentation (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [44, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [69, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [112, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [143, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [149, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"]], "codeblocksegregation (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [44, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [69, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [112, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [143, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [148, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"]], "inputbitdeinterleaver (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [27, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [44, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [69, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [112, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [143, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"]], "inputbitinterleaver (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [27, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [44, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [69, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [112, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [143, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"]], "reedmullerdecoder5g (class in toolkit5g.channelcoder)": [[12, "toolkit5G.ChannelCoder.ReedMullerDecoder5G"]], "reedmullerencoder5g (class in toolkit5g.channelcoder)": [[12, "toolkit5G.ChannelCoder.ReedMullerEncoder5G"]], "dtype (toolkit5g.channelcoder.reedmullerdecoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerDecoder5G.dtype"]], "dtype (toolkit5g.channelcoder.reedmullerencoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerEncoder5G.dtype"]], "hardin (toolkit5g.channelcoder.reedmullerdecoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerDecoder5G.hardIn"]], "k (toolkit5g.channelcoder.reedmullerdecoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerDecoder5G.k"]], "k (toolkit5g.channelcoder.reedmullerencoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerEncoder5G.k"]], "antennaarrays (class in toolkit5g.channelmodels)": [[14, "toolkit5G.ChannelModels.AntennaArrays"]], "antenna_3gpp_38901 (class in toolkit5g.channelmodels.antennaarrays)": [[14, "toolkit5G.ChannelModels.antennaArrays.Antenna_3GPP_38901"]], "antenna_hertziandipole (class in toolkit5g.channelmodels.antennaarrays)": [[14, "toolkit5G.ChannelModels.antennaArrays.Antenna_HertzianDipole"]], "antenna_lineardipole (class in toolkit5g.channelmodels.antennaarrays)": [[14, "toolkit5G.ChannelModels.antennaArrays.Antenna_LinearDipole"]], "channelgenerator (class in toolkit5g.channelmodels)": [[15, "toolkit5G.ChannelModels.ChannelGenerator"]], "circularroute (class in toolkit5g.channelmodels.nodemobility)": [[17, "toolkit5G.ChannelModels.nodeMobility.CircularRoute"]], "dropvehicleshighway (class in toolkit5g.channelmodels.nodemobility)": [[17, "toolkit5G.ChannelModels.nodeMobility.DropVehiclesHighway"]], "nodemobility (class in toolkit5g.channelmodels)": [[17, "toolkit5G.ChannelModels.NodeMobility"]], "randomwalk (class in toolkit5g.channelmodels.nodemobility)": [[17, "toolkit5G.ChannelModels.nodeMobility.RandomWalk"]], "displayroute() (toolkit5g.channelmodels.nodemobility method)": [[17, "toolkit5G.ChannelModels.NodeMobility.displayRoute"]], "parametergenerator (class in toolkit5g.channelmodels)": [[18, "toolkit5G.ChannelModels.ParameterGenerator"]], "bslocations (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.BSLocations"]], "hexagonallayout (class in toolkit5g.channelmodels.simulationlayout)": [[19, "toolkit5G.ChannelModels.simulationLayout.HexagonalLayout"]], "isd (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.ISD"]], "rectangularlayout (class in toolkit5g.channelmodels.simulationlayout)": [[19, "toolkit5G.ChannelModels.simulationLayout.RectangularLayout"]], "simulationlayout (class in toolkit5g.channelmodels)": [[19, "toolkit5G.ChannelModels.SimulationLayout"]], "uelocations (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.UELocations"]], "uedistibution (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.UEdistibution"]], "ueheightdistribution (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.UEheightDistribution"]], "bsantennaarray (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.bsAntennaArray"]], "bsroute (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.bsRoute"]], "carrierfrequency (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.carrierFrequency"]], "clutterdensity (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.clutterDensity"]], "clutterheight (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.clutterHeight"]], "cluttersize (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.clutterSize"]], "correlationdistanceindoor (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.correlationDistanceIndoor"]], "correlationdistancelos (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.correlationDistanceLoS"]], "correlationtypeindoor (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.correlationTypeIndoor"]], "correlationtypelos (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.correlationTypeLoS"]], "enablespatialconsistencyindoor (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.enableSpatialConsistencyIndoor"]], "enablespatialconsistencylos (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.enableSpatialConsistencyLoS"]], "force3gppspatialconsistencyparameters (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.force3GPPSpatialConsistencyParameters"]], "forcelos (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.forceLOS"]], "heightofbs (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.heightOfBS"]], "heightofroom (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.heightOfRoom"]], "heightofue (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.heightOfUE"]], "indooruefraction (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.indoorUEfraction"]], "layoutlength (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.layoutLength"]], "layouttype (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.layoutType"]], "layoutwidth (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.layoutWidth"]], "lengthofindoorobject (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.lengthOfIndoorObject"]], "maxnumberoffloors (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.maxNumberOfFloors"]], "memoryefficient (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.memoryEfficient"]], "minnumberoffloors (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.minNumberOfFloors"]], "minuebsdistance (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.minUEBSDistance"]], "numofbs (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.numOfBS"]], "numofsectorspersite (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.numOfSectorsPerSite"]], "numofsnapshots (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.numOfSnapShots"]], "numofue (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.numOfUE"]], "radiusforcircularuedrop (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.radiusForCircularUEDrop"]], "routetype (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.routeType"]], "terrain (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.terrain"]], "ueantennaarray (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.ueAntennaArray"]], "uedropmethod (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.ueDropMethod"]], "ueroute (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.ueRoute"]], "widthofindoorobject (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.widthOfIndoorObject"]], "addnoise (class in toolkit5g.channelprocessing)": [[21, "toolkit5G.ChannelProcessing.AddNoise"]], "applychannel (class in toolkit5g.channelprocessing)": [[22, "toolkit5G.ChannelProcessing.ApplyChannel"]], "enableintertxinterference (toolkit5g.channelprocessing.applychannel property)": [[22, "toolkit5G.ChannelProcessing.ApplyChannel.enableInterTxInterference"]], "isfrequencydomain (toolkit5g.channelprocessing.applychannel property)": [[22, "toolkit5G.ChannelProcessing.ApplyChannel.isFrequencyDomain"]], "memoryconsumptionlevel (toolkit5g.channelprocessing.applychannel property)": [[22, "toolkit5G.ChannelProcessing.ApplyChannel.memoryConsumptionLevel"]], "bitdeinterleaver (class in toolkit5g.ratematcher.ldpc)": [[24, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver"], [101, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver"], [208, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver"]], "bitinterleaver (class in toolkit5g.ratematcher.ldpc)": [[24, "toolkit5G.Ratematcher.LDPC.BitInterleaver"], [101, "toolkit5G.Ratematcher.LDPC.BitInterleaver"], [208, "toolkit5G.Ratematcher.LDPC.BitInterleaver"]], "modorder (toolkit5g.ratematcher.ldpc.bitdeinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.modOrder"], [101, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.modOrder"], [208, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.modOrder"]], "modorder (toolkit5g.ratematcher.ldpc.bitinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitInterleaver.modOrder"], [101, "toolkit5G.Ratematcher.LDPC.BitInterleaver.modOrder"], [208, "toolkit5G.Ratematcher.LDPC.BitInterleaver.modOrder"]], "numbits1 (toolkit5g.ratematcher.ldpc.bitdeinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits1"], [101, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits1"], [208, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits1"]], "numbits1 (toolkit5g.ratematcher.ldpc.bitinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits1"], [101, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits1"], [208, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits1"]], "numbits2 (toolkit5g.ratematcher.ldpc.bitdeinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits2"], [101, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits2"], [208, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits2"]], "numbits2 (toolkit5g.ratematcher.ldpc.bitinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits2"], [101, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits2"], [208, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits2"]], "pbchdeinterleaver (class in toolkit5g.physicalchannels.pbch)": [[25, "toolkit5G.PhysicalChannels.PBCH.PBCHDeInterleaver"]], "pbchinterleaver (class in toolkit5g.physicalchannels.pbch)": [[25, "toolkit5G.PhysicalChannels.PBCH.PBCHInterleaver"]], "channeldeinterleaver (class in toolkit5g.ratematcher.polarcoder)": [[26, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [58, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [77, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [120, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [153, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [158, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [211, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"]], "channelinterleaver (class in toolkit5g.ratematcher.polarcoder)": [[26, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [58, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [77, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [120, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [153, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [158, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [211, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"]], "subblock_deinterleaver (class in toolkit5g.ratematcher.polarcoder)": [[28, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [59, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [78, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [121, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [154, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [158, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [212, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"]], "subblock_interleaver (class in toolkit5g.ratematcher.polarcoder)": [[28, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [59, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [78, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [121, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [154, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [158, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [212, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"]], "searchfree (class in toolkit5g.mimoprocessing)": [[29, "toolkit5G.MIMOProcessing.SearchFree"]], "typeicodebook (class in toolkit5g.mimoprocessing)": [[29, "toolkit5G.MIMOProcessing.TypeICodeBook"]], "ofdmdemodulator (class in toolkit5g.ofdm)": [[32, "toolkit5G.OFDM.OFDMDemodulator"]], "ofdmmodulator (class in toolkit5g.ofdm)": [[33, "toolkit5G.OFDM.OFDMModulator"]], "transformprecoding (class in toolkit5g.ofdm)": [[34, "toolkit5G.OFDM.TransformPrecoding"], [36, "toolkit5G.OFDM.TransformPrecoding"]], "transformdecoding5g (class in toolkit5g.ofdm)": [[35, "toolkit5G.OFDM.TransformDecoding5G"]], "transformprecoding5g (class in toolkit5g.ofdm)": [[37, "toolkit5G.OFDM.TransformPrecoding5G"]], "dciextraction (class in toolkit5g.payloadgeneration)": [[38, "toolkit5G.PayloadGeneration.DCIExtraction"]], "dcigeneration (class in toolkit5g.payloadgeneration)": [[38, "toolkit5G.PayloadGeneration.DCIGeneration"]], "mibextraction (class in toolkit5g.payloadgeneration)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction"], [46, "toolkit5G.PayloadGeneration.MIBExtraction"]], "mibgeneration (class in toolkit5g.payloadgeneration)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration"], [46, "toolkit5G.PayloadGeneration.MIBGeneration"]], "carrierfreq (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.carrierFreq"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.carrierFreq"]], "carrierfreq (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.carrierFreq"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.carrierFreq"]], "cellbarred (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.cellBarred"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.cellBarred"]], "cellbarred (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.cellBarred"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.cellBarred"]], "choicebit (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.choiceBit"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.choiceBit"]], "choicebit (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.choiceBit"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.choiceBit"]], "controlresourceset0 (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.controlResourceSet0"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.controlResourceSet0"]], "controlresourceset0 (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.controlResourceSet0"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.controlResourceSet0"]], "displayparameters() (toolkit5g.payloadgeneration.mibextraction method)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.displayParameters"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.displayParameters"]], "displayparameters() (toolkit5g.payloadgeneration.mibgeneration method)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.displayParameters"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.displayParameters"]], "dmrstypeaposition (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.dmrsTypeAPosition"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.dmrsTypeAPosition"]], "dmrstypeaposition (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.dmrsTypeAPosition"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.dmrsTypeAPosition"]], "hrfbit (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.hrfBit"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.hrfBit"]], "hrfbit (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.hrfBit"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.hrfBit"]], "intrafrequencyreselection (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.intraFrequencyReselection"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.intraFrequencyReselection"]], "intrafrequencyreselection (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.intraFrequencyReselection"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.intraFrequencyReselection"]], "nssbcandidatesinhrf (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.nssbCandidatesInHrf"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.nssbCandidatesInHrf"]], "nssbcandidatesinhrf (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.nssbCandidatesInHrf"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.nssbCandidatesInHrf"]], "searchspace0 (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.searchSpace0"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.searchSpace0"]], "searchspace0 (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.searchSpace0"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.searchSpace0"]], "ssbindex (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.ssbIndex"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.ssbIndex"]], "ssbindex (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.ssbIndex"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.ssbIndex"]], "ssbsubcarrieroffset (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.ssbSubCarrierOffset"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.ssbSubCarrierOffset"]], "ssbsubcarrieroffset (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.ssbSubCarrierOffset"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.ssbSubCarrierOffset"]], "subcarrierspacingcommon (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.subCarrierSpacingCommon"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.subCarrierSpacingCommon"]], "subcarrierspacingcommon (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.subCarrierSpacingCommon"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.subCarrierSpacingCommon"]], "systemframenumber (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.systemFrameNumber"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.systemFrameNumber"]], "systemframenumber (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.systemFrameNumber"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.systemFrameNumber"]], "demapper (class in toolkit5g.symbolmapping)": [[48, "toolkit5G.SymbolMapping.Demapper"], [60, "toolkit5G.SymbolMapping.Demapper"], [71, "toolkit5G.SymbolMapping.Demapper"], [79, "toolkit5G.SymbolMapping.Demapper"], [98, "toolkit5G.SymbolMapping.Demapper"], [114, "toolkit5G.SymbolMapping.Demapper"], [122, "toolkit5G.SymbolMapping.Demapper"], [170, "toolkit5G.SymbolMapping.Demapper"], [173, "toolkit5G.SymbolMapping.Demapper"], [258, "toolkit5G.SymbolMapping.Demapper"]], "mapper (class in toolkit5g.symbolmapping)": [[49, "toolkit5G.SymbolMapping.Mapper"], [72, "toolkit5G.SymbolMapping.Mapper"], [99, "toolkit5G.SymbolMapping.Mapper"], [115, "toolkit5G.SymbolMapping.Mapper"], [171, "toolkit5G.SymbolMapping.Mapper"], [174, "toolkit5G.SymbolMapping.Mapper"], [259, "toolkit5G.SymbolMapping.Mapper"]], "bitdeselection (class in toolkit5g.ratematcher.polarcoder)": [[57, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [76, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [119, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [152, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [159, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [210, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"]], "bitselection (class in toolkit5g.ratematcher.polarcoder)": [[57, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [76, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [119, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [152, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [159, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [210, "toolkit5G.Ratematcher.PolarCoder.BitSelection"]], "rntimasking (class in toolkit5g.scrambler)": [[62, "toolkit5G.Scrambler.RNTImasking"], [81, "toolkit5G.Scrambler.RNTImasking"], [124, "toolkit5G.Scrambler.RNTImasking"], [164, "toolkit5G.Scrambler.RNTImasking"], [241, "toolkit5G.Scrambler.RNTImasking"]], "rnti (toolkit5g.scrambler.rntimasking property)": [[62, "toolkit5G.Scrambler.RNTImasking.rnti"], [81, "toolkit5G.Scrambler.RNTImasking.rnti"], [124, "toolkit5G.Scrambler.RNTImasking.rnti"], [164, "toolkit5G.Scrambler.RNTImasking.rnti"], [241, "toolkit5G.Scrambler.RNTImasking.rnti"]], "descrambler (class in toolkit5g.scrambler)": [[64, "toolkit5G.Scrambler.DeScrambler"], [83, "toolkit5G.Scrambler.DeScrambler"], [106, "toolkit5G.Scrambler.DeScrambler"], [126, "toolkit5G.Scrambler.DeScrambler"], [163, "toolkit5G.Scrambler.DeScrambler"], [167, "toolkit5G.Scrambler.DeScrambler"], [240, "toolkit5G.Scrambler.DeScrambler"]], "lmax (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.Lmax"], [83, "toolkit5G.Scrambler.DeScrambler.Lmax"], [106, "toolkit5G.Scrambler.DeScrambler.Lmax"], [126, "toolkit5G.Scrambler.DeScrambler.Lmax"], [163, "toolkit5G.Scrambler.DeScrambler.Lmax"], [167, "toolkit5G.Scrambler.DeScrambler.Lmax"], [240, "toolkit5G.Scrambler.DeScrambler.Lmax"]], "c_init (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.c_init"], [83, "toolkit5G.Scrambler.DeScrambler.c_init"], [106, "toolkit5G.Scrambler.DeScrambler.c_init"], [126, "toolkit5G.Scrambler.DeScrambler.c_init"], [163, "toolkit5G.Scrambler.DeScrambler.c_init"], [167, "toolkit5G.Scrambler.DeScrambler.c_init"], [240, "toolkit5G.Scrambler.DeScrambler.c_init"]], "id (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.id"], [83, "toolkit5G.Scrambler.DeScrambler.id"], [106, "toolkit5G.Scrambler.DeScrambler.id"], [126, "toolkit5G.Scrambler.DeScrambler.id"], [163, "toolkit5G.Scrambler.DeScrambler.id"], [167, "toolkit5G.Scrambler.DeScrambler.id"], [240, "toolkit5G.Scrambler.DeScrambler.id"]], "mu (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.mu"], [83, "toolkit5G.Scrambler.DeScrambler.mu"], [106, "toolkit5G.Scrambler.DeScrambler.mu"], [126, "toolkit5G.Scrambler.DeScrambler.mu"], [163, "toolkit5G.Scrambler.DeScrambler.mu"], [167, "toolkit5G.Scrambler.DeScrambler.mu"], [240, "toolkit5G.Scrambler.DeScrambler.mu"]], "nid (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.nID"], [83, "toolkit5G.Scrambler.DeScrambler.nID"], [106, "toolkit5G.Scrambler.DeScrambler.nID"], [126, "toolkit5G.Scrambler.DeScrambler.nID"], [163, "toolkit5G.Scrambler.DeScrambler.nID"], [167, "toolkit5G.Scrambler.DeScrambler.nID"], [240, "toolkit5G.Scrambler.DeScrambler.nID"]], "purpose (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.purpose"], [83, "toolkit5G.Scrambler.DeScrambler.purpose"], [106, "toolkit5G.Scrambler.DeScrambler.purpose"], [126, "toolkit5G.Scrambler.DeScrambler.purpose"], [163, "toolkit5G.Scrambler.DeScrambler.purpose"], [167, "toolkit5G.Scrambler.DeScrambler.purpose"], [240, "toolkit5G.Scrambler.DeScrambler.purpose"]], "q (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.q"], [83, "toolkit5G.Scrambler.DeScrambler.q"], [106, "toolkit5G.Scrambler.DeScrambler.q"], [126, "toolkit5G.Scrambler.DeScrambler.q"], [163, "toolkit5G.Scrambler.DeScrambler.q"], [167, "toolkit5G.Scrambler.DeScrambler.q"], [240, "toolkit5G.Scrambler.DeScrambler.q"]], "rnti (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.rnti"], [83, "toolkit5G.Scrambler.DeScrambler.rnti"], [106, "toolkit5G.Scrambler.DeScrambler.rnti"], [126, "toolkit5G.Scrambler.DeScrambler.rnti"], [163, "toolkit5G.Scrambler.DeScrambler.rnti"], [167, "toolkit5G.Scrambler.DeScrambler.rnti"], [240, "toolkit5G.Scrambler.DeScrambler.rnti"]], "ssbindex (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [83, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [106, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [126, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [163, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [167, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [240, "toolkit5G.Scrambler.DeScrambler.ssbIndex"]], "lmax (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.Lmax"], [84, "toolkit5G.Scrambler.Scrambler.Lmax"], [107, "toolkit5G.Scrambler.Scrambler.Lmax"], [127, "toolkit5G.Scrambler.Scrambler.Lmax"], [165, "toolkit5G.Scrambler.Scrambler.Lmax"], [168, "toolkit5G.Scrambler.Scrambler.Lmax"], [242, "toolkit5G.Scrambler.Scrambler.Lmax"]], "scrambler (class in toolkit5g.scrambler)": [[65, "toolkit5G.Scrambler.Scrambler"], [84, "toolkit5G.Scrambler.Scrambler"], [107, "toolkit5G.Scrambler.Scrambler"], [127, "toolkit5G.Scrambler.Scrambler"], [165, "toolkit5G.Scrambler.Scrambler"], [168, "toolkit5G.Scrambler.Scrambler"], [242, "toolkit5G.Scrambler.Scrambler"]], "c_init (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.c_init"], [84, "toolkit5G.Scrambler.Scrambler.c_init"], [107, "toolkit5G.Scrambler.Scrambler.c_init"], [127, "toolkit5G.Scrambler.Scrambler.c_init"], [165, "toolkit5G.Scrambler.Scrambler.c_init"], [168, "toolkit5G.Scrambler.Scrambler.c_init"], [242, "toolkit5G.Scrambler.Scrambler.c_init"]], "id (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.id"], [84, "toolkit5G.Scrambler.Scrambler.id"], [107, "toolkit5G.Scrambler.Scrambler.id"], [127, "toolkit5G.Scrambler.Scrambler.id"], [165, "toolkit5G.Scrambler.Scrambler.id"], [168, "toolkit5G.Scrambler.Scrambler.id"], [242, "toolkit5G.Scrambler.Scrambler.id"]], "mu (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.mu"], [84, "toolkit5G.Scrambler.Scrambler.mu"], [107, "toolkit5G.Scrambler.Scrambler.mu"], [127, "toolkit5G.Scrambler.Scrambler.mu"], [165, "toolkit5G.Scrambler.Scrambler.mu"], [168, "toolkit5G.Scrambler.Scrambler.mu"], [242, "toolkit5G.Scrambler.Scrambler.mu"]], "nid (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.nID"], [84, "toolkit5G.Scrambler.Scrambler.nID"], [107, "toolkit5G.Scrambler.Scrambler.nID"], [127, "toolkit5G.Scrambler.Scrambler.nID"], [165, "toolkit5G.Scrambler.Scrambler.nID"], [168, "toolkit5G.Scrambler.Scrambler.nID"], [242, "toolkit5G.Scrambler.Scrambler.nID"]], "purpose (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.purpose"], [84, "toolkit5G.Scrambler.Scrambler.purpose"], [107, "toolkit5G.Scrambler.Scrambler.purpose"], [127, "toolkit5G.Scrambler.Scrambler.purpose"], [165, "toolkit5G.Scrambler.Scrambler.purpose"], [168, "toolkit5G.Scrambler.Scrambler.purpose"], [242, "toolkit5G.Scrambler.Scrambler.purpose"]], "q (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.q"], [84, "toolkit5G.Scrambler.Scrambler.q"], [107, "toolkit5G.Scrambler.Scrambler.q"], [127, "toolkit5G.Scrambler.Scrambler.q"], [165, "toolkit5G.Scrambler.Scrambler.q"], [168, "toolkit5G.Scrambler.Scrambler.q"], [242, "toolkit5G.Scrambler.Scrambler.q"]], "rnti (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.rnti"], [84, "toolkit5G.Scrambler.Scrambler.rnti"], [107, "toolkit5G.Scrambler.Scrambler.rnti"], [127, "toolkit5G.Scrambler.Scrambler.rnti"], [165, "toolkit5G.Scrambler.Scrambler.rnti"], [168, "toolkit5G.Scrambler.Scrambler.rnti"], [242, "toolkit5G.Scrambler.Scrambler.rnti"]], "ssbindex (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [84, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [107, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [127, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [165, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [168, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [242, "toolkit5G.Scrambler.Scrambler.ssbIndex"]], "pdschlowerphy (class in toolkit5g.physicalchannels)": [[85, "toolkit5G.PhysicalChannels.PDSCHLowerPhy"]], "displaydmrsgrid() (toolkit5g.physicalchannels.pdschlowerphy method)": [[85, "toolkit5G.PhysicalChannels.PDSCHLowerPhy.displayDMRSGrid"]], "displayresourcegrid() (toolkit5g.physicalchannels.pdschlowerphy method)": [[85, "toolkit5G.PhysicalChannels.PDSCHLowerPhy.displayResourceGrid"]], "pdschdecoderlowerphy (class in toolkit5g.physicalchannels)": [[86, "toolkit5G.PhysicalChannels.PDSCHDecoderLowerPhy"]], "pdschupperphy (class in toolkit5g.physicalchannels)": [[87, "toolkit5G.PhysicalChannels.PDSCHUpperPhy"]], "pdschdecoderupperphy (class in toolkit5g.physicalchannels)": [[88, "toolkit5G.PhysicalChannels.PDSCHDecoderUpperPhy"]], "computetransportblocksize (class in toolkit5g.physicalchannels.pdsch)": [[94, "toolkit5G.PhysicalChannels.PDSCH.ComputeTransportBlockSize"]], "layerdemapper (class in toolkit5g.physicalchannels.pdsch)": [[95, "toolkit5G.PhysicalChannels.PDSCH.LayerDemapper"]], "layermapper (class in toolkit5g.physicalchannels.pdsch)": [[95, "toolkit5G.PhysicalChannels.PDSCH.LayerMapper"]], "bitdeselection (class in toolkit5g.ratematcher.ldpc)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection"]], "bitselection (class in toolkit5g.ratematcher.ldpc)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection"]], "ncb (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.Ncb"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.Ncb"]], "ratematchparameters (class in toolkit5g.ratematcher.ldpc)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters"]], "basegraph (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.baseGraph"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.baseGraph"]], "basegraph (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.baseGraph"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.baseGraph"]], "basegraph (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.baseGraph"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.baseGraph"]], "enablelbrm (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.enableLBRM"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.enableLBRM"]], "enablelbrm (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.enableLBRM"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.enableLBRM"]], "enablelbrm (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.enableLBRM"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.enableLBRM"]], "k0 (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.k0"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.k0"]], "k0 (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.k0"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.k0"]], "k0 (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.k0"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.k0"]], "liftingfactor (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.liftingFactor"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.liftingFactor"]], "liftingfactor (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.liftingFactor"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.liftingFactor"]], "liftingfactor (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.liftingFactor"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.liftingFactor"]], "modorder (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.modOrder"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.modOrder"]], "modorder (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.modOrder"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.modOrder"]], "nldpc (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.nLDPC"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.nLDPC"]], "numcbs (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.numCBs"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.numCBs"]], "numcodeblocks (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numCodeBlocks"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numCodeBlocks"]], "numcodedbits (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.numCodedBits"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.numCodedBits"]], "numcodedbits (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numCodedBits"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numCodedBits"]], "numlayers (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.numLayers"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.numLayers"]], "numlayers (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numLayers"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numLayers"]], "rvid (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.rvID"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.rvID"]], "rvid (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.rvID"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.rvID"]], "rvid (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.rvID"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.rvID"]], "tbsize (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.tbSize"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.tbSize"]], "tbsize (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.tbSize"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.tbSize"]], "resourcemapperdmrspdsch (class in toolkit5g.resourcemapping)": [[103, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH"], [104, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH"], [229, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH"]], "displaycdmpattern() (toolkit5g.resourcemapping.resourcemapperdmrspdsch method)": [[103, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayCDMPattern"], [104, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayCDMPattern"], [229, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayCDMPattern"]], "displayresourcegrid() (toolkit5g.resourcemapping.resourcemapperdmrspdsch method)": [[103, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayResourceGrid"], [104, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayResourceGrid"], [229, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayResourceGrid"]], "transportblockrxprocessing (class in toolkit5g.physicalchannels.pdsch)": [[108, "toolkit5G.PhysicalChannels.PDSCH.TransportBlockRxProcessing"]], "transportblocktxprocessing (class in toolkit5g.physicalchannels.pdsch)": [[108, "toolkit5G.PhysicalChannels.PDSCH.TransportBlockTxProcessing"]], "resourcedemapperformat0 (class in toolkit5g.resourcemapping)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0"]], "formatpucch (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.formatPUCCH"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.formatPUCCH"]], "indexpucch (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.indexPUCCH"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.indexPUCCH"]], "interlaceindex_0 (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.interlaceIndex_0"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.interlaceIndex_0"]], "interlaceindex_1 (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.interlaceIndex_1"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.interlaceIndex_1"]], "maxnumprbs (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.maxNumPRBs"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.maxNumPRBs"]], "numinterlacedrbs (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numInterlacedRBs"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numInterlacedRBs"]], "numofinterlaces (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numOfInterlaces"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numOfInterlaces"]], "numrbs (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numRBs"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numberOfSymb"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numberOfSymb"]], "offset (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.offset"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.offset"]], "rg_size (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.rg_Size"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.rg_Size"]], "secondhopprb (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.secondHopPRB"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.secondHopPRB"]], "seqlength (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.seqLength"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.seqLength"]], "start_symbindex (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.start_SymbIndex"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.start_SymbIndex"]], "startingprb (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.startingPRB"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.startingPRB"]], "resourcemapperformat0 (class in toolkit5g.resourcemapping)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0"]], "formatpucch (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.formatPUCCH"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.formatPUCCH"]], "indexpucch (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.indexPUCCH"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.indexPUCCH"]], "interlaceindex_0 (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.interlaceIndex_0"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.interlaceIndex_0"]], "interlaceindex_1 (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.interlaceIndex_1"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.interlaceIndex_1"]], "maxnumprbs (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.maxNumPRBs"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.maxNumPRBs"]], "numinterlacedrbs (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numInterlacedRBs"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numInterlacedRBs"]], "numofinterlaces (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numOfInterlaces"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numOfInterlaces"]], "numrbs (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numRBs"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numberOfSymb"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numberOfSymb"]], "offset (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.offset"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.offset"]], "rg_size (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.rg_Size"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.rg_Size"]], "secondhopprb (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.secondHopPRB"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.secondHopPRB"]], "seqlength (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.seqLength"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.seqLength"]], "start_symbindex (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.start_SymbIndex"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.start_SymbIndex"]], "startingprb (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.startingPRB"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.startingPRB"]], "pucchformat0sequence (class in toolkit5g.sequencegeneration)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence"]], "controlinfo (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.controlInfo"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.controlInfo"]], "indexpucch (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.indexPUCCH"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.indexPUCCH"]], "initial_cyclicshift (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.initial_CyclicShift"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.initial_CyclicShift"]], "m_cs (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.m_CS"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.m_CS"]], "nid (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.nID"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.nID"]], "numbatches (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numBatches"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numBatches"]], "numinterlacedrbs (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numInterlacedRBs"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numInterlacedRBs"]], "numrbs (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numRBs"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numRBs"]], "numberofsymb (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numberOfSymb"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numberOfSymb"]], "pucch_grouphopping (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.pucch_GroupHopping"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.pucch_GroupHopping"]], "seqnumber (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.seqNumber"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.seqNumber"]], "slotnumber (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.slotNumber"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.slotNumber"]], "start_symbindex (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.start_SymbIndex"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.start_SymbIndex"]], "despreadingformat1 (class in toolkit5g.resourcemapping)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1"]], "spreadingfactor (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.SpreadingFactor"]], "indexpucch (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.indexPUCCH"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.indexPUCCH"]], "maxnumprbs (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.maxNumPRBs"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.maxNumPRBs"]], "numberofsymb (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.numberOfSymb"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.numberOfSymb"]], "start_symbindex (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.start_SymbIndex"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.start_SymbIndex"]], "timedomainocc (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.timedomainOCC"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.timedomainOCC"]], "resourcedemapperformat1 (class in toolkit5g.resourcemapping)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1"]], "indexpucch (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.indexPUCCH"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.indexPUCCH"]], "interlaceindex_0 (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.interlaceIndex_0"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.interlaceIndex_0"]], "interlaceindex_1 (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.interlaceIndex_1"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.interlaceIndex_1"]], "maxnumprbs (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.maxNumPRBs"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.maxNumPRBs"]], "numinterlacedrbs (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numInterlacedRBs"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numInterlacedRBs"]], "numofinterlaces (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numOfInterlaces"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numOfInterlaces"]], "numrbs (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numRBs"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numberOfSymb"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numberOfSymb"]], "offset (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.offset"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.offset"]], "rg_size (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.rg_Size"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.rg_Size"]], "secondhopprb (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.secondHopPRB"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.secondHopPRB"]], "seqlength (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.seqLength"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.seqLength"]], "start_symbindex (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.start_SymbIndex"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.start_SymbIndex"]], "startingprb (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.startingPRB"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.startingPRB"]], "resourcemapperformat1 (class in toolkit5g.resourcemapping)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1"]], "indexpucch (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.indexPUCCH"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.indexPUCCH"]], "interlaceindex_0 (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.interlaceIndex_0"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.interlaceIndex_0"]], "interlaceindex_1 (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.interlaceIndex_1"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.interlaceIndex_1"]], "maxnumprbs (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.maxNumPRBs"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.maxNumPRBs"]], "numinterlacedrbs (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numInterlacedRBs"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numInterlacedRBs"]], "numofinterlaces (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numOfInterlaces"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numOfInterlaces"]], "numrbs (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numRBs"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numberOfSymb"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numberOfSymb"]], "offset (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.offset"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.offset"]], "rg_size (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.rg_Size"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.rg_Size"]], "secondhopprb (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.secondHopPRB"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.secondHopPRB"]], "seqlength (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.seqLength"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.seqLength"]], "start_symbindex (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.start_SymbIndex"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.start_SymbIndex"]], "startingprb (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.startingPRB"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.startingPRB"]], "pucchformat1sequence (class in toolkit5g.sequencegeneration)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence"]], "indexpucch (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.indexPUCCH"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.indexPUCCH"]], "initial_cyclicshift (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.initial_CyclicShift"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.initial_CyclicShift"]], "m_cs (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.m_CS"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.m_CS"]], "maxnumprbs (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.maxNumPRBs"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.maxNumPRBs"]], "nhop (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.nHop"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.nHop"]], "nid (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.nID"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.nID"]], "numinterlacedrbs (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numInterlacedRBs"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numInterlacedRBs"]], "numrbs (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numRBs"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numRBs"]], "numberofsymb (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numberOfSymb"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numberOfSymb"]], "pucch_grouphopping (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.pucch_GroupHopping"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.pucch_GroupHopping"]], "slotnumber (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.slotNumber"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.slotNumber"]], "start_symbindex (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.start_SymbIndex"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.start_SymbIndex"]], "spreadingfactor (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.SpreadingFactor"]], "spreadingformat1 (class in toolkit5g.resourcemapping)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1"]], "indexpucch (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.indexPUCCH"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.indexPUCCH"]], "numrbs (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.numRBs"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.numberOfSymb"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.numberOfSymb"]], "start_symbindex (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.start_SymbIndex"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.start_SymbIndex"]], "timedomainocc (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.timedomainOCC"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.timedomainOCC"]], "puschdecoderupperphy (class in toolkit5g.physicalchannels)": [[181, "toolkit5G.PhysicalChannels.PUSCHDecoderUpperPhy"]], "puschupperphy (class in toolkit5g.physicalchannels)": [[182, "toolkit5G.PhysicalChannels.PUSCHUpperPhy"]], "pbch (class in toolkit5g.physicalchannels)": [[184, "toolkit5G.PhysicalChannels.PBCH"]], "pbchdecoder (class in toolkit5g.physicalchannels)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder"]], "chil_bits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.chIL_bits"]], "channeldeinterleaverbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.channelDeInterleaverBits"]], "crccheck (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.crcCheck"]], "decrcbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.deCRCBits"]], "descrambledbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.deScrambledBits"]], "descrambled2llrs (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.descrambled2LLRs"]], "encbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.encBits"]], "iilbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.iILBits"]], "ilbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.ilBits"]], "inputdeinteleavedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.inputDeinteleavedBits"]], "llr (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.llr"]], "mib (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.mib"]], "mibrx (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.mibRx"]], "payloadcrc (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.payloadCRC"]], "payloadmib (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.payloadMIB"]], "pbchdeinterleavedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.pbchDeInterleavedBits"]], "polardecodedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.polarDecodedBits"]], "ratedematedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.rateDematedBits"]], "rmbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.rmBits"]], "sbil_bits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.sBIL_bits"]], "scr2bits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.scr2bits"]], "scrbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.scrBits"]], "subblockdeinterleavedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.subBlockDeinterleavedBits"]], "pdcch (class in toolkit5g.physicalchannels)": [[185, "toolkit5G.PhysicalChannels.PDCCH"]], "pdcchdecoder (class in toolkit5g.physicalchannels)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder"]], "check (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.check"]], "dcibil (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciBIL"]], "dcibits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.dciBits"]], "dcicrc (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciCRC"]], "dciibi (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciIBI"]], "dcirm (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciRM"]], "dcirnti (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciRNTI"]], "dciscr (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciSCR"]], "decodedbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.decodedBits"]], "dematchedbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.dematchedBits"]], "descrambledllrs (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.descrambledLLRs"]], "encbits (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.encBits"]], "ibdilbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.ibDILBits"]], "llr (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.llr"]], "sbdbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.sbdBits"]], "unmaskedbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.unmaskedBits"]], "psbch (class in toolkit5g.physicalchannels)": [[188, "toolkit5G.PhysicalChannels.PSBCH"]], "psbchdecoder (class in toolkit5g.physicalchannels)": [[188, "toolkit5G.PhysicalChannels.PSBCHDecoder"]], "pscchlowerphy (class in toolkit5g.physicalchannels)": [[189, "toolkit5G.PhysicalChannels.PSCCHLowerPhy"]], "pscchlowerphydecoder (class in toolkit5g.physicalchannels)": [[189, "toolkit5G.PhysicalChannels.PSCCHLowerPhyDecoder"]], "pscchupperphy (class in toolkit5g.physicalchannels)": [[189, "toolkit5G.PhysicalChannels.PSCCHUpperPhy"]], "pscchupperphydecoder (class in toolkit5g.physicalchannels)": [[189, "toolkit5G.PhysicalChannels.PSCCHUpperPhyDecoder"]], "dft_doa (class in toolkit5g.positioning)": [[192, "toolkit5G.Positioning.DFT_DoA"]], "esprit_doa (class in toolkit5g.positioning)": [[193, "toolkit5G.Positioning.ESPRIT_DoA"]], "music_doa (class in toolkit5g.positioning)": [[194, "toolkit5G.Positioning.MUSIC_DoA"]], "doaestimation (class in toolkit5g.positioning)": [[195, "toolkit5G.Positioning.DoAEstimation"]], "gradientdescentdoa (class in toolkit5g.positioning)": [[196, "toolkit5G.Positioning.GradientDescentDoA"]], "leastsquaredoa (class in toolkit5g.positioning)": [[196, "toolkit5G.Positioning.LeastSquareDoA"]], "hybridtdoaaoa (class in toolkit5g.positioning)": [[197, "toolkit5G.Positioning.HybridTDoAAoA"]], "hybridtoaaoa (class in toolkit5g.positioning)": [[197, "toolkit5G.Positioning.HybridToAAoA"]], "gradientdescenttdoa (class in toolkit5g.positioning)": [[198, "toolkit5G.Positioning.GradientDescentTDoA"]], "leastsquaretdoa (class in toolkit5g.positioning)": [[198, "toolkit5G.Positioning.LeastSquareTDoA"]], "newtonraphsontdoa (class in toolkit5g.positioning)": [[198, "toolkit5G.Positioning.NewtonRaphsonTDoA"]], "leastsquaretoa (class in toolkit5g.positioning)": [[199, "toolkit5G.Positioning.LeastSquareToA"]], "dft_toa (class in toolkit5g.positioning)": [[202, "toolkit5G.Positioning.DFT_ToA"]], "esprit_toa (class in toolkit5g.positioning)": [[203, "toolkit5G.Positioning.ESPRIT_ToA"]], "music_toa (class in toolkit5g.positioning)": [[204, "toolkit5G.Positioning.MUSIC_ToA"]], "toaestimation (class in toolkit5g.positioning)": [[205, "toolkit5G.Positioning.ToAEstimation"]], "positionestimation (class in toolkit5g.positioning)": [[206, "toolkit5G.Positioning.PositionEstimation"]], "coreset (class in toolkit5g.resourcemapping)": [[227, "toolkit5G.ResourceMapping.CORESET"]], "displaycoresetreg_cce_mapping() (toolkit5g.resourcemapping.coreset method)": [[227, "toolkit5G.ResourceMapping.CORESET.displayCoresetREG_CCE_Mapping"]], "resourcemappercsirs (class in toolkit5g.resourcemapping)": [[228, "toolkit5G.ResourceMapping.ResourceMapperCSIRS"]], "displaycdmpattern() (toolkit5g.resourcemapping.resourcemappercsirs method)": [[228, "toolkit5G.ResourceMapping.ResourceMapperCSIRS.displayCDMPattern"]], "displayresourcegrid() (toolkit5g.resourcemapping.resourcemappercsirs method)": [[228, "toolkit5G.ResourceMapping.ResourceMapperCSIRS.displayResourceGrid"]], "resourcemappingpdcch (class in toolkit5g.resourcemapping)": [[230, "toolkit5G.ResourceMapping.ResourceMappingPDCCH"]], "resourcemapperprs (class in toolkit5g.resourcemapping)": [[231, "toolkit5G.ResourceMapping.ResourceMapperPRS"]], "resourcemappingpscch (class in toolkit5g.resourcemapping)": [[232, "toolkit5G.ResourceMapping.ResourceMappingPSCCH"]], "resourcemapperptrspdsch (class in toolkit5g.resourcemapping)": [[233, "toolkit5G.ResourceMapping.ResourceMapperPTRSPDSCH"]], "sssb_grid (class in toolkit5g.resourcemapping)": [[235, "toolkit5G.ResourceMapping.SSSB_Grid"]], "displaygrid() (toolkit5g.resourcemapping.sssb_grid method)": [[235, "toolkit5G.ResourceMapping.SSSB_Grid.displayGrid"]], "searchspaceset (class in toolkit5g.resourcemapping)": [[236, "toolkit5G.ResourceMapping.SearchSpaceSet"]], "ssb_grid (class in toolkit5g.resourcemapping)": [[237, "toolkit5G.ResourceMapping.SSB_Grid"]], "displaygrid() (toolkit5g.resourcemapping.ssb_grid method)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.displayGrid"]], "dmrsindices (toolkit5g.resourcemapping.ssb_grid property)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.dmrsIndices"]], "pbchindices (toolkit5g.resourcemapping.ssb_grid property)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.pbchIndices"]], "pssindices (toolkit5g.resourcemapping.ssb_grid property)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.pssIndices"]], "sssindices (toolkit5g.resourcemapping.ssb_grid property)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.sssIndices"]], "resourcemapperssb (class in toolkit5g.resourcemapping)": [[238, "toolkit5G.ResourceMapping.ResourceMapperSSB"]], "lowpaprsequencetype1 (class in toolkit5g.sequencegeneration)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1"]], "basesequencenumber (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.baseSequenceNumber"]], "cyclicshift (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.cyclicShift"]], "delta (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.delta"]], "groupnumber (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.groupNumber"]], "lengthofsequence (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.lengthOfSequence"]], "numrbs (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.numRBs"]], "lowpaprsequencetype2 (class in toolkit5g.sequencegeneration)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2"]], "cinit (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.cinit"]], "delta (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.delta"]], "groupnumber (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.groupNumber"]], "groupnumber_or_cinit (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.groupNumber_Or_cinit"]], "lengthofsequence (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.lengthOfSequence"]], "numrbs (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.numRBs"]], "csirs (class in toolkit5g.sequencegeneration)": [[248, "toolkit5G.SequenceGeneration.CSIRS"]], "dmrs (class in toolkit5g.sequencegeneration)": [[249, "toolkit5G.SequenceGeneration.DMRS"]], "pnsequence (class in toolkit5g.sequencegeneration)": [[250, "toolkit5G.SequenceGeneration.PNSequence"]], "prs (class in toolkit5g.sequencegeneration)": [[251, "toolkit5G.SequenceGeneration.PRS"]], "pss (class in toolkit5g.sequencegeneration)": [[252, "toolkit5G.SequenceGeneration.PSS"]], "s_pss (class in toolkit5g.sequencegeneration)": [[253, "toolkit5G.SequenceGeneration.S_PSS"]], "srs (class in toolkit5g.sequencegeneration)": [[254, "toolkit5G.SequenceGeneration.SRS"]], "lengthofsequence (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.lengthOfSequence"]], "nrofcyclicshift (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.nrOfCyclicShift"]], "nrofsymbols (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.nrofSymbols"]], "sequenceid (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.sequenceId"]], "slotindex (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.slotIndex"]], "startposition (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.startPosition"]], "symbolindices (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.symbolIndices"]], "transmissioncomb (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.transmissionComb"]], "sss (class in toolkit5g.sequencegeneration)": [[255, "toolkit5G.SequenceGeneration.SSS"]], "s_sss (class in toolkit5g.sequencegeneration)": [[256, "toolkit5G.SequenceGeneration.S_SSS"]], "csiconfiguration (class in toolkit5g.configurations)": [[261, "toolkit5G.Configurations.CSIConfiguration"]], "generatevalidssbparameters (class in toolkit5g.configurations)": [[262, "toolkit5G.Configurations.GenerateValidSSBParameters"]], "pdschlowerphyconfiguration (class in toolkit5g.configurations)": [[263, "toolkit5G.Configurations.PDSCHLowerPhyConfiguration"]], "pdschupperphyconfiguration (class in toolkit5g.configurations)": [[264, "toolkit5G.Configurations.PDSCHUpperPhyConfiguration"]], "srsconfiguration (class in toolkit5g.configurations)": [[265, "toolkit5G.Configurations.SRSConfiguration"]], "bhop (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.bHop"]], "bsrs (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.bSRS"]], "betasrs (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.betaSRS"]], "csrs (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.cSRS"]], "comboffset (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.combOffset"]], "enablestartrbhopping (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.enableStartRBHopping"]], "freqdomainposition (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.freqDomainPosition"]], "freqdomainshift (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.freqDomainShift"]], "freqscalingfactor (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.freqScalingFactor"]], "grouporsequencehopping (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.groupOrSequenceHopping"]], "lengthofsequence (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.lengthOfSequence"]], "nrofcyclicshift (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.nrOfCyclicShift"]], "nrofsrs_ports (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.nrofSRS_Ports"]], "nrofsymbols (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.nrofSymbols"]], "offsetinslots (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.offsetInSlots"]], "periodicityinslots (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.periodicityInSlots"]], "purpose (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.purpose"]], "repetitionfactor (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.repetitionFactor"]], "resourcegridsizeinrbs (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.resourceGridSizeinRBs"]], "resourcetype (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.resourceType"]], "sequenceid (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.sequenceId"]], "slotindex (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.slotIndex"]], "startposition (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.startPosition"]], "startrbindex (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.startRBIndex"]], "symbolindices (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.symbolIndices"]], "systemframenumber (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.systemFrameNumber"]], "transmissioncomb (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.transmissionComb"]], "ssbconfiguration (class in toolkit5g.configurations)": [[266, "toolkit5G.Configurations.SSBConfiguration"]], "timefrequency5gparameters (class in toolkit5g.configurations)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters"]], "getgaurdband_fr1() (toolkit5g.configurations.timefrequency5gparameters method)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters.getGaurdBand_FR1"]], "getgaurdband_fr2() (toolkit5g.configurations.timefrequency5gparameters method)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters.getGaurdBand_FR2"]], "getnumberrb_fr1() (toolkit5g.configurations.timefrequency5gparameters method)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters.getNumberRB_FR1"]], "getnumberrb_fr2() (toolkit5g.configurations.timefrequency5gparameters method)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters.getNumberRB_FR2"]], "carrierfrequencyoffsetestimation (class in toolkit5g.receiveralgorithms)": [[268, "toolkit5G.ReceiverAlgorithms.CarrierFrequencyOffsetEstimation"]], "channelestimationandequalizationpbch (class in toolkit5g.receiveralgorithms)": [[269, "toolkit5G.ReceiverAlgorithms.ChannelEstimationAndEqualizationPBCH"]], "channelestimationandequalizationpdcch (class in toolkit5g.receiveralgorithms)": [[270, "toolkit5G.ReceiverAlgorithms.ChannelEstimationAndEqualizationPDCCH"]], "channelestimationandequalizationpdsch (class in toolkit5g.receiveralgorithms)": [[271, "toolkit5G.ReceiverAlgorithms.ChannelEstimationAndEqualizationPDSCH"]], "dmrsparameterdetection (class in toolkit5g.receiveralgorithms)": [[272, "toolkit5G.ReceiverAlgorithms.DMRSParameterDetection"]], "pssdetection (class in toolkit5g.receiveralgorithms)": [[273, "toolkit5G.ReceiverAlgorithms.PSSDetection"]], "sssdetection (class in toolkit5g.receiveralgorithms)": [[274, "toolkit5G.ReceiverAlgorithms.SSSDetection"]], "channelestimationcsirs (class in toolkit5g.receiveralgorithms)": [[275, "toolkit5G.ReceiverAlgorithms.ChannelEstimationCSIRS"]], "channelestimationsrs (class in toolkit5g.receiveralgorithms)": [[276, "toolkit5G.ReceiverAlgorithms.ChannelEstimationSRS"]], "pdcchscheduler (class in toolkit5g.scheduler)": [[278, "toolkit5G.Scheduler.PDCCHScheduler"]], "roundrobinscheduler (class in toolkit5g.scheduler)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler"]], "firstacrosstime (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.firstAcrossTime"]], "numrb (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.numRB"]], "numsymbol (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.numSymbol"]], "numuescheduledacrossfreq (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.numUEscheduledAcrossFreq"]], "numuescheduledacrosstime (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.numUEscheduledAcrossTime"]], "linkadaptation (class in toolkit5g.scheduler)": [[280, "toolkit5G.Scheduler.LinkAdaptation"]], "selectmcs() (toolkit5g.scheduler.linkadaptation method)": [[280, "toolkit5G.Scheduler.LinkAdaptation.selectMCS"]], "rankadaptation (class in toolkit5g.scheduler)": [[281, "toolkit5G.Scheduler.RankAdaptation"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["GettingStarted", "api/5G_Toolkit/5Gtoolkit", "api/5G_Toolkit/CRC/crc", "api/5G_Toolkit/CRC/crc.crcDecoder", "api/5G_Toolkit/CRC/crc.crcEncoder", "api/5G_Toolkit/ChannelCoder/HammingCoder/channelCoder.hamming", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingReceiver", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingTransmitter", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.ldpcParameters", "api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar", "api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.components", "api/5G_Toolkit/ChannelCoder/ReedMullerCoder/channelCoder.reedMuller", "api/5G_Toolkit/ChannelCoder/channelCoder", "api/5G_Toolkit/ChannelModels/antennaArray", "api/5G_Toolkit/ChannelModels/channelGenerator", "api/5G_Toolkit/ChannelModels/channelModels", "api/5G_Toolkit/ChannelModels/nodeMobility", "api/5G_Toolkit/ChannelModels/parameterGenerator", "api/5G_Toolkit/ChannelModels/simulationLayout", "api/5G_Toolkit/ChannelProcessing/channelProcessing", "api/5G_Toolkit/ChannelProcessing/channelProcessing.addNoise", "api/5G_Toolkit/ChannelProcessing/channelProcessing.applyChannel", "api/5G_Toolkit/Interleaver/interleavers", "api/5G_Toolkit/Interleaver/interleavers.lpdc.bitInterleaver", "api/5G_Toolkit/Interleaver/interleavers.pbchInterleavers", "api/5G_Toolkit/Interleaver/interleavers.polar.channelInterleaver", "api/5G_Toolkit/Interleaver/interleavers.polar.inputBitInterleaver", "api/5G_Toolkit/Interleaver/interleavers.polar.subBlockInterleaver", "api/5G_Toolkit/MIMOProcessing/codeBooks", "api/5G_Toolkit/MIMOProcessing/mimoProcessing", "api/5G_Toolkit/OFDM/ofdm", "api/5G_Toolkit/OFDM/ofdm.demodulator", "api/5G_Toolkit/OFDM/ofdm.modulator", "api/5G_Toolkit/OFDM/ofdm.transformDecoding", "api/5G_Toolkit/OFDM/ofdm.transformDecoding5G", "api/5G_Toolkit/OFDM/ofdm.transformprecoding", "api/5G_Toolkit/OFDM/ofdm.transformprecoding5G", "api/5G_Toolkit/PayloadGeneration/DCI/payloadGeneration.dci", "api/5G_Toolkit/PayloadGeneration/MIB/payloadGeneration.mib", "api/5G_Toolkit/PayloadGeneration/payloadGeneration", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.crc", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.mib", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.pbchInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.pbchScrambler", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.polarCoder", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.channelInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.subblockInterleaver", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.resourceMapping", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rnti", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.crc", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhy", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhyDecoder", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhy", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhyDecoder", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/PDSCH", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/ReceiverUpperPHY", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/TransmitterUpperPHY", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockConcatenation", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockSegmentation", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.computeTBsize", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.layermapping", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ldpcCodec", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitInterleaver", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMapping", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMappingDMRS", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.transportblockProcessing", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.crc", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/Format0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceDemappingFormat0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceMappingFormat0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/SequenceGenerationFormat0", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/DespreadingFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/Format1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceDemappingFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceMappingFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SequenceGenerationFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SpreadingFormat1", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/Format2_3_4", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.components", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/SBL/channelCoder.sbl", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.ChannelCoding", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.polarCodec", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.sblCodec", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockConcatenation/physicalChannels.pucch.components.CodeBlockConcatenation", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockSegmentation/physicalChannels.pucch.components.CodeBlockSegmentation", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/PUCCHComponents", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ChannelCodingOfSmallBlockLength/ratematcher.ChannelCodingOfSmallBlockLength", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/ratematcher.polarcoder", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ratematcher", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.Interleaver", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.bitSelection", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.polarCodec", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.sbl", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.deScrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rntiMasking", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.scrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.descrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.scrambler", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.demapper", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.mapper", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolDemapping", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolMapping", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHReceiver/PUCCHReceiver", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHTransmitter/PUCCHTransmitter", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format3", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format4", "api/5G_Toolkit/PhysicalChannels/PUCCH/PUCCH", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCH", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHDecoderUpperPhy", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHUpperPhy", "api/5G_Toolkit/PhysicalChannels/physicalChannels", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pbch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pdcch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pdsch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.prach", "api/5G_Toolkit/PhysicalChannels/physicalChannels.psbch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pscch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pucch", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pusch", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.dftDoA", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.espritDoA", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.musicDoA", "api/5G_Toolkit/Positioning/Angle_Estimation/positioning.doaEstimation", "api/5G_Toolkit/Positioning/Optimization_Algorithms/DoA/positioning.optimization_Algorithms.DoA", "api/5G_Toolkit/Positioning/Optimization_Algorithms/Hybrid/positioning.optimization_Algorithms.Hybrid", "api/5G_Toolkit/Positioning/Optimization_Algorithms/TDoA/positioning.optimization_Algorithms.TDoA", "api/5G_Toolkit/Positioning/Optimization_Algorithms/ToA/positioning.optimization_Algorithms.leastSquareToA", "api/5G_Toolkit/Positioning/Optimization_Algorithms/positioning.optimization_Algorithms", "api/5G_Toolkit/Positioning/Position_Estimation/positioning.position_Estimation", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.dftToA", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.espritToA", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.musicToA", "api/5G_Toolkit/Positioning/Time_Estimation/positioning.toaEstimation", "api/5G_Toolkit/Positioning/positioning", "api/5G_Toolkit/Ratematcher/LDPC/BitSelection/ratematcher.ldpc.bitSelection", "api/5G_Toolkit/Ratematcher/LDPC/Interleavers/ratematcher.ldpc.bitInterleaver", "api/5G_Toolkit/Ratematcher/LDPC/ratematcher.ldpc", "api/5G_Toolkit/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection", "api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers", "api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver", "api/5G_Toolkit/Ratematcher/PolarCoder/ratematcher.polarcoder", "api/5G_Toolkit/Ratematcher/ratematcher", "api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceDemappingFormat0", "api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceMappingFormat0", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/DespreadingFormat1", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceDemappingFormat1", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceMappingFormat1", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/SpreadingFormat1", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format0", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format1", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format2", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format3", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format4", "api/5G_Toolkit/ResourceMapping/resourceMapping", "api/5G_Toolkit/ResourceMapping/resourceMapping.coreset", "api/5G_Toolkit/ResourceMapping/resourceMapping.csirs", "api/5G_Toolkit/ResourceMapping/resourceMapping.dmrsPDSCH", "api/5G_Toolkit/ResourceMapping/resourceMapping.pdcch", "api/5G_Toolkit/ResourceMapping/resourceMapping.prs", "api/5G_Toolkit/ResourceMapping/resourceMapping.pscch", "api/5G_Toolkit/ResourceMapping/resourceMapping.ptrsPDSCH", "api/5G_Toolkit/ResourceMapping/resourceMapping.pucch", "api/5G_Toolkit/ResourceMapping/resourceMapping.s_ssb", "api/5G_Toolkit/ResourceMapping/resourceMapping.searchSpace", "api/5G_Toolkit/ResourceMapping/resourceMapping.ssb", "api/5G_Toolkit/ResourceMapping/resourceMapping.ssbGeneration", "api/5G_Toolkit/Scrambler/scrambler", "api/5G_Toolkit/Scrambler/scrambler.deScrambler", "api/5G_Toolkit/Scrambler/scrambler.rntiMasking", "api/5G_Toolkit/Scrambler/scrambler.scrambler", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration1", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration2", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat0", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat1", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.csirs", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.dmrs", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pnSequence", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.prs", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pss", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.spss", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.srs", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.sss", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.ssss", "api/5G_Toolkit/SymbolMapping/symbolMapping", "api/5G_Toolkit/SymbolMapping/symbolMapping.demapper", "api/5G_Toolkit/SymbolMapping/symbolMapping.mapper", "api/5G_Toolkit/[N]Configurations/configurations", "api/5G_Toolkit/[N]Configurations/configurations.csiConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.generateValidSSBParameters", "api/5G_Toolkit/[N]Configurations/configurations.pdschLowerPhyConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.pdschUpperPhyConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.srsConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.ssbConfiguration", "api/5G_Toolkit/[N]Configurations/configurations.timeFrequency_5GParameters", "api/5G_Toolkit/[N]ReceiverAlgorithms/CFOEstimation/cfoEstimation", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPBCH", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDCCH", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDSCH", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.dmrsParameterDetection", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.pssDetection", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.sssDetection", "api/5G_Toolkit/[N]ReceiverAlgorithms/Downlink_CSI_Acquisition/channelEstimationCSIRS", "api/5G_Toolkit/[N]ReceiverAlgorithms/Positioning/channelEstimationSRS", "api/5G_Toolkit/[N]ReceiverAlgorithms/receiverAlgorithms", "api/5G_Toolkit/[N]Scheduler/PDCCHScheduler/pdcchScheduler", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/ResourceAllocation/roundRobinScheduler", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/linkAdpatation", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/rankAdaptation", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/resourceAllocation", "api/5G_Toolkit/[N]Scheduler/scheduler", "api/Built_using_5G_Toolkit/builtUsing5GToolkit", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/DL_Time(Frame)_Synchronization_using_PSS_in_5G", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/Time_Synchronization", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[BS-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[UE-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G", "api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR", "api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/CFO_Correction", "api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR", "api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/Downlink_Synchronization", "api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication", "api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication_using_PDSCH", "api/Integration_with_SDR/Integration_with_SDRs", "api/LearningResources/GW-IC5GS", "api/LearningResources/LearningResources", "api/License/license", "api/Preview_of_Next_Release/FeatureList", "api/Previous_Versions/PreviousVersions", "api/Projects/Project1/learning2Demap", "api/Projects/Project10/[SLS]Hybrid_Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA_AoA", "api/Projects/Project10/project10", "api/Projects/Project2/Blocking Probability for Different AL distributions", "api/Projects/Project2/Blocking Probability for Different ALs", "api/Projects/Project2/Blocking Probability vs Number of Candidates per Aggregation Level", "api/Projects/Project2/Impact of Scheduling Strategy on Blocking Probability", "api/Projects/Project2/Impact of UEs Capability on Blocking Probability", "api/Projects/Project2/Minimum CORESET Size for a Target Blocking Probability", "api/Projects/Project2/project2", "api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks", "api/Projects/Project3/Generate_Channel_Datasets", "api/Projects/Project3/project3", "api/Projects/Project3/trainCSINet", "api/Projects/Project4/project4", "api/Projects/Project5/project5", "api/Projects/Project6/project6", "api/Projects/Project7/E2E_Learning_for_Physical_Layer", "api/Projects/Project8/project8", "api/Projects/Project9/project9", "api/Projects/Projects", "api/Tutorials/Tutorial1/BER_Analysis_of_Hamming_Codes", "api/Tutorials/Tutorial10/Link_Level_and_System_Level_Simulation_for_Physical_Downlink_Control_Channels", "api/Tutorials/Tutorial10/tutorial9", "api/Tutorials/Tutorial12/SVD_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks", "api/Tutorials/Tutorial13/Type1_Codebook_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks", "api/Tutorials/Tutorial14/Beam_management_in_5G_Networks_using_SSB[P1-Procedure]", "api/Tutorials/Tutorial18[PDCCH_Blind_Decoding]/PDCCH_Blind_Decoding", "api/Tutorials/Tutorial2/Tutorial2_ReedMullerCodes", "api/Tutorials/Tutorial21+/E2E_Downlink_TDoA_Based_Positioning_for_millimeter_Wave_5G_Networks_Deployed_in_Indoor_Factory", "api/Tutorials/Tutorial21+/E2E_Downlink_ToA_Based_Positioning_in_5G_Networks", "api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA", "api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-ToA", "api/Tutorials/Tutorial25+/[LLS]DL-AoD_Based_Positioning_in_5G_Networks", "api/Tutorials/Tutorial25+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-AoA", "api/Tutorials/Tutorial27/Performance_Comparison_of_OFDM_and_DFT-s-OFDM", "api/Tutorials/Tutorial28/Downliink_Channel_Estimation_using_CSI-RS", "api/Tutorials/Tutorial3/Tutorial3_PolarCodes", "api/Tutorials/Tutorial4/Tutorial4_LDPCCodes", "api/Tutorials/Tutorial4/aggregateResults", "api/Tutorials/Tutorial5/1.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Outdoor_Terrains", "api/Tutorials/Tutorial5/10.Spatially_Consistent_Channel_Modelling_for_Mobility_Simulations", "api/Tutorials/Tutorial5/2.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Factory_Terrain", "api/Tutorials/Tutorial5/3.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Hotspot", "api/Tutorials/Tutorial5/4.[Mobility]Channel_Generation_for_Outdoor_Mobile_User_in_Rural_Macro_Hexagonal_Site", "api/Tutorials/Tutorial5/5.[Mobility2x]Channel_Generation_for_Dual_Mobility_Scenarios_in_5G_and_Beyond", "api/Tutorials/Tutorial5/6.Generate_UMa_Channel_for_Multiple_Frequencies", "api/Tutorials/Tutorial5/7.Propagation_Characteristics_of_Outdoor_Terrains", "api/Tutorials/Tutorial5/8.Beam_Domain and Delay_Domain_Sparsity_in_Wireless_Channel_Models", "api/Tutorials/Tutorial5/tutorial5", "api/Tutorials/Tutorial6/Downlink_Synchronization_procedure_using_SSB", "api/Tutorials/Tutorial7/Link_Level_Simulation_for_Physical_Broadcast_Channels_using_CDL-A_Channels", "api/Tutorials/Tutorial8/pucchFormat0_Tutorial", "api/Tutorials/Tutorial9/Link_Level_Simulation_for_PDSCH_in_5G", "api/Tutorials/Tutorials", "api/WeekChallenge/challenge", "api/WeekChallenge/challengeArxiv", "api/WeekChallenge/challengeOftheWeek", "detailedInstall", "detailedInstall2", "index", "install", "install2", "releaseNotes", "test_GettingStarted"], "filenames": ["GettingStarted.rst", "api/5G_Toolkit/5Gtoolkit.rst", "api/5G_Toolkit/CRC/crc.rst", "api/5G_Toolkit/CRC/crc.crcDecoder.rst", "api/5G_Toolkit/CRC/crc.crcEncoder.rst", "api/5G_Toolkit/ChannelCoder/HammingCoder/channelCoder.hamming.rst", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.rst", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingReceiver.rst", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.codeblockprocessingTransmitter.rst", "api/5G_Toolkit/ChannelCoder/LDPC/channelCoder.ldpc.ldpcParameters.rst", "api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.rst", "api/5G_Toolkit/ChannelCoder/PolarCoder/channelCoder.polar.components.rst", "api/5G_Toolkit/ChannelCoder/ReedMullerCoder/channelCoder.reedMuller.rst", "api/5G_Toolkit/ChannelCoder/channelCoder.rst", "api/5G_Toolkit/ChannelModels/antennaArray.rst", "api/5G_Toolkit/ChannelModels/channelGenerator.rst", "api/5G_Toolkit/ChannelModels/channelModels.rst", "api/5G_Toolkit/ChannelModels/nodeMobility.rst", "api/5G_Toolkit/ChannelModels/parameterGenerator.rst", "api/5G_Toolkit/ChannelModels/simulationLayout.rst", "api/5G_Toolkit/ChannelProcessing/channelProcessing.rst", "api/5G_Toolkit/ChannelProcessing/channelProcessing.addNoise.rst", "api/5G_Toolkit/ChannelProcessing/channelProcessing.applyChannel.rst", "api/5G_Toolkit/Interleaver/interleavers.rst", "api/5G_Toolkit/Interleaver/interleavers.lpdc.bitInterleaver.rst", "api/5G_Toolkit/Interleaver/interleavers.pbchInterleavers.rst", "api/5G_Toolkit/Interleaver/interleavers.polar.channelInterleaver.rst", "api/5G_Toolkit/Interleaver/interleavers.polar.inputBitInterleaver.rst", "api/5G_Toolkit/Interleaver/interleavers.polar.subBlockInterleaver.rst", "api/5G_Toolkit/MIMOProcessing/codeBooks.rst", "api/5G_Toolkit/MIMOProcessing/mimoProcessing.rst", "api/5G_Toolkit/OFDM/ofdm.rst", "api/5G_Toolkit/OFDM/ofdm.demodulator.rst", "api/5G_Toolkit/OFDM/ofdm.modulator.rst", "api/5G_Toolkit/OFDM/ofdm.transformDecoding.rst", "api/5G_Toolkit/OFDM/ofdm.transformDecoding5G.rst", "api/5G_Toolkit/OFDM/ofdm.transformprecoding.rst", "api/5G_Toolkit/OFDM/ofdm.transformprecoding5G.rst", "api/5G_Toolkit/PayloadGeneration/DCI/payloadGeneration.dci.rst", "api/5G_Toolkit/PayloadGeneration/MIB/payloadGeneration.mib.rst", "api/5G_Toolkit/PayloadGeneration/payloadGeneration.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.crc.crc.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.inputBitInterleaver.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.mib.mib.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchInterleaver.pbchInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.pbchScrambler.pbchScrambler.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.polar.polarCoder.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.channelInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.ratematching.subblockInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.resourceMapping.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.rnti.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PBCH/subcomponents/physicalChannels.pbch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhy.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.LowerPhyDecoder.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhy.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/physicalChannels.pdsch.UpperPhyDecoder.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/PDSCH.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/ReceiverUpperPHY.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/TransmitterUpperPHY.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockConcatenation.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.codeblockSegmentation.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.computeTBsize.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.layermapping.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ldpcCodec.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMapping.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.resourceMappingDMRS.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PDSCH/subcomponents/physicalChannels.pdsch.components.transportblockProcessing.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.crc.crc.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.inputBitInterleaver.inputBitInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.polar.polarCoder.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.channelInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.ratematching.subblockInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.resourceMapping.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.rnti.rnti.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PSCCH/subcomponents/physicalChannels.pdcch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/Format0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceDemappingFormat0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/ResourceMappingFormat0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format0/SequenceGenerationFormat0.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/DespreadingFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/Format1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceDemappingFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/ResourceMappingFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SequenceGenerationFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format1/SpreadingFormat1.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/Format2_3_4.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/PolarCoder/channelCoder.polar.components.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/SBL/channelCoder.sbl.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.ChannelCoding.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.polarCodec.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/ChannelCoding/physicalChannels.pucch.components.sblCodec.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockConcatenation/physicalChannels.pucch.components.CodeBlockConcatenation.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/CodeBlockSegmentation/physicalChannels.pucch.components.CodeBlockSegmentation.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/PUCCHComponents.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ChannelCodingOfSmallBlockLength/ratematcher.ChannelCodingOfSmallBlockLength.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/PolarCoder/ratematcher.polarcoder.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/Ratematcher/ratematcher.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.Interleaver.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.bitSelection.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.polarCodec.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/RateMatching/physicalChannels.pucch.components.ratematching.sbl.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.deScrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.rntiMasking.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/Scrambler/scrambler.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.descrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/Scrambler/physicalChannels.pucch.components.scrambling.scrambler.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.demapper.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/SymbolMapping_/symbolMapping.mapper.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolDemapping.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHComponents/SymbolMapping/physicalChannels.pucch.components.modulation.symbolMapping.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHReceiver/PUCCHReceiver.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format2_3_4/PUCCHTransmitter/PUCCHTransmitter.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format3.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/Format4.rst", "api/5G_Toolkit/PhysicalChannels/PUCCH/PUCCH.rst", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCH.rst", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHDecoderUpperPhy.rst", "api/5G_Toolkit/PhysicalChannels/PUSCH/PUSCHUpperPhy.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pbch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pdcch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pdsch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.prach.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.psbch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pscch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pucch.rst", "api/5G_Toolkit/PhysicalChannels/physicalChannels.pusch.rst", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.dftDoA.rst", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.espritDoA.rst", "api/5G_Toolkit/Positioning/Angle_Estimation/methods/positioning.doaEstimation.musicDoA.rst", "api/5G_Toolkit/Positioning/Angle_Estimation/positioning.doaEstimation.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/DoA/positioning.optimization_Algorithms.DoA.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/Hybrid/positioning.optimization_Algorithms.Hybrid.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/TDoA/positioning.optimization_Algorithms.TDoA.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/ToA/positioning.optimization_Algorithms.leastSquareToA.rst", "api/5G_Toolkit/Positioning/Optimization_Algorithms/positioning.optimization_Algorithms.rst", "api/5G_Toolkit/Positioning/Position_Estimation/positioning.position_Estimation.rst", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.dftToA.rst", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.espritToA.rst", "api/5G_Toolkit/Positioning/Time_Estimation/methods/positioning.toaEstimation.musicToA.rst", "api/5G_Toolkit/Positioning/Time_Estimation/positioning.toaEstimation.rst", "api/5G_Toolkit/Positioning/positioning.rst", "api/5G_Toolkit/Ratematcher/LDPC/BitSelection/ratematcher.ldpc.bitSelection.rst", "api/5G_Toolkit/Ratematcher/LDPC/Interleavers/ratematcher.ldpc.bitInterleaver.rst", "api/5G_Toolkit/Ratematcher/LDPC/ratematcher.ldpc.rst", "api/5G_Toolkit/Ratematcher/PolarCoder/BitSelection/ratematcher.polarcoder.bitSelection.rst", "api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.channelInterleavers.rst", "api/5G_Toolkit/Ratematcher/PolarCoder/Interleavers/ratematcher.polarcoder.subBlockInterleaver.rst", "api/5G_Toolkit/Ratematcher/PolarCoder/ratematcher.polarcoder.rst", "api/5G_Toolkit/Ratematcher/ratematcher.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceDemappingFormat0.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format0/ResourceMappingFormat0.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/DespreadingFormat1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceDemappingFormat1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/ResourceMappingFormat1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/Format1/SpreadingFormat1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format0.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format1.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format2.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format3.rst", "api/5G_Toolkit/ResourceMapping/PUCCH/resourceMapping.pucch.format4.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.coreset.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.csirs.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.dmrsPDSCH.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.pdcch.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.prs.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.pscch.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.ptrsPDSCH.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.pucch.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.s_ssb.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.searchSpace.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.ssb.rst", "api/5G_Toolkit/ResourceMapping/resourceMapping.ssbGeneration.rst", "api/5G_Toolkit/Scrambler/scrambler.rst", "api/5G_Toolkit/Scrambler/scrambler.deScrambler.rst", "api/5G_Toolkit/Scrambler/scrambler.rntiMasking.rst", "api/5G_Toolkit/Scrambler/scrambler.scrambler.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration1.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.LowPAPRSequenceGeneration2.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat0.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.SequenceGenerationFormat1.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.csirs.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.dmrs.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pnSequence.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.prs.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.pss.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.spss.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.srs.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.sss.rst", "api/5G_Toolkit/SequenceGeneration/sequenceGeneration.ssss.rst", "api/5G_Toolkit/SymbolMapping/symbolMapping.rst", "api/5G_Toolkit/SymbolMapping/symbolMapping.demapper.rst", "api/5G_Toolkit/SymbolMapping/symbolMapping.mapper.rst", "api/5G_Toolkit/[N]Configurations/configurations.rst", "api/5G_Toolkit/[N]Configurations/configurations.csiConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.generateValidSSBParameters.rst", "api/5G_Toolkit/[N]Configurations/configurations.pdschLowerPhyConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.pdschUpperPhyConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.srsConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.ssbConfiguration.rst", "api/5G_Toolkit/[N]Configurations/configurations.timeFrequency_5GParameters.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/CFOEstimation/cfoEstimation.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPBCH.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDCCH.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/ChannelEstimation_and_Equalization/channelEstimationAndEqualizationPDSCH.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.dmrsParameterDetection.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.pssDetection.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/DL_Synchronization/receiverAlgorithms.sssDetection.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/Downlink_CSI_Acquisition/channelEstimationCSIRS.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/Positioning/channelEstimationSRS.rst", "api/5G_Toolkit/[N]ReceiverAlgorithms/receiverAlgorithms.rst", "api/5G_Toolkit/[N]Scheduler/PDCCHScheduler/pdcchScheduler.rst", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/ResourceAllocation/roundRobinScheduler.rst", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/linkAdpatation.rst", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/rankAdaptation.rst", "api/5G_Toolkit/[N]Scheduler/PDSCHScheduler/resourceAllocation.rst", "api/5G_Toolkit/[N]Scheduler/scheduler.rst", "api/Built_using_5G_Toolkit/builtUsing5GToolkit.rst", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/DL_Time(Frame)_Synchronization_using_PSS_in_5G.ipynb", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/Time_Synchronization.rst", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[BS-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.ipynb", "api/Integration_with_SDR/1.Time_Synchronization_using_PSS/[UE-Implementation]DL_Time(Frame)_Synchronization_using_PSS_in_5G.ipynb", "api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.ipynb", "api/Integration_with_SDR/2.CFO_Estimation_and_Correction_using_SSB/CFO_Correction.rst", "api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/5G_Downlink_Synchronization_in_5G_on_Plutto-SDR.ipynb", "api/Integration_with_SDR/3.Downlink_Synchronization_in_5G_using_SSB/Downlink_Synchronization.rst", "api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication.rst", "api/Integration_with_SDR/4.Data_Communication_in_5G/5G_Data_Communication_using_PDSCH.ipynb", "api/Integration_with_SDR/Integration_with_SDRs.rst", "api/LearningResources/GW-IC5GS.rst", "api/LearningResources/LearningResources.rst", "api/License/license.md", "api/Preview_of_Next_Release/FeatureList.rst", "api/Previous_Versions/PreviousVersions.rst", "api/Projects/Project1/learning2Demap.ipynb", "api/Projects/Project10/[SLS]Hybrid_Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA_AoA.ipynb", "api/Projects/Project10/project10.rst", "api/Projects/Project2/Blocking Probability for Different AL distributions.ipynb", "api/Projects/Project2/Blocking Probability for Different ALs.ipynb", "api/Projects/Project2/Blocking Probability vs Number of Candidates per Aggregation Level.ipynb", "api/Projects/Project2/Impact of Scheduling Strategy on Blocking Probability.ipynb", "api/Projects/Project2/Impact of UEs Capability on Blocking Probability.ipynb", "api/Projects/Project2/Minimum CORESET Size for a Target Blocking Probability.ipynb", "api/Projects/Project2/project2.rst", "api/Projects/Project3/CSI_Compression_and_Reconstruction_using_CSINet_for_TDD_Massive_MIMO_5G_Networks.ipynb", "api/Projects/Project3/Generate_Channel_Datasets.ipynb", "api/Projects/Project3/project3.rst", "api/Projects/Project3/trainCSINet.ipynb", "api/Projects/Project4/project4.rst", "api/Projects/Project5/project5.rst", "api/Projects/Project6/project6.rst", "api/Projects/Project7/E2E_Learning_for_Physical_Layer.ipynb", "api/Projects/Project8/project8.rst", "api/Projects/Project9/project9.rst", "api/Projects/Projects.rst", "api/Tutorials/Tutorial1/BER_Analysis_of_Hamming_Codes.ipynb", "api/Tutorials/Tutorial10/Link_Level_and_System_Level_Simulation_for_Physical_Downlink_Control_Channels.ipynb", "api/Tutorials/Tutorial10/tutorial9.rst", "api/Tutorials/Tutorial12/SVD_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.ipynb", "api/Tutorials/Tutorial13/Type1_Codebook_based_Downlink_Precoding_and_Combining_for_Massive_MIMO_5G_Networks.ipynb", "api/Tutorials/Tutorial14/Beam_management_in_5G_Networks_using_SSB[P1-Procedure].ipynb", "api/Tutorials/Tutorial18[PDCCH_Blind_Decoding]/PDCCH_Blind_Decoding.ipynb", "api/Tutorials/Tutorial2/Tutorial2_ReedMullerCodes.ipynb", "api/Tutorials/Tutorial21+/E2E_Downlink_TDoA_Based_Positioning_for_millimeter_Wave_5G_Networks_Deployed_in_Indoor_Factory.ipynb", "api/Tutorials/Tutorial21+/E2E_Downlink_ToA_Based_Positioning_in_5G_Networks.ipynb", "api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-TDoA.ipynb", "api/Tutorials/Tutorial21+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-ToA.ipynb", "api/Tutorials/Tutorial25+/[LLS]DL-AoD_Based_Positioning_in_5G_Networks.ipynb", "api/Tutorials/Tutorial25+/[SLS]Positioning_in_IndoorFactory_5G_Networks_based_on_UL-AoA.ipynb", "api/Tutorials/Tutorial27/Performance_Comparison_of_OFDM_and_DFT-s-OFDM.ipynb", "api/Tutorials/Tutorial28/Downliink_Channel_Estimation_using_CSI-RS.ipynb", "api/Tutorials/Tutorial3/Tutorial3_PolarCodes.ipynb", "api/Tutorials/Tutorial4/Tutorial4_LDPCCodes.ipynb", "api/Tutorials/Tutorial4/aggregateResults.ipynb", "api/Tutorials/Tutorial5/1.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Outdoor_Terrains.ipynb", "api/Tutorials/Tutorial5/10.Spatially_Consistent_Channel_Modelling_for_Mobility_Simulations.ipynb", "api/Tutorials/Tutorial5/2.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Factory_Terrain.ipynb", "api/Tutorials/Tutorial5/3.Channel_Generation_for_Multicell_Multi_Sector_MIMO_System_for_Indoor_Hotspot.ipynb", "api/Tutorials/Tutorial5/4.[Mobility]Channel_Generation_for_Outdoor_Mobile_User_in_Rural_Macro_Hexagonal_Site.ipynb", "api/Tutorials/Tutorial5/5.[Mobility2x]Channel_Generation_for_Dual_Mobility_Scenarios_in_5G_and_Beyond.ipynb", "api/Tutorials/Tutorial5/6.Generate_UMa_Channel_for_Multiple_Frequencies.ipynb", "api/Tutorials/Tutorial5/7.Propagation_Characteristics_of_Outdoor_Terrains.ipynb", "api/Tutorials/Tutorial5/8.Beam_Domain and Delay_Domain_Sparsity_in_Wireless_Channel_Models.ipynb", "api/Tutorials/Tutorial5/tutorial5.rst", "api/Tutorials/Tutorial6/Downlink_Synchronization_procedure_using_SSB.ipynb", "api/Tutorials/Tutorial7/Link_Level_Simulation_for_Physical_Broadcast_Channels_using_CDL-A_Channels.ipynb", "api/Tutorials/Tutorial8/pucchFormat0_Tutorial.rst", "api/Tutorials/Tutorial9/Link_Level_Simulation_for_PDSCH_in_5G.ipynb", "api/Tutorials/Tutorials.rst", "api/WeekChallenge/challenge.rst", "api/WeekChallenge/challengeArxiv.rst", "api/WeekChallenge/challengeOftheWeek.rst", "detailedInstall.rst", "detailedInstall2.rst", "index.rst", "install.rst", "install2.rst", "releaseNotes.md", "test_GettingStarted.ipynb"], "titles": ["Getting Started", "API Documentation", "Cyclic Redundancy Check", "CRC Decoder", "CRC Encoder", "Hamming Coder", "Low Density Parity Check Codes", "Codeblock Processing: Receiver", "Codeblock Processing: Transmitter", "LDPC Parameters Computation", "Polar Codes", "Code-block Processing: Transmitter", "Reed Muller Codes", "Forward Error Correction", "Antenna Array", "Channel Generator", "Channel Models", "Node Mobility", "Channel Parameter Generator", "Simulation Layout", "Channel Processing and Hardware Impairment", "Add Noise and CFO at Receiver", "Apply Channel to Transmitted Signal", "Interleavers", "Bit Interleavers", "PBCH Interleaver", "Channel Interleaver", "Input Bit Interleaver", "Sub Block Interleaver", "Code-Books", "MIMO Processing", "Orthogonal Frequency Division Multiplexing", "OFDM: Demodulator", "OFDM: Modulator", "Transform Decoding", "Transform Decoding for 5G", "Transform Precoding", "Transform Precoding for 5G", "Downlink Control Information (DCI)", "Master Information Block (MIB)", "Payload Generation", "Cyclic Redundency Check", "Cyclic Redundancy Check", "Input Bit Interleaver", "Code-block Processing: Transmitter", "PBCH Payload", "Master Information Block (MIB)", "Modulation", "Demapper", "Symbol Mapping", "Cyclic Redundency Check", "Cyclic Redundancy Check", "PBCH Scrambler", "Cyclic Redundancy Check", "Polar Coder", "Polar Codes", "Rate Matching", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Demapper", "RNTI Masking", "RNTI Masking", "Scrambling: PDCCH", "Descrambler", "Scrambling", "Cyclic Redundency Check", "Cyclic Redundancy Check", "Input Bit Interleaver", "Code-block Processing: Transmitter", "Modulation", "Demapper", "Symbol Mapping", "Polar Coder", "Polar Codes", "Rate Matching", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Demapper", "RNTI Masking", "RNTI Masking", "Scrambling: PDCCH", "Descrambler", "Scrambling", "PDSCH: Lower Physical layer Chain", "PDSCH: Lower Physical layer Chain Decoder", "PDSCH: Upper Physical layer Chain", "PDSCH: Upper Physical layer Chain Decoder", "PDSCH Chain", "Receiver Processing", "Transmitter Processing", "Code Block Concatenation", "Code Block Segmentation", "Transport Block Size Computation", "Layer Mapper", "Low Density Parity Check Codes", "Modulation", "Demapper", "Symbol Mapping", "Rate Matching", "Bit Interleaver for LDPC", "Rate matching for LDPC", "Physical Downlink Shared Channel-DMRS", "Physical Downlink Shared Channel-DMRS", "Scrambling: PDSCH", "Descrambler", "Scrambling", "Transport Block Processing", "Cyclic Redundency Check", "Cyclic Redundancy Check", "Input Bit Interleaver", "Code-block Processing: Transmitter", "Modulation", "Demapper", "Symbol Mapping", "Polar Coder", "Polar Codes", "Rate Matching", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Demapper", "RNTI Masking", "RNTI Masking", "Scrambling: PDCCH", "Descrambler", "Scrambling", "PUCCH Format 0", "Format0", "Resource De-Mapping", "Resource Mapping", "Sequence Generation", "PUCCH Format 1", "De-Spreading", "Format1", "Resource De-Mapping", "Resource Mapping", "Sequence Generation", "Spreading", "PUCCH Format 2", "Format 2,3,4", "Polar Codes", "Code-block Processing: Transmitter", "Channel Coding of Small Block Length", "Channel Coder", "Polar Codes", "Channel Coding of Small Block Length", "Code Block Concatenation", "Code Block Segmentation", "PUCCH Components", "Rate matching for Small Block Length 5G", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Rate matching for Polar coder", "Rate matching", "Rate Matching", "Sub Block Interleaver for Polar Coder", "Rate matching for Polar coder", "Rate Matching for Polar Coder", "Rate matching for Small Block Length 5G", "Scrambling", "Descrambler", "RNTI Masking", "Scrambler", "Scrambling: PUCCH", "Descrambler", "Scrambling", "Symbol Mapping", "Demapper", "Mapper", "Modulation", "Demapper", "Symbol Mapping", "PUCCH Receiver", "PUCCH Transmitter", "PUCCH Format 3", "PUCCH Format 4", "PUCCH", "PUSCH Chain", "Receiver Chain", "Transmitter Chain", "Physical Channels", "Physical Broadcast Channel (PBCH)", "Physical Downlink Control Channel (PDCCH)", "Physical Downlink Shared Channel (PDSCH)", "Physical Random Access Channel (PRACH)", "Physical Sidelink Broadcast Channel (PSBCH)", "Physical Sidelink Control Channel (PSCCH)", "Physical Uplink Control Channel (PUCCH)", "Physical Uplink Shared Channel (PUSCH)", "DFT based AoA Method", "ESPRIT based DoA Estimation", "MUSIC based DoA Estimation", "Direction of Arrival Estimation", "Least Squares based Position Estimator for DoA", "Least Square based Position Estimator for Hybrid ToA/mRTT and DoA", "Least Squares based Position Estimator for TDoA", "Least Squares based Position Estimator for ToA/mRTT", "Optimization Algorithms", "<no title>", "DFT based Method", "ESPRIT based ToA Estimation", "MUSIC based ToA Estimation", "Time of Arrival (ToA)/Delay Estimation", "Position Estimation", "Bit Selection for LDPC", "Bit Interleaver for LDPC", "Rate matching for LDPC", "Bit Selection for Polar Coder", "Channel Interleaver for Polar Coder", "Sub Block Interleaver for Polar Coder", "Rate matching for Polar coder", "Rate matching", "PUCCH Format 0 Resource De-Mapping", "PUCCH Format 0 Resource Mapping", "PUCCH Format-1 De-Spreading", "PUCCH Format-1 Resource De-Mapping", "PUCCH Format-1 Resource Mapping", "PUCCH Format-1 Spreading", "PUCCH Format-0", "PUCCH Format-1", "PUCCH Format-2", "PUCCH Format-3", "PUCCH Format-4", "Resource Mapping", "Control Resource Set", "Channel state Information reference signal (CSI-RS)", "Physical Downlink Shared Channel-DMRS", "Physical Downlink Control Channel (PDCCH)", "Positioning Reference Signal (PRS)", "Physical Sidelink Control Channel (PSCCH)", "Physical Downlink Shared Channel-PTRS", "Physical Uplink Control Channel (PUCCH)", "Sidelink Synchronization Signal Block (SSB) Grid Generation", "Search Space Set", "Synchronization Signal Block (SSB) Grid Generation", "Synchronization Signal Block (SSB) Resource Mapping", "Scrambling", "Descrambler", "RNTI Masking", "Scrambler", "Sequence Generation", "Low PAPR Sequence Type 1", "Low PAPR Sequence Type 2", "PUCCH Format 0 Sequence", "PUCCH Format 1 Sequence", "Channel State Information Reference Sequence (CSI-RS)", "Demodulation Reference Sequence (DMRS)", "Pseudo Random (PN) Sequence", "Positioning Reference Sequence (PRS)", "Primary Synchronization Signal", "Primary Synchronization Signal for Sidelink (S-PSS)", "Sounding Reference Sequence (SRS)", "Secondary Synchronization Signal", "Secondary Synchronization Signal for Sidelink (S-SSS)", "Symbol Mapping", "Demapper", "Mapper", "5G Configurations", "Channel state information reference signal (CSI-RS) Configurations", "SSB/PBCH Configurations", "PDSCH Lower Physical Layer Configurations", "PDSCH Upper Physical Layer Configurations", "Sounding Reference Signal (SRS) Configurations", "SSB/PBCH Configurations", "Time-Frequency 5G-Configurations", "Carrier Frequency Offset (CFO) Estimation", "Channel Estimation and Symbol Equalization for PBCH", "Channel Estimation and Symbol Equalization for PDCCH", "Channel Estimation and Symbol Equalization for PDSCH", "SSB Parameters Estimation", "Time Synchronization and PSS/Cell ID-2 Detection", "SSS/Cell ID-1 Detection", "Downlink Channel Estimation using CSI-RS", "Uplink Channel Estimation using SRS for Positioning", "Receiver Algorithms", "PDCCH Scheduler", "Round Robin Scheduler", "Link Adaptation", "Rank Adaptation", "Resource Allocation", "Scheduler", "Research work carried out using 5G Toolkit", "Downlink Time/Frame Synchronization using PSS in 5G Networks", "Time/OFDM Symbol Synchronization using PSS in 5G", "[BS Side Implementation]-Downlink Time/Frame Synchronization using PSS in 5G Networks", "[UE Side Implementation]-Downlink Time/Frame Synchronization using PSS in 5G Networks", "Downlink Synchronization in 5G Networks: SSB", "Carrier Frequency Offset (CFO) Estimation and Correction in 5G Networks", "Downlink Synchronization in 5G Networks: SSB", "Downlink Synchronization using SSB in 5G Networks", "Downlink Data Communication using PDSCH in 5G Networks", "Downlink Data Communication in 5G Networks", "Integration with SDRs", "Introductory Course on 5G Standards", "Learning Resources", "License", "Tentetive list of Feature", "Previous Versions", "Learning to Demap: Database Generation, Preprocessing, Postprocessing, Training, Validation and Inferences from the LLRNet", "Performance comparison between different Positioning Methods for millimeter wave 5G Networks", "Physical downlink control Channel in 5G", "Analysis of Blocking Probability for different Coverage Conditions", "Variation in Blocking Probability with Different Aggregation Levels (ALs)", "Analyzing the effect of Number of Candidates on Blocking Probability", "Analyzing the Impact of Scheduling Strategy on Blocking Probability", "Analyze the Impact of UE Capability on Blocking Probability", "Selection of minimum CORESET Size for a Given Target Block Probability", "Blockage Probability Analysis for RedCap Devices in 5G Networks", "CSI Compression and Reconstruction using CSINet for TDD Massive MIMO 5G Networks", "Wireless Channel Dataset Generation for Training the AI based Models", "Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks", "Training the CSINet", "Comparative Study of Reed Muller codes, Polar Codes and LDPC codes", "Channel Quality Estimation in 5G and Beyond Networks", "Hybrid Automatic repeat Request in 5G and Beyond", "Constellation Learning in an AWGN Channel", "Downlink Synchronization using SSB in 5G systems", "Uplink Synchronization using PRACH in 5G systems", "Projects", "Hamming Codes", "Link Level Simulation for Physical Downlink Control Channels", "SVD based Downlink Precoding and Combining for Massive MIMO in 5G Networks", "SVD based Downlink Precoding and Combining for Massive MIMO 5G Networks", "Type-1 codebook based Downlink Precoding and Combining for Massive MIMO 5G Networks", "P1 Procedure: Beam management in 5G networks using SSB", "Search space, CORESET and blind decoding of PDCCH channels in 5G Networks", "Reed Muller Codes in 5G", "Downlink TDoA Based Positioning for Industrial IoT Devices in Millimeter Wave 5G Networks", "Downlink Time of Arrival based Positioning in 5G and Beyond Networks", "Positioning the Outdoor UEs using 5G Urban Micro cell sites based Uplink Time Difference of Arrival (UL-TDoA) method", "Positioning the Indoor Open Office UEs using Uplink ToA method", "Downlink Angle of Departure based Positioning for Rural Macro Terrain in 5G and Beyond Network", "Uplink AoA (UL-AoA) based Localization of the Indoor Factory UEs using millimeter 5G Networks", "Performance comparison of OFDM and DFT-s-OFDM in 5G Networks", "Downlink Channel Estimation using CSI-RS", "Polar Codes in 5G", "Low Density Parity Check (LDPC) Codes in 5G", "<no title>", "Wireless Channel Generation for Outdoor Terrains deployed in Hexagonal Geometry", "Generate Spatially Consistent Statistical Channels for Realistic Simulations", "Wireless Channel Generation for a Dense High Indoor Factory Terrain Deployed at millimeter band.", "Genarating the Wireless Channel for Indoor Open Office Terrain", "Wireless Channel Generation for Outdoor Mobile User Connected to Rural Macro Site", "Channel Generation for Dual Mobility Scenarios in 5G and Beyond", "Wireless Channel Generation for Multiple Carrier Frequencies", "Propagation Characteristics of Outdoor Terrains", "Beam Domain and Delay Domain Sparsity in Wireless Channel Models", "Detailed Tutorials on 3GPP Channel Models", "Initial Access in 5G", "Coverage Evaluation of Physical Broadcast Channels (PBCH) in 5G Networks", "BER Performance of PUCCH Format 0", "Link Level Simulation for Physical Downlink Shared Channel in 5G", "Tutorials", "Challenge Of this Week", "Arxiv-ed Challenges", "Solution of this Months Problems", "Install 5G Toolkit", "Install 5G Toolkit", "5G Toolkit", "Install 5G Toolkit", "Install 5G Toolkit", "Release Notes", "Getting Started with 5G Toolkit"], "terms": {"\u00bd": [0, 361], "\u00bc": [0, 361], "\u215b": [0, 361], "\u00be": [0, 361], "\u215c": [0, 361], "\u215d": [0, 361], "\u215e": [0, 361], "_": [0, 7, 8, 10, 11, 24, 26, 27, 32, 33, 39, 44, 46, 55, 58, 64, 65, 69, 74, 77, 83, 84, 85, 86, 92, 93, 95, 101, 102, 103, 104, 106, 107, 112, 117, 120, 126, 127, 136, 137, 138, 139, 142, 143, 145, 146, 148, 153, 158, 163, 165, 167, 168, 181, 182, 184, 193, 195, 196, 197, 198, 199, 203, 205, 206, 207, 208, 211, 218, 219, 220, 229, 230, 231, 232, 233, 235, 237, 238, 240, 242, 247, 249, 254, 262, 263, 265, 266, 270, 271, 272, 273, 274, 330, 331, 334, 351, 361], "\u00b5": [0, 361], "\u03c9": [0, 361], "\u00aa": [0, 361], "\u00ba": [0, 361], "\u00b9": [0, 361], "\u00b2": [0, 361], "\u00b3": [0, 361], "In": [0, 7, 8, 9, 10, 14, 19, 26, 27, 31, 34, 35, 36, 37, 39, 46, 55, 74, 85, 87, 89, 92, 93, 103, 104, 117, 130, 131, 132, 134, 136, 137, 138, 139, 142, 146, 149, 180, 184, 192, 194, 196, 198, 203, 204, 206, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 235, 236, 237, 244, 245, 246, 247, 256, 262, 266, 268, 269, 270, 275, 276, 277, 279, 280, 281, 283, 285, 289, 294, 295, 304, 305, 306, 307, 308, 309, 312, 318, 323, 325, 326, 328, 329, 334, 336, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 353, 356, 361], "section": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 19, 24, 25, 26, 27, 28, 29, 31, 34, 36, 42, 44, 48, 49, 51, 53, 55, 58, 59, 60, 62, 65, 67, 69, 71, 72, 74, 77, 78, 79, 81, 84, 85, 86, 87, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 107, 110, 112, 114, 115, 117, 120, 121, 122, 124, 127, 142, 143, 144, 145, 146, 147, 148, 149, 153, 154, 158, 162, 164, 165, 168, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 186, 188, 189, 199, 205, 206, 207, 208, 209, 211, 212, 213, 214, 227, 228, 229, 230, 231, 233, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 265, 266, 270, 278, 295, 321, 354, 361, 363], "we": [0, 6, 14, 96, 236, 294, 295, 297, 299, 301, 304, 305, 306, 307, 308, 309, 311, 312, 318, 325, 326, 328, 329, 330, 331, 333, 334, 335, 336, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352, 353, 354, 356, 359, 360, 361, 362, 363], "first": [0, 7, 10, 18, 19, 32, 39, 46, 55, 57, 64, 65, 74, 76, 83, 84, 85, 92, 94, 102, 103, 104, 106, 107, 117, 119, 126, 127, 130, 131, 136, 137, 138, 142, 146, 163, 165, 167, 168, 184, 189, 198, 204, 206, 207, 210, 215, 216, 217, 218, 219, 220, 227, 229, 231, 233, 236, 238, 240, 242, 247, 249, 250, 252, 262, 264, 266, 267, 270, 271, 272, 278, 279, 307, 325, 326, 333, 337, 345, 347, 351, 353, 359, 360, 362, 365], "give": [0, 17, 279], "you": [0, 244, 245, 295, 312, 342, 356, 359, 360, 361, 362, 363, 365], "quick": [0, 234, 365], "overview": [0, 269, 270, 312, 332, 361], "us": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 35, 38, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 149, 152, 153, 154, 155, 156, 158, 159, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 184, 185, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 214, 215, 216, 217, 218, 219, 220, 221, 226, 227, 228, 229, 230, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 277, 278, 279, 280, 281, 282, 289, 291, 295, 297, 298, 301, 302, 304, 305, 306, 307, 308, 309, 312, 313, 318, 321, 322, 323, 325, 326, 328, 329, 330, 331, 334, 336, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 355, 359, 361, 362, 363, 364, 365], "which": [0, 2, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16, 17, 18, 19, 24, 26, 27, 28, 29, 30, 31, 32, 39, 42, 44, 46, 51, 53, 55, 57, 58, 62, 64, 65, 67, 69, 74, 76, 77, 81, 83, 84, 86, 87, 88, 93, 94, 95, 96, 101, 102, 106, 107, 110, 112, 117, 119, 120, 124, 126, 127, 130, 131, 138, 142, 143, 144, 145, 146, 147, 149, 152, 153, 158, 159, 162, 163, 164, 165, 167, 168, 181, 182, 184, 189, 196, 197, 198, 200, 202, 203, 204, 205, 207, 208, 210, 211, 214, 215, 216, 227, 230, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 247, 249, 250, 252, 253, 254, 255, 256, 260, 261, 262, 264, 265, 266, 267, 268, 270, 271, 273, 274, 275, 276, 278, 279, 280, 281, 282, 283, 285, 295, 297, 302, 305, 306, 307, 309, 311, 318, 322, 323, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 352, 353, 354, 359, 360, 361, 362, 363, 364, 365], "i": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 155, 156, 158, 159, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 214, 215, 216, 217, 218, 219, 220, 221, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 282, 283, 284, 285, 287, 288, 289, 291, 294, 295, 296, 298, 299, 301, 302, 304, 305, 306, 308, 309, 310, 311, 312, 314, 318, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 353, 354, 355, 356, 359, 360, 362, 363, 364, 365], "follow": [0, 2, 3, 4, 5, 6, 8, 10, 11, 12, 14, 17, 18, 19, 24, 25, 26, 27, 28, 29, 38, 39, 42, 44, 46, 48, 51, 53, 55, 59, 60, 62, 64, 65, 67, 69, 71, 74, 78, 79, 81, 83, 84, 85, 87, 88, 93, 94, 96, 98, 102, 106, 107, 110, 112, 114, 117, 121, 122, 124, 126, 127, 142, 143, 146, 149, 163, 164, 165, 167, 168, 170, 173, 175, 176, 181, 182, 186, 188, 189, 195, 198, 199, 202, 203, 204, 205, 206, 209, 212, 213, 214, 227, 236, 240, 241, 242, 243, 249, 252, 253, 258, 260, 262, 264, 266, 267, 269, 270, 273, 278, 280, 281, 284, 285, 289, 291, 295, 296, 297, 299, 301, 302, 304, 305, 306, 307, 308, 309, 318, 322, 323, 325, 326, 329, 335, 336, 337, 338, 341, 342, 343, 344, 345, 346, 347, 349, 351, 353, 355, 359, 360, 361, 362, 363, 365], "simpl": [0, 279, 361, 365], "tutori": [0, 6, 10, 12, 55, 64, 74, 83, 96, 106, 117, 126, 142, 146, 163, 167, 189, 235, 237, 240, 249, 289, 290, 291, 292, 293, 295, 301, 318, 323, 325, 326, 328, 329, 330, 331, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 353, 361, 365], "long": [0, 65, 84, 107, 127, 162, 168, 234, 239, 302, 330, 331, 332, 333, 334, 335, 336], "excit": [0, 361], "journei": 0, "learn": [0, 311, 312, 321, 332, 336, 345, 361, 364], "explor": [0, 6, 96, 302], "The": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 180, 181, 182, 184, 185, 186, 188, 189, 190, 193, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 274, 275, 276, 278, 279, 280, 281, 283, 284, 285, 287, 288, 289, 291, 294, 295, 296, 298, 301, 302, 304, 305, 306, 307, 308, 309, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 353, 359, 360, 361, 362, 363, 365], "provid": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 38, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 90, 92, 93, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 149, 151, 152, 153, 154, 158, 159, 161, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 186, 189, 193, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 235, 236, 237, 239, 240, 241, 242, 243, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 262, 263, 266, 267, 269, 270, 273, 274, 275, 276, 279, 280, 281, 282, 285, 295, 301, 305, 318, 323, 329, 330, 331, 335, 336, 338, 339, 341, 343, 344, 347, 351, 359, 361, 362, 363, 364], "requir": [0, 5, 6, 10, 11, 12, 18, 29, 34, 36, 39, 44, 46, 55, 58, 64, 65, 69, 74, 77, 83, 84, 87, 88, 94, 96, 102, 106, 107, 112, 117, 120, 126, 127, 142, 143, 146, 163, 165, 167, 168, 181, 182, 184, 188, 196, 197, 198, 203, 204, 206, 207, 209, 211, 214, 234, 236, 240, 242, 249, 252, 253, 255, 256, 262, 264, 266, 267, 268, 272, 273, 274, 275, 276, 278, 279, 280, 281, 283, 291, 294, 301, 302, 304, 310, 321, 323, 330, 331, 332, 333, 334, 339, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 361, 365], "emul": [0, 286, 290, 292, 295, 297, 361], "purpos": [0, 1, 5, 10, 11, 44, 55, 62, 63, 64, 65, 69, 74, 81, 82, 83, 84, 105, 106, 107, 112, 117, 124, 125, 126, 127, 142, 143, 146, 149, 150, 162, 163, 164, 165, 166, 167, 168, 184, 185, 186, 188, 189, 214, 239, 240, 241, 242, 243, 249, 254, 265, 271, 275, 276, 280, 285, 302, 328, 332, 333, 335, 338], "each": [0, 3, 5, 7, 8, 10, 12, 14, 15, 17, 18, 19, 24, 29, 32, 33, 35, 37, 55, 57, 59, 65, 74, 76, 78, 84, 87, 88, 89, 92, 93, 101, 102, 107, 117, 119, 121, 127, 132, 138, 142, 145, 146, 148, 152, 159, 162, 168, 176, 180, 181, 182, 185, 186, 189, 193, 195, 197, 203, 204, 205, 207, 208, 210, 212, 227, 230, 235, 236, 237, 238, 239, 246, 247, 250, 252, 253, 254, 255, 256, 264, 265, 267, 269, 270, 271, 276, 278, 279, 281, 282, 283, 285, 295, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 341, 343, 344, 345, 346, 347, 348, 349, 350, 351, 354, 355, 361, 365], "expect": [0, 6, 48, 49, 57, 60, 71, 72, 76, 79, 87, 88, 94, 95, 96, 98, 99, 114, 115, 119, 122, 134, 152, 159, 170, 171, 173, 174, 188, 189, 193, 195, 210, 217, 227, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 264, 268, 270, 280, 301, 342, 349], "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 17, 18, 19, 22, 24, 25, 29, 33, 34, 35, 36, 37, 39, 44, 46, 48, 55, 60, 62, 64, 65, 69, 71, 74, 79, 81, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 101, 102, 103, 104, 106, 107, 108, 112, 114, 117, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 162, 163, 164, 165, 167, 168, 170, 173, 175, 176, 179, 181, 182, 183, 184, 185, 188, 189, 190, 193, 195, 196, 197, 198, 199, 203, 204, 205, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 221, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 274, 277, 278, 279, 280, 281, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 306, 307, 308, 309, 310, 311, 312, 314, 318, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 361, 364, 365], "set": [0, 1, 5, 6, 11, 12, 14, 18, 19, 22, 24, 26, 27, 29, 33, 35, 37, 39, 44, 46, 58, 65, 69, 77, 84, 85, 86, 87, 88, 94, 96, 101, 102, 103, 104, 107, 112, 120, 127, 130, 131, 132, 134, 136, 137, 138, 139, 143, 145, 153, 158, 165, 168, 181, 182, 184, 198, 205, 206, 207, 208, 209, 211, 215, 216, 217, 218, 219, 220, 226, 228, 229, 230, 231, 232, 238, 242, 244, 245, 246, 247, 254, 260, 261, 262, 263, 264, 265, 266, 267, 269, 270, 271, 272, 273, 275, 276, 278, 280, 285, 287, 288, 289, 291, 294, 301, 302, 306, 307, 308, 313, 318, 321, 327, 329, 330, 331, 332, 333, 334, 335, 338, 339, 345, 351, 355, 361, 365], "argument": [0, 3, 4, 17, 19, 64, 65, 83, 84, 87, 88, 106, 107, 126, 127, 134, 163, 165, 167, 168, 205, 217, 240, 242, 249, 264, 267, 289], "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 29, 32, 34, 36, 37, 39, 40, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 136, 137, 138, 139, 141, 142, 143, 146, 148, 149, 152, 159, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 200, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 220, 227, 228, 229, 230, 234, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, 279, 280, 283, 285, 294, 295, 297, 298, 299, 301, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 328, 329, 330, 331, 332, 334, 335, 336, 337, 338, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 355, 359, 360, 361, 362, 363, 364, 365], "time": [0, 1, 7, 10, 11, 15, 16, 17, 18, 19, 22, 24, 29, 31, 32, 33, 39, 44, 46, 55, 57, 69, 74, 76, 86, 92, 93, 94, 95, 101, 102, 112, 117, 119, 142, 143, 144, 146, 147, 148, 193, 195, 196, 197, 198, 199, 200, 202, 203, 204, 206, 207, 208, 210, 227, 228, 230, 231, 233, 234, 235, 236, 237, 238, 243, 244, 245, 252, 253, 254, 255, 256, 260, 262, 265, 266, 268, 269, 270, 271, 275, 276, 277, 279, 280, 281, 283, 290, 292, 293, 295, 299, 301, 302, 307, 309, 312, 333, 334, 335, 336, 337, 339, 349, 350, 351, 353, 355, 361, 364], "creation": [0, 312, 341, 342, 343, 344, 345, 346, 347, 349], "instanti": [0, 14, 18, 19, 318, 342, 345, 346, 349], "call": [0, 3, 4, 6, 8, 14, 18, 19, 48, 49, 60, 64, 65, 71, 72, 79, 83, 84, 93, 96, 98, 99, 106, 107, 114, 115, 122, 126, 127, 149, 162, 163, 165, 167, 168, 170, 171, 173, 174, 206, 236, 239, 240, 242, 248, 250, 251, 252, 253, 255, 256, 258, 259, 285, 287, 288, 289, 291, 294, 301, 318, 341, 342, 343, 344, 345, 346, 347, 349], "paramet": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 283, 286, 289, 292, 293, 295, 299, 310, 313, 321, 338, 350, 355, 361, 364, 365], "second": [0, 6, 7, 18, 64, 83, 92, 94, 96, 106, 126, 130, 131, 136, 137, 138, 163, 167, 198, 202, 203, 204, 205, 206, 215, 216, 217, 218, 219, 220, 227, 238, 240, 247, 249, 250, 253, 270, 278, 294, 311, 318, 342, 345, 346, 353], "while": [0, 15, 19, 21, 22, 94, 103, 104, 193, 195, 197, 203, 204, 206, 227, 229, 264, 270, 279, 280, 281, 289, 295, 301, 302, 306, 309, 312, 330, 331, 332, 333, 334, 335, 342, 345, 346, 349], "These": [0, 2, 6, 7, 9, 10, 18, 19, 34, 36, 37, 40, 42, 49, 51, 53, 55, 67, 72, 74, 96, 99, 110, 115, 117, 142, 146, 169, 174, 184, 186, 189, 195, 206, 234, 243, 255, 257, 260, 268, 269, 270, 271, 278, 312, 329, 330, 331, 332, 334, 336, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 353, 361], "input": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 17, 18, 19, 21, 22, 23, 24, 25, 26, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 144, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 183, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 283, 314, 318, 321, 322, 323, 325, 326, 330, 331, 337, 349, 351, 361], "If": [0, 3, 6, 7, 10, 11, 14, 17, 18, 19, 21, 22, 25, 28, 29, 44, 55, 59, 64, 65, 69, 74, 78, 83, 84, 87, 88, 92, 94, 96, 106, 107, 112, 117, 121, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 143, 145, 146, 149, 154, 158, 163, 165, 167, 168, 182, 196, 197, 198, 199, 206, 212, 215, 216, 218, 219, 220, 227, 235, 236, 237, 238, 240, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 264, 267, 269, 270, 271, 278, 279, 280, 281, 359, 360, 362, 363], "configur": [0, 1, 4, 9, 12, 18, 19, 29, 48, 60, 71, 79, 85, 87, 98, 102, 103, 104, 114, 122, 130, 131, 132, 134, 136, 137, 138, 139, 170, 173, 204, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238, 246, 247, 254, 258, 270, 271, 275, 276, 278, 281, 286, 290, 292, 293, 295, 301, 305, 306, 308, 311, 312, 318, 321, 322, 325, 326, 327, 329, 334, 351, 353, 355, 359, 361, 362, 363, 364], "correctli": [0, 102, 189, 207, 264, 269, 270, 285, 291, 294, 351], "produc": [0, 278], "one": [0, 14, 18, 29, 35, 37, 39, 46, 57, 76, 86, 87, 102, 119, 184, 188, 198, 205, 206, 207, 210, 227, 231, 235, 236, 237, 238, 250, 252, 253, 254, 262, 266, 267, 270, 281, 295, 301, 302, 305, 306, 318, 323, 330, 331, 333, 334, 336, 342, 359, 362, 363], "multipl": [0, 5, 7, 8, 10, 12, 14, 16, 19, 21, 24, 28, 34, 35, 36, 37, 39, 46, 48, 49, 55, 59, 60, 71, 72, 74, 78, 79, 85, 86, 92, 93, 95, 98, 99, 101, 114, 115, 117, 121, 122, 139, 142, 146, 148, 149, 154, 158, 169, 170, 171, 173, 174, 186, 204, 206, 208, 212, 220, 227, 235, 237, 238, 244, 245, 248, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 265, 271, 275, 276, 279, 281, 283, 299, 301, 302, 312, 323, 325, 326, 330, 332, 334, 335, 336, 337, 341, 343, 344, 349, 350, 355, 361], "output": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 283, 318, 321, 322, 323, 325, 326, 328, 337, 349, 351, 360, 361], "type": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 17, 18, 19, 24, 30, 39, 44, 46, 48, 49, 55, 60, 69, 71, 72, 74, 79, 85, 86, 87, 88, 92, 93, 94, 96, 98, 99, 101, 102, 103, 104, 108, 112, 114, 115, 117, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 170, 171, 173, 174, 184, 185, 204, 206, 207, 208, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 243, 246, 247, 254, 258, 259, 262, 263, 264, 265, 266, 267, 269, 270, 271, 275, 276, 278, 279, 294, 296, 299, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 327, 328, 330, 331, 332, 333, 334, 335, 336, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 361, 364], "size": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 17, 18, 19, 25, 29, 31, 32, 33, 39, 44, 46, 48, 49, 55, 57, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 78, 79, 81, 83, 84, 86, 87, 88, 91, 92, 93, 95, 96, 98, 99, 102, 106, 107, 108, 112, 114, 115, 117, 119, 121, 122, 124, 126, 127, 130, 131, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 152, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 183, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 203, 205, 206, 207, 209, 210, 212, 215, 216, 218, 219, 220, 227, 228, 230, 231, 234, 236, 238, 240, 241, 242, 247, 248, 249, 250, 251, 252, 254, 255, 256, 258, 259, 262, 265, 266, 267, 268, 269, 270, 271, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 310, 311, 312, 318, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 340, 341, 343, 344, 345, 346, 347, 348, 351, 352, 353, 354, 355, 361, 365], "shape": [0, 3, 4, 5, 6, 7, 14, 15, 17, 18, 19, 21, 22, 24, 29, 34, 35, 36, 37, 87, 88, 92, 96, 101, 182, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 208, 235, 237, 244, 245, 252, 253, 254, 255, 256, 269, 270, 272, 274, 275, 276, 278, 281, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354], "detail": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 18, 21, 24, 25, 26, 27, 28, 31, 33, 34, 36, 38, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 92, 93, 95, 96, 98, 99, 101, 102, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 142, 143, 144, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 182, 186, 189, 195, 196, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 231, 235, 237, 239, 240, 241, 242, 243, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 269, 271, 272, 273, 274, 275, 280, 281, 330, 331, 333, 334, 335, 338, 351, 355, 361], "its": [0, 28, 29, 59, 78, 121, 154, 158, 175, 181, 189, 204, 212, 227, 236, 244, 245, 268, 283, 285, 298, 301, 318, 328, 332, 334, 336, 345, 346, 355, 361], "user": [0, 5, 6, 14, 15, 16, 17, 18, 19, 27, 29, 87, 91, 96, 108, 132, 138, 144, 147, 148, 149, 175, 176, 181, 182, 195, 198, 199, 206, 215, 216, 246, 247, 250, 252, 253, 255, 256, 260, 267, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 283, 285, 295, 296, 299, 301, 302, 323, 327, 330, 331, 332, 333, 334, 335, 339, 341, 342, 343, 344, 346, 347, 349, 350, 352, 355, 359, 360, 361, 362, 363], "access": [0, 1, 14, 15, 17, 19, 39, 46, 85, 86, 88, 102, 103, 104, 183, 184, 206, 207, 229, 233, 238, 243, 249, 254, 262, 266, 267, 273, 279, 296, 299, 341, 342, 343, 344, 345, 346, 347, 349, 355, 361, 364], "attribut": [0, 9, 11, 14, 17, 18, 19, 26, 27, 28, 44, 58, 59, 69, 77, 78, 85, 86, 87, 88, 102, 112, 120, 121, 143, 153, 154, 158, 181, 182, 184, 188, 199, 204, 206, 207, 211, 212, 236, 244, 245, 254, 262, 266, 267, 271, 272, 279, 309], "some": [0, 1, 14, 176, 244, 249, 254, 268, 272, 275, 276, 277, 286, 295, 309, 312, 330, 331, 332, 333, 334, 345, 346, 348, 361, 362], "addit": [0, 21, 39, 46, 87, 88, 90, 91, 94, 103, 104, 181, 182, 189, 197, 203, 204, 227, 229, 233, 262, 264, 266, 270, 318, 355, 361], "method": [0, 3, 4, 14, 15, 17, 18, 19, 29, 48, 49, 60, 64, 65, 71, 72, 79, 83, 84, 85, 86, 98, 99, 103, 104, 106, 107, 114, 115, 122, 126, 127, 134, 139, 163, 165, 167, 168, 170, 171, 173, 174, 181, 193, 194, 196, 197, 198, 199, 203, 204, 205, 206, 227, 228, 229, 235, 237, 240, 242, 248, 250, 251, 252, 253, 255, 256, 258, 259, 268, 269, 270, 271, 272, 273, 274, 279, 281, 291, 294, 299, 301, 312, 318, 321, 322, 326, 337, 351, 353, 355, 361], "displai": [0, 14, 17, 18, 19, 39, 46, 85, 87, 88, 103, 104, 181, 182, 202, 204, 205, 206, 227, 228, 229, 231, 233, 235, 236, 237, 278, 279, 285, 287, 288, 294, 298, 301, 302, 310, 311, 313, 314, 321, 325, 326, 327, 329, 332, 333, 334, 335, 338, 339, 340, 341, 342, 343, 344, 346, 347, 348, 349, 350, 351, 354, 355, 361], "function": [0, 6, 8, 14, 15, 16, 17, 18, 19, 29, 30, 32, 93, 96, 102, 205, 207, 227, 230, 236, 267, 270, 278, 279, 280, 282, 285, 301, 304, 305, 306, 321, 327, 336, 348, 350, 351, 352, 355, 361], "insight": [0, 323], "implement": [0, 1, 2, 6, 7, 8, 10, 11, 12, 14, 16, 17, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 42, 44, 48, 49, 51, 53, 55, 58, 59, 60, 62, 65, 67, 69, 71, 72, 74, 77, 78, 79, 81, 84, 85, 86, 87, 88, 92, 93, 95, 96, 98, 99, 101, 102, 107, 110, 112, 114, 115, 117, 120, 121, 122, 124, 127, 141, 142, 143, 144, 145, 146, 147, 148, 149, 151, 153, 154, 158, 161, 164, 165, 168, 170, 171, 173, 174, 175, 176, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 198, 199, 202, 203, 204, 207, 208, 211, 212, 227, 235, 236, 237, 241, 242, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 268, 269, 270, 271, 276, 278, 280, 281, 282, 286, 290, 292, 293, 295, 318, 329, 338, 339, 345, 351, 355, 361, 364, 365], "from": [0, 1, 3, 4, 6, 7, 8, 10, 11, 14, 15, 16, 17, 18, 19, 22, 24, 29, 32, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 60, 64, 69, 71, 72, 74, 76, 79, 83, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 108, 112, 114, 115, 117, 119, 122, 126, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 152, 159, 163, 167, 169, 170, 171, 173, 174, 181, 182, 184, 189, 193, 195, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 235, 236, 237, 238, 240, 244, 246, 247, 254, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 269, 270, 271, 272, 273, 275, 276, 278, 279, 280, 281, 283, 285, 287, 288, 289, 291, 294, 295, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352, 353, 354, 355, 359, 360, 361, 362, 363, 365], "standpoint": 0, "__init__": [0, 193, 289], "address": 0, "__call__": [0, 193], "let": [0, 271, 302, 307, 346, 359, 360, 362], "u": [0, 28, 29, 59, 78, 121, 154, 158, 212, 244, 245, 295, 307, 311, 325, 326, 337, 354, 356, 359, 360, 361, 362], "your": [0, 295, 356, 359, 360, 361, 362, 363], "Its": [0, 10, 11, 17, 26, 38, 39, 44, 46, 55, 64, 65, 69, 74, 83, 84, 102, 106, 107, 112, 117, 126, 127, 142, 143, 146, 163, 165, 167, 168, 184, 196, 198, 203, 206, 207, 209, 213, 238, 240, 242, 244, 254, 266, 267, 279, 301, 304, 305, 306, 307, 308, 309, 327, 351, 352], "veri": [0, 10, 11, 12, 28, 32, 44, 55, 69, 74, 112, 117, 142, 143, 146, 202, 204, 244, 245, 260, 280, 322, 330, 331, 346], "project": [0, 204, 294, 295, 301, 302, 303, 315, 316, 317, 319, 320, 327, 352, 361], "textcolor": 0, "blue": [0, 206, 301, 318, 327, 329, 336, 338, 339, 340, 365], "text": [0, 3, 4, 7, 8, 10, 11, 24, 26, 27, 32, 33, 39, 44, 46, 55, 58, 64, 65, 69, 74, 77, 83, 84, 85, 86, 92, 93, 95, 101, 102, 103, 104, 106, 107, 112, 117, 120, 126, 127, 136, 137, 138, 139, 142, 143, 145, 146, 148, 153, 158, 163, 165, 167, 168, 181, 182, 184, 185, 193, 195, 196, 197, 198, 199, 203, 205, 206, 207, 208, 211, 218, 219, 220, 228, 229, 230, 231, 233, 235, 237, 240, 242, 244, 245, 247, 253, 254, 255, 256, 262, 263, 265, 266, 270, 271, 272, 273, 274, 279, 281, 301, 309, 329, 330, 331, 334, 338, 339, 341, 343, 344, 345, 347, 351, 353, 365], "cyclic": [0, 1, 3, 4, 31, 32, 33, 52, 132, 138, 183, 184, 185, 188, 189, 215, 216, 217, 218, 219, 220, 221, 227, 244, 246, 247, 252, 253, 254, 265, 267, 268, 273, 285, 287, 289, 291, 294, 296, 323, 328, 351, 353, 361], "redund": [0, 1, 3, 4, 5, 7, 52, 87, 88, 90, 91, 93, 102, 181, 182, 183, 184, 185, 188, 189, 207, 209, 228, 231, 296, 301, 361, 364], "check": [0, 1, 3, 5, 8, 13, 19, 27, 52, 88, 93, 102, 108, 175, 181, 183, 184, 185, 186, 188, 189, 206, 207, 264, 267, 291, 294, 296, 301, 322, 323, 328, 351, 352, 355, 359, 360, 361, 362, 363, 365], "add": [0, 1, 2, 5, 20, 42, 51, 53, 67, 110, 302, 309, 311, 314, 325, 326, 329, 332, 333, 335, 338, 345, 351, 352, 354, 355, 361], "nois": [0, 1, 6, 10, 12, 20, 32, 55, 74, 86, 96, 117, 142, 146, 181, 184, 185, 188, 203, 204, 269, 280, 281, 301, 302, 311, 318, 323, 325, 326, 328, 329, 332, 333, 335, 338, 339, 340, 352, 353, 354, 355, 361, 365], "shown": [0, 5, 6, 7, 8, 9, 10, 12, 33, 55, 74, 85, 87, 92, 93, 95, 96, 117, 142, 146, 148, 149, 186, 195, 196, 198, 235, 236, 237, 278, 330, 331, 333, 334, 351, 359, 362], "below": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 17, 18, 19, 21, 33, 38, 39, 42, 46, 48, 49, 51, 53, 55, 57, 58, 60, 62, 64, 65, 67, 71, 72, 74, 76, 77, 79, 81, 83, 84, 85, 86, 87, 92, 93, 96, 98, 99, 101, 102, 106, 107, 110, 114, 115, 117, 119, 120, 122, 124, 126, 127, 130, 131, 132, 142, 144, 146, 147, 148, 149, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 176, 195, 196, 197, 198, 199, 200, 205, 206, 207, 208, 210, 211, 214, 215, 216, 226, 227, 235, 236, 237, 240, 241, 242, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 263, 264, 265, 269, 272, 273, 274, 278, 281, 304, 305, 306, 307, 308, 309, 325, 326, 330, 331, 333, 334, 335, 339, 341, 343, 344, 351, 359, 360, 361, 362, 363], "crc": [0, 1, 2, 6, 7, 8, 10, 11, 25, 27, 44, 55, 62, 69, 74, 81, 88, 93, 95, 96, 108, 112, 117, 124, 142, 143, 146, 148, 149, 164, 175, 176, 181, 182, 184, 185, 189, 241, 323, 328, 338, 351, 361], "help": [0, 27, 28, 87, 88, 181, 182, 196, 197, 198, 204, 206, 271, 280, 281, 294, 297, 325, 326, 337, 341, 342, 343, 344, 347, 359, 360, 362], "receiv": [0, 1, 2, 3, 5, 6, 8, 9, 10, 15, 16, 18, 20, 22, 27, 28, 31, 32, 34, 35, 36, 37, 40, 42, 43, 49, 51, 53, 57, 59, 64, 65, 67, 68, 72, 76, 78, 83, 84, 86, 88, 89, 99, 102, 106, 107, 110, 111, 115, 119, 121, 126, 127, 141, 142, 150, 152, 154, 158, 159, 162, 163, 167, 168, 169, 174, 179, 180, 183, 193, 195, 196, 198, 200, 203, 204, 205, 207, 210, 212, 230, 232, 239, 240, 257, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 286, 287, 290, 292, 293, 295, 299, 301, 302, 311, 312, 318, 325, 326, 329, 330, 331, 332, 333, 334, 335, 338, 341, 342, 343, 344, 347, 349, 350, 353, 354, 355, 361, 365], "fail": [0, 3, 291, 294, 351], "can": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 22, 24, 25, 27, 28, 34, 35, 36, 37, 44, 48, 49, 55, 60, 62, 64, 65, 69, 71, 72, 74, 79, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 96, 98, 99, 101, 102, 106, 107, 112, 114, 115, 117, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 163, 164, 165, 167, 168, 169, 170, 173, 174, 180, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 231, 233, 234, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 249, 250, 252, 253, 254, 255, 256, 257, 258, 260, 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 280, 281, 285, 294, 295, 297, 302, 304, 306, 308, 309, 312, 318, 322, 326, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 353, 356, 359, 360, 361, 362, 363, 364], "request": [0, 3, 102, 207, 321, 323, 353, 359, 361, 362, 363], "retransmiss": [0, 3], "data": [0, 3, 5, 6, 7, 26, 28, 29, 48, 49, 57, 60, 62, 71, 72, 76, 79, 81, 87, 88, 89, 90, 93, 94, 96, 98, 99, 102, 108, 114, 115, 119, 122, 124, 132, 134, 138, 152, 159, 164, 170, 171, 173, 174, 175, 176, 180, 181, 182, 186, 207, 210, 217, 234, 241, 243, 246, 247, 249, 258, 259, 264, 269, 270, 271, 276, 279, 280, 281, 283, 284, 285, 291, 295, 301, 311, 312, 321, 323, 326, 336, 337, 339, 345, 348, 351, 352, 361, 364], "convert": [0, 1, 10, 40, 48, 55, 60, 71, 74, 79, 98, 114, 117, 122, 142, 146, 170, 173, 181, 258, 318, 332, 353], "transmiss": [0, 5, 22, 35, 37, 39, 46, 49, 57, 65, 72, 76, 84, 85, 87, 90, 91, 94, 99, 102, 103, 104, 107, 115, 119, 127, 130, 131, 132, 134, 136, 137, 138, 139, 162, 168, 169, 174, 182, 189, 207, 210, 215, 216, 217, 218, 219, 220, 228, 229, 233, 238, 239, 243, 246, 247, 257, 267, 268, 269, 270, 275, 276, 279, 280, 281, 283, 286, 290, 292, 293, 295, 301, 302, 322, 323, 325, 326, 328, 332, 333, 335, 336, 337, 353, 355, 361], "introduc": [0, 21, 271, 296, 301, 318, 351], "transmit": [0, 1, 5, 20, 29, 32, 38, 39, 46, 57, 76, 85, 86, 103, 104, 119, 131, 132, 137, 138, 149, 152, 159, 175, 182, 205, 210, 216, 219, 221, 227, 228, 229, 233, 234, 235, 236, 237, 238, 244, 245, 246, 247, 249, 254, 263, 264, 266, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 283, 285, 287, 288, 289, 292, 293, 295, 301, 318, 323, 327, 332, 333, 335, 336, 350, 353, 355, 361, 365], "signal": [0, 1, 5, 6, 10, 12, 20, 21, 32, 33, 38, 55, 57, 74, 76, 86, 87, 88, 94, 96, 103, 104, 117, 119, 132, 138, 142, 146, 152, 159, 181, 184, 185, 188, 189, 193, 203, 204, 205, 206, 210, 226, 229, 230, 232, 233, 234, 244, 245, 246, 247, 248, 249, 250, 251, 254, 260, 268, 269, 270, 271, 272, 273, 275, 276, 277, 280, 281, 283, 285, 289, 291, 294, 296, 311, 312, 318, 323, 325, 326, 327, 329, 332, 333, 335, 337, 338, 339, 340, 342, 349, 353, 355, 361, 364, 365], "model": [0, 1, 6, 10, 15, 18, 19, 21, 55, 74, 96, 117, 142, 146, 203, 204, 295, 296, 299, 301, 311, 313, 314, 321, 323, 330, 331, 332, 333, 334, 341, 342, 343, 344, 345, 346, 347, 348, 355, 361, 364], "numpi": [0, 3, 4, 6, 7, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 25, 26, 27, 28, 29, 34, 35, 36, 37, 44, 48, 49, 55, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 93, 94, 96, 98, 99, 102, 106, 107, 112, 114, 115, 117, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 153, 154, 158, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 188, 189, 193, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 230, 235, 236, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 264, 266, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 361, 362, 363, 365], "matplotlib": [0, 18, 19, 29, 204, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 362, 363, 365], "linear": [0, 5, 16, 184, 188, 203, 204, 269, 270, 271, 275, 276, 291, 294, 301, 302, 318, 326, 329, 332, 333, 335, 337, 352], "algebra": 0, "plot": [0, 10, 14, 18, 19, 55, 74, 117, 142, 146, 202, 204, 206, 273, 285, 287, 288, 289, 291, 294, 301, 302, 310, 311, 321, 322, 327, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 342, 346, 348, 350, 351, 355, 361], "respect": [0, 3, 4, 6, 8, 10, 14, 15, 16, 17, 18, 19, 29, 39, 40, 46, 55, 74, 87, 90, 93, 95, 96, 117, 138, 139, 142, 146, 149, 181, 196, 197, 198, 199, 205, 220, 230, 236, 243, 247, 249, 254, 265, 267, 278, 279, 281, 298, 302, 305, 306, 318, 328, 345, 347, 349], "o": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "environ": [0, 29, 227, 236, 278, 280, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 362, 363, 365], "cuda_visible_devic": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "1": [0, 2, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15, 17, 18, 19, 22, 24, 25, 26, 27, 28, 30, 32, 34, 35, 36, 37, 38, 42, 44, 48, 49, 51, 53, 58, 59, 60, 62, 64, 67, 69, 71, 72, 77, 78, 79, 81, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 110, 112, 114, 115, 120, 121, 122, 124, 126, 130, 131, 132, 134, 136, 137, 138, 139, 143, 145, 148, 149, 153, 154, 158, 163, 164, 165, 167, 170, 171, 173, 174, 175, 176, 180, 181, 182, 183, 184, 185, 186, 188, 189, 190, 193, 195, 197, 199, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 215, 216, 221, 226, 227, 228, 229, 230, 231, 232, 233, 236, 238, 240, 241, 242, 245, 246, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, 279, 280, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 306, 307, 308, 309, 310, 311, 312, 314, 318, 321, 322, 323, 325, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 355, 359, 361, 362, 363, 365], "tf_cpp_min_log_level": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 365], "3": [0, 1, 2, 6, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 22, 26, 27, 29, 34, 35, 36, 37, 39, 42, 44, 46, 51, 53, 55, 58, 62, 64, 65, 67, 69, 74, 77, 81, 83, 84, 85, 86, 87, 88, 90, 91, 93, 94, 95, 96, 102, 103, 104, 106, 107, 110, 112, 117, 120, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 149, 153, 158, 163, 164, 165, 167, 168, 175, 176, 179, 181, 182, 183, 184, 185, 188, 189, 190, 196, 197, 198, 199, 206, 207, 209, 211, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 254, 255, 256, 263, 264, 265, 267, 270, 271, 273, 274, 278, 280, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 360, 362, 363, 365], "np": [0, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 25, 26, 27, 28, 29, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 91, 92, 93, 95, 96, 98, 99, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 176, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 269, 270, 271, 272, 273, 274, 275, 276, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "widget": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "pyplot": [0, 29, 227, 236, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "plt": [0, 18, 19, 29, 206, 227, 236, 273, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "line": [0, 18, 19, 206, 273, 285, 288, 289, 291, 294, 302, 321, 327, 329, 330, 331, 332, 333, 334, 338, 339, 340, 345, 350, 351, 355, 359, 360, 361, 362], "code": [0, 1, 5, 8, 9, 13, 14, 19, 24, 26, 27, 28, 30, 39, 43, 46, 54, 57, 58, 64, 68, 73, 76, 77, 83, 87, 88, 90, 91, 94, 95, 101, 102, 106, 108, 111, 116, 119, 120, 126, 134, 139, 141, 145, 150, 152, 159, 163, 167, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 214, 217, 218, 219, 220, 240, 262, 264, 266, 275, 276, 278, 280, 281, 282, 283, 285, 291, 294, 296, 299, 301, 321, 323, 328, 330, 331, 332, 333, 334, 335, 340, 341, 343, 344, 345, 346, 347, 351, 353, 355, 356, 359, 360, 361, 362, 364], "disabl": [0, 18, 19, 87, 88, 90, 91, 102, 130, 131, 132, 134, 136, 137, 138, 139, 144, 147, 181, 182, 206, 207, 209, 215, 216, 217, 218, 219, 220, 246, 247, 275, 276, 302, 330, 331, 334, 337, 341, 343, 344, 353], "gpu": [0, 361], "properli": [0, 278, 309], "up": [0, 19, 202, 238, 254, 345], "system": [0, 6, 22, 29, 37, 39, 46, 48, 60, 71, 79, 96, 98, 114, 122, 131, 132, 137, 138, 170, 173, 184, 186, 189, 196, 197, 199, 203, 204, 216, 219, 236, 243, 246, 247, 248, 250, 251, 252, 253, 255, 256, 258, 262, 265, 266, 267, 268, 269, 271, 273, 278, 279, 280, 281, 283, 284, 285, 287, 288, 289, 291, 294, 304, 312, 318, 321, 323, 325, 326, 327, 330, 331, 332, 333, 334, 335, 336, 337, 342, 349, 352, 355, 361], "work": [0, 14, 204, 268, 276, 279, 285, 330, 336, 361, 362], "well": [0, 19, 28, 186, 238, 268, 269, 312, 318, 322, 330, 345, 361, 364], "remov": [0, 6, 32, 62, 65, 81, 84, 96, 107, 108, 124, 127, 162, 164, 168, 189, 239, 241, 312, 351, 363, 365], "As": [0, 3, 4, 64, 83, 106, 126, 163, 167, 181, 240, 253, 256, 301, 330, 331], "understood": [0, 25, 301, 329, 338, 339], "thi": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 39, 44, 46, 55, 58, 59, 64, 65, 69, 74, 77, 78, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 96, 101, 102, 103, 104, 106, 107, 108, 112, 117, 120, 121, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 144, 146, 147, 148, 149, 151, 153, 154, 158, 161, 163, 165, 167, 168, 175, 176, 180, 181, 182, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 242, 244, 245, 246, 247, 250, 252, 253, 254, 255, 256, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 282, 284, 285, 287, 288, 289, 291, 294, 295, 296, 298, 299, 301, 302, 304, 305, 306, 307, 308, 309, 312, 318, 323, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 360, 361, 362, 363, 365], "5": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 24, 25, 26, 27, 28, 29, 39, 42, 44, 46, 49, 51, 53, 55, 58, 59, 67, 69, 72, 74, 77, 78, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 108, 110, 112, 115, 117, 120, 121, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 153, 154, 158, 171, 174, 175, 176, 181, 182, 184, 185, 186, 190, 193, 195, 196, 204, 205, 207, 208, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 244, 245, 246, 247, 248, 249, 250, 251, 254, 259, 262, 263, 264, 265, 266, 267, 269, 271, 273, 276, 278, 280, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 310, 311, 312, 314, 316, 318, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 361, 365], "whole": [0, 294], "correspond": [0, 6, 14, 15, 16, 17, 18, 19, 29, 40, 88, 96, 102, 138, 139, 181, 182, 189, 203, 204, 209, 220, 227, 230, 236, 238, 247, 265, 267, 268, 270, 271, 278, 304, 305, 306, 307, 308, 309, 326, 328, 332, 337, 342, 345, 346, 347, 349], "list": [0, 7, 8, 10, 11, 14, 17, 18, 19, 24, 44, 48, 55, 60, 64, 65, 69, 71, 74, 79, 83, 84, 86, 87, 88, 92, 98, 101, 102, 106, 107, 112, 114, 117, 122, 126, 127, 142, 143, 146, 149, 163, 165, 167, 168, 170, 173, 181, 182, 207, 208, 214, 240, 242, 244, 245, 249, 258, 261, 263, 264, 265, 272, 279, 280, 295, 325, 326, 329, 341, 343, 344, 345, 361, 364], "toolkit5g": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 360, 362, 363, 365], "crcencod": [0, 1, 2, 3, 4, 42, 51, 53, 67, 110, 184, 188, 365], "mapper": [0, 1, 3, 47, 64, 70, 83, 97, 101, 106, 113, 126, 141, 150, 151, 152, 153, 154, 158, 159, 161, 163, 167, 169, 172, 179, 183, 184, 185, 186, 188, 189, 208, 235, 237, 240, 257, 275, 294, 301, 311, 312, 318, 322, 325, 326, 336, 338, 339, 354, 355, 361, 364], "symbolmap": [0, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 294, 301, 311, 312, 318, 322, 325, 326, 329, 336, 338, 339, 354, 365], "channelprocess": [0, 21, 22, 301, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354, 365], "addnois": [0, 1, 21, 301, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354, 365], "demapp": [0, 1, 4, 47, 49, 70, 72, 86, 97, 99, 113, 115, 141, 150, 169, 172, 174, 179, 184, 185, 186, 188, 189, 257, 294, 301, 311, 312, 318, 322, 325, 326, 336, 338, 339, 354, 355, 361, 365], "decod": [0, 1, 2, 7, 8, 9, 11, 27, 31, 39, 44, 46, 48, 54, 59, 60, 64, 69, 71, 73, 78, 79, 83, 85, 93, 98, 102, 106, 108, 112, 114, 116, 121, 122, 126, 143, 144, 147, 149, 163, 167, 170, 173, 175, 181, 183, 184, 185, 186, 188, 189, 207, 212, 234, 236, 240, 243, 258, 262, 266, 269, 270, 272, 274, 280, 281, 284, 285, 289, 292, 293, 295, 301, 310, 318, 321, 322, 323, 329, 338, 339, 352, 355, 361], "crcdecod": [0, 1, 2, 3, 42, 51, 53, 67, 110, 188, 365], "directli": [0, 1, 85, 86, 184, 185, 193, 195, 203, 243, 244, 245, 283, 302, 335, 362], "It": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 19, 22, 24, 27, 28, 29, 32, 33, 38, 39, 44, 46, 48, 49, 55, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 154, 158, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 249, 252, 253, 254, 255, 256, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 283, 285, 309, 318, 329, 330, 331, 336, 338, 339, 353, 361, 363], "recommend": 0, "alon": [0, 206], "alias": 0, "mandatori": [0, 280], "design": [0, 3, 4, 6, 10, 12, 31, 55, 58, 74, 77, 96, 117, 120, 142, 146, 186, 211, 227, 234, 254, 269, 270, 275, 276, 309, 318, 323, 336, 339, 341, 342, 343, 344, 346, 349, 361, 364], "oper": [0, 57, 76, 95, 102, 119, 139, 186, 207, 210, 220, 268, 269, 270, 283, 285, 323, 351, 359, 362, 363, 365], "per": [0, 3, 4, 6, 14, 18, 19, 24, 48, 49, 60, 71, 72, 79, 85, 86, 87, 88, 90, 91, 94, 95, 96, 98, 99, 101, 102, 103, 104, 114, 115, 122, 130, 131, 132, 136, 137, 138, 139, 170, 171, 173, 174, 181, 182, 184, 185, 207, 208, 215, 216, 218, 219, 220, 228, 229, 230, 231, 232, 235, 236, 237, 238, 246, 247, 248, 251, 253, 256, 258, 259, 267, 271, 276, 278, 281, 285, 287, 288, 289, 291, 294, 299, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "num_bits_per_symbol": [0, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 318, 322, 329, 338, 339, 365], "4": [0, 1, 2, 6, 8, 9, 12, 14, 17, 18, 19, 22, 24, 26, 28, 35, 37, 39, 42, 46, 48, 49, 51, 53, 58, 59, 60, 64, 65, 67, 71, 72, 77, 78, 79, 83, 84, 85, 87, 88, 89, 90, 91, 92, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 114, 115, 120, 121, 122, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 144, 147, 153, 154, 158, 163, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 180, 181, 182, 183, 184, 190, 197, 198, 205, 206, 207, 208, 209, 211, 212, 215, 216, 217, 218, 219, 220, 221, 226, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 240, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 264, 265, 266, 269, 271, 272, 273, 274, 275, 278, 285, 287, 288, 289, 291, 294, 302, 304, 306, 307, 308, 309, 310, 311, 312, 314, 315, 318, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 360, 361, 362, 363, 365], "demapping_method": [0, 48, 60, 71, 79, 86, 98, 114, 122, 170, 173, 258, 318, 322, 329, 338, 339, 365], "app": [0, 6, 48, 60, 71, 79, 86, 96, 98, 114, 122, 170, 173, 181, 188, 258, 294, 301, 318, 322, 323, 326, 328, 329, 338, 339, 365], "crctype": [0, 2, 3, 4, 7, 10, 11, 42, 44, 51, 53, 55, 67, 69, 74, 93, 108, 110, 112, 117, 142, 143, 146, 186, 365], "crc24c": [0, 2, 3, 4, 10, 11, 42, 44, 51, 53, 55, 67, 69, 74, 110, 112, 117, 142, 143, 146, 365], "qammapp": [0, 365], "qam": [0, 26, 48, 49, 60, 71, 72, 79, 86, 98, 99, 114, 115, 122, 169, 170, 171, 173, 174, 235, 237, 257, 258, 259, 294, 321, 326, 336, 338, 339, 364, 365], "qamdemapp": [0, 365], "constellation_typ": [0, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 318, 322, 329, 338, 339, 365], "hard_out": [0, 6, 48, 60, 71, 79, 86, 96, 98, 114, 122, 144, 147, 170, 173, 258, 294, 301, 311, 318, 322, 325, 326, 329, 338, 339, 354, 365], "true": [0, 3, 5, 6, 10, 11, 12, 17, 18, 19, 21, 22, 44, 48, 55, 60, 69, 71, 74, 79, 86, 88, 96, 98, 103, 104, 112, 114, 117, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 170, 173, 181, 184, 204, 206, 215, 216, 217, 218, 219, 220, 227, 228, 229, 235, 237, 238, 246, 247, 258, 263, 264, 269, 271, 273, 279, 281, 285, 287, 289, 291, 294, 301, 302, 305, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 353, 354, 365], "24": [0, 2, 3, 4, 8, 10, 29, 39, 42, 46, 51, 53, 55, 67, 74, 93, 110, 117, 142, 146, 184, 189, 228, 231, 234, 244, 245, 254, 262, 266, 278, 301, 304, 305, 314, 318, 323, 326, 328, 330, 331, 332, 333, 334, 335, 340, 341, 351, 365], "16": [0, 2, 3, 4, 8, 24, 29, 42, 49, 51, 53, 62, 67, 72, 81, 87, 92, 93, 99, 101, 102, 110, 115, 124, 130, 131, 132, 134, 136, 137, 138, 139, 164, 171, 174, 181, 182, 186, 202, 203, 205, 207, 208, 215, 216, 217, 218, 219, 220, 227, 228, 231, 234, 236, 241, 244, 245, 246, 247, 249, 259, 265, 278, 291, 294, 304, 306, 307, 308, 309, 310, 311, 314, 318, 321, 323, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 340, 341, 342, 343, 344, 345, 348, 349, 351, 352, 353, 359, 362, 363, 365], "log": [0, 5, 12, 18, 19, 48, 49, 57, 60, 64, 71, 72, 76, 79, 83, 86, 98, 99, 106, 114, 115, 119, 122, 126, 152, 159, 163, 167, 169, 170, 173, 174, 175, 181, 184, 185, 189, 210, 240, 257, 258, 281, 301, 322, 329, 338, 339, 359, 362, 363], "return": [0, 5, 6, 7, 8, 9, 10, 11, 15, 18, 19, 35, 40, 44, 48, 49, 55, 60, 69, 71, 72, 74, 79, 85, 86, 87, 88, 92, 93, 94, 96, 98, 99, 102, 112, 114, 115, 117, 122, 134, 139, 142, 143, 144, 146, 147, 148, 149, 170, 171, 173, 174, 175, 176, 181, 182, 186, 189, 193, 195, 196, 198, 202, 204, 206, 207, 209, 235, 236, 237, 244, 245, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 264, 267, 268, 269, 270, 271, 272, 274, 275, 278, 279, 280, 281, 285, 287, 288, 289, 291, 294, 302, 318, 322, 335, 345, 351], "hard": [0, 5, 6, 10, 11, 12, 24, 44, 48, 49, 55, 60, 64, 69, 71, 72, 74, 79, 83, 86, 96, 98, 99, 101, 102, 106, 112, 114, 115, 117, 122, 126, 142, 143, 144, 146, 147, 149, 163, 167, 169, 170, 173, 174, 207, 208, 240, 257, 258, 318, 322], "0": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 22, 24, 27, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 49, 55, 62, 64, 65, 69, 72, 74, 81, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 106, 107, 112, 115, 117, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 148, 162, 163, 164, 165, 167, 168, 171, 174, 175, 181, 182, 183, 184, 185, 186, 188, 189, 190, 193, 195, 196, 197, 198, 202, 203, 204, 205, 206, 207, 208, 209, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 278, 280, 281, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 359, 360, 362, 363, 365], "power": [0, 6, 14, 15, 16, 18, 21, 96, 103, 104, 131, 137, 200, 202, 203, 204, 205, 206, 216, 219, 228, 229, 231, 235, 237, 244, 245, 275, 276, 279, 280, 283, 285, 287, 288, 289, 291, 294, 299, 301, 306, 318, 330, 331, 334, 339, 341, 342, 343, 344, 347, 349, 350, 351, 352, 355, 361], "ad": [0, 1, 6, 7, 21, 86, 93, 96, 301, 302, 323, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 348, 351, 353, 361, 365], "frac": [0, 19, 32, 33, 48, 49, 60, 71, 72, 79, 85, 95, 98, 99, 103, 104, 114, 115, 122, 170, 171, 173, 174, 182, 185, 189, 228, 229, 230, 231, 236, 238, 244, 245, 248, 249, 251, 254, 258, 259, 265, 270, 271, 278, 279, 280, 281, 322, 364, 365], "snr": [0, 1, 10, 12, 48, 55, 60, 71, 74, 79, 86, 90, 98, 114, 117, 122, 142, 146, 170, 173, 175, 181, 184, 185, 188, 258, 269, 278, 280, 281, 294, 304, 311, 318, 321, 328, 329, 330, 331, 333, 334, 335, 337, 338, 340, 353, 354, 355, 361], "sequenc": [0, 1, 3, 4, 8, 14, 24, 32, 39, 46, 48, 49, 60, 62, 64, 65, 71, 72, 79, 81, 83, 84, 85, 93, 98, 99, 101, 103, 104, 106, 107, 114, 115, 122, 124, 126, 127, 129, 130, 131, 134, 135, 136, 137, 139, 145, 148, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 181, 208, 215, 216, 217, 218, 219, 220, 228, 229, 230, 231, 232, 233, 235, 237, 238, 239, 240, 241, 242, 252, 253, 255, 256, 258, 259, 263, 269, 271, 273, 276, 285, 287, 289, 291, 294, 296, 327, 330, 331, 334, 352, 353, 355, 361, 364], "randomli": [0, 19, 64, 65, 83, 84, 87, 106, 107, 126, 127, 163, 165, 167, 168, 206, 235, 240, 242, 260, 261, 262, 263, 264, 265, 266, 267], "randint": [0, 3, 4, 6, 10, 12, 25, 29, 49, 55, 62, 65, 72, 74, 81, 84, 91, 96, 99, 107, 108, 115, 117, 124, 127, 142, 144, 146, 147, 148, 149, 164, 165, 168, 171, 174, 176, 182, 235, 236, 237, 241, 242, 249, 259, 272, 274, 278, 285, 287, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 351, 352, 353, 354, 365], "random": [0, 1, 3, 4, 6, 10, 12, 16, 18, 19, 25, 29, 49, 55, 62, 64, 65, 72, 74, 81, 83, 84, 91, 96, 99, 106, 107, 108, 115, 117, 124, 126, 127, 142, 144, 146, 147, 148, 149, 162, 163, 164, 165, 167, 168, 171, 174, 176, 182, 183, 198, 235, 236, 237, 239, 240, 241, 242, 243, 249, 259, 267, 269, 272, 273, 274, 278, 280, 285, 287, 289, 291, 294, 296, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 348, 351, 352, 353, 354, 361, 364, 365], "numblock": [0, 365], "10000": [0, 196, 198, 206, 312, 321, 336, 348, 355, 361, 365], "nbitsperblock": [0, 365], "384": [0, 244, 314, 336, 365], "crcbit": [0, 3, 4, 365], "e": [0, 7, 8, 10, 11, 14, 15, 16, 17, 18, 19, 22, 24, 26, 29, 32, 33, 39, 44, 46, 54, 55, 57, 58, 69, 73, 74, 76, 77, 86, 87, 92, 95, 101, 102, 112, 116, 117, 119, 120, 142, 143, 145, 146, 148, 149, 152, 153, 158, 159, 175, 181, 182, 184, 185, 188, 189, 207, 208, 210, 211, 227, 230, 236, 238, 262, 266, 270, 271, 278, 280, 304, 307, 309, 318, 323, 328, 338, 339], "group": [0, 7, 24, 29, 35, 37, 92, 101, 102, 132, 138, 139, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 230, 244, 245, 246, 247, 249, 270, 351, 353], "an": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 24, 25, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 58, 60, 62, 64, 65, 69, 71, 72, 74, 77, 79, 81, 83, 84, 87, 88, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 120, 122, 124, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 189, 193, 195, 196, 197, 198, 199, 204, 205, 206, 207, 208, 211, 215, 216, 218, 219, 220, 227, 228, 229, 231, 232, 233, 235, 236, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 265, 266, 269, 270, 271, 272, 275, 276, 278, 279, 280, 298, 302, 306, 307, 309, 311, 312, 321, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 342, 345, 346, 349, 351, 352, 353, 354, 359, 361, 362, 363], "70": [0, 267, 301, 304, 308, 309, 314, 332, 333, 334, 338, 340, 345, 351], "ratio": [0, 5, 10, 12, 18, 19, 48, 49, 55, 57, 60, 64, 71, 72, 74, 76, 79, 83, 86, 88, 98, 99, 106, 114, 115, 117, 119, 122, 126, 142, 146, 152, 159, 163, 167, 169, 170, 173, 174, 175, 181, 184, 185, 188, 189, 210, 240, 257, 258, 269, 280, 281, 311, 322, 328, 329, 335, 338, 339, 340, 352, 353, 355, 361, 365], "rxsymbol": [0, 301, 365], "back": [0, 32, 34, 35, 36, 37, 318], "either": [0, 5, 6, 7, 8, 9, 11, 12, 14, 17, 19, 22, 24, 29, 39, 44, 46, 48, 60, 64, 69, 71, 79, 83, 87, 88, 89, 92, 93, 94, 95, 96, 98, 101, 102, 106, 112, 114, 122, 126, 130, 131, 132, 136, 137, 138, 139, 143, 148, 163, 167, 170, 173, 176, 181, 182, 188, 189, 206, 207, 208, 215, 216, 218, 219, 220, 227, 235, 236, 238, 240, 244, 245, 246, 247, 249, 254, 258, 264, 265, 267, 278, 279, 280, 281, 328, 330, 331, 333, 334, 353], "llr": [0, 1, 5, 6, 10, 11, 12, 44, 48, 55, 57, 60, 64, 69, 71, 74, 76, 79, 83, 86, 88, 96, 98, 102, 106, 112, 114, 117, 119, 122, 126, 142, 143, 146, 149, 152, 159, 163, 167, 170, 173, 181, 184, 185, 207, 210, 240, 258, 291, 294, 301, 323, 339, 351], "base": [0, 1, 4, 6, 7, 8, 10, 15, 16, 17, 18, 19, 24, 29, 31, 48, 49, 55, 57, 58, 60, 64, 65, 71, 72, 74, 76, 77, 79, 83, 84, 85, 86, 87, 88, 92, 93, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 114, 115, 117, 119, 120, 122, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 144, 145, 146, 147, 149, 163, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 188, 195, 200, 205, 206, 207, 208, 209, 210, 211, 215, 216, 217, 218, 219, 220, 221, 227, 228, 229, 231, 234, 235, 236, 240, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, 263, 264, 265, 267, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 282, 283, 284, 286, 287, 290, 292, 293, 295, 296, 299, 301, 305, 306, 307, 309, 313, 321, 322, 323, 328, 337, 339, 341, 342, 343, 344, 345, 347, 349, 351, 352, 355, 361, 364], "bitsest": [0, 365], "complex64": [0, 15, 29, 39, 46, 48, 49, 60, 71, 72, 79, 85, 86, 95, 98, 99, 103, 104, 114, 115, 122, 170, 171, 173, 174, 182, 184, 185, 228, 229, 230, 231, 235, 237, 238, 258, 259, 271, 275, 276, 285, 287, 289, 291, 294, 301, 302, 311, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 351, 352, 354, 365], "variabl": [0, 6, 8, 17, 18, 19, 22, 24, 29, 39, 46, 64, 65, 83, 84, 87, 92, 94, 96, 101, 106, 107, 126, 127, 163, 165, 167, 168, 189, 208, 233, 235, 236, 237, 240, 242, 243, 249, 265, 269, 276, 278, 301, 304, 305, 306, 307, 308, 309, 342, 365], "rbit": [0, 3, 294, 365], "otherwis": [0, 3, 6, 12, 15, 17, 19, 39, 46, 88, 95, 96, 182, 184, 231, 244, 245, 254, 262, 266, 272, 281, 322, 359, 360, 362, 363], "least": [0, 6, 22, 96, 200, 206, 268, 269, 270, 271, 295, 330, 331, 332, 333, 334, 335], "compar": [0, 271, 301, 306, 307, 308, 309, 312, 318, 321, 329, 330, 331, 334, 355, 361, 365], "On": [0, 49, 72, 99, 115, 171, 174, 186, 189, 204, 206, 259, 301, 322, 356], "other": [0, 10, 11, 14, 18, 19, 28, 44, 49, 55, 69, 72, 74, 87, 99, 112, 115, 117, 142, 143, 146, 171, 174, 186, 189, 196, 197, 198, 199, 204, 206, 227, 244, 245, 259, 267, 269, 270, 275, 276, 278, 279, 280, 283, 294, 295, 298, 301, 305, 306, 312, 318, 322, 323, 325, 326, 330, 331, 333, 334, 335, 336, 337, 342, 345, 346, 349, 359, 361, 362, 363, 364, 365], "hand": [0, 49, 72, 99, 115, 171, 174, 186, 189, 204, 206, 259, 301, 322], "flag": [0, 11, 15, 18, 19, 21, 26, 27, 39, 44, 46, 48, 58, 60, 69, 71, 77, 79, 98, 112, 114, 120, 122, 143, 153, 158, 170, 173, 184, 188, 189, 206, 211, 235, 237, 258, 265, 269, 271, 279, 281, 301, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354, 363, 365], "ber": [0, 12, 87, 289, 291, 294, 318, 321, 329, 337, 338, 340, 354, 355, 361], "mean": [0, 18, 19, 29, 269, 270, 271, 285, 291, 294, 301, 311, 318, 322, 323, 325, 326, 327, 329, 335, 336, 337, 338, 339, 342, 345, 346, 348, 349, 351, 352, 353, 354, 365], "ab": [0, 285, 287, 289, 291, 294, 301, 302, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 353, 354, 365], "total": [0, 8, 19, 29, 93, 102, 207, 230, 235, 237, 266, 278, 279, 304, 305, 307, 318, 351, 365], "number": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 34, 35, 36, 37, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 258, 259, 260, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 275, 276, 278, 279, 281, 285, 287, 288, 289, 291, 294, 301, 302, 304, 308, 310, 311, 312, 314, 318, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 355, 361, 365], "bler": [0, 280, 294, 313, 321, 337, 354, 355, 361], "print": [0, 10, 11, 18, 29, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 227, 236, 244, 245, 254, 269, 272, 274, 278, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 342, 345, 346, 351, 352, 353, 354, 365], "str": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 17, 18, 19, 29, 35, 37, 39, 44, 46, 48, 49, 55, 60, 64, 65, 69, 71, 72, 74, 79, 83, 84, 85, 86, 87, 88, 93, 94, 95, 96, 98, 99, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 122, 126, 127, 130, 131, 132, 138, 142, 143, 146, 149, 163, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 195, 205, 206, 207, 209, 215, 216, 227, 228, 229, 230, 231, 233, 236, 238, 240, 242, 244, 245, 246, 247, 249, 254, 258, 259, 262, 263, 264, 266, 267, 269, 270, 271, 272, 273, 274, 275, 276, 278, 289, 291, 294, 301, 302, 304, 305, 306, 307, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 351, 352, 353, 354, 365], "6": [0, 2, 3, 4, 17, 18, 19, 22, 24, 29, 34, 36, 39, 42, 46, 49, 51, 53, 64, 65, 67, 72, 83, 84, 85, 87, 88, 94, 95, 99, 101, 102, 103, 104, 106, 107, 110, 115, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 145, 163, 165, 167, 168, 171, 174, 175, 176, 181, 182, 184, 204, 205, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 229, 230, 231, 233, 234, 236, 238, 240, 242, 244, 245, 246, 247, 248, 249, 251, 254, 259, 262, 263, 264, 265, 266, 267, 270, 271, 273, 276, 278, 285, 287, 288, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 317, 318, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 361, 362, 363, 365], "71875e": 0, "05": [0, 202, 204, 205, 278, 301, 302, 304, 305, 306, 307, 308, 309, 311, 318, 330, 337, 354, 365], "026599999999999957": 0, "practic": [0, 198, 202, 203, 204, 341, 342, 343, 344, 347, 349], "possibl": [0, 132, 138, 196, 204, 205, 214, 236, 246, 247, 249, 254, 260, 261, 262, 263, 264, 265, 266, 267, 278, 279, 301, 305, 327, 328, 330, 331, 361], "known": [0, 203, 204, 268, 269, 270, 271, 272, 273, 275, 276, 285, 325, 326, 327, 330, 331, 332, 334, 337], "howev": [0, 10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 193, 195, 196, 197, 198, 199, 202, 267, 279, 295, 302, 307, 335], "without": [0, 27, 268, 298], "know": [0, 39, 46, 236, 262, 266], "inform": [0, 1, 2, 3, 6, 8, 9, 10, 11, 12, 14, 24, 27, 40, 42, 44, 45, 48, 49, 51, 53, 55, 57, 60, 64, 65, 67, 69, 71, 72, 74, 76, 79, 83, 84, 85, 86, 87, 88, 90, 93, 96, 98, 99, 101, 102, 106, 107, 110, 112, 114, 115, 117, 119, 122, 126, 127, 131, 132, 137, 138, 142, 143, 146, 148, 149, 152, 159, 162, 163, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 184, 185, 189, 197, 202, 203, 204, 205, 207, 208, 210, 215, 216, 217, 218, 219, 220, 226, 227, 230, 232, 235, 236, 237, 239, 240, 243, 246, 247, 258, 259, 260, 262, 265, 266, 269, 270, 272, 273, 275, 276, 277, 278, 280, 281, 285, 287, 289, 291, 294, 298, 312, 318, 322, 323, 326, 329, 330, 331, 332, 333, 334, 335, 338, 339, 352, 355], "fig": [0, 186, 195, 202, 204, 206, 231, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "ax": [0, 202, 204, 206, 231, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "subplot": [0, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "set_aspect": [0, 302, 327, 330, 331, 333, 335, 342, 345, 346, 352, 365], "scatter": [0, 289, 291, 294, 301, 302, 318, 327, 330, 331, 332, 333, 334, 335, 342, 345, 346, 351, 365], "real": [0, 34, 36, 280, 285, 289, 291, 294, 301, 312, 318, 351, 365], "imag": [0, 285, 289, 291, 294, 351, 365], "color": [0, 19, 206, 273, 285, 287, 288, 289, 291, 294, 301, 302, 311, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 342, 345, 346, 349, 351, 352, 365], "red": [0, 206, 301, 327, 329, 330, 331, 336, 338, 339, 340, 365], "marker": [0, 206, 301, 302, 304, 305, 306, 307, 308, 311, 318, 322, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 352, 354, 365], "": [0, 1, 6, 14, 16, 17, 19, 29, 33, 34, 35, 36, 37, 64, 65, 83, 84, 85, 87, 88, 96, 101, 103, 104, 106, 107, 126, 127, 132, 138, 162, 163, 165, 167, 168, 181, 189, 196, 198, 206, 208, 228, 229, 230, 231, 235, 236, 239, 240, 242, 243, 246, 247, 248, 249, 251, 254, 265, 268, 269, 270, 271, 275, 276, 278, 279, 285, 289, 291, 294, 298, 301, 302, 305, 308, 311, 312, 318, 322, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 340, 341, 342, 343, 344, 345, 347, 349, 351, 354, 355, 361, 364, 365], "set_xlabel": [0, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 318, 322, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "part": [0, 24, 39, 46, 89, 101, 102, 130, 131, 132, 134, 136, 137, 138, 144, 147, 180, 184, 186, 189, 207, 208, 215, 216, 217, 218, 219, 227, 230, 236, 246, 247, 262, 266, 270, 285, 294, 301, 318, 325, 326, 337, 361, 365], "mathfrak": [0, 365], "r": [0, 1, 39, 46, 48, 49, 60, 71, 72, 79, 85, 87, 98, 99, 103, 104, 114, 115, 122, 145, 170, 171, 173, 174, 181, 184, 193, 195, 198, 206, 226, 227, 229, 230, 231, 233, 243, 254, 258, 259, 260, 262, 263, 265, 266, 269, 270, 271, 276, 277, 285, 289, 291, 294, 296, 299, 302, 307, 308, 311, 318, 322, 323, 325, 326, 328, 330, 331, 332, 333, 334, 335, 336, 341, 342, 343, 344, 345, 346, 347, 349, 351, 353, 354, 355, 361, 364, 365], "x": [0, 12, 22, 29, 86, 87, 95, 102, 189, 193, 195, 196, 197, 198, 199, 206, 207, 255, 273, 275, 278, 279, 280, 285, 287, 288, 289, 291, 294, 301, 302, 306, 309, 311, 318, 322, 323, 325, 326, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 365], "set_ylabel": [0, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 318, 322, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "imaginari": [0, 285, 301, 365], "set_titl": [0, 273, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 322, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "contel": [0, 329, 338, 339, 365], "grid": [0, 1, 19, 22, 29, 32, 33, 34, 35, 36, 37, 39, 46, 85, 86, 103, 104, 130, 136, 184, 185, 186, 189, 204, 215, 218, 226, 228, 229, 230, 231, 232, 233, 238, 243, 254, 255, 256, 262, 265, 266, 267, 269, 270, 271, 272, 273, 274, 275, 276, 279, 286, 288, 290, 292, 293, 295, 296, 301, 302, 304, 305, 306, 307, 308, 309, 311, 318, 322, 323, 325, 326, 332, 333, 335, 336, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 353, 354, 355, 361, 365], "both": [0, 6, 7, 12, 14, 16, 18, 19, 22, 62, 81, 90, 92, 95, 96, 124, 164, 186, 189, 195, 196, 197, 198, 199, 206, 214, 227, 234, 235, 236, 237, 241, 249, 255, 256, 270, 273, 294, 305, 318, 322, 328, 330, 331, 334, 337, 339, 341, 342, 343, 344, 345, 346, 347, 349, 354, 364, 365], "show": [0, 18, 19, 29, 273, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 359, 360, 362, 363, 365], "abov": [0, 19, 33, 39, 46, 95, 195, 196, 197, 198, 199, 206, 238, 278, 280, 289, 295, 301, 306, 351], "procedur": [0, 1, 6, 7, 12, 29, 94, 96, 102, 130, 131, 132, 134, 136, 137, 138, 139, 141, 175, 176, 186, 188, 206, 207, 215, 216, 217, 218, 219, 220, 236, 244, 245, 246, 247, 260, 278, 285, 289, 291, 299, 330, 332, 333, 335, 341, 342, 343, 344, 345, 346, 347, 349, 351, 355, 359, 361, 362, 364], "repeat": [0, 3, 29, 102, 207, 236, 279, 285, 287, 289, 291, 294, 302, 311, 321, 323, 325, 326, 328, 330, 331, 332, 333, 334, 335, 337, 345, 352, 354, 361], "differ": [0, 2, 6, 14, 15, 17, 19, 23, 31, 42, 51, 53, 57, 62, 64, 65, 67, 76, 81, 83, 84, 87, 96, 102, 106, 107, 110, 119, 124, 126, 127, 162, 163, 164, 165, 167, 168, 190, 195, 197, 198, 200, 203, 206, 207, 209, 210, 226, 235, 236, 237, 239, 240, 241, 242, 249, 268, 275, 276, 278, 283, 284, 301, 306, 307, 310, 312, 318, 321, 323, 328, 329, 330, 331, 333, 334, 335, 338, 340, 341, 342, 343, 344, 345, 347, 349, 352, 353, 355, 361, 365], "order": [0, 2, 24, 26, 39, 42, 46, 48, 49, 51, 53, 58, 60, 67, 71, 72, 77, 79, 85, 86, 87, 88, 94, 98, 99, 101, 102, 110, 114, 115, 120, 122, 131, 137, 144, 147, 170, 171, 173, 174, 175, 176, 182, 204, 207, 208, 209, 211, 214, 216, 219, 227, 258, 259, 262, 264, 266, 269, 271, 275, 276, 281, 294, 301, 327, 337, 341, 343, 344, 347, 365], "analys": 0, "v": [0, 12, 29, 244, 284, 285, 288, 289, 291, 294, 302, 305, 306, 308, 310, 311, 318, 321, 329, 330, 331, 332, 333, 335, 337, 338, 340, 352, 353, 354, 355, 359, 360, 361, 362], "snrdb": [0, 280, 281, 301, 311, 322, 323, 325, 326, 328, 329, 338, 339, 340, 352, 353, 354, 365], "linspac": [0, 301, 302, 305, 311, 318, 322, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 351, 352, 353, 354, 365], "25": [0, 10, 15, 18, 19, 55, 74, 117, 142, 145, 146, 189, 202, 250, 255, 256, 267, 301, 302, 304, 307, 309, 311, 312, 314, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 339, 340, 341, 342, 345, 347, 349, 351, 352, 354, 365], "10": [0, 2, 6, 14, 15, 18, 19, 24, 25, 29, 39, 42, 46, 49, 51, 53, 67, 72, 85, 87, 88, 90, 91, 94, 96, 99, 101, 102, 103, 104, 110, 115, 130, 131, 132, 136, 137, 138, 144, 145, 147, 171, 174, 181, 182, 184, 189, 196, 198, 199, 204, 205, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 245, 246, 247, 248, 249, 251, 254, 259, 262, 263, 264, 265, 266, 267, 269, 270, 271, 272, 273, 278, 279, 280, 281, 284, 285, 287, 288, 289, 291, 294, 301, 302, 303, 304, 305, 306, 307, 308, 310, 311, 312, 314, 318, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 362, 365], "modord": [0, 11, 23, 24, 44, 48, 49, 60, 69, 71, 72, 79, 85, 86, 88, 98, 99, 100, 101, 102, 112, 114, 115, 122, 143, 144, 147, 149, 170, 171, 173, 174, 175, 176, 182, 186, 207, 208, 209, 258, 259, 271, 294, 301, 311, 325, 326, 336, 339, 354, 365], "arrai": [0, 1, 3, 4, 5, 7, 8, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 25, 26, 27, 28, 29, 34, 35, 36, 37, 39, 44, 46, 49, 55, 57, 58, 59, 62, 64, 65, 69, 72, 74, 76, 77, 78, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 99, 102, 106, 107, 112, 115, 117, 119, 120, 121, 124, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 171, 174, 181, 182, 184, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 230, 231, 235, 236, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 264, 266, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 287, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 339, 350, 351, 352, 353, 354, 355, 361, 365], "dtype": [0, 3, 4, 6, 10, 12, 14, 18, 19, 29, 48, 49, 55, 60, 71, 72, 74, 79, 91, 96, 98, 99, 108, 114, 115, 117, 122, 142, 146, 170, 171, 173, 174, 182, 227, 236, 249, 258, 259, 278, 285, 287, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 311, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 339, 342, 345, 346, 347, 351, 352, 354, 365], "int32": [0, 12, 289, 294, 302, 332, 333, 335, 336, 338, 352, 365], "zero": [0, 6, 7, 8, 9, 11, 12, 14, 18, 19, 29, 44, 57, 69, 76, 93, 96, 102, 112, 119, 138, 143, 148, 152, 159, 193, 195, 203, 205, 207, 210, 217, 218, 219, 220, 238, 247, 269, 270, 271, 278, 285, 287, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 351, 352, 353, 354, 365], "j": [0, 33, 199, 284, 301, 318, 336, 365], "m": [0, 5, 6, 14, 17, 18, 96, 196, 198, 206, 244, 245, 252, 253, 254, 265, 302, 304, 305, 306, 307, 308, 311, 318, 321, 322, 323, 325, 326, 328, 330, 331, 332, 333, 334, 335, 341, 342, 343, 344, 345, 346, 347, 348, 352, 361, 364, 365], "int": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 91, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 193, 195, 196, 198, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 264, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 280, 285, 287, 288, 289, 291, 294, 301, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 323, 326, 327, 328, 330, 331, 334, 336, 337, 339, 345, 351, 352, 353, 365], "float32": [0, 6, 7, 8, 10, 11, 12, 14, 44, 48, 49, 55, 60, 69, 71, 72, 74, 79, 88, 92, 93, 96, 98, 99, 102, 108, 112, 114, 115, 117, 122, 142, 143, 146, 148, 149, 170, 171, 173, 174, 181, 182, 207, 258, 259, 285, 301, 318, 322, 326, 327, 329, 334, 338, 339, 342, 345, 346, 347, 352, 365], "For": [0, 6, 14, 15, 18, 19, 29, 32, 35, 37, 39, 46, 49, 64, 65, 72, 83, 84, 87, 94, 95, 96, 99, 103, 104, 106, 107, 115, 126, 127, 145, 162, 163, 165, 167, 168, 171, 174, 184, 196, 197, 198, 199, 202, 203, 204, 205, 206, 227, 228, 229, 231, 236, 238, 239, 240, 242, 249, 254, 259, 262, 265, 266, 267, 268, 269, 270, 273, 275, 276, 278, 280, 294, 295, 301, 304, 305, 307, 308, 309, 311, 312, 318, 322, 325, 326, 328, 329, 338, 339, 342, 345, 346, 347, 349, 354, 355, 359, 360, 361, 362, 363, 365], "arang": [0, 14, 29, 273, 278, 285, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 335, 336, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 354, 365], "semilogi": [0, 301, 311, 318, 322, 323, 325, 326, 329, 338, 339, 340, 352, 353, 354, 365], "db": [0, 14, 18, 19, 281, 285, 287, 288, 289, 291, 294, 302, 311, 312, 314, 318, 321, 322, 323, 325, 326, 327, 329, 338, 339, 340, 342, 345, 346, 348, 349, 352, 353, 354, 365], "set_xtick": [0, 301, 302, 304, 305, 306, 307, 308, 309, 311, 318, 322, 323, 327, 328, 330, 331, 332, 333, 334, 335, 337, 346, 352, 354, 365], "minor": [0, 285, 287, 289, 291, 294, 302, 305, 311, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 342, 349, 351, 352, 354, 365], "fals": [0, 3, 5, 6, 10, 11, 12, 15, 17, 18, 19, 21, 22, 27, 44, 48, 55, 60, 69, 71, 74, 79, 86, 87, 88, 90, 96, 98, 102, 112, 114, 117, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 149, 170, 173, 181, 182, 184, 207, 209, 215, 216, 217, 218, 219, 220, 227, 237, 238, 246, 247, 258, 269, 271, 278, 279, 281, 285, 287, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 342, 345, 346, 348, 349, 351, 352, 353, 354, 365], "legend": [0, 206, 273, 285, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 318, 322, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352, 353, 354, 365], "qpsk": [0, 58, 77, 85, 86, 120, 184, 185, 211, 289, 291, 294, 323, 328, 338, 339, 351, 365], "16qam": [0, 365], "64qam": [0, 365], "download": [0, 285, 287, 288, 289, 291, 294, 295, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 359, 360, 362, 363, 365], "find": [0, 22, 39, 46, 184, 196, 204, 236, 252, 253, 262, 266, 304, 336, 348, 351, 359, 360, 362, 365], "advanc": [0, 198, 268, 275, 276, 332, 334, 349], "thank": [0, 330, 331, 334], "read": [0, 26, 202, 204, 205, 227, 238, 269, 270, 273, 275, 276, 330, 331, 334], "feel": [0, 361], "free": [0, 3, 29, 361], "contact": [0, 295, 361], "assist": [0, 280, 295, 355, 364], "post": [0, 6, 21, 96, 280, 356, 357, 361], "question": [0, 361], "discuss": [0, 1, 8, 10, 55, 74, 93, 117, 142, 146, 149, 195, 200, 205, 214, 262, 266, 301, 336, 361], "forum": [0, 361], "answer": [0, 361], "soon": [0, 269, 361], "wide": [1, 336], "rang": [1, 6, 14, 18, 19, 29, 39, 46, 96, 132, 134, 138, 139, 184, 217, 220, 236, 238, 246, 247, 248, 249, 251, 262, 266, 267, 280, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 342, 345, 347, 351, 352, 354], "usecas": 1, "featur": [1, 14, 19, 186, 243, 280, 312, 341, 342, 343, 344, 349], "them": [1, 6, 40, 87, 96, 204, 206, 275, 276, 363, 365], "captur": [1, 18, 19, 276, 278, 281, 294, 311, 312, 325, 326, 335, 354], "via": [1, 12, 102, 193, 203, 207, 294, 311, 312, 325, 326, 354, 364], "gener": [1, 2, 3, 4, 9, 10, 12, 14, 16, 19, 29, 32, 34, 35, 36, 37, 42, 45, 48, 49, 51, 53, 55, 60, 62, 64, 65, 67, 71, 72, 74, 79, 81, 83, 84, 85, 86, 87, 88, 89, 91, 98, 99, 102, 103, 104, 106, 107, 108, 110, 114, 115, 117, 122, 124, 126, 127, 129, 130, 131, 134, 135, 136, 137, 139, 142, 146, 148, 149, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 180, 182, 184, 185, 189, 190, 196, 198, 209, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 236, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 272, 275, 276, 286, 290, 292, 293, 295, 299, 313, 318, 321, 322, 328, 329, 336, 338, 339, 349, 350, 353, 355, 361, 364], "all": [1, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 23, 27, 31, 39, 44, 46, 55, 65, 69, 74, 84, 85, 92, 93, 96, 103, 104, 107, 112, 117, 127, 142, 143, 146, 148, 149, 162, 168, 185, 195, 196, 197, 198, 199, 202, 214, 228, 229, 235, 236, 237, 238, 239, 243, 244, 249, 250, 253, 256, 267, 269, 273, 278, 279, 280, 281, 283, 285, 295, 298, 299, 301, 302, 308, 313, 318, 321, 330, 331, 338, 341, 342, 343, 344, 345, 346, 347, 351, 355, 359, 360, 361, 362, 363, 364, 365], "varieti": [1, 361], "channel": [1, 4, 6, 8, 11, 12, 13, 17, 19, 23, 28, 29, 31, 32, 38, 39, 44, 46, 48, 49, 57, 60, 62, 64, 65, 69, 71, 72, 76, 79, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 96, 98, 99, 101, 102, 106, 107, 112, 114, 115, 119, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 143, 148, 149, 150, 151, 152, 154, 155, 156, 157, 159, 160, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 179, 180, 181, 182, 193, 195, 202, 203, 204, 205, 207, 208, 210, 213, 214, 215, 216, 217, 218, 219, 220, 226, 227, 231, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 262, 263, 264, 265, 266, 268, 272, 277, 278, 279, 280, 281, 283, 284, 289, 292, 294, 295, 296, 299, 301, 304, 305, 306, 307, 308, 309, 313, 321, 322, 329, 339, 348, 353, 355, 356, 361, 364], "state": [1, 6, 18, 19, 48, 49, 60, 71, 72, 79, 96, 98, 99, 114, 115, 122, 170, 171, 173, 174, 195, 202, 203, 204, 205, 226, 243, 258, 259, 260, 265, 275, 276, 280, 281, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354, 361], "acquisit": [1, 243, 254], "posit": [1, 6, 12, 14, 15, 17, 18, 19, 29, 34, 35, 36, 37, 39, 46, 57, 76, 88, 94, 96, 102, 119, 130, 131, 132, 134, 136, 137, 138, 139, 152, 159, 181, 182, 184, 192, 193, 194, 195, 200, 202, 203, 204, 205, 207, 209, 210, 215, 216, 217, 218, 219, 220, 226, 227, 228, 230, 236, 238, 243, 244, 245, 246, 247, 248, 249, 250, 254, 262, 264, 265, 266, 269, 270, 275, 277, 278, 279, 284, 296, 299, 318, 321, 345, 346, 351, 355, 361, 364], "etc": [1, 6, 16, 87, 96, 193, 195, 202, 203, 204, 205, 243, 264, 267, 282, 283, 309], "resourc": [1, 24, 29, 32, 33, 34, 35, 36, 37, 39, 46, 57, 76, 85, 86, 87, 88, 89, 90, 91, 94, 101, 102, 103, 104, 119, 129, 132, 134, 135, 138, 139, 179, 180, 181, 182, 184, 186, 189, 207, 208, 210, 217, 220, 221, 222, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 243, 244, 245, 246, 247, 251, 254, 260, 262, 264, 265, 266, 267, 270, 271, 273, 275, 276, 278, 279, 281, 283, 285, 287, 288, 289, 291, 293, 295, 296, 299, 301, 302, 311, 312, 323, 325, 326, 332, 333, 334, 335, 349, 352, 353, 354, 355, 361, 364], "map": [1, 24, 29, 34, 36, 37, 47, 48, 60, 70, 71, 79, 85, 86, 95, 97, 98, 101, 103, 104, 113, 114, 122, 129, 134, 135, 141, 150, 170, 171, 172, 173, 175, 176, 179, 181, 182, 184, 185, 186, 188, 189, 208, 217, 221, 222, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 243, 244, 245, 258, 259, 263, 264, 266, 270, 271, 285, 287, 289, 291, 294, 296, 311, 312, 318, 321, 322, 323, 325, 326, 328, 329, 330, 331, 336, 353, 354, 355, 361, 364, 365], "variou": [1, 10, 12, 55, 74, 117, 142, 146, 243, 254, 260, 268, 270, 275, 276, 277, 283, 295, 312, 323, 329, 334, 335, 336], "physic": [1, 2, 4, 6, 7, 8, 10, 11, 12, 29, 33, 38, 39, 42, 44, 46, 49, 51, 53, 55, 62, 64, 65, 67, 69, 72, 74, 81, 83, 84, 89, 91, 92, 93, 94, 95, 96, 99, 106, 107, 110, 112, 115, 117, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 145, 146, 148, 149, 162, 163, 164, 165, 167, 168, 169, 171, 174, 179, 180, 181, 182, 215, 216, 217, 218, 219, 220, 226, 227, 228, 231, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 269, 270, 271, 272, 273, 274, 278, 280, 283, 289, 291, 294, 296, 301, 304, 305, 306, 307, 308, 309, 311, 318, 325, 326, 338, 342, 351, 353, 355, 361, 364], "payload": [1, 2, 3, 6, 10, 11, 12, 25, 38, 42, 44, 51, 53, 55, 57, 62, 64, 65, 67, 69, 74, 76, 81, 83, 84, 86, 95, 96, 102, 106, 107, 110, 112, 117, 119, 124, 126, 127, 142, 143, 144, 145, 146, 147, 148, 163, 164, 165, 167, 168, 175, 176, 184, 185, 188, 189, 207, 210, 226, 227, 230, 232, 234, 235, 237, 240, 241, 242, 262, 266, 272, 289, 291, 318, 322, 323, 326, 328, 329, 338, 339, 355, 361], "frequenc": [1, 14, 15, 16, 18, 19, 21, 22, 24, 29, 32, 33, 38, 39, 46, 57, 76, 86, 94, 101, 102, 119, 130, 131, 132, 134, 136, 137, 138, 139, 184, 196, 202, 203, 204, 205, 207, 208, 210, 215, 216, 217, 218, 219, 220, 227, 228, 230, 233, 238, 243, 246, 247, 249, 252, 253, 255, 256, 260, 262, 265, 266, 269, 270, 271, 272, 273, 275, 276, 277, 279, 281, 283, 286, 289, 291, 294, 295, 299, 302, 311, 312, 323, 325, 326, 328, 330, 331, 332, 333, 334, 335, 336, 337, 345, 346, 348, 349, 350, 351, 353, 354, 355, 361, 364], "ofdm": [1, 15, 18, 22, 24, 31, 34, 35, 36, 37, 86, 101, 102, 130, 131, 132, 136, 137, 138, 139, 186, 189, 193, 195, 202, 203, 204, 205, 207, 208, 215, 216, 218, 219, 220, 226, 227, 228, 230, 231, 234, 235, 236, 237, 243, 246, 247, 248, 249, 251, 254, 260, 267, 268, 269, 270, 271, 273, 275, 278, 279, 281, 285, 287, 288, 290, 292, 294, 295, 296, 301, 302, 311, 312, 323, 325, 326, 328, 332, 333, 335, 337, 350, 353, 354, 355, 361, 364], "uplink": [1, 6, 10, 11, 23, 26, 44, 55, 65, 69, 74, 84, 95, 96, 107, 112, 117, 127, 132, 142, 143, 145, 146, 162, 168, 180, 181, 182, 183, 206, 226, 239, 244, 246, 249, 254, 265, 277, 321, 351, 355, 361, 364], "downlink": [1, 6, 10, 11, 12, 15, 23, 27, 29, 40, 44, 55, 58, 65, 69, 74, 77, 84, 85, 86, 87, 88, 89, 95, 96, 102, 107, 112, 117, 120, 127, 142, 143, 146, 162, 168, 180, 183, 191, 206, 207, 211, 226, 231, 234, 236, 239, 248, 249, 251, 260, 261, 263, 264, 265, 270, 271, 272, 274, 277, 278, 286, 290, 295, 301, 304, 305, 306, 307, 308, 309, 321, 338, 351, 352, 355, 361, 364], "control": [1, 2, 10, 11, 12, 39, 40, 42, 44, 46, 51, 53, 55, 57, 58, 67, 69, 74, 76, 77, 102, 103, 104, 110, 112, 117, 119, 120, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 152, 159, 183, 184, 186, 191, 207, 210, 211, 214, 215, 216, 217, 218, 219, 220, 226, 229, 233, 236, 243, 244, 245, 246, 247, 249, 260, 262, 266, 270, 275, 278, 280, 281, 283, 285, 296, 304, 305, 306, 307, 308, 309, 328, 329, 338, 351, 352, 353, 355, 361, 364, 365], "share": [1, 2, 6, 42, 51, 53, 67, 85, 86, 87, 88, 89, 95, 96, 110, 180, 181, 182, 183, 226, 234, 238, 243, 249, 260, 262, 263, 264, 266, 271, 279, 296, 301, 339, 352, 355, 359, 361, 362, 363, 364], "broadcast": [1, 10, 39, 46, 55, 58, 62, 74, 77, 81, 117, 120, 124, 142, 146, 164, 183, 211, 241, 243, 249, 262, 266, 269, 272, 296, 338, 351, 355, 361, 364], "mib": [1, 25, 40, 45, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 240, 242, 262, 266, 285, 287, 289, 291, 294, 338, 351, 355, 361], "dci": [1, 40, 62, 81, 102, 124, 164, 185, 207, 227, 236, 241, 278, 283, 328, 338, 352, 361], "forward": [1, 6, 7, 12, 20, 22, 93, 96, 149, 153, 154, 155, 156, 158, 159, 214, 338, 339, 361, 364], "error": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 20, 21, 22, 24, 25, 26, 27, 28, 34, 35, 36, 37, 39, 42, 44, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 110, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 142, 143, 146, 148, 149, 152, 153, 154, 155, 156, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 184, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 214, 228, 229, 230, 231, 232, 233, 235, 237, 238, 240, 241, 242, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 279, 280, 281, 283, 294, 311, 312, 321, 322, 323, 325, 326, 329, 338, 339, 340, 351, 353, 354, 355, 359, 360, 361, 362, 364], "correct": [1, 5, 6, 7, 10, 11, 12, 20, 22, 44, 55, 69, 74, 93, 96, 101, 112, 117, 142, 143, 146, 149, 153, 154, 155, 156, 158, 159, 208, 214, 294, 312, 322, 323, 338, 339, 361, 364, 365], "polar": [1, 6, 11, 13, 14, 18, 23, 26, 27, 28, 29, 44, 56, 64, 69, 75, 83, 96, 106, 112, 118, 126, 141, 143, 145, 148, 149, 150, 156, 157, 163, 167, 176, 179, 183, 184, 185, 188, 189, 214, 240, 302, 311, 312, 321, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 361, 364], "codec": [1, 8, 9, 12, 23, 26, 28, 54, 58, 59, 73, 77, 78, 88, 93, 102, 116, 120, 121, 149, 153, 154, 158, 184, 185, 186, 188, 189, 207, 211, 212, 214, 339], "ldpc": [1, 7, 8, 11, 23, 24, 44, 69, 87, 88, 92, 93, 94, 100, 112, 143, 148, 181, 182, 186, 214, 264, 301, 321, 340, 355, 361, 364], "reed": [1, 5, 13, 321, 338, 339, 355, 361, 364], "muller": [1, 5, 13, 321, 338, 339, 355, 361, 364], "rate": [1, 6, 7, 8, 9, 10, 11, 12, 24, 26, 27, 28, 44, 55, 57, 58, 59, 69, 74, 76, 77, 78, 87, 88, 90, 91, 92, 93, 94, 95, 96, 101, 112, 117, 119, 120, 121, 141, 142, 143, 145, 146, 148, 149, 150, 152, 153, 154, 158, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 196, 198, 206, 207, 208, 210, 211, 212, 260, 264, 267, 271, 280, 281, 282, 283, 285, 287, 288, 289, 291, 294, 296, 311, 321, 322, 323, 325, 326, 329, 338, 340, 353, 354, 355, 361, 364, 365], "match": [1, 6, 7, 8, 10, 11, 19, 24, 39, 44, 46, 55, 57, 69, 74, 76, 85, 87, 88, 90, 91, 92, 93, 95, 96, 101, 112, 117, 119, 141, 142, 143, 145, 146, 148, 149, 150, 152, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 199, 206, 207, 208, 210, 238, 263, 264, 271, 280, 281, 296, 301, 318, 322, 338, 339, 361, 364], "interleav": [1, 8, 10, 92, 95, 100, 102, 141, 142, 150, 155, 157, 160, 181, 182, 183, 184, 185, 186, 188, 189, 207, 209, 213, 214, 227, 230, 270, 296, 323, 328, 339, 361, 364], "present": [1, 236, 351], "deinterleav": [1, 10, 23, 43, 68, 111, 142, 181, 184, 185, 188, 189, 339], "avail": [1, 10, 17, 55, 74, 87, 88, 94, 117, 131, 132, 137, 138, 142, 146, 181, 182, 202, 203, 205, 216, 219, 227, 236, 244, 245, 246, 247, 264, 267, 270, 278, 279, 281, 283, 285, 295, 301, 304, 305, 306, 307, 308, 309, 330, 331, 334, 336, 361, 365], "chain": [1, 2, 8, 10, 23, 25, 27, 40, 42, 51, 53, 55, 62, 65, 67, 74, 81, 84, 92, 107, 110, 117, 124, 127, 141, 142, 146, 148, 162, 164, 168, 179, 183, 184, 185, 186, 189, 196, 214, 239, 241, 260, 264, 291, 294, 301, 325, 326, 328, 351, 352, 361, 364], "orthogon": [1, 134, 139, 203, 204, 217, 218, 219, 220, 228, 254, 299, 336, 361], "divis": [1, 228, 336, 361], "multiplex": [1, 139, 220, 228, 234, 281, 336, 361], "demodul": [1, 7, 31, 34, 35, 36, 37, 48, 60, 71, 79, 87, 88, 92, 94, 98, 103, 104, 114, 122, 170, 173, 175, 181, 189, 229, 230, 232, 233, 234, 235, 237, 243, 258, 268, 271, 289, 292, 294, 295, 296, 301, 355, 361], "process": [1, 5, 6, 9, 10, 12, 21, 22, 40, 43, 49, 57, 62, 64, 65, 68, 72, 76, 81, 83, 84, 85, 86, 87, 88, 89, 93, 94, 95, 96, 99, 106, 107, 111, 115, 119, 124, 126, 127, 141, 142, 149, 152, 159, 162, 163, 164, 167, 168, 169, 174, 175, 176, 180, 181, 182, 183, 184, 185, 186, 188, 189, 210, 239, 240, 241, 257, 264, 268, 269, 270, 271, 275, 276, 277, 279, 280, 285, 294, 295, 312, 323, 325, 326, 332, 334, 335, 337, 339, 349, 355, 359, 360, 361, 362, 363], "pass": [1, 3, 4, 6, 7, 8, 10, 11, 14, 15, 17, 18, 19, 21, 22, 26, 27, 28, 29, 40, 44, 48, 49, 55, 58, 59, 60, 64, 65, 69, 71, 72, 74, 77, 78, 79, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 102, 103, 104, 106, 107, 112, 114, 115, 117, 120, 121, 122, 126, 127, 134, 142, 143, 146, 149, 153, 154, 158, 163, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 198, 206, 209, 211, 212, 217, 228, 229, 231, 236, 238, 240, 242, 244, 245, 248, 250, 251, 252, 253, 256, 258, 259, 260, 264, 267, 269, 270, 280, 294, 302, 313, 321, 325, 326, 329, 332, 333, 335, 338, 339, 342, 345, 346, 349, 353, 355, 361, 365], "though": [1, 22, 325, 326], "domain": [1, 15, 16, 22, 32, 33, 39, 46, 184, 202, 203, 204, 205, 227, 230, 231, 238, 262, 265, 266, 268, 269, 270, 273, 275, 276, 286, 288, 289, 291, 294, 295, 299, 312, 323, 328, 350, 351, 353, 355, 361], "symbol": [1, 4, 7, 24, 31, 32, 33, 34, 35, 36, 37, 38, 47, 48, 60, 64, 70, 71, 79, 83, 85, 86, 87, 88, 90, 91, 92, 94, 95, 97, 98, 101, 103, 104, 106, 113, 114, 122, 126, 130, 131, 132, 134, 136, 137, 138, 139, 141, 150, 163, 167, 170, 171, 172, 173, 175, 176, 179, 181, 182, 184, 185, 186, 188, 189, 208, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 238, 240, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 258, 259, 264, 265, 267, 268, 273, 275, 277, 278, 279, 280, 285, 287, 289, 292, 294, 295, 296, 298, 311, 318, 321, 322, 323, 326, 327, 328, 329, 330, 331, 332, 334, 336, 337, 342, 349, 352, 353, 354, 355, 361, 364], "demap": [1, 6, 48, 60, 71, 79, 86, 95, 96, 98, 114, 122, 170, 173, 181, 184, 185, 188, 258, 294, 318, 321, 322, 326, 329, 332, 338, 339, 361, 364], "bit": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 20, 22, 23, 25, 26, 28, 38, 39, 40, 42, 46, 48, 49, 51, 53, 55, 58, 59, 60, 62, 64, 65, 67, 71, 72, 74, 77, 78, 79, 81, 83, 84, 85, 86, 88, 91, 92, 93, 95, 96, 98, 99, 100, 106, 107, 108, 110, 114, 115, 117, 120, 121, 122, 124, 126, 127, 141, 142, 145, 146, 148, 149, 150, 153, 154, 155, 156, 157, 158, 160, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 181, 182, 183, 184, 185, 186, 188, 189, 209, 211, 212, 213, 214, 221, 227, 230, 235, 236, 237, 238, 239, 240, 241, 242, 249, 257, 258, 259, 262, 266, 270, 271, 272, 294, 311, 314, 318, 321, 322, 323, 325, 326, 328, 329, 336, 338, 339, 340, 351, 352, 353, 354, 359, 360, 361, 362], "recov": [1, 10, 11, 32, 34, 35, 36, 37, 44, 49, 55, 65, 69, 72, 74, 84, 99, 102, 107, 112, 115, 117, 127, 142, 143, 146, 162, 168, 169, 174, 184, 207, 239, 257, 269, 270, 323], "scrambl": [1, 62, 64, 81, 83, 85, 86, 106, 124, 126, 141, 150, 163, 164, 165, 167, 175, 176, 179, 183, 184, 185, 186, 188, 189, 240, 241, 242, 248, 249, 323, 361], "complaint": [1, 6, 10, 11, 12, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146, 149, 267, 361, 364], "scrambler": [1, 62, 63, 64, 81, 82, 83, 105, 106, 124, 125, 126, 141, 150, 162, 163, 164, 166, 167, 179, 184, 185, 186, 188, 189, 239, 240, 241, 294, 296, 326, 361, 364], "descrambl": [1, 48, 60, 63, 65, 71, 79, 82, 84, 86, 98, 105, 107, 114, 122, 125, 127, 141, 150, 162, 166, 168, 170, 173, 175, 179, 184, 185, 186, 188, 189, 239, 258, 294, 326, 361], "undo": [1, 11, 26, 27, 28, 35, 44, 58, 59, 64, 65, 69, 77, 78, 83, 84, 106, 107, 112, 120, 121, 126, 127, 143, 153, 154, 158, 162, 163, 167, 168, 211, 212, 239, 240], "encod": [1, 2, 3, 5, 7, 8, 9, 11, 25, 27, 28, 39, 44, 46, 54, 57, 59, 69, 73, 76, 78, 85, 87, 88, 93, 102, 112, 116, 119, 121, 143, 145, 148, 149, 152, 159, 181, 182, 184, 185, 186, 188, 189, 207, 209, 210, 212, 213, 262, 264, 266, 289, 314, 318, 322, 329, 338, 339, 361], "polynomi": [1, 2, 3, 4, 42, 51, 53, 67, 110, 269, 275, 276], "algorithm": [1, 5, 29, 144, 145, 147, 175, 176, 181, 182, 196, 197, 198, 204, 205, 206, 227, 268, 275, 276, 279, 299, 312, 318, 332, 334, 349, 361], "delai": [1, 16, 18, 19, 27, 192, 193, 194, 198, 202, 203, 204, 206, 231, 243, 283, 302, 312, 323, 330, 331, 332, 333, 334, 341, 343, 344, 345, 346, 347, 350, 355, 361], "estim": [1, 5, 6, 10, 11, 12, 29, 32, 44, 48, 49, 55, 60, 69, 71, 72, 74, 79, 86, 88, 96, 98, 99, 112, 114, 115, 117, 122, 142, 143, 146, 149, 169, 170, 173, 174, 175, 181, 189, 192, 200, 202, 243, 248, 249, 251, 257, 258, 273, 274, 277, 280, 281, 284, 285, 289, 292, 294, 295, 299, 301, 318, 321, 349, 350, 352, 355, 361, 364], "primari": [1, 235, 237, 243, 273, 275, 276, 279, 285, 289, 291, 355, 361], "synchron": [1, 38, 39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 203, 204, 226, 240, 242, 243, 249, 262, 266, 268, 269, 272, 274, 277, 290, 293, 295, 296, 321, 327, 332, 355, 361, 364], "pss": [1, 235, 237, 243, 250, 252, 255, 256, 268, 277, 290, 292, 293, 295, 302, 327, 334, 335, 352, 355, 361, 364], "secondari": [1, 235, 237, 243, 249, 289, 291, 327, 355, 361], "sss": [1, 38, 235, 237, 243, 248, 249, 250, 251, 254, 255, 273, 277, 285, 287, 288, 289, 291, 294, 327, 352, 355, 361, 364], "refer": [1, 4, 6, 8, 10, 11, 12, 15, 18, 19, 23, 29, 38, 39, 44, 46, 48, 55, 60, 62, 65, 69, 71, 74, 79, 81, 84, 87, 88, 93, 94, 96, 98, 102, 103, 104, 107, 112, 114, 117, 122, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 149, 164, 165, 168, 170, 173, 175, 181, 182, 184, 185, 186, 188, 189, 196, 197, 198, 199, 206, 207, 209, 215, 216, 217, 218, 219, 220, 226, 227, 229, 230, 232, 233, 234, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 250, 252, 253, 255, 256, 258, 260, 264, 268, 269, 270, 271, 275, 276, 278, 280, 281, 289, 291, 296, 310, 313, 321, 325, 326, 332, 333, 335, 337, 342, 349, 355, 361, 364], "dmr": [1, 39, 46, 64, 65, 83, 84, 85, 87, 88, 90, 94, 102, 106, 107, 126, 127, 163, 165, 167, 168, 181, 182, 183, 184, 185, 186, 189, 207, 226, 230, 232, 233, 234, 235, 237, 240, 242, 243, 260, 262, 263, 264, 266, 269, 271, 272, 285, 287, 288, 289, 291, 294, 299, 301, 323, 327, 328, 352, 355, 361, 364], "pr": [1, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 206, 226, 243, 248, 258, 259, 330, 331, 333, 334, 351, 361, 364], "csi": [1, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 193, 195, 202, 205, 226, 231, 243, 254, 258, 259, 260, 276, 277, 280, 281, 296, 299, 302, 321, 335, 355, 361, 364], "csir": [1, 248, 337], "sound": [1, 243, 260, 296, 332, 333, 335, 361, 364], "sr": [1, 132, 243, 244, 245, 246, 260, 277, 296, 299, 321, 353, 355, 361, 364], "pseudo": [1, 243, 361], "pn": [1, 243, 248, 249, 251, 341, 343, 344, 347, 361], "pnsequenc": [1, 250], "pucch": [1, 2, 10, 11, 26, 37, 42, 44, 51, 53, 55, 67, 69, 74, 110, 112, 117, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 146, 149, 163, 165, 167, 168, 183, 226, 236, 243, 296, 355, 361, 364], "format": [1, 8, 11, 37, 44, 48, 60, 62, 69, 71, 79, 81, 93, 98, 112, 114, 122, 124, 130, 131, 132, 134, 136, 137, 138, 139, 143, 149, 164, 170, 173, 175, 176, 179, 183, 190, 226, 236, 241, 243, 258, 278, 289, 330, 336, 355, 361, 365], "pucchformat0sequ": [1, 129, 132, 179, 215, 216, 246], "pucchformat1sequ": [1, 135, 138, 179, 217, 218, 219, 220, 247], "low": [1, 8, 10, 11, 13, 18, 19, 44, 55, 58, 69, 74, 77, 93, 102, 103, 104, 112, 117, 120, 130, 131, 132, 138, 142, 143, 146, 149, 183, 186, 196, 198, 204, 207, 211, 215, 216, 228, 229, 230, 231, 232, 233, 235, 237, 238, 243, 246, 247, 278, 279, 280, 294, 296, 301, 304, 307, 338, 341, 343, 344, 347, 349, 355, 361, 364], "papr": [1, 37, 103, 104, 130, 131, 132, 138, 215, 216, 228, 229, 230, 231, 232, 233, 235, 237, 238, 243, 246, 247, 296, 355, 361], "lowpaprsequencetype1": [1, 244, 245], "lowpaprsequencetype2": [1, 245], "sidelink": [1, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 183, 226, 240, 242, 249, 361, 364], "s_pss": [1, 253], "s_sss": [1, 255, 256], "block": [1, 5, 6, 8, 9, 10, 15, 23, 24, 27, 29, 35, 37, 38, 40, 43, 45, 55, 64, 65, 68, 74, 83, 84, 85, 86, 87, 88, 89, 90, 91, 95, 96, 101, 102, 103, 104, 106, 107, 111, 117, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 145, 146, 150, 155, 156, 157, 160, 163, 165, 167, 168, 175, 176, 179, 180, 181, 182, 183, 184, 185, 186, 188, 189, 199, 207, 208, 209, 213, 214, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 236, 240, 242, 244, 245, 246, 247, 249, 252, 253, 255, 256, 262, 264, 265, 266, 267, 272, 278, 279, 280, 283, 285, 287, 288, 289, 291, 294, 310, 311, 321, 322, 323, 325, 326, 327, 329, 330, 331, 334, 337, 338, 340, 351, 353, 354, 355, 356, 361, 363], "ssb": [1, 38, 39, 46, 65, 84, 85, 86, 107, 127, 162, 168, 184, 185, 188, 226, 239, 243, 249, 252, 253, 255, 256, 260, 267, 269, 273, 274, 277, 286, 288, 290, 293, 295, 321, 355, 361, 364], "ssb_grid": [1, 226, 235, 237, 269, 285, 287, 288, 289, 291, 294, 327, 351, 352], "resourcemapperssb": [1, 226, 238, 285, 287, 288, 289, 291, 294, 327, 351, 352], "resourcemapperdmrspdsch": [1, 103, 104, 186, 226, 229, 233], "ptr": [1, 35, 37, 87, 226, 299, 361], "resourcemapperptrspdsch": [1, 226, 233], "pdcch": [1, 2, 10, 11, 27, 39, 42, 44, 46, 51, 53, 55, 62, 64, 65, 67, 69, 74, 81, 83, 84, 102, 106, 107, 110, 112, 117, 124, 126, 127, 142, 143, 146, 149, 162, 163, 164, 165, 167, 168, 183, 184, 188, 189, 207, 226, 227, 232, 236, 239, 240, 241, 242, 243, 249, 262, 266, 277, 283, 296, 310, 321, 323, 338, 351, 352, 355, 361, 364], "resourcemappingpdcch": [1, 226, 230, 270, 323, 328], "coreset": [1, 39, 46, 184, 226, 227, 230, 236, 262, 266, 270, 278, 304, 305, 306, 307, 310, 321, 351, 355, 361], "search": [1, 5, 29, 39, 46, 184, 188, 226, 262, 266, 278, 280, 304, 305, 306, 307, 308, 309, 351, 355, 361], "space": [1, 14, 15, 29, 39, 46, 184, 193, 195, 202, 203, 204, 205, 226, 230, 231, 238, 262, 266, 267, 278, 280, 294, 299, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 323, 325, 326, 327, 330, 331, 332, 333, 334, 335, 336, 337, 341, 342, 343, 344, 351, 352, 354, 355, 361], "searchspaceset": [1, 226, 236, 328], "resourcemappercsir": [1, 226, 228, 231, 337], "resourcemapperpr": [1, 226, 231, 330, 331, 334], "sssb_grid": [1, 226, 235], "pscch": [1, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 183, 226, 240, 242, 243, 249, 361, 364], "resourcemappingpscch": [1, 226, 232], "pdsch": [1, 2, 6, 9, 29, 42, 51, 53, 64, 65, 67, 83, 84, 91, 94, 95, 96, 103, 104, 106, 107, 108, 110, 126, 127, 163, 165, 167, 168, 183, 189, 226, 229, 233, 240, 242, 243, 249, 260, 277, 280, 281, 295, 296, 299, 312, 313, 321, 325, 326, 337, 352, 355, 361, 364], "transmitt": [1, 2, 6, 7, 9, 10, 15, 16, 18, 22, 31, 33, 42, 43, 51, 53, 67, 68, 87, 89, 110, 111, 141, 142, 150, 175, 179, 180, 183, 196, 197, 198, 199, 205, 268, 271, 281, 286, 290, 292, 293, 295, 299, 301, 302, 313, 321, 325, 326, 332, 333, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 355, 361], "compon": [1, 54, 73, 116, 141, 179, 183, 204, 268, 283, 312, 351], "pbch": [1, 2, 10, 11, 23, 27, 38, 42, 44, 51, 53, 55, 64, 65, 67, 69, 74, 83, 84, 85, 86, 106, 107, 110, 112, 117, 126, 127, 142, 143, 146, 149, 162, 163, 165, 167, 168, 183, 185, 188, 235, 237, 238, 239, 240, 242, 243, 249, 260, 272, 277, 284, 285, 287, 288, 289, 292, 293, 295, 296, 327, 355, 361, 364], "pusch": [1, 2, 6, 9, 26, 35, 37, 42, 51, 53, 67, 87, 88, 94, 96, 110, 181, 182, 183, 236, 243, 264, 296, 299, 361, 364], "prach": [1, 65, 84, 107, 127, 162, 168, 183, 236, 239, 243, 296, 321, 361, 364], "psbch": [1, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 183, 235, 240, 242, 243, 249, 361, 364], "master": [1, 40, 45, 338, 351, 361], "extract": [1, 7, 8, 9, 40, 45, 88, 93, 181, 182, 184, 203, 277, 289, 292, 293, 295, 302, 311, 312, 325, 326, 332, 333, 334, 335, 351, 354, 355, 361], "dcigener": [1, 38, 40], "dciextract": [1, 38, 40], "ham": [1, 13, 321, 355, 361, 364], "coder": [1, 6, 7, 8, 9, 10, 11, 12, 13, 20, 22, 44, 48, 55, 56, 60, 64, 69, 71, 74, 75, 79, 83, 88, 93, 95, 96, 98, 106, 112, 114, 117, 118, 122, 126, 141, 142, 143, 146, 148, 150, 156, 157, 163, 167, 170, 173, 175, 176, 179, 183, 184, 185, 186, 188, 189, 214, 240, 258, 294, 301, 311, 325, 326, 340, 354, 355, 361], "sphere": [1, 322, 332], "syndrom": [1, 322], "densiti": [1, 8, 13, 19, 21, 93, 102, 103, 104, 183, 186, 204, 207, 228, 229, 231, 233, 261, 275, 276, 301, 318, 337, 341, 343, 344, 355, 361], "pariti": [1, 2, 3, 4, 5, 8, 13, 27, 42, 51, 53, 67, 93, 102, 108, 110, 183, 186, 207, 301, 322, 355, 361], "subcompon": [1, 186], "select": [1, 6, 7, 8, 24, 26, 29, 31, 39, 46, 59, 78, 87, 88, 92, 93, 94, 96, 100, 101, 103, 104, 121, 130, 131, 132, 134, 136, 137, 138, 139, 141, 150, 155, 157, 160, 181, 182, 184, 185, 186, 188, 189, 196, 198, 206, 208, 209, 212, 213, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 238, 246, 247, 260, 261, 262, 263, 264, 265, 266, 267, 271, 279, 280, 281, 283, 291, 294, 299, 302, 310, 312, 321, 323, 325, 326, 329, 332, 333, 335, 337, 339, 341, 342, 343, 344, 345, 347, 351, 352, 355, 361], "ratematchparamet": [1, 100, 102, 186, 209], "sub": [1, 8, 9, 15, 16, 18, 23, 29, 48, 60, 71, 79, 85, 87, 93, 98, 114, 122, 141, 149, 150, 155, 157, 160, 170, 173, 184, 185, 186, 188, 189, 199, 202, 205, 213, 214, 230, 236, 253, 258, 278, 301, 304, 305, 306, 307, 308, 309, 323, 326, 328, 332, 337, 361, 364], "de": [1, 6, 11, 23, 24, 25, 27, 28, 44, 56, 65, 69, 75, 84, 96, 100, 107, 112, 118, 127, 129, 135, 141, 143, 150, 153, 154, 157, 158, 160, 162, 168, 175, 179, 181, 184, 185, 186, 188, 189, 221, 222, 226, 234, 239, 329, 338, 339], "ofdmdemodul": [1, 31, 32, 285, 287, 288, 289, 291, 294, 327, 336, 351, 352], "ofdmmodul": [1, 31, 33, 285, 287, 288, 289, 291, 294, 327, 336, 351, 352], "transform": [1, 31, 32, 192, 202, 312, 351, 361], "transformprecod": [1, 31, 34, 36], "transformdecoding5g": [1, 31, 35, 336], "precod": [1, 29, 31, 34, 35, 186, 189, 243, 283, 299, 301, 311, 355, 361, 364], "transformprecoding5g": [1, 31, 35, 37, 336], "hardwar": [1, 6, 96, 297, 312, 339, 361], "impair": [1, 198, 269, 270, 361], "appli": [1, 10, 11, 18, 20, 21, 29, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 227, 238, 269, 270, 271, 312, 325, 326, 337, 361], "applychannel": [1, 22, 311, 312, 325, 326, 327, 331, 351, 352, 354], "cfo": [1, 20, 277, 294, 302, 327, 330, 331, 332, 333, 334, 335, 337, 351, 361], "rnti": [1, 63, 64, 65, 82, 83, 84, 85, 86, 105, 106, 107, 125, 126, 127, 150, 162, 163, 165, 166, 167, 168, 175, 176, 183, 184, 185, 186, 188, 189, 236, 239, 240, 242, 271, 278, 294, 304, 305, 306, 307, 308, 309, 311, 323, 325, 326, 328, 354, 361], "mask": [1, 65, 84, 107, 127, 162, 168, 183, 184, 185, 188, 239, 361], "rntimask": [1, 61, 62, 80, 81, 123, 124, 162, 164, 184, 185, 188, 239, 241], "antenna": [1, 15, 16, 18, 19, 29, 32, 193, 195, 196, 198, 254, 281, 283, 294, 301, 302, 311, 312, 314, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 350, 351, 352, 354, 355, 361, 364], "antennaarrai": [1, 14, 16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "element": [1, 15, 16, 17, 18, 19, 29, 87, 88, 90, 94, 131, 136, 137, 139, 181, 182, 189, 195, 216, 217, 218, 219, 220, 227, 228, 231, 233, 236, 264, 270, 274, 275, 278, 289, 291, 296, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "node": [1, 6, 15, 16, 18, 19, 96, 196, 197, 198, 199, 200, 206, 301, 327, 341, 343, 344, 349, 350, 352, 355, 361], "mobil": [1, 16, 19, 199, 269, 271, 275, 276, 280, 284, 285, 323, 327, 330, 331, 334, 341, 343, 344, 349, 350, 352, 355, 361, 364], "nodemobl": [1, 16, 17, 19, 327, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352], "simul": [1, 6, 10, 15, 16, 17, 18, 29, 39, 46, 55, 74, 96, 117, 142, 146, 184, 186, 189, 227, 236, 238, 243, 260, 262, 266, 267, 278, 293, 295, 310, 313, 318, 321, 350, 351, 355, 361, 364], "layout": [1, 16, 18, 302, 309, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 350, 351, 352, 354, 355, 361], "simulationlayout": [1, 16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "b": [1, 8, 15, 16, 18, 29, 32, 85, 93, 103, 104, 108, 186, 199, 206, 227, 229, 233, 234, 238, 250, 254, 261, 262, 263, 264, 265, 266, 271, 273, 278, 282, 284, 285, 286, 294, 295, 296, 301, 302, 304, 305, 306, 307, 309, 310, 311, 312, 321, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 341, 342, 343, 344, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 361, 364], "ue": [1, 15, 16, 17, 18, 29, 39, 46, 62, 81, 94, 124, 134, 164, 184, 188, 196, 197, 198, 199, 217, 227, 234, 236, 241, 250, 251, 252, 253, 254, 255, 256, 262, 266, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 282, 285, 286, 294, 295, 296, 304, 306, 310, 311, 312, 321, 323, 325, 326, 327, 337, 341, 342, 343, 344, 347, 348, 349, 350, 351, 352, 354, 355, 361], "drop": [1, 16, 18, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 347, 348, 351, 352, 354], "parametergener": [1, 16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 347, 348, 351, 352, 354], "channelgener": [1, 15, 16, 18, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 347, 348, 351, 352, 354], "mimo": [1, 22, 29, 37, 87, 88, 89, 94, 102, 180, 181, 182, 199, 207, 271, 275, 281, 283, 284, 296, 313, 321, 323, 328, 337, 341, 343, 344, 349, 355, 361, 364], "book": [1, 30, 130, 131, 132, 134, 136, 137, 138, 139, 361], "schedul": [1, 39, 46, 102, 207, 236, 254, 260, 262, 266, 270, 280, 281, 282, 299, 302, 310, 321, 323, 332, 333, 335, 353, 361], "pdcchschedul": [1, 278, 283, 304, 305, 306, 307, 308, 309], "link": [1, 15, 16, 18, 19, 186, 189, 197, 227, 236, 243, 281, 282, 283, 299, 301, 302, 304, 312, 313, 318, 321, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 353, 355, 359, 360, 361, 362, 363, 364], "adapt": [1, 227, 243, 275, 276, 283, 299, 301, 361, 364], "linkadapt": [1, 280, 283], "rank": [1, 6, 29, 39, 46, 85, 96, 102, 103, 104, 184, 207, 229, 233, 243, 262, 263, 264, 266, 271, 276, 280, 283, 294, 299, 311, 351, 354, 355, 361, 364], "rankadapt": [1, 280, 281, 283], "round": [1, 283, 330, 331, 361, 365], "robin": [1, 283, 361], "roundrobinschedul": [1, 279, 283], "carrier": [1, 14, 15, 18, 19, 21, 29, 39, 46, 87, 184, 186, 189, 202, 205, 230, 236, 238, 243, 249, 253, 255, 256, 262, 266, 267, 272, 277, 278, 291, 294, 299, 302, 304, 305, 306, 307, 308, 309, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 352, 354, 355, 361], "offset": [1, 21, 32, 33, 39, 46, 129, 130, 131, 132, 135, 136, 137, 138, 179, 184, 215, 216, 217, 218, 219, 220, 222, 230, 231, 233, 236, 238, 246, 247, 255, 256, 262, 265, 266, 267, 273, 277, 285, 287, 288, 291, 302, 309, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 353, 361], "carrierfrequencyoffsetestim": [1, 268, 277], "equal": [1, 2, 14, 19, 22, 34, 35, 36, 37, 42, 51, 53, 57, 64, 65, 67, 76, 83, 84, 86, 87, 88, 90, 94, 102, 106, 107, 110, 119, 126, 127, 130, 131, 132, 136, 137, 138, 139, 144, 147, 152, 159, 163, 165, 167, 168, 175, 181, 182, 185, 189, 193, 196, 197, 198, 206, 207, 210, 215, 216, 218, 219, 220, 227, 230, 231, 232, 235, 237, 238, 240, 242, 243, 246, 247, 255, 256, 266, 268, 277, 279, 289, 292, 294, 295, 301, 311, 312, 323, 325, 326, 327, 328, 331, 332, 333, 334, 335, 337, 345, 347, 349, 352, 354, 355, 361], "channelestimationandequalizationpbch": [1, 269, 277, 291, 294, 327, 351, 352], "channelestimationandequalizationpdcch": [1, 270, 277, 323, 328], "channelestimationandequalizationpdsch": [1, 271, 277, 294, 326], "dmrsparameterdetect": [1, 272, 277, 285, 287, 288, 289, 291, 294, 327, 351, 352], "cell": [1, 39, 46, 64, 65, 83, 84, 103, 104, 106, 107, 126, 127, 162, 163, 165, 167, 168, 184, 188, 196, 198, 199, 206, 229, 233, 235, 237, 239, 240, 242, 249, 250, 252, 253, 255, 256, 262, 266, 269, 272, 277, 278, 282, 283, 284, 285, 289, 291, 294, 302, 318, 323, 355, 361, 364], "id": [1, 39, 46, 63, 64, 65, 82, 83, 84, 85, 86, 87, 88, 90, 91, 102, 103, 104, 105, 106, 107, 125, 126, 127, 132, 138, 150, 162, 163, 165, 166, 167, 168, 181, 182, 184, 185, 186, 188, 189, 196, 207, 209, 215, 216, 217, 218, 219, 220, 229, 231, 233, 235, 236, 237, 239, 240, 242, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 269, 271, 272, 277, 278, 284, 285, 288, 289, 291, 294, 301, 304, 305, 306, 307, 308, 309, 323, 330, 331, 334, 353, 355, 361, 362], "detect": [1, 2, 3, 5, 6, 7, 10, 11, 42, 44, 51, 53, 55, 67, 69, 74, 93, 96, 110, 112, 117, 142, 143, 146, 234, 249, 255, 256, 269, 270, 271, 277, 285, 288, 289, 291, 294, 302, 318, 322, 334, 335, 355, 361], "pssdetect": [1, 272, 273, 277, 285, 287, 288, 289, 291, 294, 327, 351, 352], "sssdetect": [1, 272, 274, 277, 285, 287, 288, 289, 291, 294, 327, 351, 352], "channelestimationcsir": [1, 275, 277, 337], "channelestimationsr": [1, 276, 277, 302, 332, 333, 335], "positionestim": [1, 196, 197, 198, 199, 206, 302, 330, 331, 332, 333], "submodul": [1, 6, 96, 361], "arriv": [1, 16, 18, 19, 193, 197, 198, 199, 202, 203, 204, 206, 302, 312, 333, 334, 348, 349, 355, 361], "toa": [1, 18, 19, 196, 198, 200, 202, 206, 321, 355, 361, 364], "direct": [1, 14, 16, 17, 18, 19, 29, 88, 89, 180, 181, 182, 193, 196, 197, 206, 285, 330, 331, 334, 341, 342, 343, 344, 345, 346, 347, 349, 351, 355, 361, 364], "optim": [1, 10, 11, 44, 48, 55, 60, 69, 71, 74, 79, 98, 112, 114, 117, 122, 142, 143, 146, 149, 170, 173, 196, 197, 198, 199, 206, 258, 271, 275, 276, 279, 280, 281, 283, 285, 301, 302, 318, 323, 330, 331, 332, 333, 334, 335, 342, 361, 365], "csiconfigur": [1, 261, 337], "generatevalidssbparamet": [1, 262, 266, 285, 287, 288, 289, 291, 294, 327, 351, 352], "lower": [1, 17, 48, 49, 60, 71, 72, 79, 88, 89, 98, 99, 114, 115, 122, 169, 170, 173, 174, 180, 183, 186, 189, 196, 197, 198, 199, 206, 227, 257, 258, 260, 278, 280, 281, 282, 294, 301, 304, 306, 307, 311, 318, 325, 326, 327, 328, 329, 330, 331, 338, 339, 340, 341, 343, 344, 347, 351, 354, 361], "layer": [1, 6, 7, 8, 10, 11, 29, 32, 37, 39, 44, 46, 49, 55, 64, 65, 69, 72, 74, 83, 84, 89, 90, 91, 92, 93, 94, 96, 99, 102, 103, 104, 106, 107, 112, 115, 117, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 146, 148, 149, 163, 165, 167, 168, 169, 174, 179, 180, 181, 182, 183, 184, 186, 189, 207, 209, 215, 216, 217, 218, 219, 220, 227, 229, 230, 231, 233, 236, 240, 242, 244, 245, 246, 247, 249, 254, 256, 257, 260, 262, 266, 270, 271, 272, 274, 278, 281, 283, 294, 296, 301, 311, 314, 321, 325, 326, 354, 361, 364], "pdschlowerphyconfigur": [1, 263, 294, 311, 312, 325, 326, 354], "upper": [1, 8, 17, 89, 91, 92, 93, 141, 148, 149, 179, 180, 181, 182, 183, 186, 189, 260, 263, 270, 294, 301, 309, 311, 325, 326, 329, 353, 354, 361], "pdschupperphyconfigur": [1, 264, 294, 311, 312, 325, 326, 354], "srsconfigur": [1, 265], "ssbconfigur": [1, 266], "timefrequency5gparamet": [1, 267, 285, 287, 288, 289, 291, 294, 301, 327, 351, 352], "At": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 169, 174, 257, 318, 322, 329, 338, 339], "side": [2, 14, 16, 18, 19, 29, 33, 42, 51, 53, 58, 67, 77, 86, 87, 88, 110, 120, 186, 189, 193, 195, 211, 267, 282, 286, 294, 295, 299, 302, 311, 312, 323, 325, 326, 327, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352, 355, 361], "end": [2, 3, 4, 16, 42, 51, 53, 67, 87, 110, 188, 195, 295, 299, 314, 318, 361, 364], "comput": [2, 6, 7, 8, 10, 11, 15, 17, 18, 19, 24, 29, 32, 33, 42, 44, 48, 51, 53, 55, 60, 65, 67, 69, 71, 74, 79, 84, 87, 92, 93, 96, 98, 101, 102, 107, 110, 112, 114, 117, 122, 127, 142, 143, 146, 149, 162, 168, 170, 173, 182, 183, 186, 189, 195, 198, 202, 203, 204, 205, 206, 207, 208, 233, 239, 244, 245, 248, 249, 250, 251, 254, 255, 258, 267, 275, 278, 280, 281, 289, 291, 294, 301, 302, 304, 310, 311, 312, 318, 321, 325, 326, 329, 330, 331, 332, 333, 335, 338, 339, 349, 350, 353, 354, 355, 361], "whose": [2, 10, 11, 39, 42, 44, 46, 51, 53, 55, 58, 67, 69, 74, 77, 85, 103, 104, 110, 112, 117, 120, 142, 143, 146, 205, 206, 211, 227, 228, 229, 230, 235, 237, 266, 270], "3gpp": [2, 4, 6, 8, 10, 11, 12, 14, 15, 16, 18, 19, 24, 25, 29, 34, 36, 38, 39, 42, 44, 46, 49, 51, 53, 55, 62, 65, 67, 69, 72, 74, 81, 84, 87, 92, 93, 94, 96, 99, 101, 102, 103, 104, 107, 110, 112, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 149, 164, 165, 168, 171, 174, 175, 176, 181, 182, 184, 185, 186, 188, 196, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 265, 267, 270, 278, 299, 301, 355, 361, 364], "ha": [2, 3, 4, 6, 7, 10, 11, 14, 19, 22, 28, 32, 42, 44, 48, 51, 53, 55, 60, 67, 69, 71, 74, 79, 85, 92, 95, 96, 98, 102, 103, 104, 110, 112, 114, 117, 122, 132, 138, 142, 143, 146, 149, 170, 173, 182, 186, 196, 198, 203, 205, 206, 207, 227, 228, 229, 234, 235, 236, 237, 238, 246, 247, 249, 250, 258, 270, 272, 273, 278, 279, 281, 284, 285, 287, 288, 289, 291, 294, 306, 309, 322, 326, 328, 330, 331, 333, 334, 335, 337, 341, 343, 344, 347, 349, 365], "standard": [2, 4, 6, 10, 11, 12, 18, 28, 42, 44, 51, 53, 55, 67, 69, 74, 87, 96, 110, 112, 117, 142, 143, 144, 146, 147, 149, 196, 206, 235, 238, 243, 250, 260, 267, 297, 299, 301, 312, 318, 330, 331, 333, 334, 336, 361, 364], "certain": [2, 5, 6, 8, 42, 51, 53, 57, 67, 76, 93, 96, 102, 110, 119, 149, 176, 207, 210, 249, 267, 275, 276, 278, 280, 302, 307, 318, 332, 333, 335, 349, 365], "length": [2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 17, 19, 24, 28, 32, 33, 34, 35, 36, 37, 42, 44, 48, 49, 51, 53, 55, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 78, 79, 81, 83, 84, 86, 87, 88, 92, 93, 96, 98, 99, 101, 102, 106, 107, 110, 112, 114, 115, 117, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 145, 146, 148, 150, 154, 156, 157, 158, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 181, 182, 189, 207, 208, 212, 215, 216, 217, 218, 219, 220, 227, 228, 230, 231, 234, 235, 237, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 267, 268, 269, 270, 273, 280, 285, 287, 288, 289, 291, 294, 301, 302, 311, 312, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 341, 343, 344, 351, 352, 354, 355, 361], "about": [2, 3, 4, 5, 6, 9, 10, 12, 21, 24, 25, 26, 27, 28, 31, 38, 39, 42, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 87, 88, 96, 98, 99, 101, 102, 106, 107, 110, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 142, 146, 151, 152, 153, 154, 158, 159, 161, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 186, 189, 195, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 235, 236, 237, 239, 240, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 269, 272, 273, 274, 275, 276, 280, 281, 283, 312, 318, 342, 361], "given": [2, 6, 9, 15, 18, 32, 42, 49, 51, 53, 67, 72, 85, 88, 91, 96, 99, 103, 104, 110, 115, 144, 147, 171, 174, 176, 181, 182, 199, 204, 227, 229, 230, 231, 233, 236, 244, 245, 249, 256, 259, 263, 266, 270, 271, 278, 279, 280, 281, 301, 310, 318, 321, 329, 338, 339, 342, 347, 353, 360, 361, 363], "usag": [2, 6, 7, 9, 24, 25, 26, 27, 28, 42, 51, 53, 62, 67, 81, 93, 96, 110, 124, 149, 164, 196, 197, 198, 241, 244, 245, 249, 359, 361, 362, 363], "crc24a": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "g_": [2, 42, 51, 53, 67, 110], "d": [2, 6, 10, 11, 12, 19, 42, 44, 51, 53, 55, 67, 69, 74, 96, 110, 112, 117, 142, 143, 146, 149, 182, 193, 195, 238, 262, 266, 302, 323, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 340, 341, 343, 344, 347], "23": [2, 10, 39, 42, 46, 51, 53, 55, 67, 74, 110, 117, 142, 146, 184, 189, 198, 236, 251, 262, 266, 278, 301, 302, 309, 314, 318, 327, 330, 331, 332, 333, 334, 335, 337, 340, 344, 351], "18": [2, 10, 42, 51, 53, 55, 67, 74, 87, 88, 94, 110, 117, 142, 145, 146, 181, 182, 227, 228, 231, 244, 245, 254, 264, 272, 278, 291, 294, 299, 301, 309, 311, 314, 318, 323, 326, 328, 330, 331, 332, 333, 334, 335, 337, 340, 342, 348, 349, 351, 352, 353], "17": [2, 4, 6, 10, 12, 15, 18, 19, 29, 35, 37, 38, 39, 42, 46, 49, 51, 53, 55, 62, 65, 67, 72, 74, 81, 84, 94, 96, 99, 103, 104, 107, 110, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 145, 146, 164, 165, 168, 171, 174, 175, 184, 185, 186, 188, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 278, 285, 287, 289, 291, 294, 301, 309, 311, 312, 314, 318, 326, 330, 331, 332, 333, 334, 335, 337, 340, 341, 342, 343, 344, 345, 347, 348, 351, 352, 353], "14": [2, 35, 37, 42, 51, 53, 67, 85, 87, 88, 91, 94, 103, 104, 110, 130, 131, 132, 136, 137, 138, 139, 181, 182, 189, 215, 216, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 245, 246, 247, 254, 267, 270, 271, 273, 275, 276, 278, 285, 287, 288, 289, 291, 294, 301, 302, 305, 309, 311, 314, 318, 327, 328, 330, 331, 332, 333, 334, 335, 337, 340, 342, 345, 346, 347, 348, 351, 352, 353, 354, 359, 362, 363], "11": [2, 3, 4, 12, 39, 42, 46, 51, 53, 67, 85, 103, 104, 110, 130, 131, 132, 136, 137, 138, 144, 145, 147, 184, 188, 215, 216, 218, 219, 227, 229, 233, 235, 238, 244, 246, 247, 250, 262, 263, 264, 266, 271, 273, 278, 285, 289, 291, 294, 301, 302, 305, 309, 311, 314, 318, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 362, 365], "7": [2, 6, 14, 15, 17, 18, 19, 25, 29, 39, 42, 46, 48, 49, 51, 53, 60, 62, 65, 67, 71, 72, 79, 81, 84, 85, 86, 87, 90, 95, 96, 98, 99, 103, 104, 107, 110, 114, 115, 122, 124, 127, 132, 134, 138, 139, 164, 165, 168, 170, 171, 173, 174, 184, 185, 196, 215, 216, 217, 220, 227, 228, 229, 230, 231, 233, 236, 237, 238, 241, 242, 246, 247, 248, 249, 250, 251, 252, 254, 255, 258, 259, 262, 263, 264, 266, 267, 270, 271, 273, 278, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 314, 318, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 360, 361, 362, 363, 365], "tb": [2, 8, 9, 42, 51, 53, 67, 85, 86, 87, 88, 93, 94, 95, 102, 110, 181, 182, 207, 301, 326, 355, 361], "crc24b": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "cb": [2, 7, 8, 11, 24, 42, 44, 51, 53, 67, 69, 92, 93, 101, 102, 110, 112, 143, 148, 181, 182, 207, 208], "21": [2, 3, 4, 42, 51, 53, 67, 110, 255, 256, 278, 301, 302, 309, 311, 314, 318, 327, 330, 331, 332, 333, 334, 335, 337, 340, 341, 347, 349, 351, 365], "20": [2, 6, 10, 11, 12, 42, 44, 51, 53, 55, 67, 69, 74, 91, 96, 103, 104, 110, 112, 117, 142, 143, 146, 149, 182, 189, 229, 233, 236, 238, 265, 267, 272, 273, 285, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 314, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 340, 341, 342, 343, 344, 345, 347, 352, 353], "15": [2, 15, 19, 29, 39, 42, 46, 51, 53, 67, 85, 87, 88, 103, 104, 110, 134, 136, 137, 138, 139, 189, 196, 217, 218, 219, 220, 227, 228, 229, 230, 231, 234, 236, 238, 247, 248, 249, 251, 254, 264, 267, 270, 271, 273, 278, 285, 288, 291, 294, 301, 302, 305, 307, 310, 311, 314, 318, 321, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 340, 342, 345, 347, 348, 349, 351, 352, 353, 365], "13": [2, 42, 51, 53, 67, 85, 103, 104, 110, 130, 131, 132, 134, 136, 137, 138, 139, 188, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 233, 235, 246, 247, 248, 249, 251, 263, 264, 271, 273, 278, 289, 291, 301, 305, 309, 311, 314, 318, 323, 325, 327, 328, 330, 331, 332, 333, 334, 335, 337, 340, 342, 345, 347, 348, 351, 352, 353, 354, 359, 362, 363, 365], "12": [2, 10, 11, 12, 19, 29, 35, 37, 39, 42, 44, 46, 51, 53, 55, 67, 69, 74, 85, 87, 88, 90, 91, 94, 103, 104, 110, 112, 117, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 181, 182, 184, 189, 202, 203, 204, 205, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 244, 245, 246, 247, 254, 262, 263, 264, 265, 266, 271, 273, 275, 276, 278, 279, 285, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 342, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 362, 363, 365], "8": [2, 3, 4, 10, 11, 14, 17, 22, 24, 25, 35, 37, 39, 42, 44, 46, 49, 51, 53, 55, 64, 65, 67, 69, 72, 74, 83, 84, 85, 87, 88, 89, 91, 94, 95, 99, 101, 102, 103, 104, 106, 107, 110, 112, 115, 117, 126, 127, 130, 131, 132, 142, 143, 146, 149, 163, 165, 167, 168, 171, 174, 182, 188, 189, 204, 205, 207, 208, 209, 215, 216, 227, 228, 229, 231, 233, 234, 235, 236, 237, 240, 242, 244, 246, 249, 253, 254, 256, 259, 263, 264, 265, 271, 272, 273, 278, 285, 287, 289, 291, 294, 302, 304, 306, 307, 308, 309, 310, 311, 314, 318, 319, 321, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 360, 361, 362, 363, 365], "crc16": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "crc11": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "9": [2, 14, 19, 29, 42, 51, 53, 67, 85, 103, 104, 110, 130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 227, 229, 231, 233, 234, 236, 238, 244, 245, 246, 247, 263, 264, 267, 271, 273, 278, 280, 285, 291, 294, 301, 302, 304, 305, 308, 309, 311, 312, 314, 318, 320, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 359, 360, 361, 362, 363, 365], "crc6": [2, 3, 4, 10, 42, 51, 53, 55, 67, 74, 110, 117, 142, 146], "applic": [2, 6, 24, 25, 26, 27, 28, 42, 49, 51, 53, 67, 72, 96, 99, 110, 115, 144, 147, 171, 174, 203, 204, 259, 295, 332, 334, 335, 359, 362, 363], "interfac": [2, 3, 4, 5, 6, 7, 9, 10, 12, 21, 24, 25, 26, 27, 28, 31, 33, 38, 39, 42, 46, 48, 49, 51, 53, 55, 57, 58, 59, 60, 62, 64, 65, 67, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 92, 94, 96, 98, 99, 101, 102, 106, 107, 110, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 142, 146, 148, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 195, 196, 197, 198, 199, 203, 204, 206, 207, 208, 210, 211, 212, 235, 237, 240, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 263, 264, 265, 267, 269, 272, 273, 274, 283, 295, 296, 336, 339, 361, 364], "content": [2, 23, 40, 42, 49, 51, 53, 65, 67, 72, 84, 99, 107, 110, 115, 127, 132, 138, 162, 168, 169, 174, 215, 216, 217, 218, 219, 220, 226, 234, 239, 243, 246, 247, 257, 260, 296, 302, 318, 321, 322, 328, 330, 332, 336, 339, 341, 343, 344, 345, 347, 351, 355], "assum": [3, 14, 19, 31, 32, 196, 197, 203, 204, 270, 278, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 351, 352, 354], "attach": [3, 4, 8, 93, 95, 108, 149, 176, 182, 189, 267, 273], "sionna": [3, 4, 6, 10, 11, 44, 48, 49, 55, 60, 69, 71, 72, 74, 79, 96, 98, 99, 112, 114, 115, 117, 122, 142, 143, 146, 149, 170, 171, 173, 174, 258, 259, 330, 331, 333, 334, 359, 361, 362, 363], "intern": [3, 4, 6, 9, 10, 55, 64, 65, 74, 83, 84, 88, 96, 106, 107, 108, 117, 126, 127, 142, 146, 163, 165, 167, 168, 182, 199, 240, 242, 267, 270, 284, 285, 301, 361], "been": [3, 4, 28, 29, 132, 138, 186, 246, 247, 278, 279, 284, 326, 337, 341, 343, 344, 364], "exactli": [3, 4, 144, 147, 250], "same": [3, 4, 6, 7, 14, 18, 19, 31, 32, 62, 64, 65, 81, 83, 84, 92, 95, 96, 106, 107, 124, 126, 127, 132, 138, 163, 164, 165, 167, 168, 182, 185, 186, 196, 197, 198, 199, 206, 235, 237, 238, 240, 241, 242, 246, 247, 255, 276, 278, 285, 287, 288, 289, 291, 294, 295, 301, 307, 318, 339, 345], "compat": [3, 4, 295, 363], "hybrid": [3, 10, 55, 74, 102, 117, 142, 146, 200, 206, 207, 299, 302, 321, 323, 361, 364], "automat": [3, 19, 102, 207, 230, 321, 323, 359, 360, 361, 362], "harq": [3, 87, 102, 132, 207, 234, 246, 264, 323, 353, 361, 364], "1d": [3, 4, 17, 235, 269, 273, 281], "32": [3, 4, 6, 10, 12, 25, 28, 29, 38, 39, 46, 55, 59, 64, 65, 74, 78, 83, 84, 96, 106, 107, 117, 121, 126, 127, 142, 144, 146, 147, 154, 158, 163, 165, 167, 168, 184, 212, 228, 231, 240, 242, 244, 262, 265, 266, 278, 301, 304, 305, 311, 312, 314, 318, 325, 326, 327, 332, 333, 334, 336, 337, 339, 340, 351, 352, 354, 359, 360, 362], "creat": [3, 4, 5, 6, 10, 11, 24, 26, 44, 55, 57, 69, 74, 76, 96, 101, 102, 112, 117, 119, 142, 143, 146, 152, 159, 193, 195, 199, 207, 208, 210, 285, 294, 302, 335, 345, 347, 355, 359, 361, 362, 363], "object": [3, 4, 6, 7, 8, 9, 10, 11, 18, 19, 29, 44, 48, 49, 55, 60, 62, 64, 65, 69, 71, 72, 74, 79, 81, 83, 84, 85, 86, 88, 91, 93, 94, 95, 96, 98, 99, 106, 107, 108, 112, 114, 115, 117, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 181, 182, 184, 188, 189, 193, 195, 197, 198, 199, 202, 204, 206, 215, 216, 217, 218, 219, 220, 231, 235, 237, 240, 241, 242, 246, 247, 250, 252, 253, 255, 256, 258, 259, 267, 275, 276, 278, 285, 287, 289, 291, 294, 301, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "56": [3, 4, 10, 11, 44, 55, 62, 69, 74, 81, 112, 117, 124, 142, 143, 146, 164, 184, 241, 289, 305, 314, 326, 327, 332, 333, 334, 338, 340, 352], "2d": [3, 4, 12, 14, 18, 19, 25, 144, 147, 193, 195, 196, 197, 198, 202, 203, 204, 205, 235, 237, 269, 279, 281, 302, 330, 331, 332, 333, 334, 335, 346, 347, 348, 351], "64": [3, 4, 39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 235, 237, 240, 242, 249, 265, 272, 294, 314, 321, 332, 333, 334, 336, 340, 342, 349, 359, 360, 362, 365], "80": [3, 4, 6, 96, 217, 218, 219, 220, 236, 265, 267, 308, 309, 311, 312, 314, 325, 326, 332, 333, 334, 338, 339, 340, 354, 365], "dimens": [3, 4, 6, 7, 8, 10, 11, 12, 14, 18, 19, 22, 24, 29, 32, 44, 55, 69, 74, 88, 92, 95, 96, 101, 102, 112, 117, 130, 131, 132, 134, 136, 137, 139, 142, 143, 146, 181, 182, 189, 193, 196, 197, 202, 203, 204, 205, 207, 208, 215, 216, 217, 218, 219, 220, 235, 237, 244, 245, 246, 255, 269, 270, 275, 276, 278, 281, 311, 318, 339, 342, 351, 354], "contain": [3, 5, 6, 7, 8, 9, 10, 11, 12, 24, 32, 44, 55, 57, 69, 74, 76, 85, 87, 88, 92, 93, 96, 101, 102, 112, 117, 119, 132, 138, 142, 143, 146, 149, 152, 159, 181, 182, 188, 189, 196, 197, 204, 206, 207, 208, 210, 238, 246, 247, 268, 280, 285, 287, 288, 294, 295, 301, 302, 311, 312, 314, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 340, 342, 345, 348, 349, 352, 354, 365], "higher": [3, 4, 26, 29, 39, 46, 58, 77, 120, 132, 138, 184, 195, 196, 197, 202, 204, 211, 214, 227, 230, 231, 246, 247, 254, 262, 266, 267, 278, 280, 281, 283, 301, 304, 305, 306, 307, 318, 334, 335, 339, 341, 343, 344, 347], "119": [3, 4, 314, 318, 332], "125": [3, 4, 206, 267, 302, 309, 314, 330, 331, 332, 333, 334, 335], "modul": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 158, 159, 161, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 176, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 263, 264, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 280, 281, 282, 283, 285, 287, 290, 292, 294, 295, 318, 321, 323, 332, 336, 342, 345, 346, 347, 348, 349, 355, 361, 363, 364, 365], "class": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 282, 285, 287, 288, 289, 291, 294, 327, 342, 345, 346, 347, 349, 351, 352], "none": [3, 4, 6, 7, 9, 11, 12, 14, 15, 17, 18, 19, 21, 25, 26, 27, 28, 35, 37, 39, 44, 46, 58, 59, 69, 77, 78, 85, 87, 88, 91, 92, 94, 95, 96, 102, 103, 104, 108, 112, 120, 121, 130, 131, 132, 134, 136, 137, 138, 139, 143, 148, 153, 154, 158, 176, 182, 184, 196, 197, 198, 199, 202, 203, 205, 206, 207, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 235, 238, 246, 247, 253, 256, 261, 262, 263, 264, 265, 266, 267, 269, 270, 273, 275, 276, 279, 280, 281, 285, 288, 289, 291, 294, 301, 302, 311, 312, 318, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 342, 345, 351, 352, 353, 354, 359, 360, 362, 363], "arg": [3, 4, 17, 48, 60, 64, 65, 71, 79, 83, 84, 85, 98, 106, 107, 114, 122, 126, 127, 163, 165, 167, 168, 170, 173, 240, 242, 249, 258, 289], "sourc": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 185, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 361], "insert": [3, 4, 26, 85, 86, 88, 102, 184, 185, 207, 268, 271, 289, 291, 351], "constructor": [3, 4, 48, 49, 60, 62, 64, 65, 71, 72, 79, 81, 83, 84, 98, 99, 106, 107, 114, 115, 122, 124, 126, 127, 163, 164, 165, 167, 168, 170, 171, 173, 174, 240, 241, 242, 248, 250, 251, 252, 253, 255, 256, 258, 259], "init": [3, 4, 18, 19, 245, 248, 249, 250, 251], "fec": [3, 4], "defin": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 19, 24, 25, 26, 27, 28, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 108, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 132, 138, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 184, 185, 188, 189, 193, 195, 196, 198, 199, 202, 205, 206, 207, 208, 210, 211, 212, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 295, 301, 321, 322, 329, 332, 336, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 351, 353, 364], "int8": [3, 4, 6, 12, 48, 49, 60, 62, 65, 71, 72, 79, 81, 84, 96, 98, 99, 107, 114, 115, 122, 124, 127, 164, 165, 168, 170, 171, 173, 174, 241, 242, 248, 249, 250, 251, 252, 253, 255, 258, 259, 318, 322, 330, 331, 332, 333, 334, 339], "crclength": [3, 4], "bool": [3, 5, 6, 10, 11, 12, 15, 17, 18, 19, 21, 22, 44, 48, 55, 60, 69, 71, 74, 79, 86, 87, 88, 96, 98, 102, 112, 114, 117, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 170, 173, 181, 182, 184, 188, 204, 206, 207, 209, 215, 216, 217, 218, 219, 220, 235, 237, 238, 246, 247, 258, 262, 266, 269, 271, 279, 318], "should": [3, 5, 6, 7, 8, 9, 11, 12, 14, 17, 19, 26, 27, 28, 32, 39, 44, 46, 48, 49, 57, 58, 59, 60, 62, 64, 69, 71, 72, 76, 77, 78, 79, 81, 83, 87, 92, 93, 94, 95, 96, 98, 99, 102, 103, 104, 106, 112, 114, 115, 119, 120, 121, 122, 124, 126, 132, 138, 143, 148, 152, 153, 154, 158, 159, 163, 164, 167, 170, 171, 173, 174, 193, 195, 196, 197, 198, 202, 203, 204, 205, 206, 207, 209, 210, 211, 212, 227, 228, 229, 231, 235, 236, 237, 238, 240, 241, 244, 245, 246, 247, 253, 254, 255, 256, 258, 259, 262, 266, 270, 271, 275, 276, 279, 295, 298, 301, 309, 348], "rais": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 19, 21, 22, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 58, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 119, 120, 121, 122, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 152, 153, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 184, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 289, 337], "valueerror": [3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 19, 21, 22, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 39, 44, 46, 49, 55, 58, 59, 62, 64, 65, 69, 72, 74, 77, 78, 81, 83, 84, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 106, 107, 112, 115, 117, 120, 121, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 148, 149, 153, 154, 158, 163, 164, 165, 167, 168, 171, 174, 184, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 262, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 337], "inbit": [3, 4, 8, 12, 24, 65, 84, 92, 101, 107, 127, 165, 168, 208, 242], "must": [3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 25, 28, 29, 34, 35, 36, 37, 39, 44, 46, 48, 49, 55, 57, 59, 60, 62, 64, 65, 69, 71, 72, 74, 76, 78, 79, 81, 83, 84, 85, 86, 92, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 106, 107, 112, 114, 115, 117, 119, 121, 122, 124, 126, 127, 142, 143, 146, 148, 149, 152, 154, 158, 159, 163, 164, 165, 167, 168, 170, 171, 173, 174, 184, 188, 189, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 210, 212, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 309, 318, 326, 337], "support": [4, 6, 13, 14, 17, 19, 20, 22, 39, 46, 48, 49, 60, 71, 72, 79, 85, 87, 96, 98, 99, 102, 114, 115, 122, 153, 154, 155, 156, 158, 159, 170, 171, 173, 174, 186, 190, 195, 206, 207, 227, 230, 233, 234, 236, 238, 243, 254, 258, 259, 264, 265, 267, 269, 270, 271, 274, 276, 278, 280, 281, 295, 299, 302, 305, 307, 318, 338, 339, 341, 343, 344, 346, 359, 360, 361, 362, 363, 364], "5g": [4, 6, 7, 8, 9, 10, 11, 13, 15, 18, 20, 22, 26, 27, 28, 31, 34, 36, 44, 48, 49, 55, 58, 60, 69, 71, 72, 74, 77, 79, 87, 93, 96, 98, 99, 103, 104, 112, 114, 115, 117, 120, 122, 130, 131, 132, 134, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 158, 159, 170, 171, 173, 174, 175, 179, 181, 182, 184, 185, 186, 188, 189, 195, 199, 200, 205, 211, 214, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 243, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 258, 259, 265, 268, 269, 270, 271, 275, 276, 277, 278, 279, 280, 281, 283, 295, 297, 298, 306, 321, 350, 355, 364], "3gppts38211_crc": 4, "doesn": [4, 10, 24, 55, 65, 74, 84, 87, 101, 107, 117, 127, 132, 138, 142, 146, 165, 168, 208, 242, 246, 247, 280, 330, 331], "t": [4, 6, 8, 10, 12, 15, 18, 19, 24, 25, 29, 33, 34, 36, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 85, 87, 92, 93, 94, 96, 99, 101, 102, 103, 104, 107, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 145, 146, 164, 165, 168, 171, 174, 175, 181, 182, 184, 185, 186, 188, 189, 198, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 265, 267, 270, 278, 280, 291, 294, 295, 302, 318, 323, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 359, 362], "n": [4, 5, 6, 7, 8, 9, 10, 11, 14, 18, 24, 28, 29, 32, 33, 39, 44, 46, 54, 55, 57, 59, 64, 65, 69, 73, 74, 76, 78, 83, 84, 85, 86, 88, 92, 93, 95, 96, 101, 102, 106, 107, 112, 116, 117, 119, 121, 126, 127, 136, 137, 138, 139, 142, 143, 145, 146, 148, 149, 152, 154, 158, 159, 163, 165, 167, 168, 175, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 198, 199, 203, 205, 206, 207, 208, 210, 212, 218, 219, 220, 228, 230, 231, 235, 236, 237, 238, 240, 242, 247, 249, 252, 253, 254, 255, 256, 262, 265, 266, 267, 270, 271, 272, 273, 274, 275, 278, 285, 287, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 311, 312, 321, 322, 327, 328, 330, 331, 332, 333, 334, 335, 337, 339, 341, 342, 343, 344, 345, 349, 351, 352, 353, 359, 360, 361, 362], "reshap": [4, 29, 291, 294, 302, 314, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 348, 352], "perform": [4, 5, 6, 7, 8, 9, 11, 12, 24, 26, 28, 44, 48, 57, 60, 62, 64, 65, 69, 71, 76, 79, 81, 83, 84, 87, 88, 92, 93, 95, 96, 98, 101, 102, 106, 107, 108, 112, 114, 119, 122, 124, 126, 127, 143, 148, 149, 162, 163, 164, 165, 167, 168, 170, 173, 175, 176, 181, 182, 186, 195, 196, 198, 202, 203, 204, 206, 207, 208, 210, 214, 236, 239, 240, 241, 242, 258, 260, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 283, 285, 289, 292, 293, 295, 304, 305, 306, 307, 308, 309, 313, 321, 325, 326, 328, 337, 345, 347, 354, 355, 361], "38": [4, 6, 8, 10, 11, 12, 14, 15, 16, 18, 19, 23, 24, 25, 29, 34, 36, 38, 39, 44, 46, 49, 55, 62, 65, 69, 72, 74, 81, 84, 87, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 107, 108, 112, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 149, 164, 165, 168, 171, 174, 175, 181, 182, 184, 185, 186, 188, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 265, 270, 278, 280, 289, 294, 301, 314, 318, 332, 333, 334, 340, 351, 365], "211": [4, 6, 10, 12, 23, 25, 34, 36, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 102, 103, 104, 107, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 146, 164, 165, 168, 171, 174, 175, 184, 185, 186, 188, 189, 207, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 265, 270, 301, 314, 329], "releas": [4, 6, 10, 12, 15, 18, 19, 29, 35, 37, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 103, 104, 107, 115, 117, 124, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 145, 146, 164, 165, 168, 171, 174, 175, 184, 185, 186, 188, 196, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 278, 361], "v17": [4, 6, 10, 12, 19, 29, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 107, 115, 117, 124, 127, 142, 146, 164, 165, 168, 171, 174, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 278], "2022": [4, 6, 10, 12, 19, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 107, 115, 117, 124, 127, 142, 146, 164, 165, 168, 171, 174, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259], "03": [4, 6, 10, 12, 19, 38, 39, 46, 49, 55, 62, 65, 72, 74, 81, 84, 96, 99, 107, 115, 117, 124, 127, 142, 146, 164, 165, 168, 171, 174, 241, 242, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 301, 331, 335], "mai": [5, 39, 46, 88, 184, 193, 195, 203, 204, 236, 262, 266, 268, 275, 276, 279, 280, 281, 283, 298, 301, 307, 309, 312, 334, 351, 359, 362, 363, 365], "occur": [5, 236, 268, 278, 289], "dure": [5, 57, 76, 119, 152, 159, 188, 210, 227, 269, 270, 271, 273, 279, 280, 289], "digit": [5, 29, 189, 299, 311, 318, 325, 326, 354], "messag": [5, 6, 39, 46, 96, 184, 262, 266, 318, 351], "codeword": [5, 6, 7, 8, 9, 10, 11, 12, 24, 28, 44, 55, 64, 65, 69, 74, 83, 84, 87, 88, 92, 95, 96, 101, 102, 106, 107, 112, 117, 126, 127, 142, 143, 146, 148, 162, 163, 165, 167, 168, 182, 207, 208, 239, 240, 242, 271, 294, 301, 311, 318, 322, 325, 326, 329, 339, 354], "specif": [5, 10, 11, 12, 14, 18, 44, 55, 69, 74, 102, 112, 117, 138, 142, 143, 146, 149, 186, 189, 207, 217, 218, 219, 220, 227, 236, 247, 253, 256, 268, 271, 275, 276, 278, 280, 281, 285, 301, 304, 305, 306, 307, 308, 309, 327, 328, 330, 331, 364], "structur": [5, 8, 14, 29, 93, 149, 193, 195, 260, 267, 275, 276, 296, 311, 312, 325, 326, 327, 342, 345, 346, 349, 352, 354], "batch": [5, 6, 10, 12, 22, 25, 29, 49, 55, 65, 72, 74, 84, 87, 88, 96, 99, 107, 115, 117, 127, 132, 134, 142, 146, 165, 168, 171, 174, 189, 217, 242, 246, 259, 271, 276, 281, 294, 311, 312, 314, 321, 327, 328, 329, 338, 339, 351, 353, 355, 361], "simultan": [5, 12, 204, 281], "three": [5, 12, 13, 15, 17, 18, 19, 20, 22, 37, 57, 76, 102, 119, 144, 147, 153, 154, 155, 156, 158, 159, 195, 207, 210, 213, 295, 325, 326, 337, 342], "exampl": [5, 6, 7, 8, 10, 11, 12, 14, 18, 19, 25, 29, 44, 55, 62, 64, 69, 74, 81, 83, 90, 91, 92, 93, 94, 95, 96, 106, 108, 112, 117, 124, 126, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 163, 164, 167, 175, 176, 181, 182, 193, 195, 196, 197, 198, 199, 202, 203, 204, 205, 206, 215, 216, 217, 218, 219, 220, 227, 235, 236, 237, 240, 241, 246, 247, 249, 267, 269, 272, 274, 278, 361], "channelcod": [5, 6, 7, 8, 9, 10, 11, 12, 27, 44, 55, 69, 74, 92, 93, 96, 112, 117, 142, 143, 146, 148, 149, 291, 294, 318, 322, 323, 329, 338, 339, 351, 352], "hammingcod": 5, "hammingencod": [5, 318, 322], "k": [5, 6, 7, 8, 9, 10, 11, 12, 18, 19, 24, 27, 32, 33, 39, 44, 46, 54, 55, 57, 62, 69, 73, 74, 76, 81, 92, 93, 96, 101, 102, 112, 116, 117, 119, 124, 142, 143, 145, 146, 148, 149, 152, 159, 164, 175, 181, 182, 184, 185, 186, 188, 189, 193, 195, 196, 197, 206, 207, 208, 210, 231, 236, 238, 241, 254, 262, 265, 266, 269, 280, 285, 287, 289, 291, 294, 301, 302, 304, 305, 306, 311, 314, 321, 322, 323, 325, 326, 327, 328, 329, 332, 333, 335, 336, 337, 338, 339, 342, 345, 346, 350, 351, 352, 355, 361], "take": [5, 6, 7, 8, 14, 15, 18, 19, 22, 24, 29, 35, 37, 39, 46, 64, 65, 83, 84, 85, 87, 88, 93, 94, 96, 101, 102, 103, 104, 106, 107, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 163, 165, 167, 168, 181, 182, 184, 188, 189, 198, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 233, 236, 237, 238, 240, 242, 246, 247, 249, 254, 262, 263, 264, 265, 266, 269, 270, 271, 275, 276, 278, 280, 281, 301, 318, 322, 359, 360, 362, 363], "systemat": 5, "inputbit": [5, 7, 8, 11, 44, 57, 62, 69, 76, 81, 92, 93, 102, 112, 119, 124, 143, 144, 147, 148, 149, 152, 159, 164, 188, 207, 210, 241], "ndarrai": [5, 14, 15, 17, 18, 19, 29, 57, 76, 86, 87, 88, 102, 119, 130, 131, 132, 134, 136, 137, 138, 139, 152, 159, 181, 182, 188, 189, 193, 195, 207, 210, 215, 216, 217, 218, 219, 220, 227, 230, 236, 246, 247, 248, 249, 251, 268, 270, 278, 280], "satisfi": [5, 7, 92, 103, 104, 229, 280], "condit": [5, 8, 24, 87, 92, 101, 102, 176, 182, 207, 208, 227, 268, 275, 276, 278, 279, 280, 281, 283, 309, 310, 312, 321, 323, 329, 332, 334, 353, 355, 361], "integ": [5, 6, 7, 11, 12, 14, 18, 19, 22, 24, 27, 29, 32, 33, 34, 35, 36, 37, 39, 44, 46, 49, 57, 62, 64, 65, 69, 72, 76, 81, 83, 84, 87, 88, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 106, 107, 112, 115, 119, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 143, 152, 159, 163, 164, 165, 167, 168, 171, 174, 181, 182, 184, 189, 193, 195, 196, 198, 202, 203, 204, 205, 207, 208, 209, 210, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 264, 265, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 318], "vectortobinaryarrai": [5, 353], "scalar": [5, 6, 14, 39, 46, 87, 88, 94, 96, 102, 130, 131, 132, 134, 136, 137, 138, 139, 181, 182, 196, 198, 207, 209, 215, 216, 217, 218, 219, 220, 238, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 264, 265, 281], "note": [5, 6, 11, 12, 14, 19, 22, 44, 69, 85, 87, 96, 112, 143, 227, 236, 238, 264, 278, 280, 285, 301, 306, 307, 308, 318, 322, 323, 328, 330, 331, 333, 334, 335, 339, 345, 361], "hardoutput": 5, "likelihood": [5, 12, 48, 49, 57, 60, 64, 71, 72, 76, 79, 83, 86, 88, 98, 99, 106, 114, 115, 119, 122, 126, 152, 159, 163, 167, 169, 170, 173, 174, 175, 181, 184, 185, 189, 197, 210, 240, 257, 258, 268, 271, 322, 329, 334, 338, 339], "valu": [5, 6, 7, 8, 10, 11, 12, 15, 17, 18, 19, 21, 22, 24, 29, 32, 33, 35, 37, 39, 44, 46, 49, 55, 62, 64, 65, 69, 72, 74, 81, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 106, 107, 112, 115, 117, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 163, 164, 165, 167, 168, 171, 174, 181, 182, 184, 188, 189, 196, 197, 198, 199, 202, 203, 204, 205, 206, 207, 208, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 233, 235, 236, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 253, 254, 256, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, 301, 302, 312, 318, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 355, 361], "hammingdecod": [5, 318, 322], "bot": 5, "decodertyp": [5, 185, 323, 328, 338], "undergo": [5, 181], "determin": [5, 203, 204, 227, 228, 236, 238, 278, 281, 283, 304, 309, 332, 334, 335, 351], "whether": [5, 15, 17, 18, 19, 29, 39, 46, 48, 60, 62, 71, 79, 81, 86, 98, 103, 104, 114, 122, 124, 130, 131, 132, 134, 136, 137, 138, 139, 164, 170, 173, 184, 185, 188, 189, 204, 215, 216, 217, 218, 219, 220, 229, 233, 236, 238, 241, 246, 247, 258, 262, 266, 269, 271, 279, 351], "case": [5, 6, 7, 8, 10, 11, 14, 19, 37, 39, 44, 46, 55, 57, 64, 69, 74, 76, 83, 85, 87, 92, 93, 96, 102, 103, 104, 106, 112, 117, 119, 126, 130, 131, 132, 136, 137, 138, 139, 142, 143, 146, 149, 163, 167, 184, 198, 204, 207, 210, 215, 216, 218, 219, 220, 227, 228, 229, 235, 237, 238, 240, 244, 245, 246, 247, 254, 256, 262, 266, 270, 279, 305, 307, 309, 310, 312, 318, 321, 330, 331, 338, 346, 356, 361], "hammingspheredecod": 5, "closest": 5, "within": [5, 39, 46, 85, 102, 103, 104, 130, 131, 132, 134, 136, 137, 138, 139, 184, 189, 195, 207, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 235, 236, 238, 246, 247, 248, 249, 251, 262, 266, 269, 270, 271, 272, 278, 280, 283, 285, 342], "radiu": [5, 17, 18, 19, 206, 327, 330, 331, 342, 345, 346], "minimum": [5, 8, 17, 19, 93, 202, 204, 205, 269, 270, 271, 280, 281, 302, 310, 321, 328, 341, 342, 343, 344, 345, 346, 347, 349, 351, 361], "distanc": [5, 18, 19, 196, 197, 198, 206, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "between": [5, 7, 8, 10, 11, 12, 14, 18, 19, 22, 39, 44, 46, 55, 62, 64, 69, 74, 81, 83, 87, 88, 92, 93, 94, 102, 106, 112, 117, 124, 126, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 163, 164, 167, 181, 182, 184, 189, 193, 195, 196, 198, 203, 204, 205, 207, 215, 216, 217, 218, 219, 220, 227, 235, 238, 240, 241, 246, 247, 249, 254, 262, 266, 268, 269, 270, 271, 275, 276, 280, 281, 285, 301, 306, 309, 311, 312, 321, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 361, 362], "soft": [5, 6, 12, 24, 48, 60, 64, 71, 79, 83, 96, 98, 101, 102, 106, 114, 122, 126, 163, 167, 170, 173, 207, 208, 240, 258, 318, 322], "hammingsyndromedecod": 5, "techniqu": [5, 102, 188, 193, 197, 202, 203, 204, 207, 214, 268, 269, 270, 271, 273, 275, 276, 280, 283, 301, 312, 322, 323, 325, 326, 332, 334, 335, 336, 337, 349], "calcul": [5, 10, 55, 58, 64, 65, 74, 77, 83, 84, 94, 102, 106, 107, 108, 117, 120, 126, 127, 142, 146, 163, 165, 167, 168, 203, 206, 207, 211, 230, 240, 242, 264, 269, 270, 280, 301, 332, 334, 335, 336, 348], "vector": [5, 12, 14, 18, 19, 22, 25, 28, 87, 88, 181, 182, 185, 193, 227, 238, 244, 245, 254, 255, 256, 265, 318, 364], "repres": [5, 15, 22, 88, 181, 182, 202, 204, 205, 236, 264, 270, 301, 323], "equat": [5, 15, 33, 203, 204, 236, 250, 278], "identifi": [5, 29, 62, 64, 65, 81, 83, 84, 85, 86, 106, 107, 124, 126, 127, 163, 164, 165, 167, 168, 175, 176, 185, 202, 204, 205, 236, 240, 241, 242, 270, 271, 278, 285, 312], "pattern": [5, 11, 14, 25, 26, 27, 28, 32, 44, 57, 58, 59, 65, 69, 76, 77, 78, 84, 102, 107, 112, 119, 120, 121, 127, 143, 153, 154, 158, 165, 168, 207, 210, 211, 212, 227, 236, 242, 270, 271, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 354, 364], "network": [6, 35, 62, 64, 65, 81, 83, 84, 85, 86, 96, 106, 107, 124, 126, 127, 163, 164, 165, 167, 168, 175, 176, 185, 190, 236, 240, 241, 242, 244, 260, 261, 268, 269, 270, 271, 275, 276, 277, 278, 279, 280, 283, 286, 295, 299, 301, 309, 318, 321, 323, 332, 337, 339, 346, 351, 355, 361, 364], "commun": [6, 10, 28, 31, 55, 57, 74, 76, 96, 117, 119, 142, 146, 152, 159, 189, 196, 197, 199, 203, 204, 210, 261, 265, 268, 271, 273, 275, 276, 280, 281, 282, 283, 284, 285, 295, 299, 312, 318, 323, 325, 326, 327, 336, 337, 339, 342, 349, 352, 356, 361], "over": [6, 10, 49, 55, 72, 74, 94, 96, 99, 115, 117, 142, 146, 169, 174, 193, 195, 203, 204, 205, 228, 238, 243, 257, 275, 276, 279, 281, 283, 295, 301, 312, 318, 321, 336, 342, 345, 346, 349, 353, 355, 359, 361, 362, 363], "air": [6, 31, 94, 96, 296, 336, 339, 364], "achiev": [6, 96, 197, 268, 271, 279, 280, 281, 332, 334, 339], "capac": [6, 57, 76, 96, 119, 139, 152, 159, 210, 220, 283, 285, 339], "larg": [6, 8, 11, 16, 18, 44, 69, 87, 88, 93, 96, 102, 112, 143, 149, 181, 182, 196, 198, 206, 207, 234, 260, 268, 291, 294, 301, 312, 323, 325, 326, 337, 339, 341, 343, 344, 347, 351, 352], "extrem": [6, 96, 278, 310, 321, 339], "robust": [6, 28, 96, 197, 198, 203, 204, 214, 268, 280, 283, 285, 301, 318, 332, 334, 336, 339], "against": [6, 10, 28, 55, 74, 96, 101, 117, 142, 146, 204, 208, 214, 280, 330, 331, 334, 339], "scalabl": [6, 96, 339], "effici": [6, 8, 18, 19, 93, 96, 203, 268, 271, 275, 276, 277, 279, 280, 281, 283, 285, 294, 301, 309, 318, 323, 325, 326, 327, 336, 337, 339, 349], "consumpt": [6, 18, 19, 22, 96, 202, 204, 280, 301, 306, 339], "silicon": [6, 96, 301, 339], "footprint": [6, 96, 339], "enhanc": [6, 96, 186, 197, 202, 268, 271, 281, 285, 299, 323, 325, 326, 334, 337, 339], "divers": [6, 58, 77, 96, 120, 202, 203, 204, 205, 211, 234, 268, 281, 330, 331, 339, 361], "easi": [6, 31, 96, 339, 361], "complex": [6, 10, 21, 22, 27, 29, 32, 33, 34, 35, 36, 37, 48, 55, 58, 60, 71, 74, 77, 79, 96, 98, 114, 117, 120, 122, 130, 131, 132, 134, 136, 137, 138, 139, 142, 146, 170, 173, 195, 196, 198, 202, 203, 204, 205, 206, 211, 215, 216, 217, 218, 219, 220, 246, 247, 254, 258, 269, 270, 272, 273, 274, 275, 276, 279, 281, 306, 312, 321, 322, 330, 331, 339, 342, 361], "capabl": [6, 8, 11, 44, 69, 93, 96, 101, 112, 143, 149, 208, 310, 321, 332, 334, 339, 361], "consid": [6, 16, 18, 22, 29, 34, 36, 39, 46, 94, 96, 130, 131, 132, 134, 136, 137, 138, 184, 197, 206, 215, 216, 217, 218, 219, 238, 246, 247, 262, 266, 267, 278, 280, 281, 283, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 338, 339, 342, 345, 349, 351, 352, 354], "reliabl": [6, 10, 55, 74, 96, 117, 142, 146, 197, 234, 268, 269, 270, 271, 275, 276, 280, 281, 283, 285, 294, 311, 312, 332, 342, 352, 355, 361], "high": [6, 10, 19, 55, 74, 96, 117, 142, 146, 186, 189, 199, 203, 204, 206, 244, 245, 278, 280, 284, 304, 307, 318, 322, 323, 330, 331, 332, 336, 339, 341, 344, 347, 350, 355, 361, 364], "make": [6, 8, 11, 19, 28, 44, 65, 69, 84, 93, 96, 107, 112, 127, 143, 149, 162, 168, 198, 239, 280, 283, 312, 329, 332, 345], "suitabl": [6, 96, 234, 281, 301, 304, 329, 332], "carri": [6, 18, 19, 38, 39, 46, 57, 62, 64, 65, 76, 81, 83, 84, 96, 102, 106, 107, 119, 124, 126, 127, 131, 132, 137, 162, 163, 164, 167, 168, 184, 207, 210, 216, 219, 234, 235, 236, 237, 239, 240, 241, 246, 249, 262, 266, 271, 276, 301, 304, 305, 306, 307, 308, 309, 318, 323, 330, 331, 334, 336, 338, 352, 353, 361], "result": [6, 7, 10, 19, 55, 74, 88, 92, 94, 96, 101, 117, 142, 146, 181, 182, 196, 197, 198, 199, 204, 206, 208, 264, 268, 278, 281, 289, 298, 301, 305, 306, 307, 310, 321, 330, 331, 332, 333, 334, 335, 341, 342, 343, 344, 346, 347, 348, 349, 355, 361, 362, 365], "more": [6, 11, 14, 15, 18, 19, 27, 28, 29, 44, 62, 69, 81, 87, 96, 102, 112, 124, 143, 164, 195, 196, 197, 198, 202, 204, 205, 207, 228, 231, 235, 236, 237, 241, 249, 268, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 285, 305, 306, 307, 308, 309, 329, 334, 335, 342, 359, 360, 362], "comprehens": [6, 96], "analysi": [6, 96, 305, 306, 307, 308, 309, 312, 321, 323, 355, 361], "pleas": [6, 87, 96, 102, 207, 209, 238, 244, 245, 254, 268, 269, 275, 276, 278, 280, 295, 301, 321, 323, 327, 328, 333, 334, 335, 338, 345, 352, 355, 359, 360, 361, 362, 363], "3gppts38212_ldpc": [6, 7, 8, 9, 11, 44, 69, 92, 93, 96, 112, 143, 148], "There": [6, 10, 55, 74, 96, 117, 132, 138, 142, 146, 236, 246, 247, 295], "few": [6, 7, 10, 11, 44, 55, 69, 74, 93, 96, 112, 117, 142, 143, 146, 148, 214, 272, 301, 330, 331, 349, 364], "illustr": [6, 10, 19, 49, 55, 72, 74, 96, 99, 115, 117, 142, 146, 171, 174, 195, 198, 206, 226, 234, 259, 339, 361], "how": [6, 10, 19, 55, 74, 96, 117, 142, 144, 146, 147, 227, 270, 275, 276, 279, 283, 295, 297, 304, 318, 323, 329, 342, 345, 346, 349], "slightli": [6, 39, 46, 96, 262, 266, 332, 365], "comparison": [6, 11, 44, 69, 96, 112, 143, 195, 196, 197, 198, 289, 291, 301, 304, 321, 330, 331, 355, 361], "becaus": [6, 96, 236, 295, 301, 306, 346], "allow": [6, 8, 11, 15, 16, 18, 19, 29, 39, 44, 46, 62, 69, 81, 93, 96, 112, 124, 139, 143, 149, 164, 184, 186, 196, 204, 206, 220, 226, 241, 250, 262, 266, 271, 280, 285, 294, 334, 335, 342, 349, 352], "onli": [6, 10, 14, 18, 19, 21, 22, 24, 26, 27, 35, 37, 39, 46, 49, 55, 57, 64, 65, 72, 74, 76, 83, 84, 85, 86, 87, 95, 96, 99, 101, 102, 106, 107, 115, 117, 119, 126, 127, 130, 131, 132, 136, 137, 138, 139, 142, 146, 163, 165, 167, 168, 171, 174, 184, 189, 195, 196, 197, 204, 205, 206, 207, 208, 210, 215, 216, 218, 219, 220, 227, 233, 235, 236, 237, 238, 240, 242, 244, 246, 247, 249, 254, 259, 265, 267, 268, 269, 272, 273, 274, 275, 276, 278, 281, 285, 294, 295, 298, 305, 318, 330, 332, 341, 342, 346, 349, 359, 360, 362, 363], "fix": [6, 12, 96, 198, 250, 355, 361], "lift": [6, 8, 9, 87, 88, 93, 96, 102, 207, 209, 339], "factor": [6, 9, 14, 18, 19, 87, 88, 96, 102, 103, 104, 131, 134, 136, 137, 139, 202, 205, 207, 209, 216, 217, 218, 219, 220, 228, 229, 231, 244, 245, 254, 265, 268, 279, 283, 307, 308, 330, 331, 334, 335, 336, 339, 350, 355], "transport": [6, 7, 8, 9, 11, 12, 39, 44, 46, 69, 85, 86, 87, 88, 89, 90, 91, 93, 95, 96, 102, 112, 143, 148, 149, 180, 181, 182, 183, 184, 186, 207, 209, 262, 264, 266, 294, 325, 326, 339], "wa": [6, 57, 76, 96, 119, 152, 159, 210, 273, 351], "done": [6, 96], "have": [6, 7, 8, 11, 14, 17, 18, 19, 24, 25, 29, 44, 64, 65, 69, 83, 84, 92, 93, 96, 101, 102, 106, 107, 112, 126, 127, 143, 148, 163, 165, 167, 168, 182, 185, 189, 193, 195, 196, 197, 198, 199, 204, 206, 207, 208, 235, 236, 237, 240, 242, 244, 245, 255, 256, 270, 271, 275, 276, 278, 279, 295, 301, 302, 306, 307, 311, 312, 318, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 349, 351, 352, 354, 356, 359, 360, 362, 363, 364], "flexibl": [6, 16, 96, 306, 308], "realtim": [6, 96], "fast": [6, 19, 96, 280], "tbsize": [6, 7, 9, 11, 44, 69, 87, 93, 96, 100, 102, 112, 143, 148, 186, 207, 209, 294, 311, 339, 354], "lpdcconfig": [6, 96, 339], "ldpcparamet": [6, 9, 96, 339], "k_ldpc": [6, 9, 88, 96, 186, 339], "bg": [6, 87, 96, 339], "basegraph": [6, 7, 8, 9, 93, 96, 100, 102, 186, 207, 209, 339], "graph": [6, 7, 8, 87, 93, 96, 102, 207, 209, 280, 334, 335, 339], "bg1": [6, 9, 96, 102, 207, 209], "bg2": [6, 9, 96, 102, 207, 209], "zc": [6, 8, 87, 93, 96, 186, 339], "liftingfactor": [6, 9, 88, 96, 100, 102, 186, 207, 209, 339], "numcb": [6, 88, 96, 100, 102, 148, 149, 186, 207, 294, 301, 311, 339, 354], "numcodeblock": [6, 9, 96, 100, 102, 186, 207, 209, 339], "numbatch": [6, 10, 11, 12, 22, 25, 29, 44, 49, 55, 65, 69, 72, 74, 84, 86, 87, 88, 91, 95, 96, 99, 107, 108, 112, 115, 117, 127, 129, 132, 138, 142, 143, 144, 146, 147, 148, 149, 165, 168, 171, 174, 176, 179, 182, 189, 215, 216, 217, 218, 219, 220, 228, 232, 233, 242, 246, 247, 259, 271, 275, 276, 281, 294, 301, 311, 312, 314, 322, 325, 326, 328, 329, 336, 338, 339, 351, 353, 354], "ldpcencoder5g": [6, 96, 186, 339], "encbit": [6, 96, 184, 185, 318, 322, 338, 339], "tf": [6, 10, 11, 32, 33, 44, 49, 55, 69, 72, 74, 96, 99, 112, 115, 117, 142, 143, 146, 149, 171, 174, 182, 259, 301, 314, 318, 365], "kwarg": [6, 10, 32, 33, 48, 49, 55, 60, 71, 72, 74, 79, 96, 98, 99, 114, 115, 117, 122, 142, 146, 170, 171, 173, 174, 258, 259, 289], "nr": [6, 10, 15, 18, 29, 55, 74, 96, 103, 104, 117, 130, 131, 132, 134, 136, 137, 138, 139, 142, 145, 146, 175, 181, 182, 184, 185, 186, 188, 189, 196, 198, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 243, 244, 245, 246, 247, 248, 251, 278, 284, 302, 304, 305, 306, 307, 308, 309, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 349, 351, 352, 354, 364], "util": [6, 96, 202, 254, 275, 276, 280, 281, 285, 336, 353, 365], "mani": [6, 23, 28, 96, 214, 236, 272, 274, 295, 361], "broken": [6, 8, 10, 11, 44, 55, 69, 74, 92, 93, 96, 112, 117, 142, 143, 146, 148, 149], "complianc": [6, 96], "further": [6, 8, 85, 92, 96, 148, 202, 236, 275, 308, 329, 350, 355, 359, 360, 361, 362], "usabl": [6, 96], "tabl": [6, 11, 14, 18, 19, 25, 27, 28, 40, 44, 59, 69, 78, 87, 88, 94, 95, 96, 102, 103, 104, 112, 121, 143, 154, 158, 169, 195, 205, 206, 207, 209, 212, 226, 228, 229, 231, 233, 236, 257, 260, 264, 265, 280, 302, 318, 321, 322, 328, 330, 332, 336, 339, 341, 343, 344, 345, 347, 355, 361], "valid": [6, 14, 18, 19, 29, 64, 65, 83, 84, 87, 88, 94, 96, 102, 106, 107, 126, 127, 132, 138, 163, 165, 167, 168, 181, 182, 207, 233, 236, 240, 242, 246, 247, 260, 261, 262, 263, 264, 265, 266, 267, 278, 285, 287, 288, 289, 291, 294, 318, 321, 326, 327, 337, 351, 352, 361], "default": [6, 7, 10, 11, 12, 14, 15, 17, 18, 19, 21, 44, 55, 69, 74, 85, 86, 87, 88, 92, 95, 96, 102, 103, 104, 108, 112, 117, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 149, 181, 182, 196, 198, 202, 203, 204, 205, 206, 207, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 235, 236, 238, 246, 247, 263, 264, 267, 268, 269, 270, 271, 273, 274, 275, 276, 278, 279, 280, 281], "datatyp": [6, 10, 12, 55, 74, 96, 102, 108, 117, 142, 146, 209], "precis": [6, 10, 55, 74, 96, 117, 142, 146, 199, 203, 204, 284, 285, 302, 332, 334, 336], "remain": [6, 10, 55, 74, 87, 96, 117, 142, 146, 198, 206, 230, 231, 260, 266, 272, 328, 330, 331, 333, 334, 335, 342, 349, 351], "uint8": [6, 96], "tensor": [6, 10, 11, 12, 15, 25, 32, 44, 55, 69, 74, 87, 96, 112, 117, 142, 143, 146, 149, 182, 318, 339], "besid": [6, 96, 182], "last": [6, 8, 32, 62, 81, 92, 96, 124, 148, 164, 182, 234, 238, 241, 278, 289, 301, 318], "chang": [6, 65, 84, 96, 107, 127, 165, 168, 182, 235, 237, 242, 269, 271, 275, 276, 280, 281, 283, 298, 306, 318, 323, 327, 328, 345, 352], "string": [6, 10, 11, 29, 39, 44, 46, 55, 69, 74, 87, 88, 94, 96, 102, 103, 104, 112, 117, 130, 131, 132, 138, 142, 143, 146, 181, 182, 188, 207, 215, 216, 227, 229, 233, 236, 238, 246, 247, 262, 264, 265, 266, 269, 270, 271, 275, 276, 278, 280, 281, 342, 345, 346, 349], "unsupport": [6, 96], "i_l": [6, 96, 186], "too": [6, 96], "cannot": [6, 10, 11, 33, 35, 37, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146, 149, 278, 328, 338, 342, 345, 346, 348, 349], "neg": [6, 32, 94, 96, 130, 131, 132, 136, 137, 202, 203, 204, 205, 215, 216, 218, 219, 237, 246, 248, 249, 251], "properti": [6, 7, 8, 10, 12, 19, 22, 24, 39, 46, 55, 62, 64, 65, 74, 81, 83, 84, 93, 96, 101, 102, 106, 107, 117, 124, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 146, 163, 164, 165, 167, 168, 184, 185, 195, 203, 207, 208, 209, 215, 216, 217, 218, 219, 220, 237, 240, 241, 242, 244, 245, 246, 247, 254, 265, 268, 273, 279, 298, 302, 325, 326, 337, 342, 349], "bm": [6, 96, 186], "matrix": [6, 22, 29, 96, 193, 195, 203, 204, 205, 269, 279, 283, 302, 311, 325, 326, 335, 337, 354], "construct": [6, 96, 286, 289, 291, 295, 355], "computeil": [6, 96, 186], "sec": [6, 18, 19, 96, 285, 342, 345], "index": [6, 18, 19, 32, 39, 46, 48, 49, 60, 64, 65, 71, 72, 79, 83, 84, 85, 87, 88, 90, 91, 94, 96, 98, 99, 102, 103, 104, 106, 107, 114, 115, 122, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 162, 163, 165, 167, 168, 170, 171, 173, 174, 181, 182, 184, 204, 207, 209, 215, 216, 217, 218, 219, 220, 227, 228, 229, 231, 233, 235, 236, 237, 238, 239, 240, 242, 246, 247, 248, 249, 251, 254, 258, 259, 262, 264, 265, 266, 270, 272, 273, 278, 279, 280, 282, 285, 287, 288, 289, 291, 294, 302, 311, 312, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 335, 337, 342, 351, 353, 354, 355, 361], "specifi": [6, 8, 12, 14, 15, 17, 18, 19, 24, 29, 87, 92, 94, 96, 101, 102, 175, 176, 181, 182, 195, 207, 208, 227, 230, 236, 238, 268, 270, 278, 280, 302, 309, 318, 330, 331, 332, 333, 334, 335, 337], "exact": [6, 65, 84, 96, 107, 127, 162, 168, 239, 301], "befor": [6, 7, 9, 25, 27, 34, 36, 37, 59, 64, 78, 83, 88, 93, 96, 106, 121, 126, 163, 167, 195, 212, 240, 313, 321, 361, 362], "ratematch": [6, 7, 10, 24, 26, 28, 55, 57, 58, 59, 74, 76, 77, 78, 92, 96, 101, 102, 117, 119, 120, 121, 142, 146, 152, 153, 154, 158, 159, 184, 207, 208, 209, 210, 211, 212, 323, 339], "n_ldpc": [6, 9, 88, 96, 186], "prune": [6, 96], "pcm": [6, 58, 77, 96, 120, 186, 211], "z": [6, 96, 138, 139, 186, 196, 220, 247], "belief": [6, 96], "propag": [6, 15, 18, 19, 96, 193, 195, 198, 203, 204, 231, 268, 302, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 350, 351, 352, 355, 361], "compliant": [6, 8, 16, 19, 92, 96, 144, 145, 147, 148, 238, 243, 299, 301, 330, 331, 333, 334, 364], "inherit": [6, 10, 55, 74, 96, 117, 142, 146], "librari": [6, 29, 96, 227, 236, 278, 286, 290, 292, 293, 295, 310, 313, 321, 350, 355, 360, 361], "rxcodeword": [6, 96, 339], "denot": [6, 8, 29, 93, 96, 132, 138, 184, 185, 188, 196, 198, 203, 204, 205, 206, 235, 244, 245, 246, 247, 254, 256, 265, 275, 276, 278, 281, 304, 305, 306, 307, 308, 309, 330, 331], "logit": [6, 10, 11, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146, 149], "ldpcdecoder5g": [6, 96, 186, 339], "decbit": [6, 7, 9, 62, 81, 93, 96, 124, 164, 241, 318, 322, 339], "trainabl": [6, 96, 318], "cn_type": [6, 96], "boxplu": [6, 96], "phi": [6, 14, 96, 193, 195, 196, 327, 334, 351, 352], "track_exit": [6, 96], "return_infobit": [6, 96], "prune_pcm": [6, 96, 186], "num_it": [6, 10, 11, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146], "output_dtyp": [6, 10, 54, 55, 73, 74, 96, 116, 117, 142, 146, 184, 185, 188, 189], "iter": [6, 10, 11, 29, 44, 55, 69, 74, 96, 112, 117, 142, 143, 146, 196, 198, 206, 268, 279, 305], "tractabl": [6, 96], "differentiabilil": [6, 96], "kera": [6, 10, 55, 74, 96, 117, 142, 146, 301, 314, 318], "everi": [6, 19, 96, 198, 206, 236, 249, 270, 275, 281, 298, 302, 311, 312, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 347, 351, 352, 353, 354, 356, 361], "outgo": [6, 96], "scale": [6, 8, 16, 18, 87, 88, 90, 91, 93, 94, 96, 103, 104, 131, 137, 181, 182, 184, 188, 216, 219, 228, 229, 231, 244, 245, 264, 265, 285, 312, 318, 322, 330, 331, 334, 336, 337, 341, 343, 344, 345, 347, 361], "A": [6, 8, 10, 14, 15, 17, 18, 19, 24, 29, 33, 55, 64, 65, 74, 83, 84, 85, 89, 93, 96, 101, 102, 103, 104, 106, 107, 108, 117, 126, 127, 142, 146, 162, 163, 165, 167, 168, 189, 197, 199, 207, 208, 227, 229, 233, 236, 238, 239, 240, 242, 262, 263, 264, 266, 271, 278, 279, 284, 294, 310, 312, 313, 321, 334, 351, 354, 355, 361], "One": [6, 87, 96, 196, 197, 198, 199, 274, 278, 304, 312, 318, 350, 355], "minsum": [6, 96], "where": [6, 7, 8, 10, 11, 14, 15, 18, 19, 24, 26, 28, 29, 32, 39, 44, 46, 55, 58, 59, 69, 74, 77, 78, 85, 86, 88, 91, 92, 93, 95, 96, 101, 102, 103, 104, 108, 112, 117, 120, 121, 136, 137, 138, 139, 142, 143, 145, 146, 148, 153, 154, 158, 181, 182, 184, 189, 196, 198, 202, 203, 204, 205, 206, 207, 208, 211, 212, 218, 219, 220, 227, 228, 229, 230, 231, 234, 235, 236, 237, 244, 245, 247, 248, 249, 251, 252, 253, 254, 255, 256, 262, 264, 266, 267, 269, 270, 271, 275, 278, 279, 280, 281, 294, 295, 302, 304, 307, 309, 311, 312, 318, 322, 325, 326, 330, 331, 332, 333, 334, 335, 336, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 353, 354, 359, 360, 362, 365], "singl": [6, 14, 19, 32, 37, 85, 89, 96, 103, 104, 181, 229, 233, 254, 273, 276, 279, 281, 285, 288, 289, 291, 294, 295, 302, 311, 313, 318, 321, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 364], "rule": [6, 96], "numer": [6, 11, 27, 44, 69, 96, 112, 143, 280, 361, 365], "stabl": [6, 96, 280], "version": [6, 8, 15, 18, 24, 33, 58, 77, 87, 88, 90, 91, 92, 94, 96, 101, 102, 103, 104, 120, 130, 131, 132, 134, 136, 137, 138, 139, 145, 175, 181, 182, 184, 185, 186, 188, 203, 204, 207, 208, 209, 211, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 243, 244, 245, 246, 247, 253, 256, 260, 284, 301, 359, 360, 361, 362, 363, 364], "ryan": [6, 96], "min": [6, 29, 32, 96, 281, 285, 289, 294, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "approxim": [6, 29, 96, 269, 276], "cn": [6, 96], "updat": [6, 96, 128, 133, 140, 177, 178, 192, 194, 195, 199, 223, 224, 225, 301, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 349, 359, 361, 362], "decid": [6, 11, 12, 44, 69, 96, 112, 143, 149, 206, 283], "instead": [6, 94, 96, 268, 328, 338], "track": [6, 19, 96, 233, 296, 327, 332, 334, 335, 345, 346], "exit": [6, 96], "characterist": [6, 96, 269, 270, 271, 275, 276, 281, 304, 312, 323, 325, 326, 330, 331, 334, 337, 342, 349, 350, 355, 361], "cw": [6, 96], "info": [6, 96, 353], "punctur": [6, 57, 76, 96, 102, 119, 207, 210], "degre": [6, 14, 19, 96, 345, 348], "vn": [6, 96], "connect": [6, 14, 19, 96, 280, 285, 289, 350, 355, 361], "see": [6, 19, 96, 278, 305, 306, 307, 308, 309, 334, 335, 345, 365], "cammer": [6, 96], "yield": [6, 96], "improv": [6, 26, 27, 28, 58, 77, 96, 101, 120, 195, 196, 198, 202, 203, 204, 206, 208, 211, 214, 268, 269, 271, 275, 276, 279, 281, 283, 285, 302, 304, 323, 330, 331, 332, 334, 335], "throughput": [6, 96, 268, 279, 280, 281, 283, 285, 294, 313, 321, 323, 337, 354, 355, 361], "reduc": [6, 19, 27, 37, 57, 65, 76, 84, 87, 88, 94, 96, 102, 107, 119, 127, 162, 168, 181, 182, 196, 198, 204, 206, 207, 210, 239, 264, 280, 301, 306, 310, 312, 318, 321, 361], "memori": [6, 10, 11, 18, 19, 22, 44, 55, 69, 74, 87, 88, 96, 112, 117, 142, 143, 146, 149, 181, 182, 195, 202, 204, 301, 330, 331, 361], "earli": [6, 27, 96], "stop": [6, 96, 196, 198, 202, 206, 285, 288, 289, 291, 294], "moment": [6, 96, 301], "msg_vn": [6, 96], "need": [6, 32, 96, 196, 198, 278, 309, 312, 314, 332], "when": [6, 11, 12, 14, 15, 17, 18, 19, 21, 22, 35, 37, 39, 44, 46, 48, 60, 64, 69, 71, 79, 83, 86, 87, 95, 96, 98, 106, 112, 114, 122, 126, 143, 163, 167, 170, 173, 182, 184, 188, 196, 198, 206, 227, 233, 235, 236, 237, 240, 244, 245, 249, 255, 256, 258, 262, 265, 266, 267, 269, 275, 276, 278, 280, 285, 305, 307, 308, 309, 318, 322, 332, 335, 342, 345, 346, 351], "llrs_ch": [6, 96], "tupl": [6, 9, 18, 85, 86, 96, 189, 203, 204, 205, 206, 237, 269, 278], "raggedtensor": [6, 96], "rag": [6, 96], "wise": [6, 26, 37, 65, 84, 96, 107, 127, 162, 168, 239], "assert": [6, 96, 268], "two": [6, 14, 18, 29, 32, 48, 57, 60, 64, 65, 71, 76, 79, 83, 84, 86, 87, 89, 95, 96, 98, 102, 106, 107, 114, 119, 122, 126, 127, 138, 145, 162, 163, 167, 168, 170, 173, 180, 181, 182, 195, 196, 197, 198, 199, 203, 205, 209, 210, 234, 236, 239, 240, 247, 250, 255, 256, 258, 278, 281, 294, 302, 307, 309, 318, 330, 331, 332, 333, 334, 335, 337, 346, 347, 348, 353], "float16": [6, 96], "float64": [6, 96, 181, 189, 334], "lot": [6, 96, 301], "welcom": [6, 96], "everyon": [6, 96], "go": [6, 96, 318, 359, 362, 363], "i_": [6, 96], "l": [6, 8, 29, 33, 39, 46, 93, 95, 96, 108, 184, 186, 193, 195, 196, 203, 204, 205, 227, 230, 231, 235, 236, 237, 248, 249, 251, 254, 262, 266, 270, 272, 278, 289, 291, 294, 301, 302, 311, 323, 328, 330, 331, 332, 333, 334, 335, 336, 345, 351, 352, 361, 365], "dot": [6, 7, 8, 11, 12, 24, 39, 44, 46, 69, 85, 93, 96, 101, 102, 103, 104, 112, 143, 148, 182, 184, 188, 189, 206, 207, 208, 228, 229, 230, 231, 232, 233, 235, 236, 254, 256, 262, 263, 264, 266, 269, 270, 271, 272, 274, 278, 301, 302, 329, 330, 331, 332, 333, 334, 335, 338, 339, 340], "llr_max": [6, 10, 54, 55, 73, 74, 96, 116, 117, 142, 146, 184, 185, 186, 188, 189], "maximum": [6, 7, 8, 10, 11, 14, 17, 19, 27, 29, 39, 44, 46, 55, 64, 65, 69, 74, 83, 84, 87, 89, 93, 96, 106, 107, 112, 117, 126, 127, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 146, 163, 165, 167, 168, 180, 184, 197, 202, 204, 205, 215, 216, 217, 218, 219, 220, 227, 235, 236, 237, 238, 240, 242, 246, 247, 249, 254, 262, 266, 268, 271, 272, 278, 281, 305, 334, 351, 353], "avoid": [6, 96, 206, 306], "satur": [6, 10, 55, 74, 96, 117, 142, 146], "after": [6, 7, 8, 9, 10, 11, 12, 19, 26, 27, 37, 44, 55, 57, 69, 74, 76, 88, 92, 93, 95, 96, 102, 108, 112, 117, 119, 130, 131, 132, 134, 136, 137, 138, 139, 142, 143, 145, 146, 149, 152, 159, 175, 182, 189, 199, 204, 207, 210, 215, 216, 217, 218, 219, 220, 238, 246, 247, 269, 270, 285, 298, 323, 328, 341, 342, 343, 344, 345, 346, 347, 349, 353], "truncat": [6, 9, 57, 76, 88, 96, 102, 119, 207, 210], "nb_pruned_nod": [6, 96, 186], "preprocess": [6, 96, 203, 204, 281, 311, 313, 321, 361], "codeblock": [6, 9, 11, 24, 44, 64, 65, 69, 83, 84, 95, 96, 101, 102, 106, 107, 108, 112, 126, 127, 143, 148, 149, 163, 165, 167, 168, 186, 207, 208, 240, 242, 329, 333, 339], "segment": [6, 7, 9, 10, 24, 43, 55, 68, 74, 87, 92, 95, 96, 101, 102, 111, 117, 141, 142, 145, 146, 148, 150, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 207, 208], "concaten": [6, 7, 10, 43, 55, 68, 74, 87, 95, 96, 111, 117, 141, 142, 146, 150, 175, 176, 179, 181, 182, 183, 184, 185, 186, 188, 189, 294, 311, 312, 323, 325, 326, 330, 331, 332, 333, 334, 335, 352, 354], "codeblocksegment": [6, 7, 8, 10, 11, 43, 44, 68, 69, 93, 95, 111, 112, 141, 142, 143, 148, 149, 150, 184, 185, 186, 188, 189], "codeblockconcaten": [6, 8, 10, 11, 43, 44, 68, 69, 92, 95, 111, 112, 141, 142, 143, 148, 150, 184, 185, 186, 188, 189], "segreg": [6, 10, 43, 68, 111, 141, 142, 150, 175, 179, 181, 184, 185, 186, 188, 189, 365], "codeblocksegreg": [6, 7, 8, 10, 11, 43, 44, 68, 69, 92, 93, 111, 112, 141, 142, 143, 148, 150, 184, 185, 186, 188, 189], "aggreg": [6, 9, 10, 43, 68, 108, 111, 141, 142, 150, 175, 179, 181, 184, 185, 186, 188, 189, 227, 230, 236, 278, 304, 306, 307, 308, 309, 310, 313, 321, 328, 330, 331, 352, 355, 361], "codeblockaggreg": [6, 7, 10, 11, 43, 44, 68, 69, 93, 111, 112, 141, 142, 143, 148, 149, 150, 184, 185, 186, 188, 189], "introduct": [6, 96, 318], "handbook": [6, 96, 198], "record": [6, 96], "2004": [6, 96], "ebada": [6, 96], "elkelesh": [6, 96], "ten": [6, 96], "brink": [6, 96], "spars": [6, 19, 32, 96, 330, 349], "ieee": [6, 10, 55, 74, 96, 117, 142, 146, 198, 199, 284, 301, 318], "symposium": [6, 96, 199, 284], "theori": [6, 96, 198], "isit": [6, 96], "2018": [6, 96], "complement": 7, "opposit": [7, 28, 59, 78, 92, 93, 95, 121, 148, 149, 154, 158, 175, 181, 212], "break": [7, 8, 11, 44, 69, 92, 93, 112, 143, 148, 149, 323, 327, 328, 352], "numcbgrp1": [7, 92], "numrmop1": [7, 92], "cbsegreg": [7, 92], "cbsegregatellr": [7, 92], "numcbgrp2": [7, 92], "numrmop2": [7, 92], "numcbs1": [7, 92], "numbits1": [7, 23, 24, 85, 92, 100, 101, 186, 208], "numcbs2": [7, 92], "numbits2": [7, 23, 24, 85, 92, 100, 101, 186, 208], "divid": [7, 29, 59, 78, 92, 95, 102, 121, 176, 182, 186, 189, 207, 212, 227, 269, 270, 334, 336], "Then": [7, 92, 182, 249], "target": [7, 8, 10, 11, 44, 55, 57, 58, 69, 74, 76, 77, 88, 92, 93, 102, 112, 117, 119, 120, 142, 143, 146, 148, 149, 152, 159, 176, 181, 182, 185, 188, 189, 196, 199, 207, 209, 210, 211, 213, 214, 280, 299, 310, 321, 323, 328, 359, 360, 361, 362, 363], "consist": [7, 10, 18, 19, 39, 46, 55, 74, 85, 86, 87, 92, 95, 102, 117, 130, 131, 132, 136, 137, 138, 142, 146, 184, 186, 189, 196, 197, 198, 209, 213, 215, 216, 218, 219, 227, 246, 247, 262, 264, 266, 270, 274, 285, 289, 291, 294, 299, 318, 350, 351, 355, 361, 364], "g": [7, 8, 24, 92, 101, 102, 181, 182, 207, 208, 238, 285, 302, 305, 307, 308, 311, 323, 325, 326, 330, 331, 332, 333, 334, 335, 341, 342, 343, 344, 347, 349, 352, 353, 354], "bitselect": [7, 56, 57, 75, 76, 92, 100, 102, 118, 119, 150, 152, 157, 159, 160, 184, 185, 186, 188, 189, 207, 210, 339], "sum_": [7, 8, 24, 32, 33, 92, 101, 102, 182, 207, 208, 270, 281], "els": [7, 92, 130, 131, 132, 136, 137, 138, 139, 145, 182, 196, 197, 198, 199, 215, 216, 217, 218, 219, 220, 246, 247, 289, 291, 294, 301, 302, 311, 325, 326, 330, 331, 332, 333, 334, 335, 337, 339, 351, 353, 354], "crash": [7, 92, 362], "numcbsi": [7, 92], "numbitsi": [7, 92], "ot": [7, 8, 19, 39, 46, 92, 93], "float": [7, 8, 11, 12, 14, 15, 17, 18, 19, 21, 39, 44, 46, 64, 69, 83, 86, 88, 92, 93, 94, 103, 104, 106, 112, 126, 143, 148, 163, 167, 185, 188, 193, 196, 198, 199, 202, 203, 204, 205, 206, 228, 229, 238, 240, 244, 245, 254, 268, 273, 275, 280, 281, 361, 365], "mismatch": [7, 92, 193, 235], "larger": [7, 8, 92, 93, 102, 202, 204, 205, 207, 237, 301, 307, 309, 329, 334], "than": [7, 8, 11, 12, 14, 17, 19, 27, 33, 35, 37, 39, 44, 46, 48, 60, 62, 64, 65, 69, 71, 79, 81, 83, 84, 92, 93, 98, 102, 106, 107, 112, 114, 122, 124, 126, 127, 143, 144, 145, 147, 163, 164, 165, 167, 168, 170, 173, 189, 193, 195, 196, 197, 198, 202, 203, 204, 205, 207, 227, 228, 231, 233, 235, 237, 238, 240, 241, 242, 244, 245, 258, 267, 270, 278, 279, 280, 298, 301, 306, 307, 309, 342, 345, 346, 348, 349, 359, 360, 362], "numbit": [7, 49, 72, 92, 99, 102, 115, 171, 174, 207, 259, 326, 336], "reconstruct": [7, 93, 149, 318, 321, 355, 361, 364], "mac": [7, 87, 93, 94, 149, 260, 282], "understand": [7, 64, 65, 83, 84, 93, 106, 107, 126, 127, 144, 147, 149, 163, 165, 167, 168, 238, 240, 242, 249, 278, 280, 297, 342, 361], "650390625": [7, 8, 9, 93, 95], "tblen": [7, 93, 108], "cbaggreg": [7, 93], "rtbwithcrc": [7, 93, 108], "api": [7, 8, 10, 11, 22, 44, 49, 55, 69, 72, 74, 92, 93, 99, 112, 115, 117, 142, 143, 146, 148, 149, 171, 174, 186, 189, 192, 193, 194, 195, 202, 203, 204, 205, 206, 244, 245, 254, 259, 260, 261, 262, 263, 264, 265, 266, 267, 273, 274, 295, 361, 364], "ani": [7, 8, 14, 19, 32, 93, 94, 132, 134, 139, 181, 182, 217, 220, 227, 236, 238, 244, 245, 246, 270, 278, 279, 295, 298, 318, 328, 359, 360, 362, 363], "mciindex": [7, 8, 93], "computetransportblocks": [7, 8, 9, 93, 94, 186, 294, 301, 311, 312, 325, 326, 354], "includ": [7, 11, 14, 15, 16, 18, 19, 26, 44, 57, 69, 76, 87, 93, 112, 119, 143, 144, 145, 147, 148, 152, 159, 203, 204, 210, 227, 268, 269, 270, 271, 273, 275, 276, 277, 280, 281, 283, 295, 298, 318, 323, 328, 334, 335, 341, 343, 344, 347], "relat": [7, 11, 38, 39, 44, 46, 69, 93, 112, 143, 148, 238, 260, 264, 267, 293, 295, 298, 349, 356, 361], "non": [7, 8, 9, 10, 11, 12, 14, 17, 18, 19, 29, 44, 55, 57, 69, 74, 76, 93, 112, 117, 119, 130, 131, 132, 136, 137, 142, 143, 146, 148, 149, 152, 159, 193, 195, 202, 203, 204, 205, 210, 215, 216, 218, 219, 227, 230, 238, 246, 248, 249, 251, 260, 261, 270, 278, 299, 308, 318, 332, 336, 364], "ve": [7, 8, 9, 11, 44, 57, 62, 64, 65, 69, 76, 81, 83, 84, 93, 106, 107, 112, 119, 124, 126, 127, 143, 148, 152, 159, 163, 164, 165, 167, 168, 189, 210, 231, 240, 241, 242], "c": [7, 8, 10, 14, 19, 33, 55, 64, 65, 74, 83, 84, 93, 106, 107, 117, 126, 127, 142, 146, 163, 165, 167, 168, 186, 194, 198, 204, 227, 236, 240, 242, 249, 254, 265, 270, 285, 287, 289, 291, 294, 304, 305, 306, 307, 308, 318, 330, 331, 337, 342, 345, 349, 351], "kbar": [7, 8, 93, 186], "kcb": [7, 93, 186], "measur": [7, 93, 196, 197, 198, 199, 200, 203, 205, 206, 275, 276, 302, 309, 312, 332, 333, 335, 355, 361, 364], "packet": [7, 85, 87, 93, 94, 283], "best": [8, 10, 11, 44, 55, 69, 74, 93, 112, 117, 142, 143, 146, 149, 195, 280, 291, 294, 302, 311, 323, 325, 326, 327, 332, 333, 335, 337, 351, 352, 354, 355, 361, 365], "To": [8, 28, 93, 128, 133, 140, 149, 177, 178, 189, 223, 224, 225, 233, 264, 301, 332, 345, 359, 360, 361, 362, 363, 365], "shall": [8, 12, 93, 94, 103, 104, 149, 228, 229, 231, 279], "bound": [8, 17, 88, 93, 149, 328, 330, 331, 337], "limit": [8, 87, 88, 90, 91, 93, 94, 102, 149, 181, 182, 196, 197, 198, 206, 207, 209, 244, 245, 254, 298, 308, 321, 330, 331], "exce": [8, 14, 17, 19, 93, 149, 236, 278, 309], "smaller": [8, 93, 149, 309], "individu": [8, 11, 44, 69, 92, 93, 112, 143, 148, 149, 197], "ratemat": [8, 93, 149], "dematch": [8, 93, 149, 189], "upcom": [8, 9, 31, 65, 84, 93, 107, 127, 149, 162, 168, 239, 243, 361, 364], "small": [8, 10, 11, 12, 16, 18, 44, 55, 69, 74, 93, 112, 117, 141, 142, 143, 145, 146, 149, 150, 156, 157, 176, 179, 186, 196, 198, 206, 227, 234, 244, 245, 307, 329, 338, 341, 343, 344, 347, 349], "demonstr": [8, 11, 12, 44, 62, 69, 81, 92, 93, 94, 95, 112, 124, 143, 148, 149, 164, 205, 241, 289, 291, 294, 295, 304, 329, 330, 331, 333, 334, 335, 350, 352, 355, 361], "wai": [8, 11, 12, 18, 19, 44, 64, 69, 83, 93, 106, 112, 126, 143, 149, 163, 167, 195, 198, 205, 240, 265, 280, 361], "crctblock": [8, 93, 95, 108], "cbsegment": [8, 93, 95], "212": [8, 10, 11, 12, 24, 44, 55, 69, 74, 87, 92, 93, 95, 101, 102, 108, 112, 117, 142, 143, 145, 146, 149, 175, 181, 182, 207, 208, 301, 314], "inputs": [8, 9, 93], "lpdc": [8, 93, 182], "kb": [8, 93, 186, 318], "rmbit": [8, 92, 95, 184], "3gppts38212pdsch": [8, 24, 92, 101, 102, 186, 207, 208], "python": [8, 24, 29, 92, 101, 208, 227, 236, 278, 286, 290, 292, 293, 295, 310, 313, 321, 350, 355, 359, 360, 361, 362, 363, 364], "tblength": [9, 94], "ldpcparam": 9, "liftfactor": 9, "ncb": [9, 100, 102, 186, 207], "relev": [9, 10, 11, 18, 19, 21, 44, 55, 65, 69, 74, 84, 107, 112, 117, 127, 142, 143, 146, 162, 168, 205, 206, 239, 244, 260, 267, 269, 275, 276, 281, 299, 312, 349, 363], "physicalchannel": [9, 25, 85, 86, 87, 88, 94, 95, 108, 181, 182, 184, 185, 188, 189, 285, 287, 288, 289, 291, 294, 301, 311, 312, 323, 325, 326, 327, 328, 351, 352, 353, 354], "form": [9, 196, 227, 244, 245, 269, 270, 278, 283, 295, 298, 299], "mcsindex": [9, 87, 88, 90, 91, 94, 181, 182, 264, 280, 294, 301, 311, 325, 326, 354], "packag": [10, 55, 74, 117, 142, 146, 195, 205, 206, 226, 243, 289, 302, 323, 335, 351, 352, 359, 360, 362, 363], "build": [10, 18, 19, 55, 74, 117, 142, 146], "top": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "level": [10, 11, 15, 16, 18, 19, 29, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 186, 189, 206, 227, 230, 236, 243, 275, 278, 279, 280, 281, 304, 306, 307, 308, 309, 310, 313, 321, 328, 330, 331, 332, 333, 334, 335, 341, 343, 344, 347, 355, 361, 364], "easili": [10, 55, 74, 117, 142, 146, 295, 330, 331, 359, 360, 362, 363, 364], "integr": [10, 55, 74, 117, 142, 146, 299, 328, 338, 361, 364], "convei": [10, 39, 46, 55, 64, 74, 83, 106, 117, 126, 142, 146, 163, 167, 184, 240, 262, 266, 285], "wireless": [10, 22, 28, 49, 55, 72, 74, 99, 115, 117, 142, 146, 169, 174, 190, 193, 195, 196, 197, 198, 203, 204, 228, 243, 257, 268, 271, 273, 275, 276, 280, 281, 283, 285, 295, 298, 313, 321, 336, 337, 342, 346, 350, 355, 356, 361], "mother": [10, 55, 74, 117, 142, 146], "seg": [10, 55, 74, 117, 142, 146], "il": [10, 11, 27, 44, 55, 69, 74, 112, 117, 142, 143, 145, 146, 302, 330, 331, 332, 333, 334, 335], "bil": [10, 26, 55, 58, 74, 77, 117, 120, 142, 146, 153, 158, 211], "512": [10, 55, 65, 74, 84, 107, 117, 127, 142, 146, 165, 168, 175, 184, 242, 285, 287, 288, 291, 301, 311, 312, 314, 327, 336, 339, 341, 343, 344, 347, 351, 352], "864": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 184, 235, 237, 248, 251, 338], "140": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 238, 267, 285, 287, 288, 289, 291, 301, 302, 314, 327, 330, 332, 333, 335, 338, 351, 352], "8192": [10, 55, 74, 117, 142, 146, 175, 339], "format3": [10, 55, 74, 117, 142, 146], "1706": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146], "1024": [10, 29, 55, 74, 117, 142, 146, 175, 203, 205, 273, 285, 287, 288, 294, 311, 312, 318, 325, 326, 330, 331, 334, 335, 336, 337, 341, 343, 344, 345, 346, 353, 354], "format4": [10, 55, 74, 117, 142, 146], "31": [10, 55, 74, 117, 142, 146, 250, 278, 314, 318, 332, 333, 334, 340, 351], "16384": [10, 55, 74, 117, 142, 146], "figur": [10, 12, 14, 19, 55, 74, 117, 142, 146, 186, 204, 206, 227, 234, 236, 278, 285, 294, 305, 306, 307, 308, 309, 311, 327, 329, 330, 331, 345, 346, 347, 348, 351, 353], "3gppts38212polar": [10, 11, 26, 27, 28, 44, 55, 58, 59, 69, 74, 77, 78, 112, 117, 120, 121, 142, 143, 146, 149, 153, 154, 158, 211, 212], "nbatch": [10, 55, 74, 117, 142, 146, 291, 294, 323, 327, 328, 351, 352], "verbos": [10, 11, 44, 55, 69, 74, 87, 88, 90, 112, 117, 142, 143, 146, 149, 181, 182, 188, 189, 263, 264, 273, 294, 301, 311, 325, 326, 338, 353, 354], "polarencoder5g": [10, 54, 55, 73, 74, 116, 117, 142, 146, 184, 185, 188, 189, 338], "polarencod": [10, 55, 74, 117, 142, 146], "built": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 312, 318, 361], "modif": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 276, 298], "moreov": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 235, 237, 243], "complainc": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "being": [10, 11, 15, 17, 18, 19, 44, 55, 57, 64, 65, 69, 74, 76, 83, 84, 87, 88, 106, 107, 112, 117, 119, 126, 127, 130, 131, 142, 143, 146, 149, 152, 159, 163, 165, 167, 168, 181, 182, 210, 215, 216, 227, 240, 242, 265, 270, 278, 318, 342, 345, 346, 347, 349], "out": [10, 11, 18, 19, 44, 55, 57, 64, 65, 69, 74, 76, 83, 84, 102, 106, 107, 112, 117, 119, 126, 127, 142, 143, 146, 149, 162, 163, 167, 168, 207, 210, 239, 240, 244, 245, 289, 301, 318, 329, 361], "except": [10, 11, 12, 39, 44, 46, 48, 55, 57, 60, 69, 71, 74, 76, 79, 98, 103, 104, 112, 114, 117, 119, 122, 142, 143, 146, 149, 152, 159, 170, 173, 203, 210, 229, 237, 238, 244, 258, 262, 266, 267, 269, 272, 273, 274, 275, 276, 289], "invalid": [10, 11, 44, 55, 64, 65, 69, 74, 83, 84, 94, 102, 103, 104, 106, 107, 112, 117, 126, 127, 130, 131, 134, 136, 137, 142, 143, 146, 149, 163, 165, 167, 168, 207, 209, 215, 216, 217, 218, 219, 228, 229, 231, 236, 238, 240, 242, 244, 249, 254, 262, 263, 266, 267, 269, 270, 302, 334, 335], "uci": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 144, 145, 146, 147, 149, 175, 176, 221, 234, 329, 338], "although": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "consortium": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "agre": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "curv": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149], "aid": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 271, 355, 361], "sc": [10, 11, 29, 33, 34, 36, 44, 55, 69, 74, 103, 104, 112, 117, 142, 143, 146, 149, 185, 188, 202, 203, 204, 205, 229, 230, 233, 236, 245, 254, 267, 278, 294, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338, 342, 343, 351, 352, 354], "bp": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 188, 325, 326, 354], "materi": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 328, 338], "lead": [10, 11, 32, 44, 55, 69, 74, 112, 117, 142, 143, 146, 149, 280, 305, 312], "effect": [10, 11, 26, 27, 28, 35, 37, 44, 55, 58, 59, 64, 69, 74, 77, 78, 83, 106, 112, 117, 120, 121, 126, 142, 143, 146, 149, 153, 154, 158, 163, 167, 211, 212, 240, 268, 269, 270, 271, 281, 283, 310, 312, 321, 323, 330, 331, 334, 341, 343, 344, 345, 347, 349, 361], "loss": [10, 11, 16, 18, 19, 44, 48, 55, 60, 69, 71, 74, 79, 98, 112, 114, 117, 122, 142, 143, 146, 149, 170, 173, 258, 301, 312, 314, 318, 323, 341, 343, 344, 347, 350, 355], "trade": [10, 22, 55, 74, 117, 142, 146, 309], "off": [10, 22, 55, 74, 117, 142, 146, 309, 365], "accuraci": [10, 55, 74, 117, 142, 146, 195, 197, 198, 202, 203, 204, 271, 275, 276, 301, 302, 312, 330, 331, 332, 333, 334, 355, 361], "poor": [10, 55, 74, 117, 142, 146, 227, 278, 280, 281, 304], "scl": [10, 55, 74, 117, 142, 146, 188, 291, 294, 323, 328, 338, 351, 352], "list_siz": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146], "good": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 196, 198, 206, 278, 310, 321, 359, 362, 363], "hybscl": [10, 55, 74, 117, 142, 146, 188], "highest": [10, 39, 46, 55, 74, 117, 142, 146, 184, 195, 204, 262, 266, 280, 281, 301, 351], "lowest": [10, 55, 74, 117, 142, 146, 195, 204, 227, 230, 238, 270, 283, 301], "poorest": [10, 55, 74, 117, 142, 146], "100": [10, 11, 15, 17, 18, 19, 29, 44, 49, 55, 69, 72, 74, 99, 112, 115, 117, 142, 143, 146, 171, 174, 196, 198, 206, 259, 267, 285, 301, 302, 309, 311, 312, 314, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 345, 348, 352, 354, 355, 361, 365], "dec_typ": [10, 11, 44, 54, 55, 69, 73, 74, 112, 116, 117, 142, 143, 146, 184, 185, 188, 189, 338], "success": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 268, 291, 294, 328, 351, 359, 360, 362, 363], "cancel": [10, 11, 44, 55, 69, 74, 112, 117, 142, 143, 146, 198, 203], "polardecoder5g": [10, 11, 44, 54, 55, 69, 73, 74, 112, 116, 117, 142, 143, 146, 184, 185, 188, 189, 338], "bitest": [10, 11, 44, 48, 55, 60, 69, 71, 74, 79, 98, 112, 114, 117, 122, 142, 143, 146, 170, 173, 258, 291, 294, 323, 351], "iff": [10, 55, 74, 117, 142, 146], "accept": [10, 12, 17, 40, 48, 55, 60, 64, 65, 71, 74, 79, 83, 84, 87, 88, 94, 98, 102, 106, 107, 114, 117, 122, 126, 127, 134, 142, 146, 163, 165, 167, 168, 170, 173, 181, 182, 189, 207, 217, 240, 242, 249, 258, 264, 281], "binari": [10, 12, 55, 74, 117, 142, 146, 189, 227, 230, 298, 365], "unknown": [10, 55, 74, 117, 142, 146, 273], "afloat": [10, 55, 74, 117, 142, 146], "complet": [10, 27, 28, 39, 46, 55, 74, 117, 142, 146, 186, 189, 299, 301, 334, 342, 345, 359, 360, 361, 362, 363], "subsect": [10, 55, 74, 117, 142, 146, 329, 338, 339, 341, 343, 344, 347, 353], "inputbitinterleav": [10, 11, 23, 27, 43, 44, 68, 69, 111, 112, 142, 143, 184, 185, 188, 189], "inputbitdeinterleav": [10, 11, 23, 27, 43, 44, 68, 69, 111, 112, 142, 143, 184, 185, 188, 189], "condo": [10, 55, 74, 117, 142, 146], "land": [10, 55, 74, 117, 142, 146], "new": [10, 55, 74, 117, 142, 146, 206, 279, 304, 305, 306, 307, 308, 309, 336, 359, 360, 361, 362, 363], "radio": [10, 55, 62, 64, 65, 74, 81, 83, 84, 85, 86, 106, 107, 117, 124, 126, 127, 132, 138, 142, 146, 163, 164, 165, 167, 168, 175, 176, 185, 196, 199, 236, 240, 241, 242, 246, 247, 254, 260, 269, 270, 271, 278, 283, 284, 285, 295, 304, 305, 306, 307, 308, 309, 323, 336, 342, 364], "survei": [10, 55, 74, 117, 142, 146], "vol": [10, 55, 74, 117, 142, 146, 318], "pp": [10, 55, 74, 117, 142, 146, 196, 199, 284, 301, 318], "29": [10, 55, 74, 117, 142, 146, 278, 301, 314, 318, 332, 333, 334, 340, 343, 351, 365], "40": [10, 55, 74, 117, 142, 146, 175, 176, 236, 265, 267, 278, 285, 287, 288, 289, 291, 294, 302, 304, 305, 307, 308, 309, 314, 318, 326, 327, 332, 333, 334, 340, 351, 352], "quarter": [10, 55, 74, 117, 142, 146, 361], "2021": [10, 55, 74, 117, 142, 146, 189, 199, 284], "often": [11, 44, 69, 112, 143, 268, 271, 279], "vari": [11, 22, 31, 44, 69, 112, 143, 268, 275, 276, 280, 281, 302, 318, 330, 331, 345], "import": [11, 14, 16, 19, 29, 32, 39, 44, 46, 48, 60, 69, 71, 79, 98, 112, 114, 122, 143, 170, 173, 206, 227, 236, 258, 262, 266, 278, 286, 290, 292, 293, 295, 296, 305, 306, 307, 308, 309, 310, 313, 321, 333, 335, 340, 348, 350, 355, 359, 360, 361, 362, 363], "henc": [11, 39, 44, 46, 58, 64, 69, 77, 83, 106, 112, 120, 126, 143, 163, 167, 184, 196, 198, 211, 234, 240, 260, 262, 266, 276, 278, 305, 308, 360, 363], "becom": [11, 44, 69, 112, 143], "split": [11, 44, 69, 112, 143], "qualiti": [11, 44, 69, 94, 112, 143, 195, 269, 270, 271, 275, 276, 279, 280, 281, 283, 285, 302, 312, 321, 334, 335, 342, 355, 361], "servic": [11, 44, 69, 112, 143, 279, 280, 281, 283, 298, 332, 334, 335], "polarcod": [11, 26, 27, 28, 44, 57, 58, 59, 69, 76, 77, 78, 112, 119, 120, 121, 143, 148, 149, 152, 153, 154, 158, 159, 210, 211, 212, 291, 294, 323, 351, 352], "numtargetbit": [11, 44, 69, 88, 102, 112, 143, 148, 149, 189, 209, 271, 294, 311, 325, 326, 354], "formatpucch": [11, 44, 69, 112, 129, 130, 131, 143, 149, 175, 176, 179, 215, 216], "th": [11, 44, 69, 112, 143, 149, 196, 198, 204, 346], "bioglio": [11, 44, 69, 112, 143, 149], "describ": [11, 25, 44, 69, 89, 102, 112, 143, 148, 175, 176, 180, 181, 182, 207, 227, 280, 298, 323, 339, 341, 342, 343, 344, 345, 346, 347, 349, 360, 361], "enabl": [11, 18, 19, 21, 26, 27, 32, 44, 58, 69, 77, 87, 88, 91, 102, 112, 120, 130, 131, 132, 134, 136, 137, 138, 139, 143, 153, 158, 181, 182, 196, 206, 207, 209, 211, 215, 216, 217, 218, 219, 220, 238, 246, 247, 265, 268, 269, 270, 275, 276, 281, 285, 287, 289, 291, 294, 301, 330, 332, 334, 335, 353, 361, 365], "input_bit": [11, 25, 26, 27, 28, 44, 58, 59, 69, 77, 78, 112, 120, 121, 143, 153, 154, 158, 211, 212], "less": [11, 12, 18, 19, 27, 39, 44, 46, 57, 62, 69, 76, 81, 95, 112, 119, 124, 143, 144, 145, 147, 152, 159, 164, 189, 202, 203, 204, 205, 210, 231, 235, 238, 241, 244, 245, 267, 279, 283, 301, 318, 327, 341, 342, 343, 344, 345, 346, 347, 348, 349], "165": [11, 27, 44, 69, 112, 143, 314], "k_il_max": [11, 27, 44, 69, 112, 143], "interleavepattern": [11, 26, 27, 28, 44, 58, 59, 69, 77, 78, 112, 120, 121, 143, 153, 154, 158, 211, 212], "164": [11, 27, 44, 69, 112, 143, 314], "amd": [11, 27, 44, 69, 112, 143], "protect": [12, 280, 298], "awgn": [12, 48, 60, 71, 79, 86, 98, 114, 122, 130, 170, 173, 215, 258, 301, 321, 322, 329, 339, 355, 361], "reedmullerencoder5g": [12, 329], "numcodeword": [12, 95], "umber": 12, "3gppts38211_rm": 12, "reedmullerdecod": 12, "hardin": 12, "hard_in": 12, "reedmullerdecoder5g": [12, 329], "rxbit": [12, 294, 329, 338], "llrest": [12, 318, 322, 329, 338], "typeerror": [12, 130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 244, 245, 246, 247, 254], "primarili": [13, 20, 22, 153, 154, 155, 156, 158, 159, 346], "togeth": [14, 227, 270], "current": [14, 17, 19, 29, 31, 39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 195, 206, 238, 240, 242, 249, 260, 269, 270, 273, 274, 278, 280, 281, 295, 304, 305, 306, 307, 308, 309, 328, 345, 346, 351], "901": [14, 15, 16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "uniform": [14, 19, 279, 312, 341, 343, 344], "ula": 14, "planar": 14, "upa": 14, "multi": [14, 193, 195, 199, 202, 203, 204, 205, 281, 284, 326, 337, 347, 361, 364], "panel": [14, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "mpa": 14, "tr": [14, 15, 18, 19], "channelmodel": [14, 15, 17, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "antennatyp": [14, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "omni": [14, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "centerfrequ": [14, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "arraystructur": [14, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "uint16": 14, "antennaspac": [14, 18, 19], "antparamet": 14, "phasediff": 14, "thetagrid": 14, "pi": [14, 19, 32, 33, 48, 49, 60, 71, 72, 79, 86, 98, 99, 114, 115, 122, 170, 171, 173, 174, 244, 258, 259, 273, 302, 318, 327, 330, 331, 332, 333, 334, 335, 337, 345, 352, 364], "180": [14, 302, 314, 327, 334, 335, 345, 352], "phigrid": 14, "3gpp_38": [14, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "dual": [14, 29, 280, 342, 345, 349, 350, 355, 361, 364], "ref": [14, 15, 18, 19, 196, 197, 198, 199, 206], "radiat": [14, 294, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 354, 364], "3d": [14, 18, 144, 147, 269, 296, 302, 330, 331, 333, 334, 335, 342, 364], "displayantennaradiationpattern": [14, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 354], "surfac": [14, 18, 19], "displayantennaarrayfactor": 14, "rotat": [14, 193, 203], "rotateantennaradiationpattern": 14, "angl": [14, 16, 17, 18, 19, 193, 195, 197, 200, 206, 243, 302, 312, 330, 331, 332, 333, 335, 337, 341, 342, 343, 344, 345, 348, 351, 355, 361, 364], "alpha": [14, 19, 244, 302, 311, 318, 323, 325, 326, 330, 331, 332, 333, 334, 335, 345, 352, 354], "beta": [14, 228, 337], "gama": 14, "also": [14, 17, 18, 19, 29, 32, 91, 130, 131, 132, 136, 137, 138, 139, 175, 182, 202, 203, 204, 205, 215, 216, 218, 219, 220, 236, 246, 247, 249, 255, 256, 271, 278, 280, 283, 307, 308, 318, 327, 336, 342, 345, 348, 363], "euler": 14, "http": [14, 359, 360, 361, 362, 363], "en": [14, 360], "wikipedia": 14, "org": 14, "wiki": 14, "euler_angl": 14, "hertzian_dipol": 14, "linear_dipol": 14, "ntn_antenna": 14, "vsat": 14, "hz": [14, 15, 19, 202, 203, 204, 205, 267, 285, 287, 288, 289, 291, 294, 323, 328, 341, 342, 343, 344, 345, 346, 347, 348, 349], "ghz": [14, 15, 18, 19, 29, 39, 46, 184, 249, 262, 266, 267, 302, 327, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 345, 347, 351, 352], "alwai": [14, 19, 49, 58, 72, 77, 99, 115, 120, 130, 131, 132, 136, 137, 138, 171, 174, 211, 215, 216, 218, 219, 227, 235, 238, 244, 245, 246, 247, 254, 259, 278, 279, 285, 318, 345], "geometri": [14, 16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 343, 344, 345, 350, 351, 352, 354, 355, 361], "mg": 14, "ng": [14, 29], "p": [14, 29, 33, 206, 236, 250, 251, 252, 253, 254, 265, 278, 284, 302, 304, 305, 306, 307, 308, 309, 323, 325, 326, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 343, 344, 354, 360, 365], "vertic": [14, 29, 195, 302, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 348, 349, 351], "greater": [14, 17, 19, 35, 37, 102, 145, 193, 195, 204, 205, 207, 233, 280, 345], "horizont": [14, 29, 195, 302, 330, 331, 332, 333, 334, 335, 337, 348, 351], "column": [14, 19, 26, 193, 195, 227, 270, 341, 342, 343, 344, 345, 346, 349, 351], "dgv": 14, "dgh": 14, "dv": 14, "dh": [14, 19, 343], "theta_3db": 14, "half": [14, 19, 39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 235, 237, 238, 240, 242, 249, 262, 266, 272, 351], "beamwidth": 14, "along": [14, 19, 32, 139, 193, 195, 204, 217, 218, 219, 220, 227, 269, 270, 332, 341, 343, 344, 361], "elev": [14, 18, 193, 195, 196, 197, 206, 302, 335, 342, 350, 355], "65": [14, 285, 289, 291, 294, 309, 311, 314, 326, 332, 333, 334, 340, 351, 352, 355], "slav": 14, "lobe": 14, "attenu": 14, "30": [14, 90, 145, 204, 230, 236, 244, 245, 267, 278, 285, 288, 291, 294, 301, 302, 307, 308, 309, 311, 312, 314, 318, 325, 326, 327, 330, 331, 332, 333, 334, 335, 337, 340, 341, 342, 343, 344, 345, 346, 349, 351, 352, 353, 354], "phi_3db": 14, "azimuth": [14, 16, 17, 18, 19, 193, 195, 196, 197, 206, 302, 327, 334, 335, 341, 342, 343, 344, 347, 350, 352, 355], "amax": 14, "max": [14, 29, 32, 39, 46, 48, 60, 64, 65, 71, 79, 83, 84, 98, 106, 107, 114, 122, 126, 127, 145, 162, 163, 165, 167, 168, 170, 173, 184, 235, 237, 239, 240, 242, 249, 255, 258, 262, 266, 272, 273, 278, 285, 288, 289, 291, 294, 301, 302, 311, 312, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 345, 348, 351, 352, 354], "wave": [14, 199, 312, 321, 336, 349, 355, 361], "phase": [14, 15, 18, 19, 32, 203, 221, 233, 243, 268, 273, 275, 276, 296, 299, 325, 326, 330, 331, 334, 335, 337, 341, 343, 344, 350, 355], "rad": [14, 17], "theta": [14, 193, 195, 196, 302, 318, 327, 330, 331, 332, 333, 334, 335, 337, 351, 352], "zenith": [14, 16, 18, 341, 343, 344, 347, 348], "radian": [14, 17, 19, 197, 206, 345], "orientationperpanel": 14, "orient": [14, 17, 18, 19, 228, 342, 345], "correpond": 14, "bear": 14, "down": [14, 18, 19, 236, 323, 327, 328, 352, 361], "tilt": 14, "slant": 14, "numofpanel": 14, "polarizationslantangl": 14, "directionalgainmax": 14, "gain": [14, 58, 77, 120, 211, 285, 287, 288, 289, 291, 294, 349], "dbi": 14, "neither": [14, 19, 132, 138, 203, 205, 236, 246, 247, 254, 265, 302, 332, 333, 335, 353], "nor": [14, 19, 132, 138, 236, 246, 247], "instanc": [14, 17, 19, 236, 278, 305, 307, 309, 345, 346], "snippet": [14, 19, 29, 198, 278, 285, 318, 341, 343, 344, 345, 346, 347], "orienat": 14, "num": [14, 18, 19, 85, 87, 202, 205, 206, 263, 264, 294, 311, 328, 342, 345, 346, 349, 354], "here": [14, 57, 76, 119, 152, 159, 210, 236, 269, 270, 275, 276, 279, 285, 295, 298, 312, 318, 321, 332, 355, 363], "psa": 14, "antarrayobj": 14, "hertzina": [14, 16], "90": [14, 267, 278, 285, 287, 288, 289, 291, 294, 301, 302, 309, 314, 327, 330, 331, 332, 333, 334, 335, 351, 352], "look": [14, 19, 301, 309], "fc": [14, 15, 18, 329, 336, 341, 343, 344, 347], "antenna_3gpp_38901": [14, 16], "3gpp_38901": 14, "antenaa": 14, "antenna_hertziandipol": [14, 16], "antenna_lineardipol": [14, 16], "usual": 14, "ge_max": 14, "carrierfrequ": [14, 15, 16, 19, 29, 238, 267, 285, 287, 289, 291, 294, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "initi": [14, 17, 19, 33, 39, 46, 85, 103, 104, 132, 138, 184, 198, 206, 215, 216, 217, 218, 219, 220, 229, 233, 243, 245, 246, 247, 249, 250, 262, 263, 266, 271, 272, 273, 342, 345, 346, 353, 355, 360, 361, 362, 363], "lamda": [14, 275, 285, 287, 289, 291, 294, 302, 327, 330, 331, 332, 333, 334, 335, 337, 351, 352], "fieldtheta": 14, "fieldphi": 14, "field": [14, 39, 46, 85, 87, 88, 90, 91, 94, 103, 104, 181, 182, 184, 229, 233, 262, 263, 264, 266, 271, 351], "cluster": [15, 16, 18, 19, 341, 343, 344, 347], "coeffici": [15, 16, 18, 269, 270, 331, 332, 333, 350, 355], "timedomain": 15, "3gppts38901_channelgener": 15, "terrain": [15, 16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 335, 337, 342, 345, 346, 347, 349, 350, 351, 352, 354, 355, 361], "txlocat": 15, "rxlocat": 15, "txvelocityvector": 15, "rxvelocityvector": 15, "scenario": [15, 18, 19, 28, 202, 203, 204, 268, 275, 276, 279, 280, 302, 305, 310, 312, 321, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 347, 349, 350, 351, 352, 355, 361], "locat": [15, 17, 18, 19, 57, 76, 85, 86, 102, 103, 104, 119, 189, 196, 197, 198, 199, 200, 206, 207, 210, 226, 229, 233, 235, 236, 237, 238, 251, 275, 276, 291, 294, 302, 309, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 349, 351, 352, 354, 361], "tx": [15, 18, 19, 196, 282, 285, 287, 288, 290, 292, 294, 295, 302, 311, 312, 321, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 345, 346, 347, 350, 352, 354, 355, 361], "typic": [15, 18, 19, 235, 236, 237, 268, 269, 270, 271, 278, 282, 283, 296, 302, 311, 312, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 341, 343, 344, 351, 352, 354], "station": [15, 16, 17, 18, 19, 29, 87, 227, 236, 250, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 282, 283, 285, 294, 296, 305, 306, 307, 323, 325, 326, 328, 330, 331, 332, 334, 335, 337, 341, 342, 343, 344, 345, 347, 349, 352, 355, 361], "bss": [15, 17, 18, 19, 65, 84, 107, 127, 165, 168, 242, 294, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "dl": [15, 19, 39, 46, 184, 196, 198, 206, 227, 231, 236, 243, 248, 251, 254, 262, 266, 275, 328, 330, 355, 364], "dimension": [15, 18, 29, 188, 273, 278, 312, 318, 342], "numsnapshot": [15, 18, 22, 311, 347, 351, 354], "numb": [15, 18], "snapshot": [15, 16, 17, 18, 19, 327, 341, 342, 343, 344, 346, 347, 348, 349, 350, 352, 355], "rx": [15, 18, 19, 29, 273, 285, 287, 288, 289, 291, 294, 302, 311, 312, 321, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 345, 346, 347, 350, 352, 354, 355, 361], "equip": [15, 16, 17, 19, 27, 91, 108, 132, 138, 144, 147, 148, 149, 175, 176, 181, 182, 196, 198, 215, 216, 246, 247, 250, 252, 253, 255, 256, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 285, 296, 312, 323, 327, 332, 334, 335, 341, 342, 343, 344, 345, 347, 349, 352], "numu": [15, 18, 19, 22, 278, 279, 291, 294, 301, 304, 305, 306, 307, 308, 310, 311, 312, 321, 325, 326, 327, 347, 351, 352, 354], "veloc": [15, 17, 18, 19], "subcarrierspac": [15, 39, 46, 202, 203, 204, 205, 228, 231, 261, 265, 267, 302, 327, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 347, 349, 351], "15000": [15, 39, 46, 184, 228, 231, 236, 238, 262, 266, 267, 278, 285, 287, 288, 289, 291, 294, 301, 302, 311, 312, 326, 327, 332, 333, 335, 336, 337, 351, 352], "fftsize": [15, 267, 273, 285, 287, 288, 289, 291, 294, 311, 312, 325, 326, 327, 336, 341, 343, 344, 347, 352, 354], "128": [15, 228, 314, 318, 332, 336, 339, 351], "normalizechannel": [15, 311, 312, 323, 325, 326, 328, 352, 354], "fft": [15, 29, 32, 33, 193, 195, 267, 268, 273, 285, 287, 288, 291, 294, 311, 312, 325, 326, 327, 328, 330, 331, 334, 336, 337, 341, 342, 343, 344, 347, 349, 351, 352, 354], "khz": [15, 29, 85, 103, 104, 189, 228, 229, 230, 231, 236, 238, 248, 249, 251, 267, 270, 271, 278, 301, 327, 330, 331, 332, 333, 334, 335, 341, 343, 344, 352], "ifft": [15, 273, 341, 342, 343, 344, 347, 349, 351], "respons": [15, 18, 19, 32, 85, 236, 269, 270, 271, 275, 276, 280, 283, 323, 330, 334, 337, 349, 350, 355, 361], "ignor": [15, 206, 244, 245, 266, 280, 294, 332, 341, 342, 346, 348, 349, 351], "passband": 15, "boolean": [15, 17, 18, 19, 39, 46, 88, 184, 189, 265, 269, 279, 281], "normal": [15, 18, 19, 227, 235, 237, 267, 273, 285, 287, 288, 289, 291, 294, 301, 312, 321, 327, 331, 334, 336, 351, 352], "forc": [15, 19, 49, 72, 99, 115, 171, 174, 259, 269, 270, 271, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 348, 349, 351, 352, 354], "averag": [15, 18, 19, 269, 271, 318, 321, 353, 355, 361], "nfft": [15, 29, 202, 205, 228, 261, 267, 285, 287, 288, 289, 291, 294, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 347, 349, 351, 352, 354], "accross": [15, 32, 279, 330, 331, 350, 355], "subcarri": [15, 29, 32, 33, 34, 35, 36, 37, 39, 46, 130, 131, 136, 137, 184, 202, 203, 204, 205, 215, 216, 218, 219, 231, 235, 237, 238, 256, 262, 265, 266, 267, 271, 273, 275, 276, 281, 285, 287, 289, 291, 294, 301, 311, 312, 314, 325, 326, 327, 330, 331, 332, 333, 334, 335, 336, 337, 341, 343, 344, 349, 350, 351, 352, 354, 355], "numcarrierfreq": 15, "instant": [15, 18, 19, 33, 204, 342, 345, 346, 349], "numbss": [15, 18, 19, 22, 65, 84, 86, 87, 88, 107, 127, 165, 168, 233, 242, 294, 301, 311, 312, 325, 326, 347, 351, 354], "numrxant": 15, "numtxant": 15, "studi": [15, 18, 19, 321, 350, 355, 361], "five": 16, "name": [16, 17, 18, 19, 22, 29, 85, 86, 87, 88, 264, 298, 307], "across": [16, 19, 28, 38, 65, 84, 95, 101, 107, 127, 162, 168, 198, 202, 203, 204, 205, 208, 234, 235, 237, 239, 252, 253, 255, 256, 269, 271, 275, 276, 279, 312, 328, 330, 331, 334, 342, 350, 355], "deploy": [16, 19, 268, 280, 321, 323, 330, 331, 334], "insid": [16, 19, 57, 76, 119, 152, 159, 210, 345, 346], "particular": [16, 19, 65, 84, 107, 127, 162, 168, 236, 239, 278, 282, 307], "parametergenear": 16, "necessari": [16, 18, 29, 204, 227, 236, 269, 270, 278, 318, 323, 342, 345, 346, 347, 348, 349, 351], "lsp": [16, 18, 19, 325, 326, 337, 341, 342, 343, 344, 345, 346, 347, 349], "ssp": [16, 18, 19, 325, 326, 337, 341, 342, 343, 344, 345, 346, 347, 349], "spread": [16, 18, 19, 28, 37, 135, 136, 137, 179, 218, 219, 222, 226, 234, 312, 323, 336, 341, 343, 344, 347, 350, 355], "angular": [16, 18, 19, 334, 341, 343, 344, 347, 350, 355], "path": [16, 18, 19, 193, 195, 202, 203, 204, 205, 236, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 350, 351, 352, 353, 354, 355, 365], "rai": [16, 18, 299], "departur": [16, 18, 19, 348, 355, 361], "channelgenear": 16, "found": [16, 19, 34, 36, 64, 83, 106, 126, 163, 167, 204, 235, 237, 240, 249, 289, 336], "parabol": [16, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 347, 349, 351, 352, 354], "dipol": [16, 342, 345, 346, 349], "3gpp_38_901": 16, "hertzian": 16, "displayrout": [16, 17, 327, 342, 345, 346, 347, 352], "walk": 16, "circular": [16, 57, 76, 102, 119, 207, 210, 227, 270, 342, 345, 346], "rout": [16, 19, 341, 342, 343, 344, 345, 347, 350, 355], "vehicl": [16, 346], "highwai": 16, "bslocat": [16, 18, 19, 302, 327, 330, 331, 332, 333, 334, 335, 341, 342, 343, 344, 345, 346, 347, 349], "isd": [16, 18, 19, 196, 198, 206, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "ueloc": [16, 18, 19, 302, 327, 330, 331, 332, 333, 334, 335, 341, 342, 343, 344, 345, 346, 347, 349], "uedistibut": [16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 347, 348, 351, 352, 354], "ueheightdistribut": [16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 347, 351, 352, 354], "bsantennaarrai": [16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "bsrout": [16, 19, 346], "clutterdens": [16, 19, 302, 341, 343, 344], "clutterheight": [16, 19, 302, 341, 343, 344, 348], "clutters": [16, 19, 341, 343, 344, 348], "correlationdistanceindoor": [16, 19], "correlationdistancelo": [16, 19], "correlationtypeindoor": [16, 19], "correlationtypelo": [16, 19], "enablespatialconsistencyindoor": [16, 19, 342, 345, 346, 349], "enablespatialconsistencylo": [16, 19, 327, 342, 345, 346, 352], "force3gppspatialconsistencyparamet": [16, 19, 327, 352], "forcelo": [16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 348, 349, 351, 352, 354], "heightofb": [16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "heightofroom": [16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 348, 351, 352, 354], "heightofu": [16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "indooruefract": [16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 351, 352, 354], "layoutlength": [16, 19, 302, 330, 332, 333, 335, 337], "layouttyp": [16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "layoutwidth": [16, 19, 302, 330, 332, 333, 335, 337], "lengthofindoorobject": [16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 351, 352, 354], "maxnumberoffloor": [16, 19, 330, 348], "memoryeffici": [16, 18, 19, 342, 345, 346, 349], "minnumberoffloor": [16, 19, 348], "minuebsdist": [16, 18, 19, 323, 328, 341, 343, 344], "numofb": [16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "numofsectorspersit": [16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "numofsnapshot": [16, 19], "numofu": [16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "radiusforcircularuedrop": [16, 19], "routetyp": [16, 19], "ueantennaarrai": [16, 18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "uedropmethod": [16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 347, 348, 351, 352, 354], "uerout": [16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 347, 351, 352, 354], "widthofindoorobject": [16, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 351, 352, 354], "hexagon": [16, 18, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 334, 337, 342, 345, 346, 347, 348, 349, 350, 351, 352, 354, 355, 361], "rectangular": [16, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 351, 352, 354], "typeofmobl": [17, 346], "randomwalk": [17, 19, 327, 347, 352], "typical": 17, "static": [17, 269, 271, 330, 331, 334, 342, 345, 346, 347], "fall": [17, 280], "move": [17, 269, 271, 327, 342, 345, 346], "meter": [17, 18, 19, 198, 206, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 348, 351, 352, 354], "trajectori": [17, 342, 345], "anywher": [17, 19], "circumfer": [17, 342, 345], "circl": [17, 19, 206, 302, 332, 333, 334, 335, 342, 345, 346, 349, 355, 361], "start": [17, 32, 33, 57, 76, 88, 102, 119, 130, 131, 132, 134, 136, 137, 138, 139, 181, 182, 198, 202, 204, 207, 209, 210, 215, 216, 217, 218, 219, 220, 227, 228, 230, 231, 233, 236, 246, 247, 254, 265, 267, 270, 273, 278, 285, 287, 289, 291, 294, 301, 311, 328, 345, 346, 353, 354, 359, 360, 361, 362], "deg": [17, 18], "kind": [17, 18], "option": [17, 33, 227, 235, 237, 244, 280, 285, 287, 289, 291, 294, 301, 323, 330, 331, 346, 351, 352], "optiona": [17, 346], "optionb": 17, "optionc": 17, "lane": 17, "width": [17, 18, 19, 206, 270, 273, 285, 287, 288, 289, 291, 294, 301, 302, 305, 309, 311, 312, 314, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 351, 352, 354, 365], "postivi": 17, "nodeorient": 17, "timeinst": [17, 18, 19, 327, 342, 345, 346, 347, 352], "velocityvector": 17, "initloc": 17, "noderout": 17, "circularrout": 17, "dropvehicleshighwai": 17, "numnod": [17, 18], "minveloc": 17, "maxveloc": 17, "phimin": 17, "7853981633974483": [17, 327, 352], "phimax": 17, "randomizeorient": [17, 346], "decreas": [17, 19, 204, 308], "radiusmin": 17, "radiusmax": 17, "833": [17, 342, 345, 346], "isinitsnapshotlocationrandom": 17, "initangl": [17, 342, 345], "kmph": [17, 342, 345, 346], "initiat": 17, "snap": [17, 18, 19, 342], "shot": [17, 18, 19], "lanewidth": [17, 346], "numlan": [17, 346], "numvehicl": [17, 346], "vehicledroptyp": [17, 346], "correl": [18, 19, 204, 244, 245, 268, 273, 286, 290, 292, 293, 295, 351, 364], "displayclust": [18, 302, 311, 312, 323, 325, 326, 327, 330, 331, 332, 333, 334, 335, 337, 342, 346, 349, 351, 352, 354], "fetch": [18, 267, 285, 287, 288, 289, 291, 294, 327, 351, 352, 359, 362, 363], "through": [18, 19, 22, 64, 83, 86, 106, 126, 163, 167, 240, 268, 271, 279, 283, 294, 302, 312, 313, 318, 321, 325, 326, 329, 332, 333, 335, 338, 339, 349, 353, 355, 359, 360, 361, 362, 363, 365], "getchannel": [18, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 354], "3gppts38901_parametergener": 18, "lo": [18, 19, 197, 204, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 351, 352, 354], "phiaoa_lo": [18, 341, 342, 343, 344, 345, 346, 347, 349], "phiaod_lo": [18, 302, 334, 335, 341, 342, 343, 344, 345, 346, 347, 349], "thetaaoa_lo": [18, 341, 342, 343, 344, 345, 346, 347, 349], "thetaaod_lo": [18, 302, 334, 335, 341, 342, 343, 344, 345, 346, 347, 349], "shadow": [18, 312, 350, 355], "fade": [18, 19, 28, 268, 269, 270, 271, 275, 276, 280, 281, 283, 312, 323, 342, 350, 355], "shadowfad": [18, 341, 342, 343, 344, 345, 346, 347, 348, 349], "rician": [18, 350, 355], "kfactor": [18, 348], "delayspread": [18, 19, 311, 312, 326, 327, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352], "phiaod_spread": [18, 341, 342, 343, 344, 345, 346, 347, 348, 349], "phiaoa_spread": [18, 341, 342, 343, 344, 345, 346, 347, 348, 349], "thetaaod_spread": [18, 341, 342, 343, 344, 345, 346, 347, 348, 349], "thetaaoa_spread": [18, 341, 342, 343, 344, 345, 346, 347, 348, 349], "pathloss": [18, 332, 341, 342, 343, 344, 345, 346, 347, 348, 349], "casa": 18, "casd": 18, "czsa": 18, "pathdelai": [18, 341, 342, 343, 344, 345, 346, 347, 349], "pathpow": [18, 341, 342, 343, 344, 345, 346, 347, 349], "phiaoa_mn": [18, 341, 342, 343, 344, 345, 346, 347, 349], "phiaod_mn": [18, 341, 342, 343, 344, 345, 346, 347, 349], "thetaaoa_mn": [18, 341, 342, 343, 344, 345, 346, 347, 349], "thetaaod_mn": [18, 341, 342, 343, 344, 345, 346, 347, 349], "cross": [18, 29, 364], "xprnm": 18, "locb": 18, "locu": [18, 206, 334, 355, 361], "d3d": [18, 348], "d2d": [18, 299, 332, 346, 348, 364], "hallvolum": [18, 19], "surfacearea": [18, 19], "avgbuildingheight": [18, 19], "avgstreetwidth": [18, 19], "bsvelocityvector": [18, 19, 341, 342, 343, 344, 345, 346, 347, 349], "bsorient": [18, 19, 341, 342, 343, 344, 345, 346, 347, 349], "uevelocityvector": [18, 341, 342, 343, 344, 345, 346, 347, 349], "ueorient": [18, 341, 342, 343, 344, 345, 346, 347, 349], "enablespatialconsistencyforlsp": [18, 19, 327, 342, 345, 346, 352], "enablespatialconsistencyforssp": [18, 19, 327, 342, 345, 346, 352], "enablespatialconsistencyforinitialphas": [18, 19, 327, 342, 345, 346, 352], "equpi": 18, "volum": [18, 19], "hall": [18, 19, 330], "cubic": [18, 19, 275, 276, 294, 302, 326, 332, 333, 335, 337], "indoor": [18, 19, 199, 284, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 334, 337, 341, 342, 350, 351, 352, 354, 355, 361], "area": [18, 19, 269, 342, 361], "squar": [18, 19, 200, 206, 268, 269, 270, 271, 330, 331, 332, 333, 335, 351], "vaild": [18, 19], "height": [18, 19, 196, 197, 198, 199, 202, 204, 205, 206, 273, 275, 285, 289, 291, 294, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "street": [18, 19], "compuat": [18, 19], "numofcarrierfrequ": 18, "ram": [18, 19, 301], "slow": [18, 19], "execut": [18, 19, 64, 83, 87, 88, 90, 106, 126, 163, 167, 181, 182, 240, 298, 359, 360, 362, 363], "spatial": [18, 19, 281, 283, 296, 299, 325, 326, 334, 337, 350, 355, 361, 364], "among": [18, 19, 188, 279, 306], "linkstatevec": [18, 341, 342, 343, 344, 345, 346, 347, 349], "nlo": [18, 19, 198, 330, 331, 332, 334, 341, 342, 343, 344, 345, 346, 347], "nanosec": 18, "mukdb": [18, 19, 330, 331], "varianc": [18, 19, 330, 331, 334], "sigmakdb": [18, 19, 330, 331], "angularspreadaod": [18, 19, 326], "defualt": 18, "angularspreadaoa": [18, 19, 326], "mulog10": [18, 19, 302], "absolut": [18, 19], "subtract": [18, 19], "tap": [18, 19, 32], "impuls": [18, 19, 32, 271, 341, 343, 344, 347, 349], "tdl": [18, 19], "cdl": [18, 19, 312, 313, 321, 334, 354, 355, 361], "sigmalog10": [18, 19, 302], "enableabsolutedelai": [18, 19, 327, 352], "enableabsoluteangl": [18, 19], "sight": [18, 19, 302, 332, 350, 355], "numclust": [18, 341, 343, 344, 347], "zeta": [18, 198, 206, 336], "deviat": [18, 19, 318], "cd": 18, "nano": [18, 19], "Of": [18, 254, 265, 345, 353, 361], "positon": 18, "sens": [18, 299], "under": [18, 29, 236, 278, 281, 307, 312, 318, 323, 341, 343, 344, 347], "indic": [18, 19, 29, 32, 33, 39, 46, 85, 86, 88, 94, 102, 103, 104, 130, 131, 132, 134, 136, 137, 138, 139, 184, 185, 188, 189, 206, 207, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 233, 236, 237, 238, 246, 247, 254, 262, 266, 269, 270, 271, 273, 275, 276, 278, 279, 280, 281, 291, 293, 295, 318, 326, 328, 337, 342, 346, 348, 349, 351], "rayindex": [18, 302, 311, 312, 323, 325, 326, 327, 330, 331, 332, 333, 334, 335, 337, 342, 346, 349, 351, 352, 354], "carrierindex": [18, 342, 346, 349], "radiustx": [18, 342, 346, 349], "radiusrx": [18, 342, 346, 349], "displayplot": [18, 19, 204, 206, 327, 342, 346, 349], "third": [18, 38, 253, 255, 325, 326, 337], "boolen": [18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354], "applypathloss": [18, 341, 342, 343, 344, 345, 346, 347, 349], "scm": [18, 19], "uma": [18, 19, 327, 331, 337, 341, 342, 347, 348, 349, 351], "umi": [18, 19, 332, 346, 348], "inh": [18, 19, 333, 344], "oo": [18, 19, 39, 46, 333, 344], "carrierfreq": [18, 19, 39, 45, 46, 184, 262, 266, 291, 294, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "numcarri": [18, 19, 347], "empti": [18, 19, 102, 207, 302, 330, 331, 332, 333, 334, 335, 345, 347], "simlayoutobj": [18, 19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "19": [18, 19, 278, 291, 301, 308, 309, 311, 314, 318, 330, 331, 332, 333, 334, 335, 337, 340, 342, 347, 351, 353, 365], "500": [18, 19, 285, 318, 327, 341, 342, 345, 346, 347, 349, 352], "35": [18, 19, 245, 289, 294, 301, 307, 309, 311, 314, 318, 326, 327, 330, 331, 332, 333, 334, 335, 340, 342, 345, 346, 347, 348, 349, 351], "topologi": [18, 19, 302, 311, 312, 325, 326, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 354, 355, 361], "display2dtopologi": [18, 19, 302, 311, 312, 325, 326, 327, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "paramgenobj": [18, 341, 342, 343, 344, 345, 346, 347, 349], "bstrack": [18, 19, 341, 342, 343, 344, 345, 346, 347, 349], "uetrack": [18, 341, 342, 343, 344, 345, 346, 347, 349], "linkstat": [18, 19, 327, 342, 345, 346, 348, 352], "now": [18, 285, 287, 288, 289, 291, 294, 301, 311, 312, 322, 325, 326, 332, 341, 342, 346, 348, 349, 354, 359, 360, 362, 363], "3gpptr38901_simlayout": 19, "deploi": [19, 312, 330, 331, 334, 350, 355, 361], "chosen": [19, 87, 206, 227, 230, 236, 270, 278, 305, 328], "getparametergener": [19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "orbitparamet": 19, "600": [19, 248, 251], "78539816": 19, "initsatelliteparamet": 19, "57079633": 19, "useinitueloc": [19, 346], "exponenti": [19, 322], "50": [19, 90, 91, 94, 181, 182, 267, 301, 302, 308, 309, 314, 318, 326, 330, 331, 332, 333, 334, 335, 337, 338, 340, 343, 344, 347, 348, 351], "probabl": [19, 65, 84, 107, 127, 162, 168, 239, 278, 283, 318, 321, 330, 331, 334, 350, 355, 361], "basic": [19, 286, 289, 291, 294, 295, 296, 313, 321, 355], "sector": [19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "intersit": [19, 196, 198, 206, 330, 331, 334], "neighbour": [19, 65, 84, 107, 127, 162, 168, 239, 269, 270, 271, 275, 351], "site": [19, 289, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 333, 334, 335, 337, 341, 342, 343, 344, 346, 347, 348, 349, 350, 351, 352, 354, 355, 361], "placement": 19, "uedistribut": 19, "distribut": [19, 65, 84, 95, 101, 107, 127, 162, 168, 208, 239, 278, 279, 298, 302, 304, 305, 306, 307, 309, 311, 312, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 341, 342, 343, 344, 350, 351, 352, 354, 355], "choosen": [19, 236, 304, 309], "edg": [19, 278], "outermost": 19, "rectangl": 19, "uniformli": [19, 330, 331, 334], "point": [19, 32, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 227, 230, 238, 240, 242, 270, 295, 301, 336, 342, 355, 359, 360, 361, 362, 365], "row": [19, 26, 103, 104, 193, 195, 227, 228, 229, 231, 270, 302, 335, 337, 341, 343, 344], "orbit": 19, "satellit": 19, "altitud": 19, "eccentr": 19, "inclin": 19, "earth": 19, "perfect": [19, 86, 193, 195, 270, 302, 313, 321, 322, 335], "highli": [19, 280, 361], "closer": 19, "interv": [19, 22, 87, 95, 103, 104, 204, 205, 227, 228, 229, 231, 235, 248, 249, 251, 253, 255, 256, 268, 269, 270, 272, 285, 332, 336, 342, 345, 346, 347, 348, 349], "plane": 19, "equitori": 19, "longitud": 19, "ascend": 19, "periapsi": 19, "anomali": 19, "equin": 19, "vertox": 19, "perige": 19, "accord": [19, 144, 147, 181, 182, 227, 233, 328], "pick": [19, 238], "manual": [19, 285, 287, 288, 289, 291, 294], "gaussian": [19, 21, 32, 318], "hotspot": 19, "factori": [19, 330, 332, 341, 344, 350, 355, 361], "rural": [19, 350, 355, 361], "macro": [19, 331, 347, 350, 355, 361], "rma": [19, 334, 345, 348], "urban": [19, 331, 334, 342, 347, 355, 361], "micro": [19, 355, 361], "open": [19, 350, 355, 359, 360, 361, 362, 363], "offic": [19, 350, 355, 361], "mix": 19, "mo": 19, "clutter": [19, 341, 343, 344], "inf": [19, 302, 330, 335, 341, 343, 344], "sl": [19, 188, 235, 253, 256, 341, 343, 344], "sh": [19, 302, 311, 330, 335, 354, 359, 360, 362], "dens": [19, 280, 302, 314, 318, 323, 330, 331, 332, 333, 334, 335, 350, 355, 361], "hh": 19, "caputur": 19, "entri": [19, 227, 230, 270], "unexpect": [19, 254, 332, 341, 342, 346, 348, 349], "turn": [19, 279, 318, 365], "lie": [19, 236, 348], "close": [19, 32, 196, 305, 359, 362, 363], "fraction": [19, 281, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 351, 352, 354], "room": [19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354], "ceil": [19, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 351, 352, 353, 354], "minval": [19, 327], "maxval": 19, "depend": [19, 32, 39, 46, 86, 87, 94, 102, 132, 138, 181, 184, 206, 207, 236, 238, 246, 247, 262, 266, 268, 270, 272, 278, 281, 302, 307, 334, 335, 361], "floor": [19, 204, 285, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 351, 352, 353, 354], "invok": [19, 254, 264], "is3gppbaselin": 19, "necessarili": 19, "restrict": [19, 236, 267], "li": [19, 330, 331], "rightarrow": 19, "supportedterrain": 19, "doe": [19, 39, 46, 58, 77, 120, 134, 184, 211, 217, 227, 236, 262, 266, 269, 271, 278, 304, 305, 306, 307, 308, 309], "belong": [19, 24, 87, 101, 102, 207, 208, 227, 236, 244, 245, 253, 254, 255, 256, 295, 318], "come": [19, 341, 343, 344, 347, 363], "inter": [19, 22, 65, 84, 107, 127, 162, 168, 195, 239, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "antnennaarrai": 19, "center": [19, 294, 329, 342, 345, 346, 348, 349], "speicifi": 19, "geometr": 19, "By": [19, 87, 88, 130, 131, 132, 134, 136, 137, 138, 139, 181, 182, 197, 203, 204, 215, 216, 217, 218, 219, 220, 246, 247, 268, 269, 270, 271, 275, 276, 280, 281, 285, 332, 334, 335], "percentag": [19, 278, 280], "effic": [19, 294], "mode": [19, 29, 285, 287, 288, 289, 291, 294, 326, 337], "outdoor": [19, 350, 355, 361], "uepoints": 19, "facecolor": [19, 301, 345], "royalblu": [19, 302, 329, 330, 331, 332, 333, 334, 335, 338, 339, 340, 345, 346], "isequalaspectratio": [19, 302, 330, 331, 332, 333, 334, 335], "displaylinkst": 19, "refb": [19, 331, 343, 344, 348], "displaysectorlabel": 19, "abl": [19, 203, 301, 359, 360, 362], "adjust": [19, 57, 76, 119, 152, 159, 210, 265, 268, 269, 270, 271, 280, 281, 283], "transpar": [19, 289, 330, 365], "background": 19, "aspect": [19, 280, 281, 285, 287, 289, 291, 294, 311, 312, 327, 328, 330, 331, 342, 349, 351, 352], "wrt": [19, 197, 206, 273], "diplai": 19, "rest": [19, 264, 322, 349], "bsonli": 19, "ueonli": 19, "label": [19, 273, 285, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 318, 322, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352, 353, 354, 365], "0000000000000001e": 19, "07": [19, 301, 304, 318, 365], "seen": [19, 29, 32], "60": [19, 230, 236, 238, 245, 267, 278, 285, 287, 288, 289, 291, 301, 302, 304, 305, 308, 309, 314, 318, 326, 332, 333, 334, 340, 342, 345, 349], "09329365": 19, "2794876": 19, "45": [19, 227, 230, 255, 256, 270, 278, 294, 304, 309, 311, 314, 318, 326, 332, 333, 334, 340], "hexagonallayout": 19, "bsheight": 19, "intersitedist": 19, "numsectorspersit": 19, "rectangularlayout": 19, "numsit": [19, 345], "numsectorpersit": 19, "rectangulardrop": 19, "uedropdistribut": 19, "circulardrop": 19, "ueheight": 19, "hexagonaldrop": 19, "white": [21, 302, 318, 323, 325, 326, 328, 330, 331, 332, 333, 334, 335, 337], "addcfo": 21, "n0": [21, 351], "spectral": [21, 203, 204, 268, 280, 281, 283, 294, 309, 318], "noisi": [21, 283, 318, 365], "isfrequencydomain": [22, 311, 325, 326, 351, 354], "enableintertxinterfer": [22, 311, 325, 326, 351, 354], "memoryconsumptionlevel": [22, 311, 325, 326, 351, 354], "beamform": [22, 29, 186, 189, 275, 276, 283, 299, 302, 313, 321, 323, 325, 326, 327, 328, 332, 333, 335, 349, 352, 355, 361], "h": [22, 29, 32, 193, 195, 198, 202, 203, 204, 205, 228, 275, 311, 326, 330, 331, 337, 361], "multicel": [22, 341, 343, 344], "reperesent": 22, "matric": [22, 275, 276, 325, 326, 337], "interfer": [22, 65, 84, 107, 127, 162, 168, 203, 204, 239, 269, 270, 271, 275, 276, 280, 281, 283, 296, 299, 302, 323, 332, 333, 334, 335, 336, 364], "speed": [22, 199, 332, 336, 342, 345, 346, 361], "fastest": [22, 195], "most": [22, 39, 46, 184, 238, 262, 266, 279, 289, 295, 296, 302, 304, 309, 312, 330, 331, 332, 333, 334, 335, 349, 351], "intens": 22, "slowest": 22, "numfrequ": [22, 311, 351, 354], "numsymbol": [22, 48, 60, 71, 79, 86, 95, 98, 114, 122, 170, 173, 189, 193, 195, 231, 232, 235, 249, 258, 263, 264, 267, 270, 279, 283, 294, 301, 311, 323, 325, 326, 327, 351, 352, 354], "numsampl": [22, 204, 205, 273, 301, 311, 351, 354], "numfftpoint": [22, 311, 351, 354], "numrxantenna": [22, 86, 275, 311, 347, 351, 354], "numtxantenna": [22, 311, 347, 351, 354], "onto": [22, 85, 131, 137, 139, 204, 215, 216, 217, 218, 219, 220, 230, 232, 353], "inconsist": [22, 34, 36, 95, 228, 231, 235, 248, 249, 251, 255, 256, 269, 312], "pbchinterleav": [23, 25, 184], "pbchdeinterleav": [23, 25], "subblock_interleav": [23, 28, 56, 59, 75, 78, 118, 121, 150, 154, 157, 158, 160, 184, 185, 188, 189, 212], "subblock_deinterleav": [23, 28, 56, 59, 75, 78, 118, 121, 150, 154, 157, 158, 160, 184, 185, 188, 189, 212], "channelinterleav": [23, 26, 56, 58, 75, 77, 118, 120, 150, 153, 157, 158, 160, 184, 185, 188, 189, 211], "channeldeinterleav": [23, 26, 56, 58, 75, 77, 118, 120, 150, 153, 157, 158, 160, 184, 185, 188, 189, 211], "bitinterleav": [23, 24, 100, 101, 186, 188, 208], "bitdeinterleav": [23, 24, 100, 101, 186, 208], "matcher": [24, 26, 28, 58, 59, 77, 78, 88, 120, 121, 153, 154, 158, 185, 211, 212], "pf": [24, 101, 208], "re": [24, 101, 208, 227, 228, 231, 236, 284, 302, 323, 328, 330, 331, 332, 333, 334, 335, 361], "alter": [24, 65, 84, 101, 107, 127, 162, 168, 208, 239], "ensur": [24, 32, 101, 102, 207, 208, 268, 269, 270, 271, 275, 276, 278, 279, 280, 283, 285, 309, 312, 336], "fit": [24, 57, 76, 101, 102, 119, 152, 159, 207, 208, 210, 314, 318], "alloc": [24, 35, 37, 57, 76, 87, 88, 89, 90, 94, 101, 102, 103, 104, 119, 130, 131, 132, 134, 136, 137, 138, 139, 180, 181, 182, 188, 189, 207, 208, 210, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 232, 233, 236, 246, 247, 254, 264, 265, 270, 275, 278, 279, 283, 285, 291, 294, 299, 307, 308, 323, 351, 352, 353], "interleavedbit": 25, "numpbch": 25, "deinterleavedbit": 25, "triangular": 26, "isoscel": 26, "buffer": [26, 27, 57, 76, 87, 88, 90, 91, 102, 119, 181, 182, 207, 209, 210, 285, 287, 288, 289, 291, 294, 301], "constel": [26, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 290, 292, 293, 295, 321, 322, 326, 329, 336, 338, 339, 355, 361], "termin": [27, 359, 362, 363], "place": [27, 193, 195, 198, 206, 236, 351], "immedi": [27, 199], "sequenti": [27, 186, 279], "wait": 27, "alarm": 27, "rearrang": 28, "common": [28, 39, 46, 130, 131, 132, 134, 136, 137, 138, 139, 184, 202, 215, 216, 217, 218, 219, 220, 236, 246, 247, 262, 266, 268, 269, 270, 277, 278, 281, 304, 305, 306, 307, 308, 309, 313, 321, 328, 346, 351, 353], "sever": [28, 203, 204], "corrupt": [28, 203, 204], "sensit": [28, 301], "handl": [28, 204, 289, 330, 331, 341, 342, 343, 344, 345, 346, 347, 349], "burst": [28, 39, 46, 101, 184, 208, 214, 238, 262, 266, 272], "Such": [28, 87, 88, 181, 182, 346], "4g": 28, "assertionerror": [28, 59, 78, 121, 154, 158, 212], "complementari": [28, 59, 78, 121, 154, 158, 186, 212], "permut": [28, 59, 78, 121, 154, 158, 212], "dft": [29, 34, 35, 36, 37, 195, 205, 206, 330, 331, 351, 355, 361], "codebook": [29, 299, 337, 355, 361, 364], "28": [29, 87, 88, 94, 181, 182, 192, 194, 231, 244, 264, 278, 280, 301, 302, 304, 305, 314, 318, 330, 331, 332, 333, 334, 335, 340, 343, 347, 351], "214": [29, 87, 94, 186, 236, 280, 301, 314], "typeicodebook": [29, 30, 326, 337], "idealprecod": 29, "beam": [29, 39, 46, 196, 238, 243, 249, 275, 276, 283, 299, 330, 350, 355, 361, 364], "searchfre": [29, 30, 326, 337], "sf": [29, 136, 137, 218, 219, 336, 348], "pmi": [29, 364], "predefin": [29, 236], "full": [29, 364], "emploi": [29, 202, 268, 275, 276, 277, 279, 280, 332, 334], "n1": [29, 318], "atenna": 29, "n2": [29, 88], "thu": [29, 87, 88, 181, 182, 278, 306, 307, 328, 338], "pre": [29, 363], "multipli": [29, 32, 131, 134, 137, 138, 139, 216, 217, 219, 220, 247, 309], "w": [29, 206, 275, 311, 318, 352, 365], "transmisson": [29, 227], "oversampl": [29, 202, 205], "3gppts38214type1cb": 29, "mimoprocess": [29, 285, 287, 288, 289, 291, 294, 326, 327, 337, 351, 352], "codebooktyp": [29, 326, 337], "antennastructur": [29, 326, 337], "antennapolar": [29, 326, 337], "typei": [29, 326, 337], "singlepanel": [29, 326, 337], "multipanel": 29, "horizonat": [29, 342, 345, 346, 349], "addition": [29, 202, 280], "sinc": [29, 32, 35, 37, 227, 336], "numiter": [29, 196, 198, 206, 304, 305, 306, 307, 308, 309, 326, 337], "ideal": [29, 330, 331, 336, 337, 341, 342, 343, 344, 347, 349, 361], "svd": [29, 281, 313, 321, 326, 355, 361], "type1": 29, "nt": [29, 294, 302, 311, 312, 314, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 349, 351, 352, 354], "codebookmod": [29, 326, 337], "fd": [29, 103, 104, 228, 229, 337], "resouc": 29, "rb": [29, 33, 87, 189, 227, 230, 234, 235, 236, 237, 238, 245, 265, 266, 267, 270, 279, 285, 287, 288, 289, 291, 294, 311, 312, 325, 326, 327, 328, 330, 331, 334, 351, 352, 353, 354], "times32": 29, "band": [29, 186, 189, 198, 238, 262, 266, 267, 268, 270, 279, 283, 285, 287, 288, 291, 326, 327, 337, 350, 351, 352, 355, 361, 364], "patch": [29, 227, 236, 278, 285, 287, 288, 302, 304, 305, 306, 307, 308, 309, 323, 328, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 349], "mpatch": [29, 227, 236, 278, 302, 304, 305, 306, 307, 308, 309, 330, 331, 332, 333, 334, 335, 337], "mpl": [29, 227, 236, 278, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 323, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 340, 341, 343, 344, 347, 348, 353, 354], "numrb": [29, 35, 37, 85, 87, 88, 90, 91, 94, 103, 104, 129, 130, 131, 132, 135, 136, 137, 138, 139, 179, 181, 182, 189, 215, 216, 218, 219, 220, 222, 229, 231, 233, 238, 244, 245, 246, 247, 254, 262, 264, 266, 267, 271, 275, 276, 279, 283, 285, 287, 288, 291, 294, 301, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354], "bwpoffset": [29, 270, 294, 302, 311, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 352, 354], "txantstrutur": [29, 311, 312, 325, 326, 327, 352, 354], "rxantstrutur": [29, 311, 312, 325, 326, 327, 352, 354], "subband": 29, "subbands": [29, 326, 337], "prb": [29, 85, 103, 104, 130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 233, 246, 247, 270, 278, 326, 328, 337, 353], "numsubband": [29, 326, 337], "subbandscindic": [29, 326, 337], "vh": [29, 311, 325, 326, 337, 354], "linalg": [29, 294, 302, 311, 318, 325, 326, 327, 330, 331, 332, 333, 334, 335, 337, 354], "hf": [29, 39, 46, 202, 203, 204, 205, 235, 237, 270, 272, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 354], "conj": [29, 311, 325, 326, 337, 354], "transpos": [29, 302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354], "combin": [29, 39, 46, 94, 103, 104, 184, 197, 203, 204, 228, 229, 231, 238, 262, 266, 267, 272, 311, 327, 329, 337, 338, 339, 352, 353, 354, 355, 361, 364], "newaxi": [29, 294, 302, 311, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 351, 352, 354], "axi": [29, 193, 195, 278, 294, 302, 305, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "xbeam": [29, 311, 325, 326, 354], "txgrid": [29, 294, 311, 323, 325, 326, 328, 354], "type1cb": [29, 326, 337], "numport": [29, 103, 104, 189, 229, 232, 233, 326, 337], "prod": [29, 302, 323, 326, 327, 328, 330, 332, 333, 335, 337, 348, 352], "type1precod": [29, 326, 337], "complex_": [29, 326, 337], "nsb": [29, 326, 337], "hk": [29, 193, 195, 302, 326, 335, 337], "s2": [29, 326, 337], "eig": [29, 326, 337], "nb": [29, 302, 326, 327, 330, 331, 332, 333, 334, 335, 352], "cbbeamformedgrid": 29, "sp": [29, 302, 330, 331, 332, 333, 334, 335, 337], "mode1": 29, "federico": 29, "penna": 29, "hongb": 29, "cheng": 29, "jungwon": 29, "lee": 29, "simplifi": 31, "broadband": 31, "characteris": 31, "furthermor": [31, 62, 81, 124, 164, 241, 301, 329, 330, 331, 334, 339, 341, 342, 343, 344, 345, 346, 347, 349, 359, 362, 363], "facilit": [31, 234, 269, 270, 271, 285, 327, 361], "prefix": [31, 32, 33, 267, 268, 273, 351], "sampl": [32, 33, 34, 35, 36, 37, 193, 195, 202, 204, 205, 260, 267, 268, 273, 286, 288, 289, 291, 294, 295, 318, 321, 336, 351, 361], "fft_size": [32, 33, 268], "l_min": 32, "cyclic_prefix_length": [32, 33, 268, 336], "represent": [32, 33, 39, 46, 184, 262, 266, 318, 349], "waveform": [32, 203, 204, 221, 299, 336, 364], "timechannel": 32, "pair": [32, 48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 203, 238, 258, 259, 262, 266, 267, 332], "y_b": 32, "ell": 32, "l_": [32, 64, 65, 83, 84, 106, 107, 126, 127, 162, 163, 165, 167, 168, 233, 239, 240, 242, 249, 254], "bar": [32, 33, 39, 46, 184, 249, 262, 265, 266, 291, 294, 309, 327, 351], "x_": 32, "w_b": 32, "quad": 32, "n_b": 32, "discret": [32, 33, 192, 202], "w_": 32, "cut": 32, "piec": 32, "throw": 32, "awai": [32, 327], "trail": 32, "fourier": [32, 192, 202, 312], "window": [32, 33, 289, 355, 359, 362], "shift": [32, 132, 138, 215, 216, 217, 218, 219, 220, 221, 227, 244, 246, 247, 252, 253, 254, 265, 270, 275, 276, 312, 323, 328, 351, 353], "j2": 32, "le": 32, "largest": [32, 273, 355], "lag": 32, "explicitli": 32, "step": [32, 196, 198, 203, 204, 206, 269, 270, 272, 301, 311, 312, 314, 321, 329, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 351, 353, 359, 360, 361, 362, 363], "pilot": [32, 103, 104, 229, 233, 268, 269, 271, 276, 330, 331, 333, 334, 335], "interpol": [32, 202, 205, 269, 270, 271, 275, 276, 285, 287, 289, 291, 294, 302, 326, 327, 328, 332, 333, 334, 335, 337, 342, 349, 351, 352, 355, 361], "ofdmchannel": 32, "cir_to_time_channel": 32, "prepend": [32, 33], "num_ofdm_symbol": [32, 33], "nonneg": [32, 268], "cp": [33, 267, 268, 285, 287, 288, 289, 291, 294, 327, 351, 352, 355, 361], "_l": 33, "mu": [33, 63, 64, 65, 82, 83, 84, 85, 103, 104, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 194, 196, 198, 204, 206, 228, 229, 230, 231, 236, 240, 242, 248, 249, 251, 254, 265, 270, 271, 278, 304, 305, 306, 307, 308, 309, 323, 328], "n_": [33, 64, 65, 83, 84, 85, 103, 104, 106, 107, 126, 127, 163, 165, 167, 168, 189, 196, 198, 228, 229, 230, 231, 235, 236, 240, 242, 244, 245, 248, 249, 251, 252, 253, 254, 255, 256, 270, 271, 278, 285, 330, 331, 334], "mathrm": 33, "a_": 33, "left": [33, 238, 301, 309, 325, 326, 329, 337, 338, 339, 340], "k_0": 33, "right": [33, 298, 301, 329, 353], "delta": [33, 85, 103, 104, 189, 198, 206, 228, 229, 230, 231, 236, 238, 244, 245, 248, 249, 251, 254, 270, 271, 278, 330, 331, 334, 348, 351], "f": [33, 85, 103, 104, 189, 226, 228, 229, 230, 231, 235, 236, 237, 238, 248, 249, 251, 254, 265, 270, 271, 275, 278, 291, 294, 330, 331, 334, 336, 348, 351, 352], "t_": 33, "express": [33, 203, 236, 278, 298], "deriv": [33, 86, 280], "definit": [33, 336], "associ": [33, 227, 278, 298], "numerologi": [33, 230, 236, 238, 260, 267, 278, 323, 328], "durat": [33, 103, 104, 227, 229, 230, 233, 234, 236, 270, 278, 294, 311, 323, 328, 349, 354], "longer": [33, 196, 198, 206], "numsubcarri": [34, 35, 36, 37, 86, 202, 203, 204, 205, 228, 230, 231, 270, 281, 311, 314, 337], "fdm": [34, 36], "numset": [34, 35, 36, 37], "stream": [34, 35, 36, 37, 57, 76, 85, 119, 152, 159, 210, 263, 264, 281], "tranform": [34, 35, 36, 37], "ngroupptr": [35, 37], "nsampgroup": [35, 37], "so": [35, 37, 88, 130, 131, 132, 136, 137, 138, 139, 198, 215, 216, 218, 219, 220, 238, 246, 247, 264, 304, 309], "slot": [35, 37, 48, 49, 60, 71, 72, 79, 85, 87, 88, 90, 91, 94, 98, 99, 103, 104, 114, 115, 122, 130, 131, 132, 134, 136, 137, 138, 139, 170, 171, 173, 174, 181, 182, 189, 215, 216, 217, 218, 219, 220, 228, 229, 230, 231, 232, 234, 236, 246, 247, 248, 249, 251, 252, 253, 254, 258, 259, 265, 270, 271, 278, 279, 283, 294, 304, 305, 306, 307, 308, 309, 311, 312, 321, 323, 325, 326, 328, 330, 331, 334, 353, 354, 355, 361], "possvalu": [35, 37, 271], "self": [35, 37, 39, 46, 94, 95, 103, 104, 228, 229, 231, 244, 254, 279, 280, 289, 314], "__ngroupptr": [35, 37], "constitu": [38, 252, 253, 255, 256], "load": [38, 85, 103, 104, 189, 229, 230, 231, 232, 235, 236, 237, 238, 248, 251, 252, 253, 254, 255, 256, 264, 265, 266, 270, 271, 278, 279, 285, 287, 289, 291, 294, 301, 302, 311, 312, 313, 321, 323, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 340, 351, 352, 354], "middl": [38, 252, 253, 255, 256, 325, 326, 337], "payloadgener": [38, 39, 46], "argc": 38, "dcityp": 38, "n_rb": [38, 238, 289, 294, 351, 352], "3gppts38211_dci": 38, "choic": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 228, 235, 236, 237, 238, 240, 242, 249, 262, 266, 269, 272, 278, 301, 304, 305, 306, 307, 308, 309, 311, 312, 318, 337, 351, 353], "choicebit": [39, 45, 46, 184, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "na": [39, 46, 49, 65, 72, 84, 99, 107, 115, 127, 162, 168, 171, 174, 239, 243, 259], "subcarrierspacingcommon": [39, 45, 46, 184, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "dmrstypeaposit": [39, 45, 46, 85, 103, 104, 184, 229, 233, 262, 263, 264, 266, 271, 285, 287, 289, 291, 294, 311, 325, 326, 327, 351, 352, 354], "controlresourceset0": [39, 45, 46, 86, 184, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "searchspace0": [39, 45, 46, 86, 184, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "cellbar": [39, 45, 46, 184, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "intrafrequencyreselect": [39, 45, 46, 184, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "ssbsubcarrieroffset": [39, 45, 46, 86, 184, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "ssbindex": [39, 45, 46, 63, 64, 65, 82, 83, 84, 86, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 235, 237, 240, 242, 249, 262, 266, 272, 285, 287, 289, 291, 294, 327, 351, 352], "nssbcandidatesinhrf": [39, 45, 46, 184, 235, 237, 249, 262, 266, 272, 285, 287, 289, 291, 294, 327, 351, 352], "ati": [39, 46, 289, 291, 351, 355, 361], "systemframenumb": [39, 45, 46, 184, 262, 265, 266, 285, 287, 289, 291, 294, 302, 327, 332, 333, 335, 351, 352], "mibgener": [39, 45, 46, 184], "dmrsposit": [39, 46], "cresourcesetzero": [39, 46], "searchspacezero": [39, 46], "hrfbit": [39, 45, 46, 184, 235, 237, 249, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "titl": [39, 46, 262, 266, 291, 294, 309, 348], "misnom": [39, 46, 262, 266], "52": [39, 46, 184, 238, 262, 266, 305, 314, 332, 333, 334, 340], "30000": [39, 46, 103, 104, 184, 228, 229, 231, 233, 261, 262, 266, 267, 301, 311, 312, 325, 327, 331, 334, 337, 351, 352, 354], "120000": [39, 46, 184, 262, 266, 330, 337], "240000": [39, 46, 184, 262, 266, 337], "sib1": [39, 46, 130, 131, 132, 134, 136, 137, 138, 139, 184, 215, 216, 217, 218, 219, 220, 246, 247, 262, 266, 351], "msg": [39, 46, 184, 262, 266], "si": [39, 46, 184, 194, 204, 236, 262, 266, 301, 351, 352], "typea": [39, 46, 184, 262, 266, 291, 294, 351], "dm": [39, 46, 85, 103, 104, 184, 229, 233, 262, 263, 266, 271, 351], "pos2": [39, 46, 85, 103, 104, 184, 229, 233, 262, 263, 264, 266, 271, 294, 311, 325, 326, 354], "pos3": [39, 46, 85, 103, 104, 184, 229, 233, 262, 263, 264, 266, 271, 294, 311, 325, 326, 354], "controlresourceset": [39, 46, 184, 262, 266, 351], "crucial": [39, 46, 184, 196, 198, 206, 262, 266, 268, 269, 270, 271, 275, 276, 280, 285, 304, 305, 306, 307, 308, 309, 312, 342, 352], "reselect": [39, 46, 184, 262, 266, 351], "intra": [39, 46, 130, 131, 132, 134, 136, 137, 138, 139, 184, 215, 216, 217, 218, 219, 220, 246, 247, 262, 266, 351], "treat": [39, 46, 184, 262, 266, 351], "frame": [39, 46, 64, 65, 83, 84, 85, 103, 104, 106, 107, 126, 127, 132, 138, 163, 165, 167, 168, 184, 189, 228, 229, 230, 231, 235, 236, 237, 238, 240, 242, 246, 247, 248, 249, 251, 254, 260, 262, 265, 266, 267, 268, 270, 271, 272, 278, 286, 294, 295, 296, 301, 304, 305, 306, 308, 309, 323, 327, 328, 330, 331, 334, 345, 351, 352, 361], "1023": [39, 46, 132, 138, 184, 246, 247, 254, 262, 265, 266], "msb": [39, 46, 184, 262, 266, 351], "sfn": [39, 46, 65, 84, 107, 127, 162, 168, 184, 239, 262, 266, 351], "ie": [39, 46, 184, 254, 262, 266], "lsb": [39, 46, 184, 262, 266], "outsid": [39, 46, 184, 262, 266, 295, 332, 346, 348], "overal": [39, 46, 184, 262, 266, 268, 271, 279, 280, 281, 283, 285, 306, 323, 332, 334, 351], "fr1": [39, 46, 184, 238, 262, 266, 267], "fr2": [39, 46, 184, 238, 249, 262, 266, 267], "configsib1": [39, 46, 184, 262, 266, 351], "ss": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 188, 238, 240, 242, 249, 255, 256, 262, 266, 272, 351], "clear": [39, 46, 184, 262, 266, 272, 285, 288, 289, 291, 294, 345], "cellid": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 188, 240, 242, 269, 272, 291, 294, 351, 352], "1007": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 188, 237, 240, 242, 249, 269, 272], "candid": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 236, 240, 242, 249, 262, 266, 272, 278, 304, 305, 307, 308, 309, 310, 321, 328, 361], "upon": [39, 46, 102, 132, 181, 184, 207, 246, 262, 266, 269, 270, 272, 275, 276, 312], "monitor": [39, 46, 236, 262, 266, 270, 281, 283, 305, 306, 308, 328], "No": [39, 46, 64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 198, 206, 240, 242, 252, 253, 255, 256, 275, 289, 318, 322, 330, 331, 334, 357], "5ghz": [39, 46, 238], "notbar": [39, 46, 351], "notallow": [39, 46, 291, 351], "typeb": [39, 46, 351], "15khz": [39, 46, 238], "30khz": [39, 46], "120khz": [39, 46], "240khz": [39, 46], "100ghz": [39, 46, 238], "3ghz": [39, 46], "6ghz": [39, 46, 238], "22": [39, 46, 189, 236, 238, 278, 284, 309, 314, 318, 326, 327, 330, 331, 332, 333, 334, 335, 337, 340, 351, 365], "displayparamet": [39, 45, 46, 291, 294, 351], "mibextract": [39, 45, 46, 184], "payloadseq": [39, 46], "3gppts38211_mib": [39, 46], "similarli": [40, 195], "bpsk": [48, 49, 60, 71, 72, 79, 86, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 318, 322, 329, 338, 339, 364], "3db": [48, 60, 71, 79, 98, 114, 122, 170, 173, 258], "maxlog": [48, 60, 71, 79, 86, 98, 114, 122, 170, 173, 185, 188, 258, 291, 294, 301, 318, 351, 352], "bipolar": [48, 60, 71, 79, 98, 114, 122, 170, 173, 258], "demapmethod": [48, 60, 71, 79, 98, 114, 122, 170, 173, 258, 294], "consttyp": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 294, 336], "mordul": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 294], "scramblingid": [48, 60, 64, 65, 71, 79, 83, 84, 85, 98, 103, 104, 106, 107, 114, 122, 126, 127, 163, 165, 167, 168, 170, 173, 185, 189, 228, 229, 230, 232, 233, 240, 242, 248, 249, 258, 261, 263, 270, 271, 294, 311, 325, 326, 337, 354], "3gppts38211_csir": [48, 60, 71, 79, 98, 114, 122, 170, 173, 248, 258], "custom": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259, 309, 364, 365], "convers": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259], "keyvalu": [48, 49, 60, 71, 72, 79, 98, 99, 114, 115, 122, 170, 171, 173, 174, 258, 259], "complex128": [48, 60, 71, 79, 98, 114, 122, 170, 173, 258], "psk": [49, 72, 99, 115, 169, 171, 174, 257, 259, 318], "toolkit": [49, 72, 99, 115, 144, 147, 171, 174, 195, 196, 200, 205, 243, 259, 260, 267, 290, 292, 293, 295, 297, 298, 310, 313, 321, 350, 355, 364], "program": [49, 72, 99, 115, 171, 174, 259, 295, 348], "similar": [49, 72, 99, 102, 115, 141, 171, 174, 175, 176, 207, 259, 295, 335, 342, 351], "eas": [49, 72, 99, 115, 171, 174, 259, 364], "3gppts38211_map": [49, 72, 99, 115, 171, 174, 259], "upto": [49, 72, 99, 115, 171, 174, 259, 301], "even": [49, 72, 99, 115, 171, 174, 193, 195, 203, 204, 205, 259, 301, 330, 331, 332, 334, 338], "1600": [49, 72, 99, 115, 171, 174, 259], "put": [49, 72, 99, 115, 171, 174, 259, 298, 330, 331], "kei": [49, 72, 99, 115, 171, 174, 259, 278, 280, 281, 293, 295, 325, 326, 329, 337, 338, 354, 359, 362, 363, 365], "bitdeselect": [56, 57, 75, 76, 100, 102, 118, 119, 150, 152, 157, 159, 160, 184, 185, 186, 188, 189, 207, 210, 339], "reflect": [57, 76, 102, 119, 207, 210], "repetit": [57, 76, 102, 119, 207, 210, 265, 364], "wherea": [57, 76, 89, 102, 119, 207, 210, 236, 278], "quantiti": [57, 76, 85, 103, 104, 119, 152, 159, 210, 229, 233, 263, 271], "involv": [57, 76, 89, 119, 152, 159, 175, 176, 180, 181, 182, 203, 204, 210, 268, 269, 270, 271, 272, 280, 281, 312, 323, 329, 334, 335, 338, 339, 353], "choos": [57, 76, 119, 152, 159, 210, 236, 268, 278, 282, 307, 318, 328, 342, 345, 346, 349], "discard": [57, 76, 119, 152, 159, 210], "1st": [57, 76, 119, 152, 159, 189, 210, 326], "stage": [57, 76, 119, 152, 159, 189, 210], "term": [57, 76, 119, 152, 159, 188, 189, 210, 227, 236, 265, 278, 279, 281, 305, 307, 308, 328, 336, 342], "rm": [57, 76, 103, 104, 119, 152, 159, 210, 229, 233], "bug": [57, 76, 119, 152, 159, 210], "reach": [57, 76, 119, 152, 159, 210, 332, 334, 361], "mach": [57, 76, 119, 152, 159, 189, 210], "revers": [57, 76, 119, 152, 159, 210], "restor": [57, 76, 119, 152, 159, 210, 269, 270], "origin": [57, 76, 119, 139, 152, 159, 210, 220, 269, 270, 325, 326, 327, 328, 330, 331, 335, 337, 342, 345, 346], "modifi": [57, 76, 119, 152, 159, 210, 298], "drm": [57, 76, 119, 152, 159, 210], "isocel": [58, 77, 120, 211], "triangl": [58, 77, 120, 211], "temporari": [62, 64, 65, 81, 83, 84, 85, 86, 106, 107, 124, 126, 127, 163, 164, 165, 167, 168, 175, 176, 185, 236, 240, 241, 242, 271, 278], "intend": [62, 81, 124, 164, 241], "unicast": [62, 81, 124, 164, 241], "multicast": [62, 81, 124, 164, 241], "distinguish": [62, 81, 87, 124, 164, 241], "3gppts38212_rnti": [62, 81, 124, 164, 241], "invers": [62, 64, 65, 81, 83, 84, 102, 106, 107, 124, 126, 127, 144, 147, 162, 163, 164, 167, 168, 207, 239, 240, 241], "unmask": [62, 81, 124, 164, 241], "dcibit": [62, 81, 124, 164, 185, 241, 323, 328], "11548": [62, 81, 124, 164, 241], "dcirnti": [62, 81, 124, 164, 185, 241], "65519": [62, 64, 65, 81, 83, 84, 85, 86, 106, 107, 124, 126, 127, 163, 164, 165, 167, 168, 185, 236, 240, 241, 242, 271, 278, 304, 305, 306, 307, 308, 309, 328], "lmax": [63, 64, 65, 82, 83, 84, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 238, 240, 242, 249, 272], "c_init": [63, 64, 65, 82, 83, 84, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 240, 242, 250], "nid": [63, 64, 65, 82, 83, 84, 85, 86, 105, 106, 107, 125, 126, 127, 129, 132, 135, 138, 150, 163, 165, 166, 167, 168, 175, 176, 179, 184, 185, 186, 188, 189, 215, 216, 217, 218, 219, 220, 240, 242, 246, 247, 249, 271, 272, 294, 311, 323, 325, 326, 328, 353, 354], "q": [63, 64, 65, 82, 83, 84, 105, 106, 107, 125, 126, 127, 150, 163, 165, 166, 167, 168, 184, 185, 186, 188, 189, 240, 242, 294, 318, 361], "THe": [64, 83, 106, 126, 163, 167, 227, 235, 237, 240, 270, 341, 343, 344], "simpli": [64, 83, 106, 126, 163, 167, 240], "itself": [64, 83, 106, 126, 163, 167, 240, 272, 278, 359, 362, 363, 365], "bi": [64, 83, 106, 126, 163, 167, 186, 189, 240, 327, 352], "471": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "decrambl": [64, 83, 106, 126, 163, 167, 240], "pbchdescr": [64, 83, 106, 126, 163, 167, 240], "descrbit": [64, 83, 106, 126, 163, 167, 240, 311, 325, 354], "scrbit": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 240, 242], "1051": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "18548": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "1151": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "cbindex": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "39742": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "pbchscr": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 184, 240, 242], "seed": [64, 65, 83, 84, 106, 107, 126, 127, 162, 163, 165, 167, 168, 239, 240, 242, 245, 248, 249, 250, 251], "whom": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 196, 197, 198, 199, 240, 242, 249], "descrabl": [64, 83, 106, 126, 163, 167, 240], "n_cell_id": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 249], "math": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 189, 196, 198, 233, 238, 240, 242, 264], "toward": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 196, 198, 206, 240, 242], "lesser": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242], "65535": [64, 65, 83, 84, 85, 86, 103, 104, 106, 107, 126, 127, 163, 165, 167, 168, 185, 189, 229, 232, 233, 240, 242, 249, 254, 263, 271], "datascramblingidentitypdsch": [64, 65, 83, 84, 85, 86, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 271], "ident": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 175, 176, 240, 242, 249, 256, 272, 285], "671": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 249], "pd": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 249], "chdescrambl": [64, 83, 106, 126, 163, 167, 240], "pdcchdescrambl": [64, 83, 106, 126, 163, 167, 240], "nu": [64, 65, 83, 84, 106, 107, 126, 127, 163, 165, 167, 168, 240, 242, 244, 265], "consecut": [65, 84, 107, 127, 162, 168, 239, 254, 278, 279], "occurr": [65, 84, 107, 127, 162, 168, 239, 298], "xor": [65, 84, 107, 127, 162, 168, 239], "ed": [65, 84, 107, 127, 162, 168, 239, 356, 361], "impact": [65, 84, 107, 127, 162, 168, 239, 285, 306, 310, 321, 323, 361], "decorrel": [65, 84, 107, 127, 162, 168, 239], "abd": [65, 84, 107, 127, 162, 168, 239], "comment": [65, 84, 107, 127, 162, 168, 239, 318], "aka": [65, 84, 107, 127, 162, 168, 239], "nd": [65, 84, 107, 127, 162, 168, 239], "scambl": [65, 84, 107, 127, 162, 168, 239], "psch": [65, 84, 107, 127, 162, 168, 239], "affect": [65, 84, 107, 127, 162, 168, 239, 334], "3gppts38211_scr": [65, 84, 107, 127, 165, 168, 242], "just": [65, 84, 107, 127, 165, 168, 242, 285, 287, 288, 289, 291, 294], "anoth": [65, 84, 107, 127, 165, 168, 242, 278, 289, 318, 342], "ch": [65, 84, 107, 127, 165, 168, 242, 249], "scramber": [65, 84, 107, 127, 165, 168, 242], "pdschlowerphi": [85, 186, 294, 301, 311, 312, 325, 326, 354], "pdschmappingtyp": [85, 103, 104, 229, 233, 263, 264, 271, 294, 311, 325, 326, 354], "configurationtyp": [85, 103, 104, 229, 233, 263, 264, 271, 294, 311, 325, 326, 354], "maxlength": [85, 103, 104, 229, 233, 263, 264, 271, 294, 311, 325, 326, 354], "dmrsadditionalposit": [85, 103, 104, 229, 233, 263, 264, 271, 294, 311, 325, 326, 354], "l0": [85, 103, 104, 229, 233, 263, 264, 271, 294, 311, 325, 326, 354], "ld": [85, 103, 104, 229, 233, 263, 264, 271, 294, 311, 325, 326, 354], "l1": [85, 103, 104, 229, 233, 263, 264, 271, 294, 311, 325, 326, 354], "3gppts38211pdsch": [85, 86, 95, 186], "len1": [85, 103, 104, 229, 263, 264, 271, 294, 311, 354], "len2": [85, 103, 104, 229, 233, 263, 264, 271, 325, 326], "pos0": [85, 103, 104, 229, 233, 263, 264, 271, 311, 354], "pos1": [85, 103, 104, 229, 263, 264, 271, 325, 326], "l_0": [85, 103, 104, 228, 229, 254, 263, 264, 271], "l_d": [85, 103, 104, 229, 233, 263, 264, 271], "l_1": [85, 103, 104, 228, 229, 263, 264, 271], "bits1": 85, "occupi": [85, 87, 103, 104, 227, 228, 229, 230, 231, 233, 234, 278, 301, 323, 328, 330, 331, 334, 353], "port": [85, 87, 88, 94, 102, 103, 104, 181, 182, 207, 228, 229, 233, 254, 263, 264, 265, 276, 294, 365], "slotnumb": [85, 103, 104, 129, 132, 135, 138, 179, 189, 215, 216, 217, 218, 219, 220, 228, 229, 230, 231, 232, 233, 236, 246, 247, 248, 249, 251, 261, 270, 271, 278, 294, 304, 305, 306, 307, 308, 309, 311, 312, 323, 325, 326, 328, 330, 331, 334, 337, 353, 354], "nscid": [85, 103, 104, 229, 233, 249, 263, 271, 294, 311, 325, 326, 354], "\ud835\udc5b": [85, 103, 104, 229, 233, 263, 271], "scid": [85, 103, 104, 229, 233, 249, 263, 271], "pdschstartsymbol": [85, 233, 264, 271], "bits2": [85, 294, 311, 325, 326, 354], "phy": [85, 86, 87, 88, 186, 189, 263, 264, 283, 321, 361], "rmdmrspdsch": [85, 103, 104, 229, 233], "gather": 85, "resourcemap": [85, 103, 104, 130, 131, 134, 136, 137, 139, 215, 216, 217, 218, 219, 220, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 269, 285, 287, 288, 289, 291, 294, 302, 323, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352], "pdschindic": [85, 86, 294, 311, 325, 354], "store": [85, 196, 197, 205, 294, 312], "displaydmrsgrid": [85, 186, 294, 311, 354], "displayresourcegrid": [85, 103, 104, 186, 226, 228, 229, 231, 233, 294, 311, 330, 331, 334, 354], "portindex": [85, 228], "pdschdecoderlowerphi": [86, 186, 294, 301, 311, 312, 325, 326, 354], "ischannelperfect": [86, 311, 325, 353, 354], "isequ": [86, 311, 325, 354], "necessit": 86, "channelestim": [86, 326], "rxgrid": [86, 269, 271, 275, 276, 291, 294, 302, 311, 323, 325, 326, 328, 330, 331, 332, 333, 334, 335, 337, 351, 354], "numrx": [86, 301], "portindic": 86, "subcarrierindic": [86, 337], "symbolsindic": 86, "numtb": [86, 87, 88, 90, 91, 181, 182, 264, 294, 301, 311, 325, 326, 354], "constellationtyp": 86, "uncodedbit": [86, 326], "pdschupperphi": [87, 186, 294, 301, 311, 312, 325, 326, 354], "symbolsperslot": [87, 88, 90, 91, 94, 181, 182, 294, 301, 311, 325, 326, 354], "numlay": [87, 88, 90, 91, 94, 95, 100, 102, 181, 182, 186, 207, 209, 294, 301, 311, 325, 326, 339, 354], "scalingfield": [87, 88, 90, 91, 94, 181, 182, 264, 294, 301, 311, 325, 326, 354], "additionaloverhead": [87, 88, 90, 91, 94, 181, 182, 264, 294, 301, 311, 325, 326, 354], "dmrsre": [87, 88, 90, 94, 181, 294, 301, 311, 325, 326, 354], "pdschtabl": [87, 88, 264, 294, 301, 311, 325, 326, 354], "pdschtable1": [87, 88, 94, 264, 280, 294, 311, 325, 326, 354], "scheme": [87, 88, 90, 91, 94, 181, 182, 264, 268, 275, 276, 280, 283, 318, 323, 364], "mc": [87, 88, 94, 181, 182, 264, 280, 281, 282, 323, 355, 361], "cqiindex": 87, "lowerbound": [87, 88, 264], "upperbound": [87, 88, 264], "pdschtable2": [87, 88, 94, 264, 280], "27": [87, 88, 264, 278, 280, 301, 314, 318, 328, 332, 333, 334, 340, 351], "pdschtable3": [87, 88, 94, 264, 280], "pdschtable4": [87, 88, 94, 264], "26": [87, 88, 264, 301, 314, 318, 332, 333, 334, 340, 345, 351, 353], "puschtable1": [87, 88, 94, 264], "puschtable2": [87, 88, 94, 264], "cqi": [87, 88, 94, 264, 275, 276, 364], "cqitable1": [87, 88, 94, 264], "cqitable2": [87, 88, 94, 264], "cqitable3": [87, 88, 94, 264], "cqitable4": [87, 88, 94, 264], "00": [87, 88, 90, 91, 94, 181, 182, 233, 264, 301, 318, 333], "01": [87, 88, 91, 94, 181, 182, 233, 264, 304, 318, 329, 333], "overhead": [87, 88, 90, 91, 94, 181, 182, 264], "lookup": [87, 88, 264], "progress": [87, 88, 90, 181, 182, 192, 194, 361], "tblock": [87, 108, 294, 311, 325, 326, 354], "transfer": [87, 88, 94, 181, 182, 264, 353], "rvid": [87, 88, 90, 100, 102, 181, 186, 207, 209, 294, 301, 311, 325, 326, 339, 354], "increment": [87, 102, 207, 330, 331, 364], "rvid1": [87, 91, 181, 182, 301], "rvid2": [87, 91, 301], "enablelbrm": [87, 88, 90, 91, 100, 102, 181, 182, 186, 207, 209, 294, 301, 311, 325, 326, 339, 354], "concept": [87, 88, 102, 175, 176, 181, 182, 207, 271, 349], "lbrm": [87, 88, 102, 181, 182, 207], "minim": [87, 88, 101, 181, 182, 208, 271, 280, 308], "enablelbrm1": 87, "enablelbrm2": 87, "numtargetbits1": [87, 294, 311, 325, 326, 354], "numtargetbits2": [87, 294, 311, 325, 326, 354], "tblen2": [87, 91, 294, 311, 325, 326, 354], "tblock2": [87, 91, 325, 326], "exist": [87, 88, 196, 197, 198, 199, 236, 264, 330, 331, 332, 333, 334, 335], "tblen1": [87, 91, 182, 294, 311, 325, 326, 354], "tblock1": [87, 91, 182, 294, 301, 311, 325, 326, 354], "pdschdecoderupperphi": [88, 186, 294, 301, 311, 312, 325, 326, 354], "symbolllr": 88, "numbertargetbit": [88, 294, 311, 354], "k_ldpc2": 88, "n_ldpc2": 88, "liftingfactor2": 88, "fillerindic": [88, 102, 207, 339], "fillerindices2": 88, "filler": [88, 102, 207], "were": [88, 301], "crccheckforcb": [88, 301, 311, 325, 326, 354], "crcchecktb": [88, 294, 301], "processes": [89, 180], "regard": [90, 181], "1000": [90, 181, 204, 205, 294, 304, 305, 307, 308, 309, 314, 327, 346, 348, 353], "symbolestim": [90, 181, 326], "pdschrxobj": 90, "pdschdecod": 90, "pdschrxbit": 90, "wherein": [91, 182], "block1": [91, 182], "block2": 91, "pdschtxobj": 91, "pdschtxbit": 91, "213176": [91, 182], "rom": 94, "tbsobj": 94, "mcs_cqiindex": 94, "mcs_cqitabl": 94, "amount": [94, 279, 352, 365], "written": [94, 298, 363], "3gppts38214pdsch": [94, 186], "modulation_ord": 94, "code_r": 94, "alloca": 94, "warn": [94, 205, 206, 228, 231, 238, 253, 255, 256, 280, 323, 328, 332, 338, 341, 342, 345, 346, 348, 349, 351, 352, 365], "numr": 94, "send": [94, 318, 356], "__numrewithinrb": 94, "exceed": [94, 237, 345], "156": [94, 314], "layermapp": [95, 186], "leq": [95, 254, 339], "codeword1": 95, "_1": 95, "codeword2": 95, "_2": 95, "repect": 95, "numsymbolperlay": 95, "__numcodeword": 95, "numlayerpercw": 95, "layerdemapp": [95, 186, 294, 326], "symbo": 95, "__numlayers1": 95, "__numlayers2": 95, "numsymbolsperlay": [95, 271], "k0": [100, 102, 186, 207, 209], "numcodedbit": [100, 102, 186, 207, 209, 339], "nldpc": [100, 102, 186, 207], "damag": [101, 208], "caus": [101, 208, 328, 338], "poorli": [101, 208], "local": [101, 196, 197, 198, 203, 204, 206, 208, 268, 329, 353, 355, 361], "erron": [101, 184, 185, 208], "numldpcout": [102, 209], "numgroup": [102, 209], "numcbingroup": [102, 209], "numbitingroup": [102, 209], "write": [102, 207], "bitselectionldpc": [102, 207], "atleast": [102, 198, 207, 270], "num_ldpc": [102, 207], "next": [102, 207, 228, 361], "obtain": [102, 203, 204, 207, 231, 269, 270, 318, 332, 341, 342, 343, 344, 345, 347, 349], "deselect": [102, 181, 207, 339], "fillerbit": [102, 207], "redundaci": [102, 207], "bitdeselectionldpc": [102, 207], "betadmr": [103, 104, 229, 233, 263, 294, 311, 325, 326, 354], "13544": [103, 104, 229, 233], "resourcegrid": [103, 104, 189, 229, 233, 270, 294, 311, 325, 326, 354], "fig0": [103, 104, 228, 229, 233], "ax0": [103, 104, 228, 229, 233], "cdm": [103, 104, 228, 229, 233, 249], "fig1": [103, 104, 228, 229, 233, 285], "ax1": [103, 104, 228, 229, 233, 285, 327], "displaycdmpattern": [103, 104, 186, 226, 228, 229, 233, 337], "symol": [103, 104, 229, 233], "doubl": [103, 104, 229, 233, 307], "3gppts38211_pdschdmr": [103, 104, 229, 233], "nrofport": [103, 104, 228, 229, 231, 261, 275, 337], "cdmtype": [103, 104, 228, 229, 231, 261, 337], "3gppts38211_csirsrm": [103, 104, 228, 229], "cdm21": [103, 104, 228, 229], "numresourceblock": [103, 104, 189, 229, 232, 233], "enter": [103, 104, 229, 233, 271], "maxport": [103, 104, 229], "what": [103, 104, 229, 236, 301, 342], "hell": [103, 104, 229], "__pdschmappingtyp": [103, 104, 229], "__maxlength": [103, 104, 229], "minld": [103, 104, 229], "maxld": [103, 104, 229], "someth": [103, 104, 229, 329, 359, 360, 362], "went": [103, 104, 229, 359, 360, 362], "wrong": [103, 104, 229, 359, 360, 362], "displaygrid": [103, 104, 226, 228, 229, 235, 237, 285, 287, 289, 291, 294, 327, 351, 352], "tbprocess": 108, "transportblocktxprocess": [108, 186], "rtbprocess": 108, "transportblockrxprocess": [108, 186], "rtblock1": 108, "chk1": 108, "rtblock": 108, "controlinfo": [129, 132, 179, 246, 353], "indexpucch": [129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 179, 215, 216, 217, 218, 219, 220, 222, 246, 247, 353], "initial_cyclicshift": [129, 132, 135, 138, 179, 215, 216, 246, 247], "m_c": [129, 132, 135, 138, 179, 215, 216, 217, 218, 219, 220, 246, 247, 355, 361], "numinterlacedrb": [129, 130, 131, 132, 135, 136, 137, 138, 139, 179, 215, 216, 217, 218, 219, 220, 222, 246, 247, 353], "numberofsymb": [129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 179, 215, 216, 217, 218, 219, 220, 222, 246, 247, 353], "pucch_grouphop": [129, 132, 135, 138, 139, 179, 215, 216, 217, 218, 219, 220, 246, 247, 353], "seqnumb": [129, 132, 179, 246], "start_symbindex": [129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 179, 215, 216, 217, 218, 219, 220, 222, 246, 247], "resourcemapperformat0": [129, 131, 179, 215, 216], "interlaceindex_0": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 353], "interlaceindex_1": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 353], "maxnumprb": [129, 130, 131, 134, 135, 136, 137, 138, 179, 215, 216, 217, 218, 219, 222, 247], "numofinterlac": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 353], "rg_size": [129, 130, 131, 135, 136, 137, 179, 215, 216, 218, 219, 222], "secondhopprb": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 353], "seqlength": [129, 130, 131, 134, 135, 136, 137, 139, 179, 215, 216, 217, 218, 219, 220, 222, 250], "startingprb": [129, 130, 131, 135, 136, 137, 179, 215, 216, 217, 218, 219, 222, 353], "resourcedemapperformat0": [129, 130, 179, 215], "interlacedtransmiss": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 353], "interlac": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 353], "pucch_resourcecommon": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 353], "intraslotfreqhop": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 353], "hop": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 254, 265, 353], "symbolindex_start": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 353], "resourceblock": [130, 131, 132, 215, 216, 246], "rmop": [130, 131, 136, 137, 215, 216, 217, 218, 219], "rdemobj": [130, 136, 215, 217, 218], "rdemop": [130, 134, 136, 215, 217, 218], "dedic": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247, 268, 275, 276, 353], "179": [130, 131, 215, 216, 311, 314], "275": [130, 131, 134, 136, 137, 138, 215, 216, 217, 218, 219, 247, 314, 353], "initialis": [130, 131, 132, 134, 136, 137, 138, 139, 215, 216, 217, 218, 219, 220, 246, 247], "bandwidth": [130, 131, 132, 134, 136, 137, 138, 215, 216, 217, 218, 219, 227, 230, 236, 238, 245, 246, 247, 254, 260, 265, 267, 270, 275, 276, 281, 285, 287, 288, 289, 291, 294, 301, 302, 323, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352], "bandwidthpart": [130, 131, 134, 136, 137, 138, 215, 216, 217, 218, 219, 247], "tend": [130, 131, 134, 136, 137, 139, 215, 216, 217, 218, 219, 220], "inputofdmgrid": [130, 136, 215, 218], "consider": [130, 131, 132, 136, 137, 138, 139, 203, 204, 215, 216, 218, 219, 220, 246, 247, 332], "intraslot": [130, 131, 136, 137, 138, 139, 215, 216, 218, 219, 220, 247, 353], "format0": [130, 131, 132, 179, 215, 216, 246, 353], "plu": [130, 131, 132, 136, 137, 138, 139, 206, 215, 216, 218, 219, 220, 246, 247, 280], "bwp": [130, 131, 132, 136, 137, 138, 215, 216, 218, 219, 227, 230, 236, 246, 247, 267, 270, 278, 285, 287, 288, 291, 327, 328, 330, 331, 334, 337, 351, 352], "intraslothop": [130, 131, 136, 137, 215, 216, 218, 219], "213": [130, 131, 132, 134, 136, 137, 138, 139, 186, 215, 216, 217, 218, 219, 220, 236, 244, 245, 246, 247, 255, 256, 278, 314], "bullet": [130, 131, 132, 134, 136, 137, 138, 139, 181, 182], "edit": [130, 131, 132, 134, 136, 137, 138, 139, 181, 182], "format0_seq": [131, 132, 215, 216, 246], "rmobj": [131, 137, 215, 216, 217, 218, 219, 328], "beta_pucch0": [131, 216], "amplitud": [131, 137, 216, 219, 275, 276, 285, 288, 289, 291, 294, 334, 335, 336, 349, 350, 355], "conform": [131, 137, 216, 219], "prior": [131, 132, 137, 138, 216, 219, 246, 247, 268, 353], "inputseq": [131, 136, 137, 139, 216, 218, 219, 220], "658": [132, 215, 216, 246], "format0_seqgenobj": [132, 215, 216, 246], "287": [132, 215, 216, 246, 314], "408": [132, 215, 216, 246, 254], "sequencegener": [132, 138, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 285, 287, 288, 289, 291, 294, 327, 351, 352, 353], "But": [132, 134, 138, 217, 227, 246, 247, 270, 302, 330, 331, 359, 360, 362], "And": [132, 138, 139, 145, 176, 220, 246, 247], "interpret": [132, 246, 318], "beteen": [132, 138, 246, 247], "withi": [132, 246], "numofsymbol": [134, 136, 137, 138, 139, 217, 218, 219, 220, 247, 353], "timedomainocc": [134, 135, 139, 179, 217, 218, 219, 220, 222], "cover": [134, 139, 217, 218, 219, 220, 260, 264, 275, 276, 334, 338, 342, 345, 346, 349, 351, 361, 363], "despreadingobj": [134, 217], "despreadingformat1": [134, 135, 179, 217, 222], "despreadedseq": [134, 217], "despread": [134, 217], "numofhop": [134, 217], "initilis": [134, 217], "spreadingfactor": [134, 135, 139, 179, 220], "statu": [134, 139, 353], "nhop": [135, 138, 179, 217, 218, 219, 220, 247], "spreadingformat1": [135, 139, 179, 217, 218, 219, 220, 222], "resourcemapperformat1": [135, 137, 179, 217, 218, 219, 222], "resourcedemapperformat1": [135, 136, 179, 217, 218, 222], "he": [136, 218], "irb": [136, 137, 139, 218, 219, 220], "format1": [136, 137, 179, 218, 219], "spreadedseq": [137, 139, 217, 218, 219, 220], "beta_pucch1": [137, 219], "157": [138, 247, 314], "initialcycshift": [138, 217, 218, 219, 220, 247, 353], "format1_sequ": [138, 139, 217, 218, 219, 220, 247], "astyp": [138, 217, 218, 219, 220, 247, 289, 294, 318, 322, 326, 329, 338, 339], "format1_seqgenobj": [138, 217, 218, 219, 220, 247], "format1_seq": [138, 217, 218, 219, 220, 247], "symb": [138, 182, 217, 218, 219, 220, 235, 247, 254, 318, 322, 323, 328, 329, 336, 338, 339], "hoppingrefvar": [138, 217, 218, 219, 220, 247], "pucch_format1_seqgener": [138, 247], "inputsymb": [138, 247], "bwtween": [138, 247], "spreadingobj": [139, 217, 218, 219, 220], "occ": [139, 220], "othogon": [139, 220], "happen": [139, 220], "thr": [144, 147], "3gppts38212": [144, 145, 147, 148], "explain": [144, 147, 243], "numinfobit": [144, 147, 148, 175, 176], "uciblock": [144, 147, 176], "chsblobj": [144, 147], "channelcodingsmallblocklen": [144, 147], "numofseg": [144, 147, 148, 175], "decis": [144, 147, 280, 283, 323], "chdesblobj": [144, 147], "channeldecodingsmallblocklen": [144, 147], "physial": [145, 181, 182], "pc": 145, "wm": 145, "192": [145, 285, 287, 288, 289, 291, 294, 314], "200": [148, 267, 301, 311, 312, 314, 318, 323, 325, 326, 328, 330, 331, 332, 334, 335, 337, 351, 364], "4224": [148, 149], "cbconcaten": 148, "1555": 148, "2112": 148, "codewordsegreg": 148, "3gppts38212_polar": 149, "segmentationobj": 149, "codeseg": 149, "aggrobj": 149, "codeblockaggregationpucch": 149, "aggrop": 149, "codingof": [151, 161], "47": [163, 165, 167, 168, 278, 314, 318, 332, 333, 334, 340], "35967": [163, 165, 167, 168], "pucchdescr": [163, 167], "pucchscr": [165, 168], "3gppts38212_pucch": [175, 176], "3gppts38211_pucch": [175, 176], "3gppts38211_pucch_format2": [175, 176], "3gppts38211_pucch_formats3and4": [175, 176], "sectio": 175, "detach": [175, 181], "100000": [175, 198, 322], "45976": [175, 176], "545": [175, 176, 334], "1654": [175, 176], "1792": 175, "838": 175, "bumber": 175, "equalized_symbol": 175, "pucchupperphydecoder_obj": 175, "pucchupperphydecod": 175, "10779": [175, 176], "377": [175, 176, 314], "51": [175, 245, 278, 301, 314, 332, 333, 334, 340], "better": [176, 196, 197, 198, 199, 202, 279, 280, 305, 330, 331, 334, 335, 361], "unerstand": 176, "pucchupperphy_obj": 176, "pucchupperphi": 176, "puschupperphi": [180, 182], "puschdecoderupperphi": [180, 181], "3gppts38211_pusch": [181, 182], "descript": [181, 182], "3gppts38212_pusch": [181, 182], "puschrx": 181, "puschdatarx": 181, "tha": 181, "estsymb": 181, "demappertyp": 181, "chri": [181, 182], "jhonson": [181, 182], "3gppts38214_pusch": 182, "puschtx": 182, "puschdata": 182, "3gppts38212pusch": 182, "pdcchdecod": [183, 185, 323, 328], "pbchdecod": [183, 184, 285, 287, 288, 289, 291, 294, 327, 351, 352], "psbchdecod": [183, 188], "pscchupperphi": [183, 189], "pscchlowerphi": [183, 189], "pscchupperphydecod": [183, 189], "pscchlowerphydecod": [183, 189], "3gppts38211pbch": 184, "432": [184, 235, 237, 269, 289, 291, 352], "pbchil": 184, "pbch_iil": 184, "sbbil": 184, "scr2": 184, "payloadmib": [184, 351], "mibsequ": [184, 291, 294], "requenc": 184, "ilbit": 184, "payloadcrc": 184, "iilbit": 184, "sbil_bit": 184, "scr2bit": [184, 291, 294, 351], "chil_bit": 184, "polardectyp": [184, 291, 294, 351, 352], "symboldemappertyp": [184, 291, 294, 351, 352], "mibflag": 184, "crccheck": [184, 352], "pbche": 184, "channeldeinterleaverbit": 184, "decrcbit": 184, "descrambledbit": 184, "descrambled2llr": 184, "inputdeinteleavedbit": 184, "mibrx": [184, 291, 294, 351], "pbchdeinterleavedbit": [184, 291, 294], "polardecodedbit": 184, "ratedematedbit": 184, "subblockdeinterleavedbit": 184, "3gppts38211pdcch": 185, "dcipayload": 185, "dcibil": 185, "dcicrc": 185, "dciibi": 185, "dcirm": 185, "dciscr": [185, 323], "demappingmethod": [185, 323, 328], "equalizedsymbol": 185, "decodedbit": 185, "dematchedbit": 185, "descrambledllr": 185, "ibdilbit": 185, "sbdbit": 185, "unmaskedbit": 185, "upperphi": [186, 189], "lowerphi": [186, 189], "rf": [186, 189, 196, 286, 290, 292, 293, 295, 364], "3gppts38213pdsch": 186, "entertain": [186, 189], "arrang": [186, 361], "develop": [186, 297, 312, 361], "modular": [186, 364], "plug": [186, 361, 364], "plai": [186, 196, 198, 206, 271, 275, 276, 280, 281, 283, 361, 364], "research": [186, 342, 361, 364], "independ": [186, 203, 205, 236, 238, 278], "3gppts38211psbch": 188, "synchronis": 188, "scan": [188, 285], "camp": 188, "1386": 188, "1782": [188, 301], "verbal": 188, "explan": [188, 334], "subblockinterleav": 188, "symboldemapp": [188, 291, 294, 351, 352], "inputsymbol": 188, "polardecod": [188, 291, 294, 323, 351, 352], "possess": 188, "scl8": 188, "scl32": 188, "subblockdeinterleav": 188, "inputdeinterleav": 188, "3gppts38211pscch": 189, "3gppts38212pscch": 189, "comst": 189, "3057017": 189, "ofbit": 189, "scibit": 189, "scirm": 189, "sci": 189, "43": [189, 294, 314, 318, 330, 331, 332, 333, 334, 340, 351], "symbnumb": [189, 232, 249], "v2x": [189, 346, 364], "complex32": [189, 232, 233], "payloadindic": 189, "descrllr": 189, "gpp": 189, "138": [189, 236, 278, 314], "rscibit": 189, "pscchllr": 189, "5th": 190, "dft_doa": [192, 195, 206], "juli": [192, 194, 195], "sorri": [192, 194], "inconveni": [192, 194], "invari": [193, 203], "ntx": [193, 195, 302, 334, 335, 351], "nty": [193, 195, 302, 334, 335], "dtx": [193, 195, 302, 335], "dty": [193, 195, 302, 335], "taken": [193, 195, 206, 233, 235, 256, 298, 301, 302, 335], "propoerti": [193, 302, 335], "lpath": [193, 195, 202, 205, 302, 330, 331, 332, 333, 335], "strongest": [193, 195, 202, 203, 204, 205, 327], "espritdoa": [193, 302, 335], "esprit_doa": [193, 195, 206, 335], "xoa_est": [193, 195], "nr_x": [193, 195, 302, 351], "nr_y": [193, 195, 302, 351], "nobserv": [193, 195, 302], "exploit": [193, 195, 203, 204, 268, 281, 349], "y": [193, 195, 196, 197, 198, 199, 275, 285, 289, 291, 294, 302, 304, 305, 306, 307, 308, 309, 311, 318, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 351, 352, 353, 354, 365], "theta_": [193, 195, 348], "phi_": [193, 195, 348], "trace": [193, 195, 299], "d_spcgx_rx": [193, 195], "d_spcgy_rx": [193, 195], "numpath": [193, 195, 202, 205, 341, 343, 344, 347], "thei": [193, 195, 236, 255, 256, 278, 336, 359, 360, 361, 362], "ltipl": [194, 204], "gnal": [194, 204], "lassif": [194, 204], "music_doa": [194, 195, 206], "doa": [195, 200, 206, 302, 334, 335], "planner": 195, "offer": [195, 197, 203, 204, 280, 283, 298, 332], "oof": 195, "increas": [195, 196, 198, 202, 206, 227, 281, 285, 287, 288, 289, 291, 294, 306, 307, 308, 309, 322, 345], "resolut": [195, 196, 202, 203, 204, 284, 334, 335], "music": [195, 202, 205, 206, 330, 331], "medium": [195, 294, 309, 310, 321, 332, 338], "esprit": [195, 205, 206, 302, 330, 331, 332, 333, 334, 335], "yet": [195, 357, 358], "doaestim": [195, 206, 302], "aoa": [195, 196, 197, 200, 206, 302, 350, 355, 361, 364], "nomenclatur": [196, 198], "aod": [196, 200, 206, 350, 355, 361, 364], "rsrp": [196, 200, 206, 352, 355, 361, 364], "newton": [196, 200, 206], "raphson": [196, 200, 206], "ul": [196, 198, 206, 236, 243, 254, 321, 355, 361, 364], "rtoa": [196, 198, 206], "reli": [196, 198, 268, 280, 281, 332], "gd": [196, 198], "converg": [196, 198, 206], "global": [196, 198, 206], "optima": [196, 198, 206], "inspir": [196, 198, 199], "3gppdoa": 196, "refloc": [196, 327], "nref": [196, 197, 198, 199], "xoa": [196, 197, 206, 302, 334, 335], "posestim": [196, 197, 206, 302, 334, 335], "leastsquaredoa": [196, 206, 334, 335], "framework": [196, 197, 198, 199, 200, 296, 321], "equiheight": [196, 197, 198, 199], "phenomenon": [196, 197, 198, 199, 349], "co": [196, 197, 198, 199, 302, 318, 327, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 349, 352], "ordin": [196, 197, 198, 199], "uncertainti": [196, 197, 198, 199, 206, 280], "numepoch": [196, 198, 206], "toler": [196, 198, 206], "stepsiz": [196, 198, 206], "gradientdescentdoa": [196, 206], "numiterationperepoch": [196, 198, 206], "1e": [196, 198, 206], "06": [196, 198, 206, 294, 301, 311, 318, 322, 354, 365], "phi_i": 196, "theta_i": 196, "epoch": [196, 198, 206, 301, 314, 318], "000001": 196, "solut": [196, 198, 206, 356, 361], "refposit": [196, 197, 198, 199, 206], "odd": [196, 198, 206, 269, 271, 275, 276], "get": [196, 198, 206, 267, 279, 291, 294, 308, 325, 326, 337, 348, 351, 359, 360, 361, 362], "stuck": [196, 198, 206], "role": [196, 198, 206, 271, 275, 276, 280, 281, 283], "sucept": [196, 198, 206], "minima": [196, 198, 206], "nrefnod": [196, 197, 198, 199], "trilater": [196, 197, 198, 332], "tdoa": [196, 200, 206, 302, 333, 355, 361, 364], "wang": [196, 304, 305, 306, 307, 308, 309], "shi": 196, "yu": 196, "huang": 196, "chen": 196, "2019": [196, 301], "16th": 196, "workshop": [196, 301], "navig": [196, 332, 334, 335], "wpnc": 196, "bremen": 196, "germani": 196, "doi": [196, 199, 284, 301, 318], "1109": [196, 199, 284, 301, 318], "wpnc47567": 196, "8970182": 196, "leverag": [197, 268, 271, 334, 335], "strength": [197, 280, 312, 342], "approach": [197, 279, 312], "accur": [197, 198, 203, 204, 268, 269, 270, 271, 275, 276, 285, 302, 323, 330, 331, 332, 333, 334, 335, 342], "fuse": 197, "multilater": [197, 332, 334, 335], "mitig": [197, 255, 256, 268, 269, 270, 271, 283, 332, 334], "resolv": 197, "ambigu": 197, "constraint": [197, 281, 283, 318, 336], "refin": [197, 268, 364], "strong": [197, 203, 204], "hybridtoaaoa": [197, 206], "txposit": [197, 198, 199, 206, 302, 330, 331, 332, 333, 334, 335], "numtranmitt": [197, 206], "doaest": [197, 206, 302, 335], "toae": [197, 198, 199, 206, 302, 330, 331, 332, 333, 334, 335], "refpositionaoa": [197, 206, 302], "hybridtdoaaoa": [197, 206], "tdoaest": [197, 206], "handbooktdoa": 198, "otdoa": 198, "rstd": 198, "leastsquar": [198, 206, 331, 333], "newtonraphson": [198, 206], "gradientdesc": [198, 206], "suffer": [198, 202], "calibr": 198, "major": [198, 302, 305, 311, 323, 325, 326, 328, 330, 331, 332, 333, 334, 335, 337, 349, 352, 354], "challeng": [198, 281, 332, 334, 361], "degrad": [198, 202, 204, 269, 270, 302, 328, 338], "significantli": [198, 302, 330], "leastsquaretdoa": [198, 206, 330, 332], "rxpositionestim": [198, 330, 331, 332, 333, 334, 335], "tau_": [198, 206], "tau_i": [198, 206], "tau_r": [198, 206], "neq": [198, 206], "gradientdescenttdoa": [198, 206], "numrepetit": [198, 302, 332, 333, 335], "0000000001": [198, 311], "newtonraphsontdoa": [198, 206], "overcom": 198, "rmb": 198, "reza": 198, "zekavat": 198, "oxford": 198, "innov": 198, "wilei": 198, "press": 198, "2011": 198, "34": [198, 289, 294, 301, 314, 318, 323, 332, 333, 334, 340, 351, 352], "hppinf": 199, "leastsquaretoa": [199, 206, 330, 332], "locestim": 199, "poserror": 199, "speed_of_light": 199, "light": [199, 332], "em": 199, "singh": [199, 284], "masal": [199, 284], "klutto": [199, 284], "milleth": [199, 284], "ramamurthi": [199, 284], "massiv": [199, 284, 313, 321, 337, 349, 355, 361, 364], "beyond": [199, 284, 321, 350, 355, 361], "32nd": [199, 284], "annual": [199, 284, 359, 362, 363], "person": [199, 284], "pimrc": [199, 284], "helsinki": [199, 284], "finland": [199, 284], "1234": [199, 284], "1240": [199, 284], "pimrc50174": [199, 284], "9569480": [199, 284], "rtt": [200, 206, 231, 333, 364], "gradient": [200, 206, 302, 318, 330, 334, 335], "descent": [200, 206, 302, 318, 330, 334, 335], "mrtt": [200, 206], "profil": [202, 205, 341, 342, 343, 344, 347, 349], "pdp": [202, 206], "peak": [202, 204, 273, 275, 355, 361], "experi": [202, 227, 283, 285, 301, 304, 334, 349], "unavail": [202, 278, 295], "situat": [202, 279], "numobserv": [202, 203, 204, 205], "osfactor": 202, "dfttoa": 202, "dft_toa": [202, 205, 206], "promin": [202, 204, 205, 273, 285, 289, 291, 294, 351], "displaypdp": 202, "document": [202, 203, 204, 205, 206, 244, 245, 253, 254, 256, 269, 273, 274, 276], "oversamplingfactor": [202, 205, 330, 331], "domin": [202, 204], "heigth": [202, 204, 205], "spike": [202, 204, 205, 273, 275], "spectrum": [202, 204, 205, 238, 262, 266, 281, 285, 289, 292, 293, 295, 336, 350, 355], "find_peak": [202, 204, 205, 273], "scipi": [202, 204, 205, 269, 273, 276, 302, 330, 331, 332, 333, 334, 335, 337, 359, 362, 363], "xmin": [202, 205, 302, 330, 332, 333, 335], "xmax": [202, 205, 302, 330, 332, 333, 335], "principl": [203, 204, 332], "covari": [203, 204], "context": [203, 269, 270, 289, 325, 326, 337, 349], "cyclostationar": [203, 268], "mathemat": [203, 318, 325, 326, 337], "eigenvalu": [203, 204], "decomposit": [203, 204, 325, 326, 337], "subspac": [203, 204], "interest": [203, 260, 280, 305, 361], "eigenvector": [203, 204], "onc": [203, 204, 206, 279, 332, 359, 360, 362, 363], "analyz": [203, 204, 268, 310, 318, 321, 323, 325, 326, 329, 330, 331, 334, 335, 337, 345, 347, 353, 361, 364], "adjac": 203, "trigonometr": 203, "relationship": 203, "advantag": [203, 204, 278], "presenc": [203, 204, 318, 334], "knowledg": [203, 204, 268], "narrowband": [203, 204], "exhibit": [203, 204, 349], "particularli": [203, 204, 280, 325, 326, 337, 349], "critic": [203, 204, 268, 269, 281, 283, 285, 365], "radar": [203, 204], "esprit_toa": [203, 205, 206], "numberofpath": [203, 204, 205, 302, 330, 331, 332, 333], "report": [203, 221, 234, 275, 276, 364], "experienc": [203, 204, 362], "ob": [203, 205], "observ": [203, 205, 318, 329, 330, 331, 338, 339, 341, 343, 344, 347, 353], "classif": 204, "popular": 204, "eigenstructur": 204, "decompos": [204, 325, 326, 337], "separ": [204, 260, 268], "suppress": 204, "leav": 204, "pseudospectrum": 204, "abil": [204, 334, 335, 336], "statist": [204, 268, 318, 350, 355, 361], "stationar": 204, "min_delai": [204, 205], "max_delai": [204, 205], "music_toa": [204, 205, 206], "displaymusicspectrum": 204, "displayeigenvalu": 204, "eigen": [204, 280, 281, 311, 325, 326, 337, 354], "delaygrid": 204, "flaat": 204, "musicspectrum": 204, "peakvalu": 204, "numspik": 204, "manag": [204, 243, 254, 270, 283, 285, 296, 334, 335, 355, 361, 364], "actual": [204, 330, 331, 334, 348, 352], "multipath": [204, 268, 312, 332, 334, 342, 349], "immun": 204, "miss": [204, 312], "weak": [204, 341, 343, 344, 347], "idxlow": [204, 205], "idxhigh": [204, 205], "basi": [204, 206, 318], "till": [204, 278, 364], "toaestim": [205, 206, 302, 330, 331, 332, 333, 334, 335], "sort": [205, 302, 330, 331, 332, 333], "toaest": [205, 206], "noth": [205, 358], "devic": [206, 238, 244, 245, 285, 289, 295, 299, 301, 321, 346, 355, 361, 364], "positioningmethod": 206, "optimizationmethod": [206, 331, 333], "ecid": 206, "Not": [206, 233, 301, 330, 331, 334, 342, 345, 359, 362], "00000001": [206, 301], "txpositiontoa": 206, "txpositionaoa": 206, "due": [206, 268, 280, 301, 332, 336, 341, 343, 344, 347, 349, 365], "gdop": [206, 302], "numrefnod": 206, "fig_ax_tupl": 206, "visual": [206, 286, 295, 321, 355, 361], "circlelw": 206, "75": [206, 230, 281, 285, 288, 289, 291, 294, 301, 302, 308, 309, 314, 325, 326, 327, 330, 331, 332, 333, 334, 335, 337, 339, 340, 345, 348, 351], "circlel": 206, "estlocs": 206, "estlocmark": 206, "estloccolor": 206, "reflocs": 206, "reflocmark": 206, "refloccolor": 206, "displaylegend": 206, "style": [206, 285, 287, 288, 294, 301, 302, 311, 312, 314, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 342, 345, 348, 349, 352, 354, 365], "sign": 206, "append": [206, 236, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "visibl": [206, 329], "wheather": [206, 365], "superimpos": 206, "serv": [214, 279, 282], "3gppts38211_format0": [215, 216, 246], "3gppts38212_format0": [215, 216, 246], "3gppts38213_format0": [215, 216, 246], "3gppts38211_dsformat1": 217, "3gppts38213_dsformat1": 217, "3gppts38211_dmformat1": 218, "3gppts38213_dmformat1": 218, "3gppts38211_rmformat1": 219, "3gppts38213_rmformat1": 219, "3gppts38211_sformat1": 220, "3gppts38213_sformat1": 220, "fill": [226, 230, 232, 275, 279, 302, 330, 331, 332, 333, 334, 335], "dmrsindic": [226, 237, 269, 291, 294, 351], "pbchindic": [226, 237, 269, 291, 294, 351], "pssindic": [226, 237], "sssindic": [226, 237], "displaycoresetreg_cce_map": [226, 227], "3gppts38211coreset": 227, "cce": [227, 230, 236, 270, 278, 304, 305, 306, 307, 308, 309, 323, 328], "quantifi": [227, 328], "assign": [227, 236, 278, 279, 323], "coverag": [227, 234, 244, 245, 254, 269, 278, 280, 283, 305, 309, 310, 321, 342, 355, 361], "accommod": 227, "frequencydomainresourc": [227, 230, 270, 323, 328], "contigu": [227, 230, 236, 270], "activ": [227, 236, 279, 301, 318, 360, 361], "270": [227, 278, 314, 323, 328, 335], "reg": [227, 230, 270, 323, 328], "mappingtyp": 227, "bundl": [227, 230, 270, 323, 328], "bundles": 227, "permit": 227, "interleavers": [227, 270, 323, 328], "bandwith": [227, 309], "paramt": 227, "shiftlndex": 227, "nshift": [227, 230, 270, 323, 328], "274": [227, 270, 314], "organis": 227, "72": [227, 244, 314, 328, 332, 333, 334, 336, 340], "bwpstartprbindex": 227, "numrbincoreset": 227, "manner": [227, 279], "0th": [227, 230, 270], "sum": [227, 230, 270, 278, 302, 304, 305, 306, 307, 308, 309, 318, 322, 323, 328, 330, 331, 332, 333, 334, 335, 336, 337, 345, 346, 348, 352], "cce_reg_mappingtyp": [227, 270, 323, 328], "reg_bundles": [227, 270, 323, 328], "shiftindex": [227, 270, 323, 328], "word": [227, 270, 318], "numberofrb": [227, 270], "numprbsincoreset": 227, "numregincoreset": 227, "displaycoreset": 227, "frequecydomainresourc": 227, "cce_reg_map": [227, 323, 328], "instansti": [227, 236], "coresetobj": [227, 323, 328], "coresetprbindic": [227, 323, 328], "numccesincoreset": [227, 328], "startprb": [228, 231, 261, 337], "nrofprb": [228, 231, 261, 337], "configurations___": [228, 337], "rowindex": [228, 231, 261, 337], "parameters__________________________________________": [228, 337], "13254": 228, "numslotsperfram": [228, 231, 278, 302, 304, 305, 306, 308, 309, 332, 333, 335], "_____________________________________________________________": [228, 337], "resources____________________": [228, 337], "betacsir": [228, 261, 337], "firstofdmsymbolintimedomain": [228, 231, 261, 337], "firstofdmsymbolintimedomain2": [228, 231, 261, 337], "frequencydomainalloc": [228, 231, 261, 337], "rmcsir": [228, 337], "csirsgrid": [228, 337], "3gppts38211_ssbgrid": [228, 235, 237, 238], "nocdm": 228, "cdm2": [228, 337], "cdm4": 228, "fd2": 228, "td2": 228, "cdm8": 228, "td4": 228, "4095": [228, 230, 231, 248, 251, 270], "k_i": 228, "resourcegridsizeinrb": [228, 265, 302, 332, 333, 335, 337], "unit": [228, 238, 266, 281], "resou": 228, "__rowindex": [228, 231], "numscmap": [228, 231], "__nrofport": [228, 231], "__densiti": [228, 231], "possiblecdmtyp": [228, 231], "possibledens": [228, 231], "interg": [228, 231, 232], "batchindex": 228, "3gppts38211pdcchrm": 230, "monitoringsymbolswithinslot": [230, 270, 323, 328], "3gppts38211_pdcchrm": 230, "120": [230, 236, 245, 250, 267, 278, 302, 309, 314, 327, 330, 332, 333, 335, 337, 343, 345], "region": [230, 236, 278, 280, 329], "pdcchpayload": 230, "numpdcchbit": 230, "interleavertyp": 230, "chosencceindic": [230, 323], "al": [230, 236, 278, 304, 306, 307, 308, 309, 310, 321, 323, 328, 361], "3gppts38211_prsrm": 231, "dl_prs_numsymbol": [231, 330, 331, 334], "dl_prs_combsizen": [231, 330, 331, 334], "comb": [231, 254, 265, 330, 331, 334], "dl_prs_resourcesymboloffset": [231, 330, 331, 334], "dl_prs_reoffset": [231, 330, 331, 334], "dl_prs_sequenceid": [231, 330, 331, 334], "1031": [231, 331, 334], "betapr": [231, 330, 331, 334], "prsmapper": 231, "prsgrid": [231, 330, 331, 334], "combsiz": [231, 330, 331], "reoffset": 231, "startsymbol": [231, 263, 264, 294, 301, 311, 325, 326, 354], "sequenceid": [231, 254, 265, 302, 332, 333, 335], "\ud835\udc3e": 231, "combsizen": 231, "andreoffset": 231, "compens": [231, 268, 269, 270, 271], "resourcesymboloffset": 231, "3gppts38211pscchrm": 232, "nrb": [232, 267, 285, 287, 288, 289, 291, 294, 327, 351, 352], "nsymbperslot": 232, "lptr": 233, "kptr": 233, "offsetindex": 233, "ts38": [233, 301], "pt": [233, 302, 327, 330, 331, 332, 333, 334, 335, 337, 351, 352], "k_": [233, 254, 265, 330, 331, 334, 348, 351], "offset00": 233, "offset01": 233, "offset10": 233, "offset11": 233, "tale": 233, "latenc": [234, 280], "classifi": 234, "short": [234, 349], "span": [234, 235, 237], "acknowledg": [234, 353], "puchh": 234, "unlik": 234, "energi": [234, 281, 309, 318, 349], "coher": [234, 249], "240": [235, 237, 238, 249, 269, 272, 274, 285, 287, 289, 291, 294, 301, 314, 327, 351, 352], "127": [235, 237, 252, 253, 255, 256, 314, 332], "144": [235, 237, 245, 249, 269, 285, 287, 289, 291, 294, 314, 327, 351, 352], "numssb": [235, 237, 266, 269], "n_id1": [235, 237, 285, 287, 289, 291, 294, 351, 352], "336": [235, 237, 256, 285, 287, 289, 291, 294, 314, 351], "n_id2": [235, 237, 273, 285, 287, 289, 291, 294, 351, 352], "n_id": [235, 237, 249, 285, 287, 289, 291, 294, 351, 352], "pssobject": [235, 237, 285, 287, 289, 291, 294, 327, 351, 352], "psssequenc": [235, 237, 252, 285, 287, 289, 291, 294, 327, 351, 352], "sssobject": [235, 237, 285, 287, 289, 291, 294, 327, 351, 352], "ssssequenc": [235, 237, 255, 256, 285, 287, 289, 291, 294, 327, 351, 352], "dmrslen": [235, 237, 249, 285, 287, 289, 291, 294, 327, 351, 352], "dmrsobject": [235, 237, 249, 285, 287, 289, 291, 294, 327, 351, 352], "dmrssequenc": [235, 237, 249, 285, 287, 289, 291, 294, 327, 351, 352], "pbchsymbol": [235, 237, 269, 285, 287, 289, 291, 294, 327, 351, 352], "ssbobject": [235, 237, 285, 287, 289, 291, 294, 327, 351, 352], "nid1": [235, 255, 256, 274, 327], "nid2": [235, 252, 253, 255, 256, 273, 274, 285, 288, 291, 294, 327, 351], "335": [235, 255, 256, 274, 314], "isnorm": [235, 237], "un": [235, 237, 260, 261, 262, 263, 264, 265, 266, 267, 302, 332, 333, 335], "spss": [235, 253], "ssss": [235, 256], "33": [235, 278, 294, 301, 305, 309, 314, 318, 330, 331, 332, 333, 334, 339, 340, 351], "99": [235, 301, 311, 314, 325, 329, 332, 333, 334, 338, 339], "shouldn": [235, 237], "pbchsymb": [235, 237], "dmrsseq": [235, 237, 285, 287, 289, 291, 294, 351, 352], "132": [235, 314], "sl_ssb": 235, "254": [235, 314], "heat": [235, 237, 285, 287, 289, 291, 294], "rel": [235, 237, 279, 301, 334, 335, 346], "3gppts38213_searchspaceset": 236, "blind": [236, 268, 310, 321, 355, 361], "css": [236, 278, 304, 305, 306, 307, 308, 309, 328], "uss": [236, 278, 304, 305, 306, 307, 308, 309, 328], "would": [236, 278, 295], "page": [236, 351, 356, 359, 360, 361, 362, 363], "ra": 236, "tpc": 236, "command": [236, 267, 359, 360, 362, 363], "searchspacetyp": [236, 278, 304, 305, 306, 307, 308, 309, 328], "numcandid": [236, 304, 305, 306, 307, 308, 309, 328], "coresetdur": [236, 270, 328], "monitoringperiod": 236, "monitoringoffset": 236, "searchspacesetdur": 236, "attempt": [236, 285], "serach": 236, "occas": 236, "period": [236, 261, 265, 269, 270, 275, 276, 285, 302, 332, 333, 335], "searchspac": 236, "candiat": [236, 278, 308], "correspondingli": [236, 278], "monitoringslotperiodicityandoffset": 236, "160": [236, 265, 314], "320": [236, 265, 314], "640": [236, 265], "1280": [236, 265, 334], "2560": [236, 265], "monitoringperiodicti": 236, "aggregationlevel": 236, "restric": 236, "coresets": [236, 308, 309, 328], "coresetid": [236, 278, 304, 305, 306, 307, 308, 309, 328], "pdcchmonitoringslotindic": 236, "pdcchmonitoringsymbolswithinslot": 236, "sy": [236, 302, 304, 305, 306, 307, 308, 309, 311, 312, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 365], "numoffram": 236, "numofslotsperframepernumerologi": 236, "slotnum": 236, "sstype": [236, 328], "corset": 236, "54": [236, 270, 278, 294, 301, 304, 305, 306, 307, 314, 323, 326, 328, 332, 333, 334, 340, 343, 353], "hash": [236, 278], "periodicti": 236, "22051": 236, "sssobj": 236, "candidatecc": 236, "36": [236, 244, 245, 254, 265, 289, 294, 301, 304, 305, 314, 318, 326, 328, 332, 333, 334, 340, 348, 351], "37": [236, 289, 294, 314, 318, 332, 333, 334, 335, 340, 351], "48": [236, 249, 278, 289, 291, 294, 301, 305, 314, 318, 326, 330, 332, 333, 334, 337, 340, 351], "49": [236, 278, 301, 314, 318, 332, 333, 334, 340], "zoom": [236, 329, 345], "pssseq": 237, "sssseq": 237, "maor": 237, "ssbtype": [238, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "casea": [238, 262, 266, 285, 287, 289, 291, 294, 327, 352], "3600000000": [238, 267, 351], "ispairedband": [238, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "withsharedspectrumchannelaccess": [238, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "caseb": [238, 262, 266], "casec": [238, 262, 266], "casef": 238, "caseg": 238, "kssb": [238, 289, 294, 351, 352], "offsettopointa": [238, 266, 285, 287, 289, 291, 294, 351, 352], "jointli": [238, 268], "offsetinsubcarri": [238, 262, 266, 285, 287, 291, 294, 327, 351, 352], "offsetinrb": [238, 262, 266, 285, 287, 291, 294, 327, 351, 352], "ssbpositioninburst": [238, 262, 266, 285, 287, 289, 291, 294, 327, 351, 352], "60khz": 238, "equival": 238, "rememb": 238, "overlap": [238, 278, 306, 336], "regardless": [238, 279], "nhf": [238, 249, 272, 289, 294, 351, 352], "5m": [238, 330, 331, 334], "boundari": [238, 252, 253, 285, 345], "272": [238, 279, 302, 314, 318, 332, 333], "273": [238, 314], "ones": [238, 266, 285, 287, 289, 291, 294, 323, 327, 334, 336, 348, 351, 352], "bitmap": 238, "copi": [238, 291, 294, 323, 351], "4x240": 238, "x4x240": 238, "3gppts38211_ssbrm": 238, "table1": [243, 280], "table2": 243, "preambl": 243, "3gppts38211lowpapr": [244, 245], "3gppts38213lowpapr": [244, 245], "constrain": [244, 245, 309, 327], "altern": [244, 245, 279], "gold": [244, 245, 250, 255, 256, 328, 329, 330, 331, 337, 338, 339, 340, 345], "excel": [244, 245, 273], "lengthofsequ": [244, 245, 254, 265], "lowpapr": [244, 245], "seq": [244, 245], "96": [244, 301, 314, 332, 333, 334, 339], "84": [244, 314, 332, 333, 334, 337, 340], "131": [244, 314], "cyclicshift": 244, "groupnumb": [244, 245], "basesequencenumb": 244, "dummi": [244, 245], "like": [244, 245, 268, 329, 342], "n_c": 244, "n_u": [244, 245], "mzc": 244, "chose": [244, 245, 254, 278, 328], "accrodingli": [244, 245, 254], "u_or_cinit": 245, "122": [245, 314, 327, 332, 351], "151": [245, 314], "groupnumber_or_cinit": 245, "cinit": 245, "c_": [245, 248, 249, 250, 251], "3gppts38211_format1": 247, "3gppts38212_format1": 247, "3gppts38213_format1": 247, "ofdmsymbolnumb": [248, 251, 337], "symbolnumb": [248, 249, 251], "198": [248, 314, 334], "csirslength": 248, "csirsobject": 248, "csirssequ": 248, "1075": [248, 251], "187": [248, 251, 314], "3gppts38211_dmr": 249, "lambda": [249, 318], "lengthdmr": 249, "2ghz": 249, "mmwave": [249, 349], "n_cell_id_sl": 249, "scramblingid0": 249, "scramblingid1": 249, "lambdabar": 249, "scaler": [249, 250, 252, 253, 255, 256], "nscidbar": 249, "ofr": 250, "3gppts38211_pn": 250, "reproduc": [250, 298, 301, 318], "pnobject": 250, "1x120": 250, "21359": 250, "2780": 250, "161": [250, 314], "3x161": 250, "dlprssequenceid": 251, "3gppts38211_pr": 251, "prslength": 251, "prsobject": [251, 330, 331, 334], "prssequenc": 251, "aim": [252, 253, 255, 256, 269, 270, 271, 274, 280, 281], "3gppts38211_pss": 252, "1x127": [252, 253, 255, 256], "4x127": [252, 253, 255, 256], "id2": [252, 253, 255, 256, 291, 294, 351], "3gppts38211_s_pss": 253, "spsssequenc": 253, "zadoff": 254, "chu": 254, "mind": [254, 356], "multiport": 254, "3gppts38211_sr": 254, "nrofsrs_port": [254, 265, 302, 332, 333, 335], "transmissioncomb": [254, 265, 302, 332, 333, 335], "nrofsymbol": [254, 265, 302, 332, 333, 335], "startposit": [254, 265, 302, 332, 333, 335], "nrofcyclicshift": [254, 265, 302, 332, 333, 335], "grouporsequencehop": [254, 265, 302, 332, 333, 335], "sequencehop": [254, 265], "974": 254, "slotindex": [254, 265, 330, 331, 334], "numid": 254, "grouphop": [254, 265], "tc": [254, 265], "nrofcyclicshiftmax": 254, "numsequenceid": [254, 276], "symbolindic": [254, 265, 327, 352], "behaviour": [254, 332, 341, 342, 346, 349], "symbolindex": 254, "m_": 254, "p_": [254, 330, 331, 334], "repetitionfactor": [254, 265, 302, 332, 333, 335], "confiur": 254, "ind": [254, 265], "ex": [254, 265], "ic": [254, 265], "centr": [255, 256], "3gppts38211_sss": 255, "204": [255, 256, 314], "98": [255, 256, 294, 301, 314, 332, 333, 334, 347, 354], "2x127": [255, 256], "101": [255, 256, 314, 332], "3x127": [255, 256], "len": [255, 329, 338, 339, 340, 353], "3gppts38211_s_sss": 256, "fourth": 256, "fifth": 256, "sssssequenc": 256, "rrc": [260, 265], "influenc": [260, 281], "overwhelm": 260, "compli": 260, "acquir": [261, 265], "tdd": [261, 313, 321, 361], "reciproc": [261, 265, 299], "slotoffset": 261, "numslot": [261, 302, 330, 331, 332, 333, 334, 335, 337], "nscsoffset": [262, 285, 287, 289, 291, 294, 327, 351, 352], "unconfigur": 263, "mcstabl": [264, 280, 294, 311, 325, 326, 354], "config": [264, 285, 287, 288, 289, 291, 294, 337], "maintain": [264, 268, 269, 279, 280, 281, 305], "comboffset": [265, 302, 332, 333, 335], "resourcetyp": [265, 302, 332, 333, 335], "bsr": [265, 302, 332, 333, 335], "csr": [265, 302, 332, 333, 335], "bhop": [265, 302, 332, 333, 335], "freqscalingfactor": [265, 302, 332, 333, 335], "startrbindex": [265, 302, 332, 333, 335], "enablestartrbhop": [265, 302, 332, 333, 335], "freqdomainshift": [265, 302, 332, 333, 335], "freqdomainposit": [265, 302, 332, 333, 335], "periodicityinslot": 265, "offsetinslot": 265, "betasr": [265, 302, 332, 333, 335], "disbal": [265, 301], "hopp": 265, "67": [265, 309, 314, 330, 331, 332, 333, 334, 339, 340], "268": [265, 314], "p_f": 265, "inteer": 265, "repet": 265, "semi": 265, "persist": 265, "aperiod": 265, "legit": [266, 267, 330, 331], "equaval": 266, "guard": 267, "don": [267, 295, 323, 327, 328, 352], "bandwidthtx": [267, 327, 351, 352], "nsymbolfram": [267, 285, 287, 288, 289, 291, 294, 301, 327, 351, 352], "tfparam": [267, 285, 287, 288, 289, 291, 294, 301, 327, 351, 352], "typecp": [267, 285, 287, 288, 289, 291, 294, 301, 327, 351, 352], "transit": [267, 285, 287, 288, 289, 291, 294, 327, 351, 352], "neff": [267, 285, 287, 288, 289, 291, 294, 327, 351, 352], "exclud": [267, 285, 287, 288, 291, 327, 351, 352], "gaurd": [267, 285, 287, 288, 291, 327, 351, 352], "lengthcp": [267, 273, 285, 287, 288, 289, 291, 294, 327, 351, 352], "100000000": 267, "mhz": [267, 301, 327, 330, 331, 332, 333, 334, 335, 352], "prfix": 267, "acn": 267, "extend": [267, 269, 330, 331, 334], "possiblecombinations_fr1": 267, "39": [267, 294, 301, 311, 314, 318, 332, 333, 334, 340, 341, 342, 345, 346, 347, 348, 349, 351, 365], "possiblecombinations_fr2": 267, "400": [267, 285, 314, 328, 331, 333, 334], "getgaurdband_fr1": 267, "gaird": 267, "getgaurdband_fr2": 267, "getnumberrb_fr1": 267, "getnumberrb_fr2": 267, "oscil": 268, "inaccuraci": 268, "doppler": [268, 312, 323, 346, 350, 355], "proper": [268, 269, 270, 285], "recept": [268, 269, 270, 271, 283, 286, 290, 292, 293, 295, 323, 334, 335], "embed": [268, 318], "align": [268, 285, 299], "tone": 268, "do": [268, 336], "explicit": 268, "joint": [268, 280], "inher": 268, "essenti": [268, 269, 270, 283, 285, 323, 342, 349], "therefor": 268, "seamless": [268, 280, 285], "environment": [268, 334], "receiveralgorithm": [268, 269, 270, 271, 272, 273, 274, 275, 276, 285, 287, 288, 289, 291, 294, 302, 323, 326, 327, 328, 332, 333, 335, 337, 351, 352], "narrow": 268, "nearli": 268, "flat": [268, 281], "pssofdmsymbol": 268, "numcfoiter": 268, "despit": [269, 270, 280], "variat": [269, 270, 279, 280, 310, 321, 329, 332, 342, 348, 350, 355, 361], "gnb": [269, 270, 285, 323, 327, 330, 331, 332], "rss": [269, 270], "mmse": [269, 270], "fde": [269, 270], "distort": [269, 270, 271, 334], "final": [269, 270, 280, 301, 330, 331, 333, 334, 335, 361], "zf": [269, 291, 294, 351, 352], "nearest": [269, 270, 271, 275, 285, 287, 289, 291, 294, 327, 342, 349, 351, 352], "spline": [269, 275, 276, 294, 302, 330, 331, 332, 333, 334, 335, 337], "estimatortyp": [269, 291, 294, 351, 352], "interpolatortyp": [269, 275, 276, 291, 294, 302, 332, 333, 335, 337, 351, 352], "nn": [269, 275, 276, 291, 294, 318, 326, 337, 351], "chest": [269, 294, 302, 332, 333, 335, 337], "channelestimationandequ": [269, 285, 287, 288, 289, 291, 294, 327, 351, 352], "randn": [269, 272, 274, 318], "1j": [269, 272, 273, 274, 302, 318, 322, 327, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 352, 353], "pilotloc": 269, "tk": [269, 359, 360, 362, 363, 365], "dataloc": 269, "isuemobil": [269, 271, 291, 294, 326, 351, 352], "chanel": [269, 270], "ssbgrid": [269, 285, 287, 289, 291, 294, 327, 351, 352], "knot": [269, 275, 276, 337], "ssbestim": [269, 272, 274, 291, 294, 351], "possiblevalu": 269, "handov": [270, 285, 361], "hi": [270, 301], "speialli": 270, "vital": [271, 285], "delv": 271, "gnodeb": [271, 275, 276, 279, 280, 283, 334, 335], "intersymbol": 271, "isi": 271, "accordingli": 271, "sophist": [271, 275, 276], "1x1": 271, "2x2": 271, "3x3": 271, "4x4": 271, "5x5": 271, "6x6": 271, "7x7": 271, "8x8": 271, "reciv": 271, "unquil": 271, "interpolatortypefrequ": [271, 326], "extrapol": [271, 275, 276], "cubicsplin": [271, 326, 334], "blow": 272, "1008": [272, 337], "dmrsdet": 272, "ssbest": [272, 274, 327, 352], "l_max": 272, "897": 272, "halfframeindex": 272, "cellid2": [272, 327], "cellid1": [272, 327], "channelassist": [272, 274, 291, 294, 351], "wire": 273, "fro": 273, "st": [273, 291, 294], "largestpeak": [273, 285, 288, 289, 291, 294, 351], "detectortyp": 273, "peakdetector": 273, "timesynch": 273, "timeindex": 273, "rand": [273, 302, 327, 330, 331, 332, 333, 334, 335, 337, 351], "rxsampl": 273, "exp": [273, 302, 327, 330, 331, 332, 333, 334, 335, 337, 348, 352], "256": [273, 289, 314, 321, 325, 336], "freqoffset": [273, 285, 288, 289, 291, 294, 351], "psspeakindic": [273, 285, 288, 289, 291, 294, 351], "psscorrel": [273, 285, 288, 289, 291, 294, 351], "rasteroffset": [273, 285, 288, 289, 291, 294, 351], "vline": [273, 285, 288, 289, 291, 294, 327, 334, 351], "ymin": [273, 285, 288, 289, 291, 294, 302, 327, 330, 332, 333, 334, 335, 351], "ymax": [273, 285, 288, 289, 291, 294, 302, 327, 330, 332, 333, 334, 335, 351], "purpl": [273, 285, 288, 289, 291, 294, 327, 328, 329, 330, 331, 337, 338, 339, 340, 345, 351], "set_ylim": [273, 285, 288, 289, 291, 294, 301, 302, 305, 309, 311, 323, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 345, 351, 352, 354], "recevi": [273, 355, 361], "________________________________________________________________": [273, 285, 288, 289, 291, 294, 330, 331, 335, 351], "futur": 273, "threshold": [273, 278, 281, 285, 289, 291, 294, 309, 351], "025": [273, 275], "frequencei": 273, "sssdet": 274, "312": [274, 314, 334], "receivecombin": [274, 285, 287, 288, 289, 291, 294, 327, 351, 352], "fundament": [275, 276, 318], "technic": [275, 276], "goal": [275, 276, 280, 295, 318], "sweep": [275, 276, 330], "feedback": [275, 276, 280, 281, 311, 364], "dynam": [275, 276, 279, 280, 281, 283], "summari": [275, 276, 285, 318, 349], "numrxantennaport": 275, "csirsresourcemapp": 275, "akima": [275, 276, 337], "pchip": [275, 276, 337], "spline_and_denois": [275, 337], "smoothen": 275, "lagrangian": 275, "smooth": 275, "channelestimatorcsi": 275, "resourcemappersr": [275, 276, 302, 332, 333, 335], "numsc": [275, 276, 336], "numcyclicshit": 276, "numsrsport": 276, "unequil": 276, "srsresourcemapp": 276, "numcyclicshift": 276, "3gppts38213pdcch": 278, "evalu": [278, 304, 305, 306, 308, 309, 313, 321, 323, 330, 331, 333, 334, 335, 355, 361], "metric": [278, 283, 294, 329, 338], "numcc": [278, 309], "numcandidatesundereach": [278, 307], "nci": [278, 304, 305, 306, 307, 308, 309], "ca": 278, "uesundereach": 278, "likewis": 278, "strategi": [278, 280, 281, 283, 304, 305, 306, 308, 309, 310, 321, 323, 361], "conserv": [278, 280, 304, 305, 306, 307, 308, 309], "aggress": [278, 280, 307], "priorit": [278, 307], "dimenison": 278, "successfulli": [278, 308, 359, 360, 362], "opportun": [278, 279], "ith": 278, "continu": [278, 280, 339], "entir": 278, "135": [278, 301, 309, 314], "those": [278, 330, 331], "sinr": [278, 280, 281, 304], "moder": 278, "decent": 278, "nccep": [278, 304, 305, 306, 307, 308, 309], "numerlogi": [278, 304, 305, 306, 307, 308, 309], "agglevelprobdistribut": [278, 306, 307, 308, 309], "multinomi": [278, 304, 305, 306, 307, 308, 309], "replac": [278, 295, 301, 304, 305, 306, 307, 308, 309, 311, 312], "pdcchschedulerobj": [278, 304, 305, 306, 307, 308, 309], "count": [278, 302, 304, 305, 306, 307, 308, 309, 318, 330, 331, 332, 333, 334, 335, 336, 348], "cceindic": 278, "numblockedu": [278, 304, 305, 306, 307, 308, 309], "14766": 278, "34333": 278, "8673": 278, "37708": 278, "57818": 278, "42": [278, 294, 301, 314, 318, 326, 332, 333, 334, 340, 351], "41": [278, 294, 314, 318, 332, 333, 334, 340, 351], "44": [278, 294, 305, 314, 318, 332, 333, 334, 340, 351], "46": [278, 294, 301, 314, 318, 332, 333, 334, 340, 345, 365], "int64": 278, "mark": [278, 345], "fair": [279, 283], "equit": 279, "prioriti": [279, 299], "cycl": [279, 351], "fashion": [279, 298], "prevent": 279, "monopol": [279, 330, 331, 334], "begin": 279, "maxim": [279, 280, 281, 283], "meet": [279, 280, 283, 304, 310, 321], "qo": [279, 280, 281, 283], "proport": 279, "concern": 279, "strict": 279, "commonli": [279, 334], "balanc": [279, 280], "straightforward": 279, "numuescheduledacrossfreq": [279, 283], "numuescheduledacrosstim": [279, 283], "firstacrosstim": [279, 283], "accorss": 279, "contend": 279, "mulipl": 279, "numsymbolperu": 279, "numrbperu": 279, "resgrid": [279, 323, 328, 330, 331], "postiv": 279, "displayuealloc": 279, "availbl": 279, "appropri": [280, 281, 283, 365], "advers": 280, "mechan": [280, 281, 323, 327, 332], "rssi": 280, "amc": 280, "quickli": [280, 361], "fluctuat": 280, "prevail": [280, 281], "contribut": [280, 349], "mcsindic": 280, "descib": 280, "2nd": [280, 326], "pdchtable3": 280, "singular": [280, 281, 325, 326, 337], "sigma": [280, 281], "p_t": [280, 281, 330, 331, 334, 351], "n_0": [280, 281], "blertarget": 280, "decibel": 280, "blermargin": 280, "margin": [280, 345], "safeti": 280, "phenomena": [280, 349], "failur": 280, "diagram": [280, 290, 292, 293, 295, 329, 338, 339, 355, 361], "uncertain": 280, "ambiti": 280, "table3": 280, "selectmc": [280, 283], "minsnrvalu": 280, "simpler": [281, 342], "account": [281, 359, 362, 363], "favor": 281, "traffic": 281, "demand": 281, "therebi": [281, 353], "snrdbmin": 281, "isrankindicatorsubcarrierspecif": 281, "n_l": 281, "n_t": 281, "n_r": 281, "suit": 281, "protocol": 283, "stack": [283, 302, 318, 327, 334, 335, 352], "deal": 283, "weight": 283, "coordin": [283, 285, 302, 330, 331, 332, 333, 335, 341, 342, 343, 344, 345, 346, 347], "partit": 283, "deliv": 283, "satisfactori": 283, "ravi": 284, "kumar": 284, "super": 284, "manuscript": 284, "isj": 284, "15236": 284, "submit": 284, "journal": 284, "watch": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 365], "youtub": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 365], "view": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 365], "github": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 359, 360, 361, 362, 363, 365], "notebook": [285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 361, 363, 365], "breakdown": 285, "uniqu": 285, "nearbi": 285, "clock": [285, 332], "alongsid": 285, "benefit": [285, 298, 323, 334], "ipython": [285, 287, 288, 294, 301, 302, 311, 312, 314, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 340, 342, 345, 348, 349, 352, 354, 365], "html": [285, 287, 288, 294, 301, 302, 311, 312, 314, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 340, 342, 345, 348, 349, 352, 354, 360, 361, 365], "adi": [285, 287, 288, 289, 291, 294, 295], "analogbeamform": [285, 287, 288, 289, 291, 294, 327, 351, 352], "center_frequ": [285, 287, 288, 289, 291], "1e9": [285, 287, 288, 289, 291], "subcarrier_spac": [285, 287, 288, 289, 291], "numofdmsymbol": [285, 287, 288, 289, 291, 294, 351], "sample_r": [285, 287, 288, 289, 291, 294], "puls": [285, 287, 288, 289, 291, 294], "numsamplespersymbol": [285, 287, 288, 289, 291, 294], "buffer_s": [285, 287, 288, 289, 291, 294], "___________________________________________________________________": [285, 287, 289, 291, 294, 351], "3e8": [285, 287, 289, 291, 294, 327, 351, 352], "ssbparamet": [285, 287, 289, 291, 294, 327, 351, 352], "nsc_ssb": [285, 287, 289, 291, 294, 327, 351, 352], "nsymb_ssb": [285, 287, 289, 291, 294, 327, 351, 352], "_______________________________________": [285, 287, 289, 291, 294, 327, 351, 352], "getsequ": [285, 287, 289, 291, 294, 351, 352], "tensorflow": [285, 287, 289, 291, 294, 301, 314, 318, 351, 352, 361, 362, 365], "pbchobject": [285, 287, 289, 291, 294, 327, 351, 352], "ssbrgobject": [285, 287, 289, 291, 294, 327, 351, 352], "numofguardcarri": [285, 287, 289, 291, 294, 351], "firstscindex": [285, 287, 289, 291, 294, 351], "__________________________________________________": [285, 287, 289, 291, 294], "x_time": [285, 287, 289, 291, 294, 351], "flatten": [285, 287, 289, 291, 294, 336, 348, 351, 352], "______________________________________________________": [285, 287, 289, 291, 294, 351], "imshow": [285, 287, 289, 291, 294, 311, 312, 327, 328, 330, 331, 342, 349, 351, 352], "cmap": [285, 287, 289, 291, 294, 311, 312, 327, 328, 330, 331, 337, 342, 349, 351, 352], "hot": [285, 287, 289, 291, 294, 318, 327, 330, 331, 337, 342, 349, 351, 352], "auto": [285, 287, 289, 291, 294, 311, 312, 318, 327, 328, 330, 331, 342, 349, 351, 352], "gca": [285, 287, 289, 291, 294, 330, 331, 337, 342, 349, 351], "linestyl": [285, 287, 289, 291, 294, 301, 302, 304, 305, 306, 307, 308, 311, 318, 322, 323, 325, 326, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 340, 342, 349, 351, 352, 354], "linewidth": [285, 287, 289, 291, 294, 330, 331, 337, 342, 349, 351], "gridlin": [285, 287, 289, 291, 294, 330, 331, 337, 342, 349, 351], "tick": [285, 287, 289, 291, 294, 309, 327, 330, 331, 337, 342, 349, 351], "pluto": [285, 287, 288, 289, 291, 294, 295, 364], "ip": [285, 287, 288, 289, 291, 294], "168": [285, 287, 288, 289, 291, 294, 314, 334, 353], "tx_rf_bandwidth": [285, 287, 288, 289, 291, 294], "filter": [285, 287, 288, 289, 291, 294, 334], "cutoff": [285, 287, 288, 289, 291, 294], "tx_lo": [285, 287, 288, 289, 291, 294], "tx_hardwaregain_chan0": [285, 287, 288, 289, 291, 294], "gain_control_mode_chan0": [285, 287, 288, 289, 291, 294], "rx_hardwaregain_chan0": [285, 287, 288, 289, 291, 294], "74": [285, 287, 288, 289, 291, 294, 301, 314, 332, 333, 334, 340], "slow_attack": [285, 287, 288, 289, 291, 294], "agc": [285, 287, 288, 289, 291, 294], "fast_attack": [285, 287, 288, 289, 291, 294], "rx_lo": [285, 287, 288, 289, 291, 294], "rx_rf_bandwidth": [285, 287, 288, 289, 291, 294], "rx_buffer_s": [285, 287, 288, 289, 291, 294], "tx_cyclic_buff": [285, 287, 289, 291, 294], "safe": [285, 288, 289, 291, 294], "raw_data": [285, 288, 289, 291, 294], "rx_sampl": [285, 288, 289, 291, 294], "tx_destroy_buff": [285, 288, 289, 291, 294], "rn_id2": [285, 288, 289, 291, 294, 351], "ssboffset": [285, 288, 289, 291, 294, 351], "startingsubcarrierindic": [285, 288, 289, 291, 294, 351], "scalefig": [285, 288, 291, 294, 341, 343, 344, 345, 347], "figsiz": [285, 288, 291, 294, 301, 302, 311, 312, 325, 326, 327, 328, 330, 333, 336, 337, 341, 342, 343, 344, 345, 346, 347, 349, 354, 365], "374": [285, 314], "interact": [285, 359, 360, 361, 362], "maplotlib": 285, "anim": [285, 287, 288, 342, 346, 349, 350, 355], "squeez": 285, "pssrtime": 285, "draw": [285, 329, 345], "def": [285, 289, 318, 345], "With": [285, 306, 328, 342, 345, 346, 349], "set_xlim": [285, 289, 291, 294, 301, 302, 305, 307, 308, 311, 327, 329, 330, 331, 332, 333, 334, 335, 336, 341, 342, 343, 344, 345, 347, 349, 351], "minx": 285, "maxi": 285, "freq": [285, 323], "fontsiz": [285, 301, 304, 305, 306, 307, 308, 311, 329, 338, 339, 340, 345, 346, 352, 353], "85": [285, 309, 311, 312, 314, 326, 330, 331, 332, 333, 334, 335, 354], "suptitl": [285, 341, 342, 343, 344, 345, 347, 349], "millisecond": [285, 345], "drawn": [285, 330, 331, 342, 345], "funcanim": [285, 345], "blit": [285, 345], "mp4": [285, 345], "ffmpeg": [285, 345], "writer": [285, 345], "writervideo": [285, 345], "ffmpegwrit": [285, 345], "fp": [285, 345], "simulationofnodemobl": [285, 345], "extra_arg": [285, 345], "vcodec": [285, 345], "libx264": [285, 345], "gif": [285, 345], "fig1ur": 285, "scalefig1": 285, "max1i": 285, "anim1": 285, "overall_fram": 285, "sdr": [286, 290, 292, 293, 297, 361, 364], "setup": [286, 290, 292, 293, 295, 355, 361, 362], "save": [286, 295, 314, 330, 331, 332, 333, 334, 335, 345, 355, 361], "run": [286, 295, 318, 328, 345, 359, 360, 362, 363], "288": [287, 314, 347, 351], "362": [288, 314], "broadacast": [289, 291], "__": [289, 291, 330, 331, 334], "scscarrier": [289, 294, 351, 352], "ssbperiod": [289, 294, 351, 352], "nframe": [289, 294, 327, 351, 352], "savefig": [289, 330, 336, 340, 365], "svg": [289, 330, 336, 365], "png": [289, 330, 336, 340], "axhlin": [289, 291, 294, 302, 330, 331, 332, 333, 334, 335, 351], "axvlin": [289, 291, 294, 302, 330, 331, 332, 333, 334, 335, 337, 345, 351], "firstsymbolindex": 289, "timeouterror": 289, "traceback": 289, "recent": 289, "file": [289, 314, 359, 362, 363], "miniconda3": [289, 359, 360, 362], "env": 289, "mysdr": 289, "lib": 289, "python3": 289, "context_manag": 289, "py": [289, 302, 323, 334, 335, 351, 352], "uri": 289, "_device_nam": 289, "gt": [289, 291, 294, 311, 314, 318, 330, 331, 341, 342, 343, 344, 345, 346, 347, 348, 351], "_ctx": 289, "iio": 289, "baseexcept": 289, "1358": 289, "_context": 289, "1357": 289, "elif": [289, 291, 294, 325, 337, 348, 351, 353], "_isstr": 289, "_new_uri": 289, "ascii": 289, "1359": 289, "_check_nul": 289, "func": 289, "55": [289, 294, 309, 314, 332, 333, 334, 340], "err": 289, "get_last_error": 289, "_system": 289, "get_errno": 289, "oserror": 289, "_strerror": 289, "errno": 289, "110": [289, 309, 314, 332, 338, 365], "rx_tx": 289, "717": 289, "rx_tx_def": 289, "714": 289, "715": 289, "union": 289, "716": 289, "rx_def": 289, "718": 289, "tx_def": 289, "720": 289, "__post_init__": 289, "636": 289, "632": 289, "633": 289, "634": 289, "shared_def": 289, "638": 289, "_rx_data_device_nam": 289, "639": 289, "_rxadc": 289, "find_devic": 289, "586": 289, "584": 289, "uri_ctx": 289, "585": 289, "587": [289, 334], "588": [289, 334], "required_devic": 289, "_control_device_nam": 289, "2048": [291, 294, 339, 342, 349], "894": 291, "pssstartindex": [291, 294, 351], "ssbscsoffset": [291, 294, 351], "magnitud": [291, 294, 330, 337, 350, 355], "spreactrum": [291, 294], "n_id_1": [291, 294], "rn_id1": [291, 294, 351], "rn_id": [291, 294, 351], "rxssbobject": [291, 294, 351], "rxdmrsindic": [291, 294, 351], "dmrsdetect": [291, 294, 351], "rssbindex": [291, 294, 351], "rhrfbit": [291, 294, 351], "rxdmrsobject": [291, 294, 351], "rxdmrsseq": [291, 294, 351], "interpolt": [291, 294, 351, 352], "chanest": [291, 294, 351, 352], "rxpbchindic": [291, 294, 351], "pbchestim": [291, 294, 351, 352], "extractmibinfo": [291, 294, 351, 352], "rxmib": [291, 294, 351, 352], "lw": [291, 294, 301, 302, 311, 318, 322, 325, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 345, 351, 352, 365], "loc": [291, 294, 301, 309, 311, 323, 325, 326, 329, 330, 331, 334, 337, 338, 339, 340, 352, 353, 354, 365], "lt": [291, 294, 311, 318, 330, 331, 341, 342, 343, 344, 345, 346, 347, 348, 351], "frozen": [291, 294], "494": [291, 294, 323, 351, 352], "userwarn": [291, 294, 323, 351, 352], "ressourc": [291, 294, 323, 351, 352], "blocklength": [291, 294, 323, 351, 352], "cpu_onli": [291, 294, 323, 351, 352], "2000000000": 291, "intrafreqreselect": [291, 294, 351], "303": [291, 314], "issbindex": [291, 294, 351], "couldn": [291, 294, 351], "id1": [291, 294, 351], "uncod": [291, 294, 322, 351], "uncodedb": [291, 294, 311, 322, 323, 325, 326, 351, 354], "codedb": [291, 294, 311, 323, 325, 326, 351, 354], "verif": [292, 293, 295], "recours": [293, 295], "cost": [294, 301, 305], "thm": 294, "coars": 294, "170": [294, 314], "pdschlowerphyconfig": [294, 311, 325, 326, 354], "pdschupperphyconfig": [294, 311, 325, 326, 354], "51216": 294, "layerpertb": [294, 311, 354], "6015625": 294, "85680": 294, "65536": [294, 311, 323, 325, 326, 354], "pdschlowerphychain": [294, 311, 325, 326, 354], "transmis": [294, 311, 325, 326, 354], "sqrt": [294, 302, 311, 318, 322, 323, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 345, 352, 353], "norm": [294, 302, 318, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 341, 343, 344, 349, 351], "0001": [294, 342], "640x480": [294, 311, 347, 348], "xlabel": [294, 311, 318, 348], "ylabel": [294, 311, 318, 348], "ssbresgrid": 294, "112": [294, 314, 332, 353], "11629": 294, "328723559462": 294, "scalingfactor": 294, "pulseshap": 294, "1101004": 294, "1038": 294, "dtection": 294, "1000000000": 294, "694": [294, 334], "pdschstartindex": 294, "pdschgrid": 294, "53": [294, 301, 314, 327, 332, 333, 334, 337, 340], "polyord": 294, "Will": 294, "rsymbol": 294, "laydemap": 294, "rlmsym": 294, "rxllr": 294, "scrobject": 294, "rscrbit": 294, "pdschupphydec": [294, 311, 325, 326, 354], "thoughput": 294, "hertz": 294, "slotdur": [294, 301], "spectaleffici": 294, "mbp": [294, 301], "412": 294, "2804": 294, "1428571428571429": 294, "7893069130182532e": 294, "softwar": [295, 312, 364], "board": [295, 361], "our": [295, 330, 331, 333, 334, 359, 360, 361, 362], "prototyp": [295, 361], "test": [295, 301, 321, 361, 364], "xilinx": 295, "zynq": 295, "ultrascal": 295, "rfsoc": 295, "pynq": 295, "ni": [295, 364], "usrp": [295, 364], "b200": 295, "b205": 295, "mini": [295, 364], "b210": 295, "uhd": 295, "analog": [295, 299, 355, 364], "phasor": 295, "exhaust": [295, 330, 331, 333, 334], "sole": 295, "famili": [295, 336], "mention": 295, "encount": [295, 302, 334, 335], "difficulti": 295, "hesit": 295, "gigayasa": [295, 298, 359, 360, 361, 362, 363], "com": [295, 359, 360, 361, 362, 363], "glad": 295, "organ": [295, 325, 326, 337, 365], "script": [295, 328, 329, 338, 339, 353, 359, 360, 361, 362], "audienc": [296, 297, 351], "taught": 296, "ii": [296, 299, 310, 318, 321, 361, 364], "remot": [296, 364], "cours": [297, 361], "introductori": [297, 361], "2023": [298, 301, 361, 365], "reserv": [298, 328], "r23": 298, "logo": 298, "regist": 298, "privat": 298, "consent": 298, "public": [298, 361], "owner": 298, "product": [298, 341, 343, 344, 361], "rather": 298, "editori": 298, "intent": 298, "infring": 298, "reveal": 298, "copyright": [298, 361], "unauthor": 298, "reproduct": 298, "strictli": 298, "prohibit": 298, "legal": 298, "action": 298, "herein": 298, "furnish": 298, "subject": [298, 359, 362, 363], "notic": 298, "guarante": 298, "commit": 298, "terrestri": [299, 364], "ntn": [299, 364], "ai": [299, 321, 327, 352, 361, 364], "ml": [299, 321, 361, 364], "latest": [299, 359, 360, 361, 362], "architectur": [299, 359, 362, 363], "noma": 299, "otf": 299, "twin": [299, 301], "r23a": [300, 359, 360, 361, 363, 365], "teach": [301, 361], "neural": [301, 318], "convent": 301, "combinatori": 301, "consum": 301, "internet": 301, "thing": [301, 361], "iot": [301, 355, 361], "propos": 301, "er": [301, 311, 352], "rapidli": 301, "might": [301, 332, 341, 342, 346, 348, 349, 359, 360, 361, 362], "hour": 301, "gb": 301, "excercis": 301, "numfram": 301, "numpoint": [301, 311, 323, 325, 326, 327, 352, 354], "numtrainingsampl": 301, "ticker": [301, 311, 354], "formatstrformatt": [301, 311, 354], "nodesperlay": 301, "hidden": 301, "activationfunct": 301, "numtestsampl": 301, "relu": [301, 318], "displaymap": 301, "bitloc": 301, "displayrealpart": 301, "651u": 301, "0184e": 301, "04": [301, 308, 314, 318], "9938": 301, "580u": 301, "617u": 301, "5833e": 301, "9970": 301, "620u": 301, "660u": 301, "0046": 301, "9902": 301, "02": [301, 302, 304, 318, 333], "628u": 301, "4096": [301, 302, 323, 328, 332, 333], "585u": 301, "5838e": 301, "9895": 301, "95": [301, 302, 305, 309, 314, 331, 332, 333, 334, 337, 352], "525u": 301, "579u": 301, "0524e": 301, "9724": 301, "97": [301, 314, 332, 333, 334], "532u": 301, "595u": 301, "8327e": 301, "9935": 301, "559u": 301, "591u": 301, "0649e": 301, "9734": 301, "528u": [301, 318], "611u": 301, "3079e": 301, "9711": 301, "556u": [301, 318], "3204e": [301, 314], "9839": 301, "scspace": 301, "numtx": 301, "4785": 301, "001": [301, 353], "artifici": [301, 318, 321, 361, 364], "ann": [301, 318], "mimic": 301, "fed": [301, 318], "adam": [301, 318], "levenberg": 301, "marquardt": 301, "backpropag": 301, "batch_siz": [301, 314, 318], "reason": [301, 307], "slighli": 301, "paper": [301, 304, 305, 306, 307, 308, 309, 361], "claim": 301, "unabl": 301, "predict": [301, 311, 318, 342, 356], "emit": [301, 334], "maxthroughput": 301, "mcsidx": 301, "pdschupphi": 301, "snrindex": [301, 318, 322, 329, 338, 339], "tbest": 301, "mod": [301, 345, 353], "_______________________________________________________": 301, "025147934868943605": 301, "028224781572676726": 301, "1536": 301, "776u": 301, "7875": 301, "9571": 301, "767u": 301, "0052": 301, "9923": 301, "761u": 301, "0027": 301, "9948": 301, "757u": 301, "0019": 301, "9952": 301, "647u": 301, "0018": 301, "49725": 301, "523u": [301, 318], "02535378607360339": 301, "511111111111111": 301, "016092136616362194": 301, "995": 301, "302160": 301, "00000000023": [301, 311], "01816587238549113": 301, "943u": 301, "8334": 301, "9536": 301, "942u": 301, "0104": 301, "9900": 301, "950u": 301, "0034": 301, "9942": 301, "945u": 301, "0020": 301, "9954": 301, "675u": 301, "0013": [301, 314], "9964": 301, "593u": 301, "01622584061424411": 301, "9975": 301, "151079": 301, "99999999677": 301, "622222222222223": 301, "0077429176595181365": 301, "6043199": 301, "999999999": 301, "009148795340217104": 301, "9425": 301, "3474839": 301, "9999999995": [301, 311, 325], "1m": [301, 318, 348], "8134": 301, "9645": 301, "988u": 301, "0096": 301, "9915": 301, "976u": 301, "0028": 301, "9941": 301, "967u": 301, "9953": 301, "678u": 301, "0021": 301, "9961": 301, "61": [301, 302, 314, 332, 333, 334, 340], "599u": 301, "00787595975642044": 301, "733333333333333": 301, "003140058247286206": 301, "645": 301, "21453360": 301, "003892308710616892": 301, "7224999999999999": [301, 311], "16769880": 301, "000000004": 301, "9520": 301, "9576": 301, "997u": 301, "0037": [301, 314], "9933": 301, "989u": 301, "9955": 301, "993u": 301, "0015": [301, 314, 318], "665u": 301, "0014": 301, "9963": 301, "63": [301, 314, 332, 333, 334, 340], "609u": 301, "003194334127614509": 301, "6525000000000001": 301, "21000119": 301, "999999996": [301, 354], "844444444444445": 301, "000560630129732592": 301, "29000000000000004": 301, "42906720": 301, "0007045935927985173": 301, "3325": 301, "40338360": 301, "958u": 301, "9824": 301, "9567": 301, "965u": 301, "0100": 301, "953u": 301, "0030": [301, 314], "9931": 301, "9947": 301, "9950": 301, "598u": 301, "0005801562086311888": 301, "29500000000000004": 301, "42604560": 301, "955555555555556": 301, "00010424940428911835": 301, "08499999999999996": 301, "55295280": 301, "0001290706910246227": 301, "10499999999999998": 301, "54086640": 301, "971u": 301, "0082": 301, "9494": 301, "0094": 301, "948u": 301, "949u": 301, "0023": 301, "652u": 301, "00010325655281969817": 301, "066666666666667": 301, "942811755361398e": 301, "010000000000000009": [301, 325, 352], "59827680": 301, "1252316653428647e": 301, "015000000000000013": [301, 323, 354], "59525519": 301, "99999999": 301, "972u": 301, "1142": 301, "9508": 301, "951u": 301, "0042": 301, "9925": 301, "9949": 301, "947u": 301, "0016": [301, 318], "666u": 301, "0012": 301, "9960": 301, "597564204395023e": 301, "012499999999999956": 301, "59676600": 301, "177777777777778": 301, "3095048980672493e": 301, "0024999999999999467": 301, "60280920": 301, "60432000": 301, "0939": 301, "9534": 301, "930u": 301, "0038": 301, "9945": 301, "918u": 301, "926u": 301, "9956": 301, "679u": 301, "0017": [301, 314], "569u": 301, "28888888888889": 301, "619009796134499e": 301, "0050000000000000044": [301, 323, 325], "60129839": 301, "935u": 301, "0920": 301, "9517": 301, "917u": 301, "0095": 301, "9910": 301, "924u": 301, "9939": 301, "909u": 301, "0026": 301, "655u": 301, "0024": 301, "916u": 301, "2061": 301, "9545": 301, "900u": 301, "0070": 301, "9918": 301, "904u": 301, "9959": 301, "661u": 301, "0031": 301, "586u": 301, "040188703800104114": 301, "04859621724796113": 301, "968u": 301, "8221": 301, "8768": 301, "952u": 301, "0433": 301, "9830": 301, "0163": 301, "9899": 301, "939u": 301, "0109": 301, "9908": 301, "9919": 301, "581u": 301, "04115499739718896": 301, "644444444444444": 301, "026602680895366996": 301, "036362571577303486": 301, "980u": 301, "9707": 301, "8692": 301, "962u": 301, "1349": [301, 334], "9510": 301, "0256": 301, "9822": 301, "940u": 301, "0161": 301, "9851": 301, "0138": 301, "9869": 301, "69": [301, 314, 332, 333, 334, 340], "590u": 301, "028235944820406037": 301, "78888888888889": 301, "014358623980565678": 301, "9833333333333333": 301, "1536800": 301, "0000000047": 301, "023304919312857886": 301, "946u": 301, "2150": 301, "8748": 301, "0673": 301, "9768": 301, "0209": 301, "9893": 301, "0149": 301, "0115": 301, "594u": 301, "01549540170050321": 301, "985": 301, "1383120": 301, "0000000012": 301, "933333333333334": [301, 311], "005127754641679681": 301, "8066666666666666": 301, "17826880": 301, "010303444386604198": 301, "2766240": 301, "0000000023": 301, "981u": 301, "3736": 301, "8757": 301, "966u": 301, "1384": 301, "9678": 301, "986u": 301, "0278": 301, "9870": 301, "955u": 301, "0187": 301, "9882": 301, "682u": 301, "0160": 301, "9887": 301, "87": [301, 314, 332, 333, 334, 365], "603u": 301, "006156949505465903": 301, "845": 301, "14292240": 301, "000000002": [301, 311], "077777777777778": 301, "0009125021690091967": 301, "405": [301, 314], "54863759": 301, "0024898056567759846": 301, "685": 301, "29045519": 301, "889u": 301, "4978": 301, "8656": 301, "848u": 301, "1237": 301, "9658": 301, "858u": 301, "0273": 301, "9871": 301, "862u": 301, "0174": 301, "9889": 301, "644u": 301, "0151": 301, "9886": 301, "86": [301, 314, 325, 332, 333, 334], "564u": [301, 318], "0012116085372201979": 301, "44333333333333336": 301, "51329119": 301, "222222222222223": [301, 326], "00011886170397362485": 301, "11333333333333329": 301, "81757760": 301, "00032838799236508765": 301, "22999999999999998": [301, 323], "71000160": 301, "911u": 301, "9472": 301, "8702": 301, "1385": 301, "9595": 301, "0353": 301, "9880": 301, "0234": 301, "9905": 301, "635u": 301, "0182": 301, "9921": 301, "00018154606975533577": 301, "79759920": 301, "366666666666667": 301, "326739545375672e": 301, "90824880": 301, "017178552837064e": 301, "026666666666666616": 301, "89749120": 301, "890u": 301, "3447": 301, "8683": 301, "880u": 301, "0913": 301, "9728": 301, "870u": 301, "0263": 301, "0154": 301, "9913": 301, "634u": 301, "0113": 301, "9928": 301, "541u": 301, "1929550581294465e": 301, "01666666666666672": 301, "90671200": 301, "92208000": 301, "1858": 301, "8540": 301, "1405": 301, "9655": 301, "0335": 301, "9883": 301, "0232": 301, "9897": 301, "654u": 301, "0198": 301, "9888": 301, "88": [301, 314, 332, 333, 334], "1690091965989935e": 301, "0016666666666667052": 301, "92054319": 301, "655555555555557": 301, "902u": 301, "6813": 301, "8733": 301, "905u": 301, "1776": 301, "9657": 301, "0431": 301, "9854": 301, "923u": 301, "9884": 301, "639u": 301, "0189": 301, "9894": [301, 348], "94": [301, 314, 332, 333, 334], "557u": [301, 318], "2463": 301, "8624": 301, "861u": 301, "9677": 301, "859u": 301, "0383": 301, "884u": 301, "0240": 301, "570u": 301, "009899100172025936": 301, "92": [301, 314, 325, 332, 333, 334], "9672959": 301, "999999994": 301, "026978959904724098": 301, "933u": 301, "5861": 301, "8235": 301, "920u": 301, "7076": 301, "9146": 301, "2689": 301, "9565": 301, "2034": 301, "9612": 301, "9594": 301, "04042411009659918": 301, "004650489612280005": 301, "7362500000000001": 301, "31890539": 301, "01804337038507344": 301, "302279": 301, "99999999354": 301, "7435": 301, "8228": 301, "6509": 301, "9322": 301, "961u": 301, "2652": 301, "9601": 301, "1813": [301, 334], "9653": 301, "1469": 301, "9664": 301, "027669544792907237": 301, "622222222222222": 301, "00196969696969697": 301, "49250000000000005": 301, "61362839": 301, "010304684398570862": 301, "96625": 301, "4080779": 301, "9999999935": 301, "910u": 301, "7789": 301, "8164": 301, "0580": 301, "9194": 301, "879u": 301, "3600": 301, "9580": 301, "869u": 301, "2619": 301, "9620": 301, "2258": 301, "9636": 301, "02898752811962419": 301, "733333333333334": 301, "00041898240042344845": 301, "21375": 301, "95067060": 301, "003805577610162763": 301, "30228000": 301, "907u": 301, "4401": 301, "8270": 301, "875u": 301, "8994": 301, "9237": 301, "3270": 301, "9573": 301, "2392": 301, "9637": 301, "624u": 301, "2117": 301, "560u": [301, 318], "021652937673680032": 301, "262935027127167e": 301, "07125000000000004": 301, "112297019": 301, "000882956199550086": 301, "37124999999999997": 301, "76023420": 301, "2444": 301, "8299": 301, "5827": 301, "9457": 301, "2849": 301, "2227": 301, "9648": 301, "1923": 301, "9681": 301, "81": [301, 314, 332, 333, 334, 340], "568u": [301, 318], "008769849146486701": 301, "88125": 301, "14358300": 301, "60447267434167e": 301, "018750000000000044": 301, "118644899": 301, "00021106259097525474": 301, "11250000000000004": 301, "107309399": 301, "5266": 301, "8456": 301, "0916": 301, "9118": 301, "4076": 301, "9557": 301, "898u": 301, "2505": 301, "9698": 301, "2088": 301, "540u": [301, 318], "005416832076220722": 301, "76125": 301, "28867740": 301, "066666666666666": 301, "270477702792113e": 301, "0012499999999999734": 301, "120760860": 301, "4721450310969962e": 301, "7788": 301, "8309": 301, "9726": 301, "9291": 301, "3830": 301, "9591": 301, "897u": 301, "2585": 301, "9626": 301, "9646": 301, "565u": 301, "0014949715495567023": 301, "71942640": 301, "177777777777777": 301, "120912000": 301, "308191081116845e": 301, "899u": 301, "7222": 301, "8061": 301, "6367": 301, "8986": 301, "5433": 301, "9480": 301, "3280": 301, "9633": 301, "613u": 301, "2776": 301, "9649": 301, "587u": [301, 318], "0021064906709011514": 301, "56828640": 301, "8219": 301, "8436": 301, "9256": 301, "4170": 301, "9586": 301, "3252": 301, "9659": 301, "2890": 301, "9674": 301, "572u": 301, "0008334987428873892": 301, "2825": 301, "86754360": 301, "931u": 301, "7185": 301, "8259": 301, "0952": 301, "9265": 301, "4467": 301, "3370": 301, "9619": 301, "623u": 301, "3024": 301, "9624": 301, "574u": 301, "0002639936482731243": 301, "106402560": 301, "mediumspringgreen": [301, 322], "solid": [301, 302, 304, 305, 306, 307, 308, 322, 329, 330, 331, 332, 333, 334, 335, 338, 339, 340], "mec": [301, 311, 318, 322, 323, 325, 326, 352], "crimson": [301, 302, 322, 329, 330, 331, 332, 333, 334, 335, 338, 339, 340, 345, 346], "mfc": [301, 311, 318, 322, 352], "darkblu": [301, 322], "green": [301, 318, 322, 327, 329, 330, 331, 336, 338, 339, 340], "oliv": [301, 318, 322, 329, 338, 339, 340], "tomato": [301, 318, 322], "cyan": [301, 318, 322, 327, 329, 338, 339, 340], "dataset_2": 301, "axr": 301, "twinx": 301, "rcparam": [301, 336, 338, 339, 340], "font": [301, 336, 338, 339, 340], "aggregateddatabas": 301, "npz": [301, 302, 312, 314, 323, 325, 326, 329, 330, 331, 332, 333, 334, 335, 338, 339, 340, 352, 354], "xaxi": [301, 311, 354], "set_major_formatt": [301, 311, 354], "1f": [301, 354], "author": 301, "paer": 301, "slighlti": 301, "complexitylogmap": 301, "832": 301, "3840": 301, "17408": 301, "complexitymaxlogmap": 301, "208": [301, 314], "680": 301, "5000": [301, 306, 314, 355], "complexityllrnet": 301, "608": 301, "1472": 301, "normalizedcomplexitymaxlogmap": 301, "normalizedcomplexityllrnet": 301, "throughputlogmap": 301, "throughputmaxlogmap": 301, "throughputllrnet": 301, "59": [301, 314, 332, 333, 334, 340], "normalizedthroughputmaxlogmap": 301, "normalizedthroughputllrnet": 301, "snrdbvalu": 301, "edgecolor": [301, 302, 330, 331, 332, 333, 334, 335, 345], "impract": 301, "onlin": 301, "computation": 301, "fpga": 301, "soc": 301, "bulkier": 301, "shental": 301, "hoydi": [301, 318], "machin": [301, 312, 321, 361, 364], "llrning": 301, "softli": 301, "globecom": 301, "gc": 301, "wkshp": 301, "waikoloa": 301, "usa": 301, "gcwkshps45667": 301, "9024433": 301, "lack": 302, "suffici": 302, "insuffici": 302, "matlib": [302, 331, 332, 333, 334, 335, 337], "io": [302, 331, 332, 333, 334, 335, 337, 360, 361], "spio": [302, 331, 332, 333, 334, 335, 337], "constant": [302, 330, 331, 332, 333, 334, 335, 337], "propterrain": [302, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 349, 351], "numofbss": [302, 330, 332, 333, 335, 337], "nbss": [302, 323, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352], "nue": [302, 323, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352], "ueantarrai": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "bsantarrai": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "mindist": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "ueht": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "bsht": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "bslayouttyp": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 347, 348, 351, 352, 354], "uedroptyp": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 347, 348, 351, 352, 354], "htdist": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 351, 352, 354], "uedist": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 343, 344, 351, 352, 354], "nsectorspersit": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354], "maxnumfloor": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354], "minnumfloor": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 351, 352, 354], "paramgen": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 348, 351, 352, 354], "130": [302, 309, 314, 330, 332, 333, 335], "numantenna": [302, 311, 312, 325, 326, 327, 330, 331, 332, 333, 334, 335, 337, 342, 345, 346, 349, 351, 352, 354], "srsperiodicityinslot": [302, 332, 333, 335], "srsoffsetinslot": [302, 332, 333, 335], "numuesperslot": [302, 332, 333, 335], "frameindic": [302, 332, 333, 335], "slotindic": [302, 332, 333, 335], "lpath2": 302, "xoaest": [302, 334, 335], "srsgrid": [302, 332, 333, 335], "srsobject": [302, 332, 333, 335], "xgrid": [302, 330, 331, 332, 333, 334, 335, 337, 352], "del": [302, 332, 333, 335], "pt_dbm": [302, 330, 331, 332, 333, 334, 335, 337, 351], "wt": [302, 330, 331, 332, 333, 335, 337], "xf": [302, 323, 327, 328, 330, 331, 332, 333, 334, 335, 337, 352], "xgrid1": [302, 330, 331, 332, 333, 335, 337], "ueindic": [302, 332, 333, 335], "yf": [302, 323, 327, 328, 330, 331, 332, 333, 334, 335, 337, 352], "boltzmanconst": [302, 327, 330, 331, 332, 333, 334, 335, 337], "380649": [302, 327, 330, 331, 332, 333, 334, 335, 337, 351], "temperatur": [302, 327, 330, 331, 332, 333, 334, 335, 337], "300": [302, 314, 327, 330, 331, 332, 333, 334, 335, 337, 342, 345, 351], "noisefiguredbi": [302, 337], "noisefigur": [302, 337], "noisepow": [302, 327, 330, 331, 332, 333, 334, 335, 337], "kppm": [302, 327, 330, 331, 332, 333, 334, 335, 337, 351], "fcfo": [302, 327, 330, 331, 332, 333, 334, 335, 337, 351], "standard_norm": [302, 318, 322, 329, 332, 333, 335, 338, 339, 353], "hfest": [302, 330, 331, 332, 333, 335, 337], "chgrid": [302, 332, 333, 335], "hest": [302, 311, 332, 333, 335, 337], "delayestim": [302, 330, 331, 332, 333], "home": [302, 323, 335, 351, 352], "tenet": [302, 323, 335, 351, 352], "startup": [302, 323, 335, 351, 352], "5g_toolkit": [302, 323, 335, 351, 352, 361], "version15": [302, 323, 335, 352], "hybrid_positioning_in_5g_network": 302, "angle_estim": [302, 335], "104": [302, 314, 332, 334], "runtimewarn": [302, 334, 335], "arcsin": [302, 335], "kx": [302, 335], "ui": [302, 327, 335, 352], "ky": [302, 335], "vi": [302, 335], "rxposit": [302, 330, 331, 332, 333, 334, 335], "error1": 302, "bsindices1": 302, "argsort": [302, 330, 331, 332, 333, 334, 335, 348], "error2": 302, "bsindices2": 302, "error31": 302, "bsindices31": 302, "error32": 302, "bsindices32": 302, "error41": 302, "bsindices41": 302, "error42": 302, "bsindices42": 302, "rxpositionestimate1": 302, "rxpositionestimate2": 302, "rxpositionestimate3": 302, "rxpositionestimate4": 302, "rangeest_2d": [302, 330, 331, 332, 333, 334, 335], "linestyle_tupl": [302, 329, 330, 331, 332, 333, 334, 335, 338, 339, 340], "dash": [302, 329, 330, 331, 332, 333, 334, 335, 338, 339, 340], "dashdot": [302, 329, 330, 331, 332, 333, 334, 335, 338, 339, 340], "loos": [302, 330, 331, 332, 333, 334, 335], "dashdotdot": [302, 330, 331, 332, 333, 334, 335], "circle1": [302, 330, 331, 332, 333, 334, 335], "zorder": [302, 327, 330, 331, 332, 333, 334, 335, 342, 345, 346], "add_artist": [302, 330, 331, 332, 333, 334, 335], "nbin": [302, 330, 331, 332, 333, 334, 335, 348], "xlimit": [302, 330, 331, 332, 333, 334, 335], "ylimit": [302, 330, 331, 332, 333, 334, 335], "poserror2dtdoa": 302, "poserror3dtdoa": 302, "isnan": [302, 330, 331, 332, 333, 334, 335, 337], "bins_count": [302, 330, 331, 332, 333, 334, 335, 348], "histogram": [302, 330, 331, 332, 333, 334, 335, 336, 348], "bin": [302, 330, 331, 332, 333, 334, 335, 336, 348], "pdf": [302, 330, 331, 332, 333, 334, 335, 336, 348], "cdf": [302, 330, 331, 332, 333, 334, 335, 336, 348], "cumsum": [302, 330, 331, 332, 333, 334, 335, 336, 348], "poserror2daoa": 302, "poserror3daoa": 302, "poserror2dhybrid": 302, "poserror3dhybrid": 302, "poserror2dhybrid2": 302, "poserror3dhybrid2": 302, "set_ytick": [302, 305, 311, 323, 325, 326, 328, 330, 331, 332, 333, 334, 335, 337, 352, 354], "magenta": [302, 330, 331, 332, 333, 334, 335], "66": [302, 314, 329, 330, 331, 332, 333, 334, 335, 340], "midnightblu": [302, 328, 330, 331, 332, 333, 334, 335, 337, 345], "cm": [302, 330, 331, 332, 333, 334, 335], "databas": [302, 313, 314, 321, 323, 325, 326, 329, 330, 331, 332, 333, 334, 335, 338, 339, 352, 361], "poserror3dhybridtdoa_aoa": 302, "poserror2dhybridtdoa_aoa": 302, "poserror3dhybridtoa_aoa": 302, "poserror2dhybridtoa_aoa": 302, "fact": 304, "____________________________________________________________________________________________________________________": 304, "maxnumu": [304, 305, 307], "parameter": 304, "agglevelprobdistributionforgoodcoverag": 304, "outcom": 304, "blockag": [304, 321, 361], "probofblockingforgoodcoverag": 304, "enough": 304, "prob": [304, 305, 306, 307, 308, 309, 318, 336, 348], "uealdistribut": [304, 305, 306, 307, 308, 309], "agglevelprobdistributionformediumcoverag": 304, "probofblockingformediumcoverag": 304, "agglevelprobdistributionforextremecoverag": 304, "probofblockingforextremecoverag": 304, "clearli": 304, "recreat": [304, 305, 306, 307, 308, 309], "referenc": [304, 305, 306, 307, 308, 309], "mohammad": [304, 305, 306, 307, 308, 309], "mozaffari": [304, 305, 306, 307, 308, 309], "eric": [304, 305, 306, 307, 308, 309], "kittipong": [304, 305, 306, 307, 308, 309], "kittichokechai": [304, 305, 306, 307, 308, 309], "intuit": [305, 308], "probabilti": [305, 308], "al1": [305, 306], "agglevelprobdistributionforal1": 305, "probofblockingforal1": [305, 306], "al2": [305, 306], "agglevelprobdistributionforal2": 305, "probofblockingforal2": [305, 306], "al4": [305, 306], "agglevelprobdistributionforal4": 305, "probofblockingforal4": [305, 306], "al8": 305, "agglevelprobdistributionforal8": 305, "probofblockingforal8": 305, "al16": 305, "agglevelprobdistributionforal16": 305, "probofblockingforal16": 305, "tick_param": [305, 328, 330, 331, 337], "grid_linewidth": [305, 328, 330, 331, 337], "grid_linestyl": [305, 328, 330, 331, 337], "seper": 306, "supportednumcand": 306, "versu": [306, 307, 308], "incres": 306, "reduct": [306, 312], "benefici": [306, 309], "probail": 306, "bd": [306, 308], "probofblockingforstrategy1": 307, "probofblockingforstrategy2": 307, "outperform": 307, "aproxim": 307, "fewer": 308, "flexibilti": 308, "around": [308, 330, 331, 342, 345, 346, 349], "mincc": [308, 309], "maxcc": [308, 309], "probofblockingrefcas": 308, "ovelap": 308, "almost": 308, "probofblockingbdcase_a": 308, "probofblockingbdcase_b": 308, "prevalindic": 308, "problem": [309, 356, 359, 361, 362, 363], "condidt": 309, "desir": 309, "perspect": 309, "blindli": [309, 328], "therfor": 309, "probofblock": 309, "targetblockingprob": 309, "mincoresetsize5fornumues5": 309, "mincoresetsize10fornumues5": 309, "mincoresetsize15fornumues5": 309, "mincoresetsize20fornumues5": 309, "105": [309, 314, 332], "115": [309, 314, 332], "mincoresetsize5fornumues10": 309, "mincoresetsize10fornumues10": 309, "mincoresetsize15fornumues10": 309, "mincoresetsize20fornumues10": 309, "mincoresetsize5fornumues15": 309, "mincoresetsize10fornumues15": 309, "mincoresetsize15fornumues15": 309, "mincoresetsize20fornumues15": 309, "cleari": 309, "speci": 309, "penguin_mean": 309, "item": 309, "rect": [309, 327], "bar_label": 309, "pad": 309, "ncol": 309, "ant": [311, 312, 325, 326, 354], "strutur": [311, 312, 325, 326, 354], "codewords": [311, 312, 314], "loadmodel": 311, "hprep": [311, 312, 314], "hrec": [311, 312], "postprocess": [311, 321, 361], "7m": 311, "numchannel": [311, 312], "idx": [311, 312, 327, 330, 331, 332, 333, 334, 335, 345, 352], "grei": [311, 312], "153": [311, 314], "134": [311, 314, 334], "124": [311, 314, 332], "nmse": 311, "20250736648608653": 311, "5768": 311, "2451171875": 311, "23460": [311, 354], "ptc": [311, 325, 326, 351, 354], "endpoint": [311, 327, 352, 354], "ygrid": [311, 325, 326, 354], "rgrid": [311, 325, 326, 354], "pdschdeclowerphi": [311, 325, 354], "kpi": [311, 325, 326, 354], "2000": [311, 321, 325, 326, 348, 354, 355, 361], "003271497919556172": 311, "004089940323955669": 311, "88888888888889": [311, 326, 352], "0019166088765603328": 311, "002438832054560955": 311, "277777777777779": 311, "0011243065187239944": 311, "001499147485080989": 311, "955": 311, "519120": 311, "00000000047": 311, "666666666666666": [311, 322, 323, 325], "0005989944521497919": 311, "0008077578857630008": 311, "8425": 311, "1816919": 311, "055555555555555": 311, "0002869278779472954": 311, "00043350383631713557": 311, "5549999999999999": 311, "5133520": 311, "444444444444445": [311, 323, 325, 326, 352], "00013262829403606102": 311, "00022953964194373402": 311, "3125": 311, "7931000": 311, "833333333333333": 311, "628294036061026e": 311, "00012510656436487638": 311, "19499999999999995": 311, "9286480": 311, "222222222222221": [311, 323, 352], "340499306518724e": 311, "457800511508951e": 311, "06499999999999995": 311, "10786160": 311, "611111111111111": 311, "836317135549872e": 311, "11536000": 311, "3231031543052003e": 311, "6m": [311, 341, 343, 344], "snrdb2": 311, "snr2": 311, "codedber2": 311, "uncodedber2": 311, "bler2": 311, "throughput2": 311, "002643030513176144": 311, "0033248081841432226": 311, "483333333333333": 311, "0017995839112343967": 311, "002294543904518329": 311, "115360": 311, "966666666666667": 311, "0012274618585298197": 311, "001603154305200341": 311, "975": [311, 323], "288400": 311, "0008538488210818308": 311, "0011327791986359761": 311, "9125": 311, "1009400": 311, "0000000002": [311, 326], "0005799237170596394": 311, "0008459079283887468": 311, "8325": 311, "1932279": 311, "9999999998": 311, "416666666666666": 311, "0004342926490984743": 311, "0006432225063938619": 311, "3201240": 311, "000000001": [311, 354], "8999999999999995": 311, "00031206657420249653": 311, "0005051150895140665": 311, "6074999999999999": 311, "4527880": 311, "383333333333333": 311, "00022798196948682387": 311, "0004360613810741688": 311, "48750000000000004": 311, "5912200": 311, "866666666666666": 311, "934812760055479e": 311, "0003923699914748508": 311, "020000000000000018": [311, 323], "11305280": 311, "0003610400682011935": 311, "2f": 311, "ytck": [311, 323, 325, 326, 352, 354], "tile": [311, 323, 325, 326, 334, 352, 354], "999": [311, 334], "snrdb1": 311, "deep": [311, 318], "prepar": 312, "synthet": 312, "world": [312, 361], "collect": 312, "special": 312, "electromagnet": 312, "clean": 312, "outlier": 312, "raw": [312, 359, 360, 362, 363], "wavelet": 312, "overfit": 312, "princip": 312, "pca": 312, "preserv": 312, "generaliz": 312, "csinet": [312, 313, 321, 361], "sure": 312, "directori": 312, "folder": 312, "montecarloiter": [312, 329, 338, 339, 353], "numtap": [312, 314], "mci": 312, "savez": [312, 330, 331, 332, 333, 334, 335, 352], "preprocessedchannel": [312, 314], "filenam": [312, 325, 326, 330, 331, 332, 333, 334, 335, 352, 354], "hp": [312, 314, 323, 328], "reconstrunct": [313, 321], "net": [313, 321], "imperfect": [313, 321], "dataset": [313, 321, 352, 355, 361], "train": [313, 321, 361], "storag": [313, 321], "sparsiti": [313, 321, 350, 355, 361], "batchnorm": [314, 318], "conv2d": 314, "leakyrelu": 314, "load_model": 314, "callback": [314, 318], "tensorboard": 314, "110000": 314, "htrain": 314, "hval": 314, "htest": 314, "71": [314, 332, 333, 334, 340], "7742e": 314, "val_loss": [314, 318], "0043": 314, "7259e": 314, "6864e": 314, "0029": 314, "6530e": 314, "0022": 314, "6243e": 314, "6001e": 314, "5802e": 314, "5634e": 314, "0011": [314, 318], "5492e": 314, "7465e": 314, "73": [314, 332, 333, 334, 340], "5370e": 314, "8815e": 314, "5262e": 314, "2990e": 314, "5167e": 314, "0591e": 314, "5085e": 314, "1419e": 314, "5011e": 314, "5195e": 314, "4947e": 314, "1186e": 314, "4891e": 314, "8665e": 314, "4841e": 314, "7138e": 314, "4796e": 314, "6209e": 314, "4754e": 314, "5635e": 314, "4717e": 314, "5279e": 314, "4683e": 314, "5035e": 314, "4653e": 314, "4878e": 314, "4625e": 314, "4770e": 314, "4599e": 314, "4575e": 314, "4617e": 314, "4553e": 314, "4551e": 314, "4533e": 314, "4505e": 314, "4512e": 314, "4463e": 314, "4493e": 314, "4427e": 314, "4475e": 314, "4402e": 314, "4457e": 314, "4354e": 314, "4440e": 314, "4335e": 314, "4423e": 314, "4307e": 314, "4407e": 314, "4283e": 314, "4391e": 314, "4230e": 314, "4376e": 314, "4228e": 314, "4361e": 314, "4194e": 314, "4346e": 314, "4173e": 314, "4332e": 314, "4149e": 314, "4318e": 314, "4133e": 314, "4304e": 314, "4106e": 314, "4289e": 314, "4086e": 314, "4274e": 314, "4061e": 314, "4261e": 314, "4033e": 314, "4249e": 314, "4021e": 314, "4235e": 314, "4001e": 314, "4221e": 314, "3973e": 314, "4211e": 314, "3967e": 314, "4198e": 314, "3946e": 314, "4185e": 314, "3920e": 314, "4172e": 314, "3910e": 314, "4156e": 314, "3889e": 314, "4144e": 314, "3886e": 314, "4130e": 314, "3855e": 314, "4118e": 314, "3846e": 314, "3834e": 314, "57": [314, 332, 333, 334, 340], "4092e": 314, "3812e": 314, "58": [314, 332, 333, 334, 340], "4080e": 314, "3790e": 314, "4067e": 314, "3776e": 314, "4056e": 314, "3763e": 314, "4044e": 314, "3736e": 314, "62": [314, 332, 333, 334, 340], "4029e": 314, "3737e": 314, "4013e": 314, "3721e": 314, "4004e": 314, "3699e": 314, "3984e": 314, "3682e": 314, "3969e": 314, "3674e": 314, "3956e": 314, "3660e": 314, "68": [314, 332, 333, 334, 340], "3942e": 314, "3652e": 314, "3928e": 314, "3637e": 314, "3915e": 314, "3635e": 314, "3897e": 314, "3625e": 314, "3884e": 314, "3883e": 314, "3603e": 314, "3857e": 314, "3597e": 314, "3841e": 314, "3604e": 314, "76": [314, 332, 333, 334, 340], "3821e": 314, "3579e": 314, "77": [314, 332, 333, 334, 340], "3795e": 314, "3555e": 314, "78": [314, 332, 333, 334, 340], "3775e": 314, "3563e": 314, "79": [314, 332, 333, 334, 340], "3756e": 314, "3545e": 314, "3738e": 314, "3547e": 314, "3722e": 314, "3548e": 314, "82": [314, 332, 333, 334, 340], "3710e": 314, "83": [314, 332, 333, 334, 339, 340], "3696e": 314, "3697e": 314, "3651e": 314, "3530e": 314, "3612e": [314, 318], "3516e": 314, "3613e": 314, "3505e": 314, "3574e": 314, "3499e": 314, "89": [314, 325, 332, 333, 334, 339], "3578e": 314, "3540e": 314, "3549e": 314, "3534e": 314, "91": [314, 332, 333, 334], "3487e": 314, "3491e": 314, "3490e": 314, "93": [314, 332, 333, 334], "3475e": 314, "3442e": 314, "3471e": 314, "3440e": 314, "3496e": 314, "3414e": 314, "3508e": 314, "3431e": 314, "3493e": 314, "3403e": 314, "3515e": 314, "3323e": 314, "3469e": 314, "3297e": 314, "3585e": 314, "3307e": 314, "3581e": 314, "102": [314, 332], "3270e": 314, "103": [314, 332, 335], "3247e": 314, "3364e": 314, "7186e": 314, "9999e": 314, "4725e": 314, "0587e": 314, "106": [314, 332, 334], "4827e": 314, "0315e": 314, "107": [314, 332], "6259e": 314, "108": [314, 332], "3717e": 314, "5379e": 314, "109": [314, 332], "0073e": 314, "3526e": 314, "7553e": 314, "111": [314, 332], "3462e": 314, "6115e": 314, "3404e": 314, "5349e": 314, "113": [314, 332], "3351e": 314, "4661e": 314, "114": [314, 332], "3302e": 314, "4291e": 314, "3255e": 314, "4210e": 314, "116": [314, 332], "3211e": 314, "4070e": 314, "117": [314, 332], "3170e": 314, "3908e": 314, "118": [314, 332], "3131e": 314, "3093e": 314, "3706e": 314, "3058e": [314, 318], "3630e": 314, "121": [314, 327, 332], "3024e": 314, "3509e": 314, "3495e": 314, "123": [314, 332], "2958e": 314, "3444e": 314, "2927e": 314, "3385e": 314, "2897e": 314, "3401e": 314, "126": [314, 332], "2869e": 314, "3360e": 314, "2841e": 314, "3312e": 314, "2815e": 314, "3210e": 314, "129": 314, "2788e": 314, "2762e": 314, "3188e": 314, "2736e": 314, "3199e": 314, "2712e": 314, "3122e": 314, "133": 314, "2690e": 314, "3178e": 314, "2663e": 314, "3107e": 314, "2638e": 314, "3061e": 314, "136": 314, "2614e": 314, "3039e": 314, "137": 314, "2590e": 314, "3072e": 314, "2567e": 314, "2932e": 314, "139": 314, "2542e": 314, "3050e": 314, "2519e": 314, "2852e": 314, "141": 314, "2502e": 314, "2818e": 314, "142": 314, "2473e": 314, "2908e": 314, "143": 314, "2453e": 314, "3138e": 314, "2444e": 314, "2780e": 314, "145": 314, "2419e": 314, "2681e": 314, "146": 314, "2402e": 314, "2615e": 314, "147": 314, "2369e": 314, "148": 314, "2352e": 314, "2830e": 314, "149": 314, "2314e": 314, "2605e": 314, "150": [314, 330, 335], "2286e": 314, "2743e": 314, "2271e": 314, "2598e": 314, "152": [314, 318], "0737e": 314, "5406e": 314, "154": 314, "2217e": 314, "4022e": 314, "155": 314, "6454e": 314, "8927e": 314, "5252e": 314, "2517e": 314, "4766e": 314, "9435e": 314, "158": 314, "4478e": 314, "7687e": 314, "159": 314, "4276e": 314, "6398e": 314, "4121e": 314, "5581e": 314, "5050e": 314, "162": 314, "3907e": 314, "4714e": 314, "163": 314, "3830e": 314, "4454e": 314, "3767e": 314, "4247e": 314, "3711e": 314, "4100e": 314, "166": [314, 365], "3661e": 314, "3959e": 314, "167": 314, "3615e": 314, "3854e": 314, "3572e": 314, "3760e": 314, "169": 314, "3533e": 314, "3684e": 314, "3616e": 314, "171": 314, "3460e": 314, "3561e": 314, "172": 314, "3425e": 314, "3502e": 314, "173": 314, "3392e": 314, "3455e": 314, "174": [314, 334], "3358e": 314, "3413e": 314, "175": 314, "3325e": 314, "3369e": 314, "176": 314, "3293e": 314, "3329e": 314, "177": [314, 334], "3260e": 314, "3295e": 314, "178": 314, "3227e": 314, "3262e": 314, "3195e": 314, "3225e": 314, "3163e": 314, "3183e": 314, "181": 314, "3149e": 314, "182": [314, 334, 365], "3098e": 314, "3120e": 314, "183": [314, 327], "3064e": 314, "3091e": 314, "184": 314, "3031e": 314, "185": 314, "2998e": 314, "3030e": 314, "186": [314, 334], "2967e": 314, "2996e": 314, "2935e": 314, "2962e": 314, "188": 314, "2905e": 314, "2936e": 314, "189": 314, "2875e": 314, "2912e": 314, "190": 314, "2843e": 314, "2879e": 314, "191": 314, "2811e": 314, "2853e": 314, "2781e": 314, "2833e": 314, "193": 314, "2751e": 314, "2804e": 314, "194": 314, "2720e": 314, "195": 314, "2748e": 314, "196": 314, "2660e": 314, "2726e": 314, "197": 314, "2631e": 314, "2693e": 314, "2602e": 314, "2667e": 314, "199": 314, "2573e": 314, "2636e": 314, "2544e": 314, "2612e": 314, "201": 314, "2515e": 314, "2579e": 314, "202": 314, "2487e": 314, "2556e": 314, "203": [314, 334], "2458e": 314, "2523e": 314, "2428e": 314, "2499e": 314, "205": [314, 364], "2400e": 314, "2467e": 314, "206": 314, "2372e": 314, "2451e": 314, "207": 314, "2344e": 314, "2414e": 314, "2316e": 314, "2387e": 314, "209": 314, "2288e": 314, "2359e": 314, "210": [314, 364], "2261e": 314, "2337e": 314, "2236e": 314, "2307e": 314, "2208e": 314, "2280e": 314, "2182e": 314, "2255e": 314, "2157e": 314, "2229e": 314, "215": [314, 334], "2131e": 314, "2206e": 314, "216": 314, "2107e": 314, "2184e": 314, "217": 314, "2080e": 314, "2160e": 314, "218": 314, "2056e": 314, "2135e": 314, "219": 314, "2031e": 314, "2108e": 314, "220": 314, "2006e": 314, "2086e": 314, "221": 314, "1980e": 314, "2061e": 314, "222": 314, "1956e": 314, "2034e": 314, "223": 314, "1932e": 314, "2015e": 314, "224": 314, "1907e": 314, "1992e": 314, "225": 314, "1883e": 314, "1964e": 314, "226": 314, "1859e": 314, "1946e": 314, "227": 314, "1836e": 314, "1924e": 314, "228": 314, "1812e": 314, "1901e": 314, "229": 314, "1788e": 314, "1873e": 314, "230": 314, "1762e": 314, "1849e": 314, "231": [314, 330, 334], "1739e": 314, "1824e": 314, "232": 314, "1716e": 314, "1801e": 314, "233": [314, 353], "1693e": 314, "1782e": 314, "234": 314, "1669e": 314, "1772e": 314, "235": 314, "1644e": 314, "1742e": 314, "236": 314, "1620e": 314, "1717e": 314, "237": 314, "1600e": 314, "1697e": 314, "238": 314, "1574e": 314, "1671e": 314, "239": [314, 334], "1550e": 314, "1646e": 314, "1526e": 314, "1627e": 314, "241": 314, "1501e": 314, "1614e": 314, "242": 314, "1479e": 314, "1579e": 314, "243": 314, "1453e": 314, "1561e": 314, "244": 314, "1430e": 314, "1536e": 314, "245": 314, "1407e": 314, "1516e": 314, "246": 314, "1384e": 314, "1494e": 314, "247": 314, "1361e": 314, "1468e": 314, "248": 314, "1338e": 314, "1452e": 314, "249": 314, "1312e": 314, "1422e": 314, "250": [314, 342, 345, 346], "1291e": 314, "1400e": 314, "251": 314, "1267e": 314, "1378e": 314, "252": 314, "1242e": 314, "1359e": 314, "253": [314, 334], "1221e": 314, "1342e": 314, "1198e": 314, "1317e": 314, "255": 314, "1179e": 314, "1296e": 314, "1158e": 314, "1277e": 314, "257": 314, "1134e": 314, "1292e": 314, "258": 314, "1103e": 314, "1229e": 314, "259": 314, "1094e": 314, "1236e": 314, "260": 314, "1069e": 314, "1202e": 314, "261": 314, "1052e": 314, "1211e": 314, "262": [314, 334], "1020e": 314, "1182e": 314, "263": 314, "0999e": 314, "1120e": 314, "264": 314, "0988e": 314, "1105e": 314, "265": 314, "0971e": 314, "1073e": 314, "266": 314, "0925e": 314, "1168e": 314, "267": 314, "0918e": 314, "1021e": 314, "0899e": 314, "1207e": 314, "269": 314, "0908e": 314, "1036e": 314, "0850e": 314, "1063e": 314, "271": 314, "0808e": 314, "0979e": 314, "0885e": 314, "0896e": 314, "0897e": 314, "0755e": 314, "0890e": 314, "0726e": 314, "0942e": 314, "276": 314, "0698e": 314, "0837e": 314, "277": 314, "0682e": 314, "1710e": 314, "278": 314, "1099e": 314, "0862e": 314, "279": [314, 334], "0679e": 314, "0775e": 314, "280": [314, 334], "0615e": 314, "0787e": 314, "281": 314, "0580e": 314, "0705e": 314, "282": 314, "0551e": 314, "283": [314, 334], "0542e": 314, "0673e": 314, "284": 314, "0500e": 314, "0644e": 314, "285": 314, "0506e": 314, "0654e": 314, "286": 314, "0493e": 314, "0618e": 314, "0476e": 314, "0601e": 314, "0445e": 314, "0588e": 314, "289": 314, "0439e": 314, "1388e": 314, "290": 314, "0033": 314, "291": 314, "8803e": 314, "5921e": 314, "292": 314, "5436e": 314, "2132e": 314, "293": 314, "8278e": 314, "6234e": 314, "294": [314, 334], "6361e": 314, "2145e": 314, "295": 314, "5566e": 314, "9489e": 314, "296": 314, "5087e": 314, "7818e": 314, "297": 314, "4780e": 314, "6677e": 314, "298": 314, "4506e": 314, "5912e": 314, "299": 314, "4321e": 314, "5355e": 314, "4175e": 314, "4977e": 314, "301": 314, "4046e": 314, "302": 314, "3919e": 314, "3819e": 314, "4305e": 314, "304": 314, "3741e": 314, "305": [314, 334], "3681e": 314, "4008e": 314, "306": 314, "3607e": 314, "3953e": 314, "307": 314, "3845e": 314, "308": 314, "3476e": 314, "3803e": 314, "309": 314, "3423e": 314, "3714e": 314, "310": 314, "3372e": 314, "311": 314, "3321e": 314, "3306e": 314, "3567e": 314, "313": 314, "3240e": 314, "3451e": 314, "314": 314, "3208e": 314, "3424e": 314, "315": 314, "3160e": 314, "3382e": 314, "316": [314, 365], "317": 314, "3088e": 314, "3309e": 314, "318": [314, 334], "319": 314, "3017e": 314, "3238e": 314, "2989e": 314, "321": 314, "3130e": 314, "322": 314, "2926e": 314, "3111e": 314, "323": 314, "2894e": 314, "3055e": 314, "324": 314, "3025e": 314, "325": 314, "2838e": 314, "2969e": 314, "326": 314, "2949e": 314, "327": 314, "2745e": 314, "2937e": 314, "328": 314, "2715e": 314, "2914e": 314, "329": 314, "2808e": 314, "330": 314, "2680e": 314, "2834e": 314, "331": 314, "2634e": 314, "2769e": 314, "332": 314, "2582e": 314, "2695e": 314, "333": 314, "2670e": 314, "334": [314, 334], "2497e": 314, "2688e": 314, "2454e": 314, "2421e": 314, "2562e": 314, "337": 314, "2386e": 314, "338": 314, "2343e": 314, "2498e": 314, "339": 314, "2306e": 314, "2484e": 314, "340": 314, "2273e": 314, "2452e": 314, "341": 314, "2228e": 314, "2410e": 314, "342": [314, 334], "2190e": 314, "2347e": 314, "343": 314, "2163e": 314, "2318e": 314, "344": 314, "2322e": 314, "345": 314, "2114e": 314, "2283e": 314, "346": 314, "2067e": 314, "2238e": 314, "347": [314, 334], "2042e": 314, "2186e": 314, "348": 314, "2004e": 314, "2154e": 314, "349": 314, "1972e": 314, "2112e": 314, "350": 314, "1937e": 314, "2095e": 314, "351": 314, "1906e": 314, "2064e": 314, "352": [314, 334], "1887e": 314, "2023e": 314, "353": 314, "1848e": 314, "1981e": 314, "354": 314, "1839e": 314, "1967e": 314, "355": 314, "1819e": 314, "1985e": 314, "356": 314, "1771e": 314, "1919e": 314, "357": 314, "1737e": 314, "1905e": 314, "358": 314, "1872e": 314, "359": [314, 334], "1681e": 314, "360": [314, 335, 345, 351], "1834e": 314, "361": 314, "1765e": 314, "1601e": 314, "1751e": 314, "363": 314, "1577e": 314, "1766e": 314, "364": 314, "1562e": 314, "365": 314, "1522e": 314, "1711e": 314, "366": 314, "1649e": 314, "367": 314, "1469e": 314, "1652e": 314, "368": 314, "1623e": 314, "369": 314, "1437e": 314, "1564e": 314, "370": 314, "1409e": 314, "1576e": 314, "371": 314, "1377e": 314, "1534e": 314, "372": 314, "1357e": 314, "1498e": 314, "373": 314, "1499e": 314, "1300e": 314, "1487e": 314, "375": 314, "1315e": 314, "1486e": 314, "376": 314, "1264e": 314, "1431e": 314, "1249e": 314, "1441e": 314, "378": 314, "1215e": 314, "1364e": 314, "379": 314, "1187e": 314, "380": 314, "1176e": 314, "1313e": 314, "381": 314, "382": 314, "1164e": 314, "1271e": 314, "383": 314, "1137e": 314, "1119e": 314, "1263e": 314, "385": 314, "1053e": 314, "1232e": 314, "386": 314, "1043e": 314, "1188e": 314, "387": 314, "1014e": 314, "388": 314, "0998e": 314, "1144e": 314, "389": [314, 334], "0969e": 314, "1139e": 314, "390": 314, "1118e": 314, "391": 314, "0932e": 314, "1173e": 314, "392": 314, "0985e": 314, "1075e": 314, "393": 314, "0881e": 314, "1055e": 314, "394": 314, "0861e": 314, "395": [314, 334], "0847e": 314, "396": 314, "0827e": 314, "0983e": 314, "397": 314, "0802e": 314, "0977e": 314, "398": 314, "0783e": 314, "0934e": 314, "399": 314, "0756e": 314, "0930e": 314, "0741e": 314, "401": 314, "0714e": 314, "0883e": 314, "402": 314, "0708e": 314, "403": 314, "0690e": 314, "404": 314, "0834e": 314, "eta": 314, "extens": 314, "shuffl": 314, "validation_data": [314, 318], "oppos": 318, "tradit": 318, "alphabet": 318, "ae": 318, "idea": 318, "behind": 318, "intermedi": 318, "faithfulli": 318, "perturb": 318, "hyper": [318, 330, 331], "snr_train": 318, "alreadi": [318, 359, 360, 362], "implment": 318, "softmax": 318, "aposteriori": 318, "oneshot": 318, "n_test": 318, "blockerrorr": 318, "sklearn": 318, "stochast": 318, "neighbor": [318, 323, 332], "tsne": 318, "scikit": 318, "inlin": [318, 323, 328], "gaussiannois": 318, "sgd": 318, "backend": 318, "snr_db": 318, "generail": 318, "log2": [318, 328], "5714285714285714": 318, "noise_stddev": 318, "symbol_encod": 318, "ey": [318, 327, 349, 352], "9600000": 318, "1500": 318, "train_label": 318, "temp": [318, 348, 351], "train_data": 318, "verifi": [318, 359, 360, 362, 363], "templabel_train": 318, "6634013": 318, "5698954": 318, "7797983": 318, "1647048": 318, "8484082": 318, "5849713": 318, "6844526": 318, "1561517": 318, "3625133": 318, "6378228": 318, "3180495": 318, "1370770": 318, "5104703": 318, "16000": 318, "test_label": 318, "test_data": 318, "temptestlabel": 318, "11519": 318, "4498": 318, "10702": 318, "6711": 318, "2993": 318, "9873": 318, "5688": 318, "normalizeavgpow": 318, "normalizeenergi": 318, "l2_normal": 318, "onehot": 318, "dense1": 318, "dense2": 318, "avg": 318, "stddev": 318, "dense3": 318, "learning_r": 318, "compil": [318, 365], "categorical_crossentropi": 318, "_________________________________________________________________": 318, "param": 318, "input_1": 318, "inputlay": 318, "dense_1": 318, "gaussian_nois": 318, "gaussianno": 318, "ise": 318, "dense_2": 318, "dense_3": 318, "791": [318, 334], "09": 318, "byte": 318, "1172": 318, "3m": [318, 341, 343, 344], "0619": 318, "8036e": 318, "1638e": 318, "2494e": 318, "0464e": 318, "0000e": 318, "9008e": 318, "7934e": 318, "0910e": 318, "8701e": 318, "5150e": 318, "3850e": 318, "4894e": 318, "9537e": 318, "8190e": 318, "9939e": 318, "6062e": 318, "6521e": 318, "4805e": 318, "6737e": 318, "5437e": 318, "3964e": 318, "1038e": 318, "5104e": 318, "2465e": 318, "3718e": 318, "2150e": 318, "2325e": 318, "2213e": 318, "0728e": 318, "0278e": 318, "0515e": 318, "1903e": 318, "2265e": 318, "9100e": 318, "7689e": 318, "8344e": 318, "7145e": 318, "9232e": 318, "5073e": 318, "7231e": 318, "4049e": 318, "3347e": 318, "5009e": 318, "5302e": 318, "3693e": 318, "4082e": 318, "4123e": 318, "5702e": 318, "3849e": 318, "src": 318, "histori": 318, "0x29775d74b80": 318, "channelinput": 318, "channeloutput": 318, "rxinput": 318, "rx1": 318, "rxoutput": 318, "uncom": [318, 333, 345], "snr_linear": 318, "noise_std": 318, "noise_mean": 318, "num_error": 318, "num_sampl": 318, "x_hat": 318, "x_hat_noisi": 318, "y_hat": 318, "sym_estim": 318, "argmax": [318, 327, 334], "517u": 318, "503u": 318, "498375": 318, "567u": 318, "458625": 318, "522u": 318, "4203125": 318, "555u": 318, "38725": 318, "515u": 318, "566u": 318, "3485625": 318, "543u": 318, "3043125": 318, "662u": 318, "2595": 318, "529u": 318, "535u": 318, "2265625": 318, "1879375": 318, "536u": 318, "518u": 318, "122375": 318, "548u": 318, "092": 318, "551u": 318, "0673125": 318, "578u": 318, "544u": 318, "0513125": 318, "512u": 318, "03275": 318, "553u": 318, "02025": 318, "538u": 318, "011375": 318, "520u": 318, "0071875": 318, "504u": 318, "549u": 318, "0045625": 318, "533u": 318, "539u": 318, "0011875": 318, "575u": 318, "00025": 318, "000125": 318, "489u": 318, "527u": 318, "510u": 318, "numdim": 318, "1000000": 318, "mapperobject": [318, 322], "enc": 318, "codedblerhard": [318, 322], "codedblersoft": [318, 322], "uncbit": [318, 322], "spheredecod": [318, 322], "487595": 318, "554942": 318, "450965": 318, "522681": 318, "413592": 318, "49012": 318, "373975": 318, "454293": 318, "334565": 318, "416966": 318, "29465": 318, "378652": 318, "254375": 318, "340119": 318, "215441": 318, "301021": 318, "17943": 318, "261749": 318, "145708": 318, "225524": 318, "114448": 318, "189009": 318, "086905": 318, "154485": 318, "063574": 318, "123722": 318, "045241": 318, "095985": 318, "030357": 318, "072166": 318, "019361": 318, "052022": 318, "011799": 318, "036823": 318, "006764": 318, "024702": 318, "003584": 318, "015639": 318, "001758": 318, "009331": 318, "000827": 318, "005393": 318, "000329": 318, "00284": 318, "000129": 318, "001444": 318, "9e": 318, "000658": 318, "6e": 318, "000263": 318, "plote": 318, "pink": [318, 327, 329, 330, 331, 338, 339, 340], "previou": [318, 361], "retrain": 318, "constellationpoint": 318, "sin": [318, 327, 334, 335, 345, 352], "31m": 318, "x_noisi": 318, "x_embed": 318, "n_compon": 318, "n_iter": 318, "35000": 318, "random_st": 318, "perplex": 318, "fit_transform": 318, "resembl": 318, "ari": 318, "apsk": 318, "shea": 318, "transact": 318, "cognit": 318, "563": 318, "575": 318, "dec": 318, "2017": 318, "tccn": 318, "2758370": 318, "infer": [321, 361], "llrnet": [321, 361], "64000": [321, 361], "conclus": [321, 355, 361], "redcap": [321, 361], "intellig": [321, 361, 364], "compress": [321, 361, 364], "autoencod": [321, 361], "millimet": [321, 349, 350, 355, 361], "dist2": [322, 329, 338, 339], "python3_11": [322, 329, 338, 339, 359, 360, 362, 363], "codedberhard": 322, "codedbersoft": 322, "17671": 322, "18611285714285714": 322, "666666666666667": [322, 323, 325], "12653": 322, "14775285714285713": 322, "3333333333333335": [322, 325], "081805": 322, "11270857142857142": 322, "0436425": 322, "07803428571428571": 322, "333333333333333": [322, 323, 325, 326], "0185": 322, "04909714285714286": 322, "0063725": 322, "027304285714285715": 322, "0014125": 322, "01259": 322, "333333333333332": [322, 352], "000145": 322, "004475714285714286": 322, "5e": 322, "0011442857142857142": 322, "00018": 322, "demonst": [322, 341, 342, 343, 344, 346, 347, 349], "assess": 323, "made": [323, 332], "especi": [323, 342], "valuabl": 323, "behavior": 323, "flow": [323, 325, 326, 329, 338, 339], "bsarraygeometri": [323, 328], "uearraygeometri": [323, 328], "agglevel": [323, 328], "startsymindex": [323, 328], "nonzero": [323, 328], "fdr1": 323, "fdr2": 323, "fdr4": 323, "fdr8": 323, "fdr16": 323, "65518": 323, "numpdcchsymbol": 323, "numpdcchdmr": [323, 328], "rmpdcch": 323, "channelest": 323, "equalized_sym": 323, "rdcibit": 323, "965": 323, "765": 323, "6666666666666665": [323, 325], "333333333333334": [323, 325, 326], "666666666666668": [323, 326, 352], "link_level_and_system_level_simulation_for_physical_downlink_control_channel": 323, "825": 323, "31499999999999995": 323, "888888888888889": [323, 326], "03500000000000003": 323, "7777777777777777": [323, 325], "8888888888888893": [323, 325], "745": 323, "6666666666666679": 323, "44999999999999996": 323, "05500000000000005": 323, "111111111111111": [323, 325], "555555555555557": [323, 326], "7777777777777786": [323, 325], "ls1": [323, 325, 326], "ls2": [323, 325, 326], "ls3": [323, 325, 326], "pdcch_ll": 323, "hello1": 324, "stand": [325, 326, 337], "manipul": [325, 326, 337], "signular": [325, 326, 337], "intial": [325, 326, 337], "temp1": 325, "temp2": 325, "566720": 325, "32999999999999996": 325, "2712160": 325, "0000000005": 325, "16000000000000003": 325, "3400319": 325, "030000000000000027": 325, "3926560": 325, "4007520": 325, "4048000": [325, 326], "222222222222222": 325, "78080": 325, "00000000007": 325, "5555555555555554": 325, "624639": 325, "9999999997": 325, "1952000": 325, "7808000": 325, "1295360": 325, "8888888888888888": [325, 339], "11776000": 325, "6666666666666667": 325, "4444444444444446": 325, "2222222222222223": 325, "775": 325, "5299200": 325, "23434240": 325, "23552000": 325, "snrdba": [325, 326], "codedbera": [325, 326], "blera": [325, 326], "throughputa": [325, 326], "xticksa": [325, 326], "numdb": [325, 326], "cbbeamform": 326, "lmobject": 326, "rcodeword1": 326, "rcodeword2": 326, "bits_1": 326, "descrobject1": 326, "decscrambledbits1": 326, "bits_2": 326, "descrobject2": 326, "decscrambledbits2": 326, "decscrambledout": 326, "777777777777778": 326, "555555555555555": [326, 352], "1111111111111107": 326, "777777777777779": 326, "1212000": 326, "2828000": 326, "6060000": 326, "8080000": 326, "111111111111114": 326, "6024000": 326, "12048000": 326, "77777777777778": [326, 352], "44444444444444": 326, "15662400": 326, "333333333333336": 326, "24096000": 326, "22222222222223": 326, "type1sp": 326, "focus": 327, "timeinterv": [327, 352], "secangl": [327, 352], "antloc": [327, 334, 352], "nbm": [327, 352], "steeringvector": [327, 334, 352], "beamvector": [327, 334, 352], "numrxbeam": [327, 352], "ssbesti": [327, 352], "log10": [327, 336, 342, 345, 346, 348, 349], "bestbeam": 327, "ueindex": [327, 330, 331, 334, 337, 342, 349], "lightblu": 327, "black": [327, 329, 330, 331, 336, 338, 339, 340], "075": 327, "bottom": 327, "ax2": 327, "argwher": [327, 352], "numbeam": [327, 334], "beamangl": 327, "nbeam": 327, "arctan2": 327, "set_rmax": 327, "set_rtick": 327, "radial": 327, "set_rlabel_posit": 327, "set_thetagrid": 327, "450": 327, "transimt": 328, "pdcchcandidateblinddecod": 328, "nofdmsymperslot": 328, "nsc": 328, "numcandidatesper": 328, "ssobj": 328, "uecand": 328, "uecc": 328, "numpdcchsym": 328, "kmax": 328, "pdcchobj": 328, "mapp": 328, "nsymbol": 328, "3240": 328, "palegreen": [328, 330, 331, 337, 345, 346], "lightcor": [328, 330, 331, 337, 345], "listedcolormap": [328, 330, 331, 337], "boundarynorm": [328, 330, 331, 337], "numsym": 328, "snrbd": 328, "equalizedgrid": 328, "intiat": 328, "bdobj": 328, "unsuccess": 328, "solomon": 329, "walsh": 329, "hadamard": 329, "testabl": [329, 353], "character": [329, 353], "mpl_toolkit": [329, 338, 339, 340, 348], "axes_grid1": [329, 338, 339, 340, 348], "inset_loc": [329, 338, 339, 340], "zoomed_inset_ax": [329, 338, 339, 340], "mark_inset": [329, 338, 339, 340], "folow": [329, 338, 339], "500000": [329, 338, 339], "kindex": [329, 338], "0886": 329, "012": 329, "0002": 329, "2209": 329, "087": 329, "011": 329, "0003": 329, "22253333333333333": 329, "09186666666666667": 329, "014066666666666667": 329, "0003333333333333333": 329, "2183": 329, "0982": 329, "01245": 329, "21296": 329, "0866": 329, "01604": 329, "00064": 329, "22046666666666667": 329, "08643333333333333": 329, "013": [329, 335], "0005333333333333334": 329, "422": 329, "29897142857142855": 329, "12937142857142858": 329, "016457142857142858": 329, "419075": 329, "31415": 329, "13155": 329, "017875": 329, "00015": 329, "41706666666666664": 329, "3154888888888889": 329, "13177777777777777": 329, "014177777777777777": 329, "0003111111111111111": 329, "42402": 329, "31048": 329, "12976": 329, "016": 329, "00034": 329, "42805454545454547": 329, "31236363636363634": 329, "1381090909090909": 329, "0156": 329, "0001818181818181818": 329, "reliablilti": [329, 338, 339, 353], "99990": [329, 338, 339], "99999": 329, "poorer": 329, "color_tupl": [329, 338, 339, 340], "orang": [329, 338, 339, 340, 345], "brown": [329, 330, 331, 338, 339, 340], "grai": [329, 338, 339, 340], "markcolor_tupl": [329, 338, 339, 340], "navi": [329, 338, 339, 340], "yellow": [329, 330, 331, 338, 339, 340], "springgreen": [329, 338, 339, 340], "aqua": [329, 338, 339, 340], "marker_tupl": [329, 338, 339, 340], "flip": [329, 338, 339, 340], "markers": [329, 338, 339, 340, 347], "bern": 329, "bervssnr": [329, 365], "axin": 329, "axins2": 329, "want": 329, "trial": [329, 359, 362, 363], "elegantli": 329, "date": 329, "x1": 329, "x2": 329, "y1": [329, 345], "1295": 329, "y2": [329, 345], "13375": 329, "xtick": [329, 354], "ytick": 329, "loc1": 329, "loc2": 329, "ec": 329, "0127": 329, "01325": 329, "foe": [330, 331, 333, 334], "inturn": [330, 331, 333, 334], "tool": [330, 331, 333, 334], "rd": [330, 331, 333, 334], "parti": [330, 331, 333, 334], "quadriga": [330, 331, 333, 334], "efficaci": [330, 331, 333, 334, 335], "veric": [330, 331, 333, 334, 335], "150000000": 330, "200m": [330, 331], "35m": [330, 331, 334], "hertizian": [330, 331, 334], "960x480": [330, 331, 345, 346, 347, 351], "axes3d": [330, 331, 345, 346, 347, 351], "numbssperslot": [330, 331, 334], "darkorang": [330, 331], "get_cmap": [330, 331], "gist_rainbow": [330, 331], "fontweight": [330, 331], "bold": [330, 331], "borderaxespad": [330, 331], "resour": [330, 331, 334, 337], "1020": [330, 331, 334], "bsindex": [330, 331, 334, 337, 342, 349], "grid_alpha": [330, 337], "heatmap": [330, 337, 349, 350, 355, 361], "dbm": [330, 331, 334, 351], "bemform": [330, 331, 334], "lb": [330, 331, 334], "lue": [330, 331, 334], "k_b": [330, 331, 334], "boltzmann": [330, 331, 334], "ppm": [330, 331, 334], "antidx": [330, 331], "splrep": [330, 331], "splev": [330, 331], "sa": [330, 331], "hfint": [330, 331], "prsindic": [330, 331, 334], "tck": [330, 331], "amp": [330, 331], "der": [330, 331], "unwrap": [330, 331, 342], "yeild": [330, 331], "suffic": [330, 331], "avaiabl": [330, 331], "te": [330, 331], "intersect": [330, 331, 332, 335], "correspsond": [330, 331], "locus": [330, 331, 335], "potenti": [330, 331, 335], "measnur": [330, 331, 334], "inaccuract": [330, 331, 334], "compromis": [330, 331, 334], "somehow": [330, 331, 334], "bsindic": [330, 331, 332, 333, 334, 335], "rxstdestim": [330, 331, 332, 333], "kbestindic": [330, 331, 332, 333, 334, 335], "accurci": [330, 331, 334], "disclaim": 330, "intract": [330, 333, 334, 335, 345], "perfrorm": [330, 331, 334], "percentil": [330, 331, 334], "ththan": [330, 331, 334], "5cm": [330, 331], "0cm": [330, 331], "6cm": [330, 331], "1cm": [330, 331], "poserror3d": [330, 331, 332, 333, 334, 335], "poserror2d": [330, 331, 332, 333, 334, 335], "dltdoa": [330, 331], "bsarraystructur": [330, 331, 332, 333, 334, 335], "uearraystructur": [330, 331, 332, 333, 334, 335], "ioo_20m_fr1": 330, "f_c": [330, 331, 334, 341, 343, 344, 347, 351], "terrian": [330, 331, 334], "squrar": [331, 334], "eqaul": [331, 334], "30000000": [331, 334], "argmin": [331, 332, 334], "siteindic": [331, 332, 334], "dltoa": 331, "gp": 332, "atom": 332, "centimet": 332, "hyperboloid": 332, "face": 332, "ultra": 332, "emerg": [332, 334], "asset": [332, 334, 335], "10m": [332, 346], "5km": [332, 346], "ultdoa": 332, "poserror3da": 332, "poserror2da": 332, "4215363": 333, "78032138": 333, "50797252": 333, "16600051": 333, "90443573": 333, "47474593": 333, "74856967": 333, "4471635": 333, "54521712": 333, "55050478": 333, "43931444": 333, "13662121": 333, "85489926": 333, "08774903": 333, "52755895": 333, "82279784": 333, "13361618": 333, "52349518": 333, "5575103": 333, "19681135": 333, "26737552": 333, "60794566": 333, "99476197": 333, "36027376": 333, "31028088": 333, "81732425": 333, "54359212": 333, "52461434": 333, "94843593": 333, "63401437": 333, "94944578": 333, "86232628": 333, "53715152": 333, "19626289": 333, "6363511": 333, "54316006": 333, "7766177": 333, "35418832": 333, "55182393": 333, "43763633": 333, "87677854": 333, "62842819": 333, "10258347": 333, "4317454": 333, "59871804": 333, "45307278": 333, "21452399": 333, "50998389": 333, "6464587": 333, "29464303": 333, "48682503": 333, "7587386": 333, "66229737": 333, "3835427": 333, "09971438": 333, "38507528": 333, "56703222": 333, "27252005": 333, "49408869": 333, "51767149": 333, "50213423": 333, "48030113": 333, "45949887": 333, "34462303": 333, "70412479": 333, "55940963": 333, "73676558": 333, "92578187": 333, "53169568": 333, "8547753": 333, "25440928": 333, "98212604": 333, "19296202": 333, "54132648": 333, "32365498": 333, "77500617": 333, "42255216": 333, "09675432": 333, "67607949": 333, "57987014": 333, "6925936": 333, "64046494": 333, "46865462": 333, "10059595": 333, "76752975": 333, "5878385": 333, "98563099": 333, "57898981": 333, "35617641": 333, "71111502": 333, "62758124": 333, "53094812": 333, "53053351": 333, "28051672": 333, "58516008": 333, "23063984": 333, "5500853": 333, "70358831": 333, "78052461": 333, "65531585": 333, "03970877": 333, "94894052": 333, "94009105": 333, "54089155": 333, "46149577": 333, "30705674": 333, "50187354": 333, "81744142": 333, "20506424": 333, "34471406": 333, "6483784": 333, "82144281": 333, "65057101": 333, "96426838": 333, "84613361": 333, "52809127": 333, "88183982": 333, "11692189": 333, "58092568": 333, "93255383": 333, "38596413": 333, "59088241": 333, "25763775": 333, "68921659": 333, "20074089": 333, "81871701": 333, "69916647": 333, "53817887": 333, "51638345": 333, "47014703": 333, "40071319": 333, "2191626": 333, "51207671": 333, "39257366": 333, "03684626": 333, "84860336": 333, "54572661": 333, "25958808": 333, "2801732": 333, "54925611": 333, "33437177": 333, "97326886": 333, "40693121": 333, "77308687": 333, "55953016": 333, "54205399": 333, "37610009": 333, "69339739": 333, "55662449": 333, "70189609": 333, "91514189": 333, "36600061": 333, "04513222": 333, "16133817": 333, "44517894": 333, "7716385": 333, "06307136": 333, "74075402": 333, "88460837": 333, "18871943": 333, "56949855": 333, "38266674": 333, "41449171": 333, "7346757": 333, "03350867": 333, "10186089": 333, "53488833": 333, "22157414": 333, "90806661": 333, "52708948": 333, "68240337": 333, "3120393": 333, "54565456": 333, "28301869": 333, "33792782": 333, "45110431": 333, "53908043": 333, "85546729": 333, "78521653": 333, "48409296": 333, "22177424": 333, "57523293": 333, "15941007": 333, "78749999": 333, "73683759": 333, "44544035": 333, "86865145": 333, "64336069": 333, "35673933": 333, "56513093": 333, "5104806": 333, "60731411": 333, "82421342": 333, "51323781": 333, "55865781": 333, "25305943": 333, "56305746": 333, "95872640e": 333, "77777011e": 333, "40148740e": 333, "80487407": 333, "82597089": 333, "52462734": 333, "84607066": 333, "53499602": 333, "57322733": 333, "82271079": 333, "36624418": 333, "4931076": 333, "59937911": 333, "16257303": 333, "65244339": 333, "67199244": 333, "76979372": 333, "55504678": 333, "27434072": 333, "58968042": 333, "54840076": 333, "35417842": 333, "89519595": 333, "68217251": 333, "26139614": 333, "94628174": 333, "3467783": 333, "99286639": 333, "44242967": 333, "14347406": 333, "28613448": 333, "30173949": 333, "64951933": 333, "51189734": 333, "56883229": 333, "00950839": 333, "39584732": 333, "62997557": 333, "68447328": 333, "15068034": 333, "34475186": 333, "46649924": 333, "09782035": 333, "79949224": 333, "51584499": 333, "79591351": 333, "6532013": 333, "39373625": 333, "0590222": 333, "11642352": 333, "55516197": 333, "65251898e": 333, "69197461e": 333, "27168134e": 333, "29946676": 333, "58691584": 333, "49303903": 333, "97450764": 333, "12167271": 333, "55384096": 333, "20689123": 333, "74646458": 333, "46958445": 333, "92385396": 333, "92520705": 333, "56564703": 333, "25366506": 333, "25672017": 333, "54979235": 333, "51188666": 333, "02819049": 333, "5397252": 333, "21662599": 333, "9655319": 333, "8884634": 333, "69419361": 333, "36651313": 333, "93550523": 333, "17105725": 333, "34864251": 333, "56813769": 333, "42779779": 333, "99143863": 333, "96956844": 333, "4434574": 333, "27896067": 333, "60876896": 333, "25819762": 333, "89316955": 333, "57901224": 333, "01349784": 333, "85114446": 333, "5497744": 333, "2879282": 333, "76396538": 333, "44778045": 333, "70869654": 333, "65021639": 333, "49618658": 333, "13428528": 333, "31297916": 333, "39113546": 333, "ultoa": 333, "triangul": [334, 335], "wider": 334, "deliveri": [334, 335], "awar": [334, 335], "nearestndinterpol": 334, "make_interp_splin": 334, "pchipinterpol": 334, "akima1dinterpol": 334, "position_estim": 334, "100m": 334, "1732": 334, "dbp": [334, 345, 348], "3958": 334, "406982421875": 334, "nbeamsphi": 334, "nbeamstheta": 334, "phimean": 334, "phistd": 334, "thetamean": 334, "thetastd": 334, "azimuthgrid": 334, "elevationgrid": 334, "markerlin": 334, "stemlin": 334, "baselin": 334, "stem": [334, 341, 342, 343, 344, 347, 349], "azimuthgridnew": 334, "rsrpnew": 334, "set_linewidth": 334, "set_markers": 334, "set_linestyl": 334, "beamindic": [334, 352], "std": [334, 335], "01876144": 334, "417": 334, "47088924": 334, "41016588": 334, "78669819": 334, "58115965": 334, "51680364": 334, "779": [334, 353], "10774189": 334, "81345912": 334, "66695834": 334, "05063066": 334, "76018999": 334, "4014134": 334, "97485771": 334, "725": [334, 354], "42467735": 334, "03582379": 334, "418": 334, "68949763": 334, "63860667": 334, "95735549": 334, "31445659": 334, "84958682": 334, "62075529": 334, "13081408": 334, "3275688": 334, "66068703": 334, "60487736": 334, "776": 334, "44800372": 334, "75456728": 334, "576": 334, "9003876": 334, "71920292": 334, "06830207": 334, "75067944": 334, "58239455": 334, "19317779": 334, "18868112": 334, "28143355": 334, "66991935": 334, "679": 334, "37966381": 334, "481": 334, "38075781": 334, "23397206": 334, "50683548": 334, "15121481": 334, "32300754": 334, "559": 334, "30578699": 334, "5184474": 334, "09216752": 334, "2368": 334, "5875262": 334, "635": 334, "42440274": 334, "81445601": 334, "1906": 334, "8665596": 334, "68524732": 334, "46693427": 334, "2590": 334, "51569143": 334, "431": 334, "75573784": 334, "31983926": 334, "1456": 334, "77187222": 334, "12215914": 334, "07774653": 334, "2382": 334, "16254384": 334, "21674582": 334, "19592682": 334, "1387": 334, "33095929": 334, "543": 334, "99864225": 334, "32340611": 334, "2055": 334, "50388465": 334, "28497084": 334, "3900648": 334, "1158": 334, "26048815": 334, "414": 334, "02959409": 334, "72228914": 334, "81287085": 334, "93856921": 334, "17215767": 334, "2052": 334, "24832918": 334, "741": 334, "11608934": 334, "39182262": 334, "1647": 334, "43827205": 334, "602": 334, "81414949": 334, "44005139": 334, "2471": 334, "5986077": 334, "3680525": 334, "59277088": 334, "1327": 334, "23205468": 334, "94130645": 334, "83156608": 334, "2236": 334, "41048839": 334, "15011382": 334, "85800926": 334, "1410": 334, "0594": 334, "437": 334, "43269124": 334, "12643322": 334, "1663": 334, "09387474": 334, "1634": 334, "92986144": 334, "85570637": 334, "75362162": 334, "1409": 334, "41515279": 334, "92185182": 334, "70080146": 334, "1651": 334, "31026302": 334, "07257801": 334, "486": 334, "97779167": 334, "71374113": 334, "86127804": 334, "19397683": 334, "1350": 334, "02714357": 334, "45520646": 334, "1402": 334, "61079238": 334, "1559": 334, "69378179": 334, "22889458": 334, "813": 334, "04515911": 334, "1935": 334, "29235127": 334, "92112269": 334, "1486": 334, "22465188": 334, "1009": 334, "23907728": 334, "53187137": 334, "36130781": 334, "1110": 334, "40170535": 334, "75877958": 334, "1262": 334, "66757708": 334, "2198": 334, "21464019": 334, "35152197": 334, "1221": 334, "4887303": 334, "1288": 334, "78872932": 334, "44011282": 334, "19047402": 334, "1394": 334, "60711561": 334, "07534023": 334, "542": 334, "46449497": 334, "984": 334, "70649096": 334, "42142474": 334, "790": 334, "239718": 334, "1301": 334, "40456874": 334, "99330555": 334, "860": 334, "14610741": 334, "1735": 334, "78429058": 334, "64408335": 334, "969": 334, "48684934": 334, "2404": 334, "42615328": 334, "58621319": 334, "1134": 334, "82147955": 334, "2294": 334, "01818634": 334, "45202281": 334, "9157313": 334, "1679": 334, "30515952": 334, "57225551": 334, "730": 334, "84942838": 334, "736": 334, "3472413": 334, "94300512": 334, "816": 334, "78895508": 334, "1609": 334, "24331023": 334, "97490925": 334, "88119986": 334, "1149": 334, "67488905": 334, "53432483": 334, "547": 334, "69956874": 334, "1873": 334, "02627622": 334, "21545543": 334, "33454538": 334, "2009": 334, "3689197": 334, "74280221": 334, "1730": 334, "56175809": 334, "1290": 334, "26476032": 334, "26835123": 334, "45938857": 334, "935": 334, "10717211": 334, "90767655": 334, "1229": 334, "1693352": 334, "1399": 334, "97775435": 334, "17238544": 334, "1102": 334, "92491167": 334, "1531": 334, "1702206": 334, "49089528": 334, "693": 334, "17734376": 334, "29430399": 334, "07834947": 334, "1982": 334, "29472944": 334, "97878568": 334, "65760135": 334, "2142": 334, "39537827": 334, "647": 334, "3928471": 334, "40096387": 334, "2412": 334, "80617459": 334, "58952957": 334, "7406165": 334, "2063": 334, "61114326": 334, "627": 334, "06836296": 334, "50960189": 334, "2251": 334, "37727569": 334, "62929819": 334, "42629727": 334, "2406": 334, "30027313": 334, "6391116": 334, "37741679": 334, "2376": 334, "10349713": 334, "616": 334, "55458813": 334, "633375": 334, "1881": 334, "49272956": 334, "95006205": 334, "8512651": 334, "1616": 334, "3788927": 334, "57797906": 334, "53307558": 334, "2246": 334, "83339547": 334, "672": 334, "96263995": 334, "05195825": 334, "1493": 334, "37269841": 334, "65312303": 334, "51736564": 334, "2333": 334, "13188826": 334, "99405237": 334, "98471568": 334, "1893": 334, "04890434": 334, "7433992": 334, "83153548": 334, "1711": 334, "31276025": 334, "917": 334, "93176809": 334, "24532617": 334, "684": 334, "50866104": 334, "1814": 334, "1033381": 334, "20054161": 334, "667": 334, "31562928": 334, "2273": 334, "74722883": 334, "150375": 334, "1144": 334, "31590136": 334, "2016": 334, "75718266": 334, "42903418": 334, "569": 334, "4109725": 334, "883": 334, "99722987": 334, "03101273": 334, "1076": 334, "19568404": 334, "2114": 334, "78498633": 334, "00410155": 334, "461": 334, "4559225": 334, "1333": 334, "63924489": 334, "11010613": 334, "1695": 334, "36953111": 334, "65305988": 334, "45221372": 334, "695": 334, "08475296": 334, "1744": 334, "0502098": 334, "9867078": 334, "1197": 334, "41226215": 334, "755": 334, "22717687": 334, "93978465": 334, "23904268": 334, "1415": 334, "12273306": 334, "62348287": 334, "27005466": 334, "1615": 334, "65180073": 334, "31867804": 334, "799": 334, "31871766": 334, "1725": 334, "4556035": 334, "29838114": 334, "67700583": 334, "1637": 334, "65770434": 334, "57990531": 334, "1505": 334, "83197435": 334, "1375": 334, "59758004": 334, "85237886": 334, "1201": 334, "76762636": 334, "1122": 334, "7141471": 334, "37681137": 334, "1281": 334, "41068836": 334, "1652": 334, "65774792": 334, "63387359": 334, "762": 334, "21947203": 334, "14308765": 334, "21407282": 334, "13034854": 334, "2074": 334, "25781085": 334, "30823231": 334, "1377": 334, "79550784": 334, "1810": 334, "07727844": 334, "19178143": 334, "469": 334, "66045386": 334, "53616327": 334, "24595016": 334, "1272": 334, "20853414": 334, "1058": 334, "99189859": 334, "7584014": 334, "1418": 334, "51259671": 334, "2154": 334, "39879911": 334, "08808944": 334, "1307": 334, "051491": 334, "1184": 334, "32848574": 334, "85571692": 334, "998": 334, "14092356": 334, "1608": 334, "59937354": 334, "46111491": 334, "1244": 334, "89130973": 334, "1911": 334, "9021219": 334, "96026782": 334, "1332": 334, "68917835": 334, "1022": 334, "5080149": 334, "65556915": 334, "32076588": 334, "1645": 334, "18490969": 334, "31428473": 334, "27480029": 334, "1127": 334, "49411185": 334, "71727841": 334, "dlaod": 334, "tmp": 334, "ipykernel_56393": 334, "3860440226": 334, "angle_based_posit": 335, "ro": 335, "ulaoa": 335, "apart": 336, "wi": 336, "fi": 336, "lte": [336, 351], "evolut": 336, "wimax": 336, "chapter": 336, "roman": 336, "binsiz": 336, "cdfofdm": 336, "bincountofdm": 336, "samplespow": 336, "avgpoweroutput": 336, "peakpoweroutput": 336, "pointpaproutput": 336, "countout": 336, "bins_countout": 336, "loop": [336, 348], "cumul": [336, 348], "papr_ofdm": 336, "cdfdft": 336, "bincountdft": 336, "ortho": [336, 341, 343, 344, 349, 351], "00001": 336, "papr_dft": 336, "papr_comparison": 336, "3000": 336, "symbolperiod": 336, "symbolperiodcp": 336, "scscp": 336, "sf2": 336, "60000": 337, "599": 337, "rep": 337, "pcolor": 337, "txantidx": 337, "rxantidx": 337, "symbindex": 337, "hideal": 337, "0000285": 337, "0000325": 337, "maxrank": 337, "condition_numb": 337, "repsect": 338, "27399998903274536": 338, "08749999850988388": 338, "0020000000949949026": 338, "4251999855041504": 338, "17100000381469727": 338, "00559999980032444": 338, "48124998807907104": 338, "453000009059906": 338, "18912500143051147": 338, "004999999888241291": 338, "48818182945251465": 338, "4808181822299957": 338, "42027273774147034": 338, "049272727221250534": 338, "49235713481903076": 338, "4894285798072815": 338, "47942855954170227": 338, "24899999797344208": 338, "004142857156693935": 338, "polar_bervssnr": 338, "rindex": [339, 340], "3305785123966942": 339, "2787500023841858": 339, "011250000447034836": 339, "32124999165534973": 339, "26625001430511475": 339, "16875000298023224": 339, "02250000089406967": 339, "7547169811320755": 339, "32749998569488525": 339, "29249998927116394": 339, "2175000011920929": 339, "15625": 339, "036249998956918716": 339, "32249999046325684": 339, "2874999940395355": 339, "2537499964237213": 339, "17624999582767487": 339, "07874999940395355": 339, "tbindex": 339, "31975001096725464": 339, "2562499940395355": 339, "15012499690055847": 339, "0017500000540167093": 339, "32233333587646484": 339, "2644583284854889": 339, "15429165959358215": 339, "3272361159324646": 339, "2646944522857666": 339, "16170834004878998": 339, "3237692415714264": 339, "2660336494445801": 339, "16290384531021118": 339, "30405065417289734": 339, "24077533185482025": 339, "1438588947057724": 339, "fixx": 339, "ber_vs_snr": 339, "ldpc_bervssnr_fin": 339, "ber_vs_tbsiz": 339, "ldpc_bervssnr_tbsiz": 339, "ldpc_bervssnr0": 340, "ldpc_bervssnr": 340, "snrvsber_ldpc": 340, "_g": [341, 343, 344], "4m": [341, 343, 344], "nsnapshot": [341, 342, 343, 344, 345, 346, 347, 348, 349], "bsgeometri": [341, 343, 344], "immendi": [341, 342, 343, 344, 345, 346, 347, 349], "ceilinght": [341, 343, 344], "clutterht": [341, 343, 344], "clutterden": [341, 343, 344], "0x7f929a1a3fd0": 341, "pl": [341, 343, 344, 347], "xpr": [341, 342, 343, 344, 345, 346, 347, 349], "hb": [341, 342, 346, 349], "bandlimit": [341, 343, 344, 347], "widen": [341, 343, 344, 347], "ht": [341, 342, 343, 344, 347, 349], "stabil": 342, "behav": 342, "engin": 342, "throughout": 342, "unchang": 342, "motion": [342, 345, 346, 349], "isinitlocationrandom": [342, 345], "isinitorientationrandom": [342, 345], "snapshotinterv": [342, 345, 346], "enablespatialconsist": [342, 345, 346, 349], "initialloc": [342, 345, 346], "0x7fca11a9ef10": 342, "coeffic": [342, 345, 346, 349], "efficeint": [342, 345, 346, 349], "coefficeint": [342, 345, 346, 349], "hue": [342, 345, 346, 348, 349], "bsantindex": [342, 349], "ueantindex": [342, 349], "inidc": [342, 349], "hdoppler": 342, "snapindex": [342, 349], "tau0": 342, "9999": 342, "0x7fd999829f10": 343, "0x7f73c2c5ea10": 344, "ruralmacro": 345, "ue2antarrai": 345, "ueroute2": 345, "0x7f7940973750": 345, "2638": 345, "93798828125": 345, "intiti": [345, 346], "discalim": 345, "wrapto30": 345, "ang": 345, "wrap": 345, "plotlayout": 345, "delangl": 345, "colour": 345, "hex": 345, "regularpolygon": 345, "numvertic": 345, "add_patch": 345, "wedg": 345, "theta1": 345, "theta2": 345, "bounddist": 345, "y0": 345, "past": 345, "loaction": 345, "grater": 345, "scenrio": 346, "everyth": [346, 359, 360, 362], "scerario": 346, "0x7fb96d21c390": 346, "milli": 346, "displayarrai": 347, "0x7f4c0d32b050": 347, "numcarrierfrequ": 347, "make_axes_locat": 348, "ceilingheight": 348, "plo": 348, "dist": 348, "proboflo": 348, "problo": 348, "10001": 348, "emper": 348, "aoaspread": 348, "aodspread": 348, "zoaspread": 348, "zodspread": 348, "10km": 348, "2199": 348, "114990234375": 348, "400634765625": 348, "count_sf": 348, "bins_count_sf": 348, "tau": [348, 349], "sigma_": 348, "count_kf": 348, "bins_count_kf": 348, "k_f": 348, "log_": 348, "count_phiaoa": 348, "bins_count_phiaoa": 348, "pdf_phiaoa": 348, "cdf_phiaoa": 348, "count_phiaod": 348, "bins_count_phiaod": 348, "pdf_phiaod": 348, "cdf_phiaod": 348, "count_thetaaoa": 348, "bins_count_thetaaoa": 348, "pdf_thetaaoa": 348, "cdf_thetaaoa": 348, "count_thetaaod": 348, "bins_count_thetaaod": 348, "pdf_thetaaod": 348, "cdf_thetaaod": 348, "signific": [349, 351], "neglig": 349, "aris": 349, "natur": 349, "impli": 349, "subset": 349, "inact": 349, "irrelev": 349, "focu": 349, "respond": 349, "rich": [349, 361], "scindex": 349, "oversamplingfactortx": 349, "oversamplingfactorrx": 349, "ftx": 349, "frx": 349, "hbeam": 349, "txantenna": 349, "rxantenna": 349, "genar": [350, 355, 361], "rough": [350, 355], "charaterist": [350, 355], "realist": [350, 355, 361], "incapsul": 351, "topic": 351, "condsid": 351, "nt_x": 351, "nt_y": 351, "considerd": 351, "mont": 351, "carlo": 351, "msg2": 351, "msg4": 351, "iab": 351, "mt": 351, "spare": 351, "unus": 351, "resourceset0": 351, "space0": 351, "bfangl": 351, "abf": 351, "x_beam": 351, "pt_a": 351, "nsymbforschedul": 351, "startofdmsymbolindic": 351, "iscustombeamform": 351, "htime": 351, "numfreq": 351, "k_bolt": 351, "yn": 351, "raster": 351, "boundri": 351, "rxarrai": 351, "rxcombin": 351, "combinertyp": 351, "numdftbeam": 351, "8183": 351, "ylim": 351, "firstsymbolindic": 351, "tranmit": 351, "version14": 351, "hurrai": 351, "ohh": 351, "470": 351, "pbchresequencebit": 351, "004629629629629629": 351, "rxbeamidx": 352, "bool_": 352, "yr": 352, "snr_vs_bler": 352, "link_level_and_system_level_simulation_for_physical_broadcast_channel": 352, "19999999999999996": 352, "07999999999999996": 352, "040000000000000036": 352, "11111111111111": 352, "_nr": 352, "cyclicshifthop": 353, "pucchformat0": 353, "pucchformat0decod": 353, "mcsestim": 353, "maxprb": 353, "initialc": 353, "validhoppinginfo": 353, "interlacedrb": 353, "refnum": 353, "853": 353, "pucchformat0obj": 353, "pucchformat0grid": 353, "initialcyclicshift": 353, "symbolindexstart": 353, "3300": 353, "pucchformat0decoderobj": 353, "pucchformat0decoderop": 353, "hardout": 353, "obj_mc": 353, "estimatem_c": 353, "offest": 353, "bin_arr": 353, "retriv": 353, "ber1": 353, "ber2": 353, "5023446658851114": 353, "2511723329425557": 353, "00206913808111479": 353, "4806565064478312": 353, "2403282532239156": 353, "004281332398719396": 353, "5005861664712778": 353, "2502930832356389": 353, "008858667904100823": 353, "5046893317702228": 353, "2523446658851114": 353, "018329807108324356": 353, "4783118405627198": 353, "2391559202813599": 353, "0379269019073225": 353, "4859320046893318": 353, "2429660023446659": 353, "07847599703514611": 353, "48182883939038684": 353, "24091441969519342": 353, "16237767391887217": 353, "4349355216881594": 353, "2174677608440797": 353, "3359818286283782": 353, "36518171160609614": 353, "18259085580304807": 353, "6951927961775608": 353, "1776084407971864": 353, "0888042203985932": 353, "4384498882876635": 353, "016998827667057445": 353, "008499413833528723": 353, "976351441631318": 353, "158482110660259": 353, "742749857031342": 353, "366508987303583": 353, "55594781168523": 353, "88378916846895": 353, "57214690901213": 353, "483": 353, "2930238571757": 353, "12040": 354, "513671875": 354, "009053156146179402": 354, "009252344416027281": 354, "004455980066445183": 354, "004647485080988918": 354, "0018064784053156147": 354, "0019855072463768114": 354, "0006735880398671096": 354, "0007374254049445865": 354, "481600": 354, "0000000004": 354, "00021760797342192692": 354, "00024424552429667517": 354, "6622000": 354, "64451827242525e": 354, "734867860187553e": 354, "33499999999999996": 354, "16013200": 354, "475083056478405e": 354, "1935208866155157e": 354, "04500000000000004": 354, "22996399": 354, "4916943521594684e": 354, "4100596760443308e": 354, "23718800": 354, "24080000": 354, "mcsindex3": 354, "aclr": [355, 361], "extern": 355, "libari": 355, "odfm": 355, "extact": 355, "libraier": 355, "20000": [355, 361], "se": [355, 361], "p1": [355, 361, 364], "geni": [355, 361], "industri": [355, 361], "1300": [355, 361], "email": [356, 359, 360, 362, 363], "month": [356, 359, 361, 362, 363], "arxiv": [356, 361], "x86_64": [359, 360, 362, 363], "llvm": [359, 362, 363], "anaconda": [359, 360, 362], "skip": [359, 360, 362], "instruct": [359, 360, 362, 365], "lighter": [359, 360, 362], "outdat": [359, 360, 362], "linux": [359, 360, 362], "sudo": [359, 360, 362], "apt": [359, 360, 362], "shortcut": [359, 362], "ctrl": [359, 362], "alt": [359, 362], "wget": [359, 360, 362], "repo": [359, 360, 362], "bash": [359, 360, 362], "conda": [359, 362, 363], "click": [359, 360, 362, 363], "button": [359, 360, 362], "prompt": [359, 360, 362], "pip": [359, 360, 362, 363], "readi": [359, 360, 362], "cach": [359, 360, 362, 363], "dir": [359, 360, 362, 363], "gigayasawireless": [359, 360, 361, 362, 363], "python3_7": [359, 360, 363], "py3": [359, 360, 362, 363], "whl": [359, 360, 362, 363], "python3_8": [359, 360, 362, 363], "python3_9": [359, 360, 362, 363], "python3_10": [359, 360, 362, 363], "truli": [359, 360, 362], "browser": [359, 360, 362], "__version__": [359, 360, 362, 365], "still": [359, 360, 362], "struggl": [359, 360, 362], "mailto": [359, 360, 362], "vikram": [359, 360, 361, 362], "happi": [359, 360, 362], "purchas": [359, 362, 363], "perpetu": [359, 362, 363], "central": [359, 362, 363], "hub": [359, 362, 363], "unzip": [359, 362, 363], "login": [359, 362, 363], "try": [359, 362, 363], "templat": [360, 363], "licens": [360, 361], "md": 360, "doc": 360, "myenv": 360, "buggi": [360, 363], "tpu": 361, "cpu": [361, 365], "pytorch": 361, "quarterli": 361, "upgrad": 361, "24x7": 361, "homepag": 361, "technologi": 361, "pxsch": 361, "pxcch": 361, "pxbch": 361, "dvanc": 361, "ntenna": 361, "ystem": 361, "aa": 361, "rtifici": 361, "ntellig": 361, "achin": 361, "earn": 361, "ybrid": 361, "utomat": 361, "epeat": 361, "uest": 361, "releasenot": 361, "instal": 361, "guid": 361, "lai": 361, "recip": 361, "solv": 361, "art": 361, "tent": 361, "week": 361, "young": 361, "repositori": 361, "reward": 361, "portal": 361, "miniconda": 361, "jupyt": [361, 363], "confirm": [361, 363], "video": 361, "hello": 361, "tentet": 361, "septemb": 361, "march": 361, "2024": 361, "trademark": 361, "5gtoolkit": 361, "jump": 362, "conflict": 362, "r24a": 362, "virtual": 363, "chase": 364, "p2": 364, "ri": 364, "rsrq": 364, "pssch": 364, "rim": 364, "dmrss": 364, "hap": 364, "drone": 364, "duplex": 364, "sbfd": 364, "phaser": 364, "ettu": 364, "lime": 364, "nm": 364, "newbi": 365, "08": 365, "651000": 365, "core": 365, "cc": 365, "onednn": 365, "tf_enable_onednn_opt": 365, "779554": 365, "platform": 365, "cpu_feature_guard": 365, "avx2": 365, "avx512f": 365, "avx512_vnni": 365, "fma": 365, "rebuild": 365, "478801": 365, "tf2tensorrt": 365, "py_util": 365, "trt": 365, "could": 365, "tensorrt": 365, "dpi": 365, "9600": 365, "15873515625": 365, "0block": 365, "8957356524063758": 365, "08426328125": 365, "8957356524063758block": 365, "5938136638046276": 365, "029006510416666666": 365, "5938136638046276block": 365, "812920690579611": 365, "004522395833333333": 365, "812920690579611block": 365, "8428": 365, "91549665014884": 365, "00016276041666666666": 365, "91549665014884block": 365, "06489999999999996": 365, "484367468222267": 365, "8125e": 365, "484367468222267block": 365, "00029999999999996696": 365, "41588833612777": 365, "41588833612777block": 365, "99225435691065": 365, "99225435691065block": 365, "81005372000593": 365, "81005372000593block": 365, "22776601683796": 365, "22776601683796block": 365, "28259557291666665": 365, "21662265625": 365, "1511671875": 365, "09119765625": 365, "04033958333333333": 365, "010061197916666667": 365, "9855": 365, "0008690104166666667": 365, "2984": 365, "333333333333334e": 365, "0032999999999999696": 365, "3536518229166667": 365, "3059221354166667": 365, "24816536458333333": 365, "18723645833333333": 365, "1307921875": 365, "08174973958333333": 365, "040142447916666664": 365, "011923697916666667": 365, "9943": 365, "0014354166666666667": 365, "43820000000000003": 365, "96875e": 365, "01200000000000001": 365}, "objects": {"toolkit5G.CRC": [[3, 0, 1, "", "CRCDecoder"], [4, 0, 1, "", "CRCEncoder"]], "toolkit5G.ChannelCoder.HammingCoder.hammingDecoder": [[5, 0, 1, "", "HammingDecoder"], [5, 0, 1, "", "HammingSphereDecoder"], [5, 0, 1, "", "HammingSyndromeDecoder"]], "toolkit5G.ChannelCoder.HammingCoder.hammingEncoder": [[5, 0, 1, "", "HammingEncoder"]], "toolkit5G.ChannelCoder.LDPC": [[93, 0, 1, "", "CodeBlockAggregation"], [92, 0, 1, "", "CodeBlockConcatenation"], [93, 0, 1, "", "CodeBlockSegmentation"], [92, 0, 1, "", "CodeBlockSegregation"], [9, 0, 1, "", "LDPCparameters"]], "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation": [[93, 1, 1, "", "C"], [93, 1, 1, "", "Kbar"], [93, 1, 1, "", "Kcb"], [93, 1, 1, "", "baseGraph"], [93, 1, 1, "", "codeRate"], [93, 1, 1, "", "crcType"], [93, 1, 1, "", "tbSize"]], "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation": [[93, 1, 1, "", "B"], [93, 1, 1, "", "C"], [93, 1, 1, "", "K"], [93, 1, 1, "", "Kb"], [93, 1, 1, "", "Kbar"], [93, 1, 1, "", "L"], [93, 1, 1, "", "Zc"], [93, 1, 1, "", "baseGraph"], [93, 1, 1, "", "codeRate"]], "toolkit5G.ChannelCoder": [[96, 0, 1, "", "LDPCDecoder5G"], [96, 0, 1, "", "LDPCEncoder5G"], [146, 0, 1, "", "PolarDecoder5G"], [146, 0, 1, "", "PolarEncoder5G"], [12, 0, 1, "", "ReedMullerDecoder5G"], [12, 0, 1, "", "ReedMullerEncoder5G"]], "toolkit5G.ChannelCoder.LDPCDecoder5G": [[96, 1, 1, "", "bm"], [96, 2, 1, "", "computeIls"], [96, 1, 1, "", "i_ls"], [96, 1, 1, "", "k_ldpc"], [96, 1, 1, "", "llr_max"], [96, 1, 1, "", "n"], [96, 1, 1, "", "n_ldpc"], [96, 1, 1, "", "nb_pruned_nodes"], [96, 1, 1, "", "prune_pcm"]], "toolkit5G.ChannelCoder.LDPCEncoder5G": [[96, 1, 1, "", "bm"], [96, 2, 1, "", "computeIls"], [96, 1, 1, "", "i_ls"], [96, 1, 1, "", "k"], [96, 1, 1, "", "n"], [96, 1, 1, "", "n_ldpc"], [96, 1, 1, "", "pcm"], [96, 1, 1, "", "z"]], "toolkit5G.ChannelCoder.PolarCoder": [[149, 0, 1, "", "CodeBlockAggregation"], [148, 0, 1, "", "CodeBlockConcatenation"], [149, 0, 1, "", "CodeBlockSegmentation"], [148, 0, 1, "", "CodeBlockSegregation"], [143, 0, 1, "", "InputBitDeInterleaver"], [143, 0, 1, "", "InputBitInterleaver"]], "toolkit5G.ChannelCoder.PolarDecoder5G": [[146, 1, 1, "", "E"], [146, 1, 1, "", "K"], [146, 1, 1, "", "N"], [146, 1, 1, "", "dec_type"], [146, 1, 1, "", "llr_max"], [146, 1, 1, "", "output_dtype"]], "toolkit5G.ChannelCoder.PolarEncoder5G": [[146, 1, 1, "", "N"]], "toolkit5G.ChannelCoder.ReedMullerDecoder5G": [[12, 1, 1, "", "dtype"], [12, 1, 1, "", "hardIn"], [12, 1, 1, "", "k"]], "toolkit5G.ChannelCoder.ReedMullerEncoder5G": [[12, 1, 1, "", "dtype"], [12, 1, 1, "", "k"]], "toolkit5G.ChannelModels": [[14, 0, 1, "", "AntennaArrays"], [15, 0, 1, "", "ChannelGenerator"], [17, 0, 1, "", "NodeMobility"], [18, 0, 1, "", "ParameterGenerator"], [19, 0, 1, "", "SimulationLayout"]], "toolkit5G.ChannelModels.NodeMobility": [[17, 2, 1, "", "displayRoute"]], "toolkit5G.ChannelModels.SimulationLayout": [[19, 1, 1, "", "BSLocations"], [19, 1, 1, "", "ISD"], [19, 1, 1, "", "UELocations"], [19, 1, 1, "", "UEdistibution"], [19, 1, 1, "", "UEheightDistribution"], [19, 1, 1, "", "bsAntennaArray"], [19, 1, 1, "", "bsRoute"], [19, 1, 1, "", "carrierFrequency"], [19, 1, 1, "", "clutterDensity"], [19, 1, 1, "", "clutterHeight"], [19, 1, 1, "", "clutterSize"], [19, 1, 1, "", "correlationDistanceIndoor"], [19, 1, 1, "", "correlationDistanceLoS"], [19, 1, 1, "", "correlationTypeIndoor"], [19, 1, 1, "", "correlationTypeLoS"], [19, 1, 1, "", "enableSpatialConsistencyIndoor"], [19, 1, 1, "", "enableSpatialConsistencyLoS"], [19, 1, 1, "", "force3GPPSpatialConsistencyParameters"], [19, 1, 1, "", "forceLOS"], [19, 1, 1, "", "heightOfBS"], [19, 1, 1, "", "heightOfRoom"], [19, 1, 1, "", "heightOfUE"], [19, 1, 1, "", "indoorUEfraction"], [19, 1, 1, "", "layoutLength"], [19, 1, 1, "", "layoutType"], [19, 1, 1, "", "layoutWidth"], [19, 1, 1, "", "lengthOfIndoorObject"], [19, 1, 1, "", "maxNumberOfFloors"], [19, 1, 1, "", "memoryEfficient"], [19, 1, 1, "", "minNumberOfFloors"], [19, 1, 1, "", "minUEBSDistance"], [19, 1, 1, "", "numOfBS"], [19, 1, 1, "", "numOfSectorsPerSite"], [19, 1, 1, "", "numOfSnapShots"], [19, 1, 1, "", "numOfUE"], [19, 1, 1, "", "radiusForCircularUEDrop"], [19, 1, 1, "", "routeType"], [19, 1, 1, "", "terrain"], [19, 1, 1, "", "ueAntennaArray"], [19, 1, 1, "", "ueDropMethod"], [19, 1, 1, "", "ueRoute"], [19, 1, 1, "", "widthOfIndoorObject"]], "toolkit5G.ChannelModels.antennaArrays": [[14, 0, 1, "", "Antenna_3GPP_38901"], [14, 0, 1, "", "Antenna_HertzianDipole"], [14, 0, 1, "", "Antenna_LinearDipole"]], "toolkit5G.ChannelModels.nodeMobility": [[17, 0, 1, "", "CircularRoute"], [17, 0, 1, "", "DropVehiclesHighway"], [17, 0, 1, "", "RandomWalk"]], "toolkit5G.ChannelModels.simulationLayout": [[19, 0, 1, "", "HexagonalLayout"], [19, 0, 1, "", "RectangularLayout"]], "toolkit5G.ChannelProcessing": [[21, 0, 1, "", "AddNoise"], [22, 0, 1, "", "ApplyChannel"]], "toolkit5G.ChannelProcessing.ApplyChannel": [[22, 1, 1, "", "enableInterTxInterference"], [22, 1, 1, "", "isFrequencyDomain"], [22, 1, 1, "", "memoryConsumptionLevel"]], "toolkit5G.Configurations": [[261, 0, 1, "", "CSIConfiguration"], [262, 0, 1, "", "GenerateValidSSBParameters"], [263, 0, 1, "", "PDSCHLowerPhyConfiguration"], [264, 0, 1, "", "PDSCHUpperPhyConfiguration"], [265, 0, 1, "", "SRSConfiguration"], [266, 0, 1, "", "SSBConfiguration"], [267, 0, 1, "", "TimeFrequency5GParameters"]], "toolkit5G.Configurations.SRSConfiguration": [[265, 1, 1, "", "bHop"], [265, 1, 1, "", "bSRS"], [265, 1, 1, "", "betaSRS"], [265, 1, 1, "", "cSRS"], [265, 1, 1, "", "combOffset"], [265, 1, 1, "", "enableStartRBHopping"], [265, 1, 1, "", "freqDomainPosition"], [265, 1, 1, "", "freqDomainShift"], [265, 1, 1, "", "freqScalingFactor"], [265, 1, 1, "", "groupOrSequenceHopping"], [265, 1, 1, "", "lengthOfSequence"], [265, 1, 1, "", "nrOfCyclicShift"], [265, 1, 1, "", "nrofSRS_Ports"], [265, 1, 1, "", "nrofSymbols"], [265, 1, 1, "", "offsetInSlots"], [265, 1, 1, "", "periodicityInSlots"], [265, 1, 1, "", "purpose"], [265, 1, 1, "", "repetitionFactor"], [265, 1, 1, "", "resourceGridSizeinRBs"], [265, 1, 1, "", "resourceType"], [265, 1, 1, "", "sequenceId"], [265, 1, 1, "", "slotIndex"], [265, 1, 1, "", "startPosition"], [265, 1, 1, "", "startRBIndex"], [265, 1, 1, "", "symbolIndices"], [265, 1, 1, "", "systemFrameNumber"], [265, 1, 1, "", "transmissionComb"]], "toolkit5G.Configurations.TimeFrequency5GParameters": [[267, 2, 1, "", "getGaurdBand_FR1"], [267, 2, 1, "", "getGaurdBand_FR2"], [267, 2, 1, "", "getNumberRB_FR1"], [267, 2, 1, "", "getNumberRB_FR2"]], "toolkit5G.MIMOProcessing": [[29, 0, 1, "", "SearchFree"], [29, 0, 1, "", "TypeICodeBook"]], "toolkit5G.OFDM": [[32, 0, 1, "", "OFDMDemodulator"], [33, 0, 1, "", "OFDMModulator"], [35, 0, 1, "", "TransformDecoding5G"], [36, 0, 1, "", "TransformPrecoding"], [37, 0, 1, "", "TransformPrecoding5G"]], "toolkit5G.PayloadGeneration": [[38, 0, 1, "", "DCIExtraction"], [38, 0, 1, "", "DCIGeneration"], [46, 0, 1, "", "MIBExtraction"], [46, 0, 1, "", "MIBGeneration"]], "toolkit5G.PayloadGeneration.MIBExtraction": [[46, 1, 1, "", "carrierFreq"], [46, 1, 1, "", "cellBarred"], [46, 1, 1, "", "choiceBit"], [46, 1, 1, "", "controlResourceSet0"], [46, 2, 1, "", "displayParameters"], [46, 1, 1, "", "dmrsTypeAPosition"], [46, 1, 1, "", "hrfBit"], [46, 1, 1, "", "intraFrequencyReselection"], [46, 1, 1, "", "nssbCandidatesInHrf"], [46, 1, 1, "", "searchSpace0"], [46, 1, 1, "", "ssbIndex"], [46, 1, 1, "", "ssbSubCarrierOffset"], [46, 1, 1, "", "subCarrierSpacingCommon"], [46, 1, 1, "", "systemFrameNumber"]], "toolkit5G.PayloadGeneration.MIBGeneration": [[46, 1, 1, "", "carrierFreq"], [46, 1, 1, "", "cellBarred"], [46, 1, 1, "", "choiceBit"], [46, 1, 1, "", "controlResourceSet0"], [46, 2, 1, "", "displayParameters"], [46, 1, 1, "", "dmrsTypeAPosition"], [46, 1, 1, "", "hrfBit"], [46, 1, 1, "", "intraFrequencyReselection"], [46, 1, 1, "", "nssbCandidatesInHrf"], [46, 1, 1, "", "searchSpace0"], [46, 1, 1, "", "ssbIndex"], [46, 1, 1, "", "ssbSubCarrierOffset"], [46, 1, 1, "", "subCarrierSpacingCommon"], [46, 1, 1, "", "systemFrameNumber"]], "toolkit5G.PhysicalChannels": [[184, 0, 1, "", "PBCH"], [184, 0, 1, "", "PBCHDecoder"], [185, 0, 1, "", "PDCCH"], [185, 0, 1, "", "PDCCHDecoder"], [86, 0, 1, "", "PDSCHDecoderLowerPhy"], [88, 0, 1, "", "PDSCHDecoderUpperPhy"], [85, 0, 1, "", "PDSCHLowerPhy"], [87, 0, 1, "", "PDSCHUpperPhy"], [188, 0, 1, "", "PSBCH"], [188, 0, 1, "", "PSBCHDecoder"], [189, 0, 1, "", "PSCCHLowerPhy"], [189, 0, 1, "", "PSCCHLowerPhyDecoder"], [189, 0, 1, "", "PSCCHUpperPhy"], [189, 0, 1, "", "PSCCHUpperPhyDecoder"], [181, 0, 1, "", "PUSCHDecoderUpperPhy"], [182, 0, 1, "", "PUSCHUpperPhy"]], "toolkit5G.PhysicalChannels.PBCH": [[25, 0, 1, "", "PBCHDeInterleaver"], [25, 0, 1, "", "PBCHInterleaver"], [184, 1, 1, "", "chIL_bits"], [184, 1, 1, "", "encBits"], [184, 1, 1, "", "iILBits"], [184, 1, 1, "", "ilBits"], [184, 1, 1, "", "mib"], [184, 1, 1, "", "payloadCRC"], [184, 1, 1, "", "payloadMIB"], [184, 1, 1, "", "rmBits"], [184, 1, 1, "", "sBIL_bits"], [184, 1, 1, "", "scr2bits"], [184, 1, 1, "", "scrBits"]], "toolkit5G.PhysicalChannels.PBCHDecoder": [[184, 1, 1, "", "channelDeInterleaverBits"], [184, 1, 1, "", "crcCheck"], [184, 1, 1, "", "deCRCBits"], [184, 1, 1, "", "deScrambledBits"], [184, 1, 1, "", "descrambled2LLRs"], [184, 1, 1, "", "inputDeinteleavedBits"], [184, 1, 1, "", "llr"], [184, 1, 1, "", "mibRx"], [184, 1, 1, "", "pbchDeInterleavedBits"], [184, 1, 1, "", "polarDecodedBits"], [184, 1, 1, "", "rateDematedBits"], [184, 1, 1, "", "subBlockDeinterleavedBits"]], "toolkit5G.PhysicalChannels.PDCCH": [[185, 1, 1, "", "dciBIL"], [185, 1, 1, "", "dciCRC"], [185, 1, 1, "", "dciIBI"], [185, 1, 1, "", "dciRM"], [185, 1, 1, "", "dciRNTI"], [185, 1, 1, "", "dciSCR"], [185, 1, 1, "", "encBits"]], "toolkit5G.PhysicalChannels.PDCCHDecoder": [[185, 1, 1, "", "check"], [185, 1, 1, "", "dciBits"], [185, 1, 1, "", "decodedBits"], [185, 1, 1, "", "dematchedBits"], [185, 1, 1, "", "descrambledLLRs"], [185, 1, 1, "", "ibDILBits"], [185, 1, 1, "", "llr"], [185, 1, 1, "", "sbdBits"], [185, 1, 1, "", "unmaskedBits"]], "toolkit5G.PhysicalChannels.PDSCH": [[94, 0, 1, "", "ComputeTransportBlockSize"], [95, 0, 1, "", "LayerDemapper"], [95, 0, 1, "", "LayerMapper"], [108, 0, 1, "", "TransportBlockRxProcessing"], [108, 0, 1, "", "TransportBlockTxProcessing"]], "toolkit5G.PhysicalChannels.PDSCHLowerPhy": [[85, 2, 1, "", "displayDMRSGrid"], [85, 2, 1, "", "displayResourceGrid"]], "toolkit5G.Positioning": [[192, 0, 1, "", "DFT_DoA"], [202, 0, 1, "", "DFT_ToA"], [195, 0, 1, "", "DoAEstimation"], [193, 0, 1, "", "ESPRIT_DoA"], [203, 0, 1, "", "ESPRIT_ToA"], [196, 0, 1, "", "GradientDescentDoA"], [198, 0, 1, "", "GradientDescentTDoA"], [197, 0, 1, "", "HybridTDoAAoA"], [197, 0, 1, "", "HybridToAAoA"], [196, 0, 1, "", "LeastSquareDoA"], [198, 0, 1, "", "LeastSquareTDoA"], [199, 0, 1, "", "LeastSquareToA"], [194, 0, 1, "", "MUSIC_DoA"], [204, 0, 1, "", "MUSIC_ToA"], [198, 0, 1, "", "NewtonRaphsonTDoA"], [206, 0, 1, "", "PositionEstimation"], [205, 0, 1, "", "ToAEstimation"]], "toolkit5G.Ratematcher.LDPC": [[208, 0, 1, "", "BitDeinterleaver"], [207, 0, 1, "", "BitDeselection"], [208, 0, 1, "", "BitInterleaver"], [207, 0, 1, "", "BitSelection"], [209, 0, 1, "", "RatematchParameters"]], "toolkit5G.Ratematcher.LDPC.BitDeinterleaver": [[208, 1, 1, "", "modOrder"], [208, 1, 1, "", "numBits1"], [208, 1, 1, "", "numBits2"]], "toolkit5G.Ratematcher.LDPC.BitDeselection": [[207, 1, 1, "", "Ncb"], [207, 1, 1, "", "baseGraph"], [207, 1, 1, "", "enableLBRM"], [207, 1, 1, "", "k0"], [207, 1, 1, "", "liftingFactor"], [207, 1, 1, "", "nLDPC"], [207, 1, 1, "", "rvID"]], "toolkit5G.Ratematcher.LDPC.BitInterleaver": [[208, 1, 1, "", "modOrder"], [208, 1, 1, "", "numBits1"], [208, 1, 1, "", "numBits2"]], "toolkit5G.Ratematcher.LDPC.BitSelection": [[207, 1, 1, "", "baseGraph"], [207, 1, 1, "", "enableLBRM"], [207, 1, 1, "", "k0"], [207, 1, 1, "", "liftingFactor"], [207, 1, 1, "", "modOrder"], [207, 1, 1, "", "numCBs"], [207, 1, 1, "", "numCodedBits"], [207, 1, 1, "", "numLayers"], [207, 1, 1, "", "rvID"], [207, 1, 1, "", "tbSize"]], "toolkit5G.Ratematcher.LDPC.RatematchParameters": [[209, 1, 1, "", "baseGraph"], [209, 1, 1, "", "enableLBRM"], [209, 1, 1, "", "k0"], [209, 1, 1, "", "liftingFactor"], [209, 1, 1, "", "modOrder"], [209, 1, 1, "", "numCodeBlocks"], [209, 1, 1, "", "numCodedBits"], [209, 1, 1, "", "numLayers"], [209, 1, 1, "", "rvID"], [209, 1, 1, "", "tbSize"]], "toolkit5G.Ratematcher.PolarCoder": [[210, 0, 1, "", "BitDeSelection"], [210, 0, 1, "", "BitSelection"], [211, 0, 1, "", "ChannelDeInterleaver"], [211, 0, 1, "", "ChannelInterleaver"], [212, 0, 1, "", "Subblock_DeInterleaver"], [212, 0, 1, "", "Subblock_Interleaver"]], "toolkit5G.ReceiverAlgorithms": [[268, 0, 1, "", "CarrierFrequencyOffsetEstimation"], [269, 0, 1, "", "ChannelEstimationAndEqualizationPBCH"], [270, 0, 1, "", "ChannelEstimationAndEqualizationPDCCH"], [271, 0, 1, "", "ChannelEstimationAndEqualizationPDSCH"], [275, 0, 1, "", "ChannelEstimationCSIRS"], [276, 0, 1, "", "ChannelEstimationSRS"], [272, 0, 1, "", "DMRSParameterDetection"], [273, 0, 1, "", "PSSDetection"], [274, 0, 1, "", "SSSDetection"]], "toolkit5G.ResourceMapping": [[227, 0, 1, "", "CORESET"], [217, 0, 1, "", "DeSpreadingFormat1"], [215, 0, 1, "", "ResourceDeMapperFormat0"], [218, 0, 1, "", "ResourceDeMapperFormat1"], [228, 0, 1, "", "ResourceMapperCSIRS"], [229, 0, 1, "", "ResourceMapperDMRSPDSCH"], [216, 0, 1, "", "ResourceMapperFormat0"], [219, 0, 1, "", "ResourceMapperFormat1"], [231, 0, 1, "", "ResourceMapperPRS"], [233, 0, 1, "", "ResourceMapperPTRSPDSCH"], [238, 0, 1, "", "ResourceMapperSSB"], [230, 0, 1, "", "ResourceMappingPDCCH"], [232, 0, 1, "", "ResourceMappingPSCCH"], [237, 0, 1, "", "SSB_Grid"], [235, 0, 1, "", "SSSB_Grid"], [236, 0, 1, "", "SearchSpaceSet"], [220, 0, 1, "", "SpreadingFormat1"]], "toolkit5G.ResourceMapping.CORESET": [[227, 2, 1, "", "displayCoresetREG_CCE_Mapping"]], "toolkit5G.ResourceMapping.DeSpreadingFormat1": [[134, 1, 1, "", "SpreadingFactor"], [217, 1, 1, "", "indexPUCCH"], [217, 1, 1, "", "maxNumPRBs"], [217, 1, 1, "", "numberOfSymb"], [217, 1, 1, "", "start_SymbIndex"], [217, 1, 1, "", "timedomainOCC"]], "toolkit5G.ResourceMapping.ResourceDeMapperFormat0": [[215, 1, 1, "", "formatPUCCH"], [215, 1, 1, "", "indexPUCCH"], [215, 1, 1, "", "interlaceIndex_0"], [215, 1, 1, "", "interlaceIndex_1"], [215, 1, 1, "", "maxNumPRBs"], [215, 1, 1, "", "numInterlacedRBs"], [215, 1, 1, "", "numOfInterlaces"], [215, 1, 1, "", "numRBs"], [215, 1, 1, "", "numberOfSymb"], [215, 1, 1, "", "offset"], [215, 1, 1, "", "rg_Size"], [215, 1, 1, "", "secondHopPRB"], [215, 1, 1, "", "seqLength"], [215, 1, 1, "", "start_SymbIndex"], [215, 1, 1, "", "startingPRB"]], "toolkit5G.ResourceMapping.ResourceDeMapperFormat1": [[218, 1, 1, "", "indexPUCCH"], [218, 1, 1, "", "interlaceIndex_0"], [218, 1, 1, "", "interlaceIndex_1"], [218, 1, 1, "", "maxNumPRBs"], [218, 1, 1, "", "numInterlacedRBs"], [218, 1, 1, "", "numOfInterlaces"], [218, 1, 1, "", "numRBs"], [218, 1, 1, "", "numberOfSymb"], [218, 1, 1, "", "offset"], [218, 1, 1, "", "rg_Size"], [218, 1, 1, "", "secondHopPRB"], [218, 1, 1, "", "seqLength"], [218, 1, 1, "", "start_SymbIndex"], [218, 1, 1, "", "startingPRB"]], "toolkit5G.ResourceMapping.ResourceMapperCSIRS": [[228, 2, 1, "", "displayCDMPattern"], [228, 2, 1, "", "displayResourceGrid"]], "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH": [[229, 2, 1, "", "displayCDMPattern"], [229, 2, 1, "", "displayResourceGrid"]], "toolkit5G.ResourceMapping.ResourceMapperFormat0": [[216, 1, 1, "", "formatPUCCH"], [216, 1, 1, "", "indexPUCCH"], [216, 1, 1, "", "interlaceIndex_0"], [216, 1, 1, "", "interlaceIndex_1"], [216, 1, 1, "", "maxNumPRBs"], [216, 1, 1, "", "numInterlacedRBs"], [216, 1, 1, "", "numOfInterlaces"], [216, 1, 1, "", "numRBs"], [216, 1, 1, "", "numberOfSymb"], [216, 1, 1, "", "offset"], [216, 1, 1, "", "rg_Size"], [216, 1, 1, "", "secondHopPRB"], [216, 1, 1, "", "seqLength"], [216, 1, 1, "", "start_SymbIndex"], [216, 1, 1, "", "startingPRB"]], "toolkit5G.ResourceMapping.ResourceMapperFormat1": [[219, 1, 1, "", "indexPUCCH"], [219, 1, 1, "", "interlaceIndex_0"], [219, 1, 1, "", "interlaceIndex_1"], [219, 1, 1, "", "maxNumPRBs"], [219, 1, 1, "", "numInterlacedRBs"], [219, 1, 1, "", "numOfInterlaces"], [219, 1, 1, "", "numRBs"], [219, 1, 1, "", "numberOfSymb"], [219, 1, 1, "", "offset"], [219, 1, 1, "", "rg_Size"], [219, 1, 1, "", "secondHopPRB"], [219, 1, 1, "", "seqLength"], [219, 1, 1, "", "start_SymbIndex"], [219, 1, 1, "", "startingPRB"]], "toolkit5G.ResourceMapping.SSB_Grid": [[237, 2, 1, "", "displayGrid"], [237, 1, 1, "", "dmrsIndices"], [237, 1, 1, "", "pbchIndices"], [237, 1, 1, "", "pssIndices"], [237, 1, 1, "", "sssIndices"]], "toolkit5G.ResourceMapping.SSSB_Grid": [[235, 2, 1, "", "displayGrid"]], "toolkit5G.ResourceMapping.SpreadingFormat1": [[139, 1, 1, "", "SpreadingFactor"], [220, 1, 1, "", "indexPUCCH"], [220, 1, 1, "", "numRBs"], [220, 1, 1, "", "numberOfSymb"], [220, 1, 1, "", "start_SymbIndex"], [220, 1, 1, "", "timedomainOCC"]], "toolkit5G.Scheduler": [[280, 0, 1, "", "LinkAdaptation"], [278, 0, 1, "", "PDCCHScheduler"], [281, 0, 1, "", "RankAdaptation"], [279, 0, 1, "", "RoundRobinScheduler"]], "toolkit5G.Scheduler.LinkAdaptation": [[280, 2, 1, "", "selectMCS"]], "toolkit5G.Scheduler.RoundRobinScheduler": [[279, 1, 1, "", "firstAcrossTime"], [279, 1, 1, "", "numRB"], [279, 1, 1, "", "numSymbol"], [279, 1, 1, "", "numUEscheduledAcrossFreq"], [279, 1, 1, "", "numUEscheduledAcrossTime"]], "toolkit5G.Scrambler": [[240, 0, 1, "", "DeScrambler"], [241, 0, 1, "", "RNTImasking"], [242, 0, 1, "", "Scrambler"]], "toolkit5G.Scrambler.DeScrambler": [[240, 1, 1, "", "Lmax"], [240, 1, 1, "", "c_init"], [240, 1, 1, "", "id"], [240, 1, 1, "", "mu"], [240, 1, 1, "", "nID"], [240, 1, 1, "", "purpose"], [240, 1, 1, "", "q"], [240, 1, 1, "", "rnti"], [240, 1, 1, "", "ssbIndex"]], "toolkit5G.Scrambler.RNTImasking": [[241, 1, 1, "", "rnti"]], "toolkit5G.Scrambler.Scrambler": [[242, 1, 1, "", "Lmax"], [242, 1, 1, "", "c_init"], [242, 1, 1, "", "id"], [242, 1, 1, "", "mu"], [242, 1, 1, "", "nID"], [242, 1, 1, "", "purpose"], [242, 1, 1, "", "q"], [242, 1, 1, "", "rnti"], [242, 1, 1, "", "ssbIndex"]], "toolkit5G.SequenceGeneration": [[248, 0, 1, "", "CSIRS"], [249, 0, 1, "", "DMRS"], [244, 0, 1, "", "LowPAPRSequenceType1"], [245, 0, 1, "", "LowPAPRSequenceType2"], [250, 0, 1, "", "PNSequence"], [251, 0, 1, "", "PRS"], [252, 0, 1, "", "PSS"], [246, 0, 1, "", "PUCCHFormat0Sequence"], [247, 0, 1, "", "PUCCHFormat1Sequence"], [254, 0, 1, "", "SRS"], [255, 0, 1, "", "SSS"], [253, 0, 1, "", "S_PSS"], [256, 0, 1, "", "S_SSS"]], "toolkit5G.SequenceGeneration.LowPAPRSequenceType1": [[244, 1, 1, "", "baseSequenceNumber"], [244, 1, 1, "", "cyclicShift"], [244, 1, 1, "", "delta"], [244, 1, 1, "", "groupNumber"], [244, 1, 1, "", "lengthOfSequence"], [244, 1, 1, "", "numRBs"]], "toolkit5G.SequenceGeneration.LowPAPRSequenceType2": [[245, 1, 1, "", "cinit"], [245, 1, 1, "", "delta"], [245, 1, 1, "", "groupNumber"], [245, 1, 1, "", "groupNumber_Or_cinit"], [245, 1, 1, "", "lengthOfSequence"], [245, 1, 1, "", "numRBs"]], "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence": [[246, 1, 1, "", "controlInfo"], [246, 1, 1, "", "indexPUCCH"], [246, 1, 1, "", "initial_CyclicShift"], [246, 1, 1, "", "m_CS"], [246, 1, 1, "", "nID"], [246, 1, 1, "", "numBatches"], [246, 1, 1, "", "numInterlacedRBs"], [246, 1, 1, "", "numRBs"], [246, 1, 1, "", "numberOfSymb"], [246, 1, 1, "", "pucch_GroupHopping"], [246, 1, 1, "", "seqNumber"], [246, 1, 1, "", "slotNumber"], [246, 1, 1, "", "start_SymbIndex"]], "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence": [[247, 1, 1, "", "indexPUCCH"], [247, 1, 1, "", "initial_CyclicShift"], [247, 1, 1, "", "m_CS"], [247, 1, 1, "", "maxNumPRBs"], [247, 1, 1, "", "nHop"], [247, 1, 1, "", "nID"], [247, 1, 1, "", "numInterlacedRBs"], [247, 1, 1, "", "numRBs"], [247, 1, 1, "", "numberOfSymb"], [247, 1, 1, "", "pucch_GroupHopping"], [247, 1, 1, "", "slotNumber"], [247, 1, 1, "", "start_SymbIndex"]], "toolkit5G.SequenceGeneration.SRS": [[254, 1, 1, "", "lengthOfSequence"], [254, 1, 1, "", "nrOfCyclicShift"], [254, 1, 1, "", "nrofSymbols"], [254, 1, 1, "", "sequenceId"], [254, 1, 1, "", "slotIndex"], [254, 1, 1, "", "startPosition"], [254, 1, 1, "", "symbolIndices"], [254, 1, 1, "", "transmissionComb"]], "toolkit5G.SymbolMapping": [[258, 0, 1, "", "Demapper"], [259, 0, 1, "", "Mapper"]]}, "objtypes": {"0": "py:class", "1": "py:property", "2": "py:method"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "property", "Python property"], "2": ["py", "method", "Python method"]}, "titleterms": {"get": [0, 365], "start": [0, 365], "understand": 0, "api": [0, 1], "document": [0, 1, 361], "hello": 0, "world": 0, "import": [0, 285, 287, 288, 289, 291, 294, 301, 302, 304, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 334, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 353, 354, 365], "python": [0, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 307, 308, 309, 311, 312, 314, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 352, 353, 354, 365], "librari": [0, 285, 287, 288, 289, 291, 294, 301, 302, 304, 305, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 353, 354, 359, 362, 363, 365], "how": [0, 361, 363], "5g": [0, 1, 12, 23, 33, 35, 37, 65, 84, 107, 127, 151, 161, 162, 168, 196, 198, 206, 234, 239, 260, 267, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 296, 301, 302, 303, 304, 305, 307, 308, 309, 310, 311, 312, 313, 316, 317, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352, 353, 354, 359, 360, 361, 362, 363, 365], "toolkit": [0, 1, 284, 289, 291, 294, 301, 302, 304, 305, 307, 308, 309, 311, 312, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 347, 349, 351, 352, 353, 354, 359, 360, 361, 362, 363, 365], "creat": [0, 330, 331, 334, 360, 365], "object": [0, 365], "all": [0, 312, 327], "modul": [0, 1, 33, 47, 70, 97, 113, 172, 289, 291, 301, 351], "gener": [0, 15, 18, 39, 40, 46, 132, 138, 235, 237, 243, 249, 285, 287, 289, 291, 294, 301, 302, 311, 312, 323, 325, 326, 327, 330, 331, 332, 333, 334, 335, 337, 341, 342, 343, 344, 345, 346, 347, 348, 351, 352, 354, 365], "payload": [0, 39, 40, 45, 46, 351, 365], "bit": [0, 11, 24, 27, 43, 44, 56, 57, 68, 69, 75, 76, 101, 102, 111, 112, 118, 119, 143, 144, 147, 152, 159, 207, 208, 210, 301, 365], "encod": [0, 4, 6, 10, 12, 55, 74, 96, 117, 142, 144, 146, 147, 365], "them": 0, "symbol": [0, 49, 72, 99, 115, 169, 174, 257, 269, 270, 271, 286, 291, 301, 338, 339, 351, 365], "map": [0, 49, 72, 99, 115, 130, 131, 136, 137, 169, 174, 215, 216, 218, 219, 226, 238, 257, 301, 338, 339, 351], "pass": [0, 311, 327, 330, 331, 334, 337, 351, 352, 354], "through": [0, 311, 327, 330, 331, 334, 337, 351, 352, 354], "awgn": [0, 318, 338, 365], "channel": [0, 10, 15, 16, 18, 20, 22, 26, 55, 56, 58, 74, 75, 77, 103, 104, 117, 118, 120, 142, 144, 145, 146, 147, 153, 158, 183, 184, 185, 186, 187, 188, 189, 190, 191, 211, 228, 229, 230, 232, 233, 234, 248, 249, 261, 269, 270, 271, 275, 276, 291, 302, 303, 311, 312, 316, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 341, 342, 343, 344, 345, 346, 347, 349, 350, 351, 352, 354, 365], "demap": [0, 301, 365], "detect": [0, 273, 274, 351, 365], "error": [0, 13, 301, 302, 318, 330, 331, 332, 333, 334, 335, 352, 365], "block": [0, 7, 11, 28, 39, 44, 46, 56, 59, 69, 75, 78, 92, 93, 94, 108, 112, 118, 121, 143, 144, 147, 148, 149, 151, 154, 158, 161, 212, 235, 237, 238, 301, 304, 305, 306, 307, 308, 309, 318, 339, 352, 365], "comput": [0, 9, 94, 309, 327, 334, 348, 351, 365], "rate": [0, 56, 75, 100, 102, 118, 151, 155, 156, 157, 159, 160, 161, 209, 213, 214, 301, 318, 339, 352], "constel": [0, 289, 291, 294, 318, 351, 365], "diagram": [0, 289, 291, 294, 351, 365], "tx": [0, 29, 289, 291, 318, 342, 349, 351], "rx": [0, 318, 342, 349, 351], "link": [0, 280, 311, 323, 325, 326, 352, 354, 365], "level": [0, 305, 311, 323, 325, 326, 352, 354, 365], "simul": [0, 19, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 352, 353, 354, 365], "perform": [0, 10, 55, 74, 117, 142, 146, 291, 294, 301, 302, 311, 318, 322, 323, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 351, 352, 353, 365], "resourc": [0, 130, 131, 136, 137, 215, 216, 218, 219, 226, 227, 238, 282, 294, 297, 327, 328, 330, 331, 337, 351], "script": 0, "tabl": [1, 2, 10, 23, 33, 39, 42, 46, 49, 51, 53, 55, 65, 67, 72, 74, 84, 99, 107, 110, 115, 117, 127, 142, 146, 162, 168, 171, 174, 196, 198, 234, 235, 237, 239, 243, 249, 259, 301, 329, 331, 334, 338, 353], "1": [1, 10, 23, 29, 33, 39, 46, 55, 65, 74, 84, 107, 117, 127, 133, 142, 144, 146, 147, 162, 168, 196, 198, 217, 218, 219, 220, 222, 234, 235, 237, 239, 243, 244, 247, 249, 274, 305, 326], "The": 1, "packag": 1, "support": [1, 29], "cyclic": [2, 41, 42, 50, 51, 53, 66, 67, 109, 110], "redund": [2, 41, 42, 50, 51, 53, 66, 67, 109, 110], "check": [2, 6, 41, 42, 50, 51, 53, 66, 67, 96, 109, 110, 339], "2": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 140, 141, 144, 147, 171, 174, 223, 243, 245, 259, 273, 305], "uplink": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 171, 174, 190, 191, 234, 243, 259, 276, 320, 332, 333, 335], "refer": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 171, 174, 228, 231, 243, 248, 249, 251, 254, 259, 261, 265, 301, 304, 305, 306, 307, 308, 309, 311, 318, 330, 331, 334, 336, 351], "signal": [2, 22, 42, 49, 51, 53, 67, 72, 99, 110, 115, 171, 174, 228, 231, 235, 237, 238, 243, 252, 253, 255, 256, 259, 261, 265, 330, 331, 334, 351, 352], "its": [2, 10, 42, 49, 51, 53, 55, 67, 72, 74, 99, 110, 115, 117, 142, 146, 171, 174, 243, 259, 335], "util": [2, 42, 49, 51, 53, 67, 72, 99, 110, 115, 171, 174, 243, 259], "crc": [3, 4, 365], "decod": [3, 5, 6, 10, 12, 34, 35, 55, 74, 86, 88, 96, 117, 142, 146, 291, 294, 308, 328, 351, 353, 365], "ham": [5, 318, 322], "coder": [5, 54, 57, 58, 59, 73, 76, 77, 78, 116, 119, 120, 121, 144, 145, 147, 152, 153, 154, 155, 158, 159, 160, 210, 211, 212, 213, 338, 339], "sphere": 5, "syndrom": 5, "base": [5, 192, 193, 194, 196, 197, 198, 199, 202, 203, 204, 285, 288, 289, 291, 294, 302, 311, 312, 318, 324, 325, 326, 327, 330, 331, 332, 333, 334, 335, 353, 354], "low": [6, 96, 244, 245, 339], "densiti": [6, 96, 339], "pariti": [6, 96, 339], "code": [6, 7, 10, 11, 12, 29, 44, 55, 69, 74, 92, 93, 96, 112, 117, 142, 143, 144, 146, 147, 148, 149, 298, 315, 318, 322, 329, 338, 339], "ldpc": [6, 9, 96, 101, 102, 207, 208, 209, 315, 339], "codec": [6, 10, 55, 74, 96, 117, 142, 146], "subcompon": [6, 96], "codeblock": [7, 8, 92, 93], "process": [7, 8, 11, 20, 30, 44, 69, 90, 91, 108, 112, 143, 328, 351, 354], "receiv": [7, 11, 21, 44, 69, 90, 92, 93, 95, 108, 112, 143, 148, 149, 175, 181, 184, 185, 186, 188, 189, 277, 285, 288, 289, 291, 294, 327, 328, 337, 345, 346, 351, 352], "segreg": [7, 11, 44, 69, 92, 112, 143, 148], "aggreg": [7, 11, 44, 69, 93, 112, 143, 149, 305, 312, 323, 351], "transmitt": [8, 11, 44, 69, 91, 92, 93, 95, 108, 112, 143, 148, 149, 176, 182, 184, 185, 186, 188, 189, 285, 287, 289, 291, 294, 311, 318, 328, 330, 331, 334], "segment": [8, 11, 44, 69, 93, 112, 143, 149], "concaten": [8, 11, 44, 69, 92, 112, 143, 148], "paramet": [9, 18, 65, 84, 107, 127, 162, 168, 239, 249, 272, 285, 287, 288, 291, 294, 301, 302, 304, 305, 306, 307, 308, 309, 311, 312, 314, 318, 322, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354], "polar": [10, 54, 55, 57, 58, 59, 73, 74, 76, 77, 78, 116, 117, 119, 120, 121, 142, 146, 152, 153, 154, 155, 158, 159, 160, 210, 211, 212, 213, 315, 338], "configur": [10, 55, 74, 117, 142, 146, 260, 261, 262, 263, 264, 265, 266, 267, 285, 287, 288, 289, 291, 294, 302, 332, 333, 335, 337, 338, 339, 352, 354], "differ": [10, 55, 74, 117, 142, 146, 302, 304, 305, 308, 309, 325, 326, 332, 339], "bioglio": [10, 55, 74, 117, 142, 146], "comparison": [10, 55, 74, 117, 142, 146, 302, 318, 336], "method": [10, 55, 74, 117, 142, 146, 192, 195, 202, 302, 330, 331, 332, 333, 334, 335], "compon": [10, 55, 74, 117, 142, 146, 150, 184, 185, 186, 188, 189, 235, 237], "input": [11, 27, 43, 44, 68, 69, 111, 112, 143, 301], "interleav": [11, 23, 24, 25, 26, 27, 28, 43, 44, 56, 58, 59, 68, 69, 75, 77, 78, 101, 111, 112, 118, 120, 121, 143, 153, 154, 158, 208, 211, 212], "deinterleav": [11, 24, 25, 27, 44, 69, 112, 143], "reed": [12, 144, 147, 315, 329], "muller": [12, 144, 147, 315, 329], "forward": 13, "correct": [13, 290], "antenna": [14, 341, 342, 343, 344, 345, 346, 347, 348, 349], "arrai": [14, 341, 342, 343, 344, 345, 346, 347, 348, 349], "element": 14, "3gpp_38_901": 14, "hertzian": 14, "dipol": 14, "linear": 14, "model": [16, 17, 312, 318, 349, 350], "node": [17, 342, 345, 347], "mobil": [17, 342, 345, 346, 347], "random": [17, 187, 250], "walk": 17, "circular": [17, 19], "rout": [17, 346], "vehicl": 17, "drop": [17, 19], "highwai": 17, "layout": [19, 341, 342, 343, 344, 345, 346, 347, 348, 349], "b": [19, 287, 308, 346], "hexagon": [19, 341], "rectangular": 19, "ue": [19, 288, 302, 305, 307, 308, 309, 328, 330, 331, 332, 333, 334, 335, 345, 346], "hardwar": 20, "impair": 20, "add": [21, 327, 330, 331, 334, 337], "nois": [21, 327, 330, 331, 334, 337, 351], "cfo": [21, 268, 290], "appli": 22, "transmit": [22, 291, 294, 330, 331, 334, 337, 346, 351], "pbch": [25, 39, 45, 46, 52, 184, 262, 266, 269, 291, 294, 351, 352], "de": [26, 57, 58, 59, 76, 77, 78, 101, 102, 119, 120, 121, 130, 134, 136, 144, 147, 151, 152, 159, 161, 207, 208, 210, 211, 212, 215, 217, 218], "sub": [28, 56, 59, 75, 78, 118, 121, 154, 158, 212], "book": 29, "type": [29, 244, 245, 326, 337], "arrang": 29, "i": [29, 307, 337, 361], "singl": [29, 312], "panel": 29, "assum": 29, "atleast": 29, "4": [29, 141, 178, 225, 243, 301, 305], "csi": [29, 228, 248, 261, 275, 311, 313, 337], "r": [29, 228, 248, 261, 275, 337], "port": 29, "multi": 29, "8": [29, 301, 305], "mimo": [30, 311, 324, 325, 326], "orthogon": 31, "frequenc": [31, 267, 268, 288, 290, 327, 341, 342, 343, 344, 347, 352], "divis": 31, "multiplex": 31, "content": [31, 39, 46, 298, 301, 329, 331, 334, 338, 353, 361], "ofdm": [32, 33, 286, 289, 291, 327, 330, 331, 334, 336, 341, 342, 343, 344, 345, 346, 347, 349, 351, 352], "demodul": [32, 249, 291, 351], "posit": [33, 196, 197, 198, 199, 206, 231, 251, 276, 301, 302, 330, 331, 332, 333, 334, 335], "network": [33, 196, 198, 206, 285, 287, 288, 289, 290, 291, 292, 293, 294, 302, 310, 311, 313, 316, 324, 325, 326, 327, 328, 330, 331, 334, 335, 336, 352], "transform": [34, 35, 36, 37], "precod": [36, 37, 324, 325, 326, 337, 354], "downlink": [38, 103, 104, 185, 186, 229, 230, 233, 243, 275, 285, 287, 288, 289, 291, 292, 293, 294, 303, 319, 323, 324, 325, 326, 330, 331, 334, 337, 354], "control": [38, 185, 189, 190, 227, 230, 232, 234, 303, 323], "inform": [38, 39, 46, 144, 147, 228, 248, 261, 351, 353, 361], "dci": 38, "master": [39, 46], "mib": [39, 46, 327], "extract": [39, 46, 291, 294, 330, 331, 337], "demapp": [48, 60, 71, 79, 95, 98, 114, 122, 170, 173, 258, 329], "mapper": [49, 72, 95, 99, 115, 171, 174, 259, 329, 365], "scrambler": [52, 65, 84, 107, 127, 165, 168, 242], "match": [56, 75, 100, 102, 118, 151, 155, 156, 157, 159, 160, 161, 209, 213, 214], "select": [56, 57, 75, 76, 102, 118, 119, 152, 159, 207, 210, 309, 327, 330, 331, 334], "rnti": [61, 62, 80, 81, 123, 124, 164, 241], "mask": [61, 62, 80, 81, 123, 124, 164, 241], "scrambl": [63, 65, 82, 84, 105, 107, 125, 127, 162, 166, 168, 239], "pdcch": [63, 82, 125, 185, 230, 270, 278, 304, 305, 306, 307, 308, 309, 328], "descrambl": [64, 83, 106, 126, 163, 167, 240], "pdsch": [85, 86, 87, 88, 89, 105, 186, 263, 264, 271, 293, 294, 301, 311, 354], "lower": [85, 86, 263], "physic": [85, 86, 87, 88, 103, 104, 175, 176, 183, 184, 185, 186, 187, 188, 189, 190, 191, 229, 230, 232, 233, 234, 263, 264, 303, 323, 352, 354], "layer": [85, 86, 87, 88, 95, 175, 176, 263, 264, 318], "chain": [85, 86, 87, 88, 89, 90, 91, 175, 176, 180, 181, 182], "upper": [87, 88, 175, 176, 264], "transport": [94, 108], "size": [94, 235, 237, 308, 309, 339], "share": [103, 104, 186, 191, 229, 233, 354], "dmr": [103, 104, 229, 249, 351], "pucch": [128, 133, 140, 150, 166, 175, 176, 177, 178, 179, 190, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 234, 246, 247, 353], "format": [128, 133, 140, 141, 177, 178, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 234, 246, 247, 353], "0": [128, 215, 216, 221, 246, 353, 361], "format0": 129, "sequenc": [132, 138, 243, 244, 245, 246, 247, 248, 249, 250, 251, 254, 351], "spread": [134, 139, 217, 220, 348], "format1": 135, "3": [141, 177, 224, 361], "small": [144, 147, 151, 161], "length": [144, 147, 151, 161, 339], "other": [144, 147], "pusch": [180, 191], "broadcast": [184, 188, 352], "access": [187, 351], "prach": [187, 320], "sidelink": [188, 189, 232, 235, 243, 253, 256], "psbch": 188, "pscch": [189, 232], "dft": [192, 202, 336], "aoa": [192, 335, 348], "esprit": [193, 203], "doa": [193, 194, 196, 197], "estim": [193, 194, 195, 196, 197, 198, 199, 203, 204, 205, 206, 268, 269, 270, 271, 272, 275, 276, 290, 291, 302, 316, 330, 331, 332, 333, 334, 335, 337, 348, 351, 353], "music": [194, 204], "direct": [195, 335], "arriv": [195, 196, 205, 330, 331, 332, 335], "least": [196, 197, 198, 199], "squar": [196, 197, 198, 199], "angl": [196, 334], "od": 196, "departur": [196, 334], "gradient": [196, 198], "descent": [196, 198], "hybrid": [197, 317], "toa": [197, 199, 203, 204, 205, 302, 330, 331, 332, 333, 334, 335], "mrtt": [197, 199], "tdoa": [197, 198, 330, 332], "4g": 198, "newton": 198, "raphson": 198, "optim": 200, "algorithm": [200, 277], "time": [205, 267, 273, 285, 286, 287, 288, 289, 291, 294, 327, 330, 331, 332, 341, 342, 343, 344, 345, 346, 347, 352], "delai": [205, 342, 348, 349], "submodul": 206, "set": [227, 236, 312, 314, 328, 352], "state": [228, 248, 261], "pr": [231, 251], "ptr": 233, "nr": 234, "synchron": [235, 237, 238, 252, 253, 255, 256, 273, 285, 286, 287, 288, 289, 291, 292, 294, 319, 320, 351, 352], "ssb": [235, 237, 238, 262, 266, 272, 285, 287, 289, 291, 292, 294, 319, 327, 351, 352], "grid": [235, 237, 285, 287, 289, 291, 294, 327, 328, 330, 331, 334, 337, 351, 352], "search": [236, 328], "space": [236, 328], "papr": [244, 245, 336], "each": [249, 323, 329, 338, 342, 352], "pseudo": 250, "pn": 250, "primari": [252, 253, 351], "": [253, 256, 336], "pss": [253, 273, 285, 286, 287, 288, 289, 291, 294, 351], "sound": [254, 265], "sr": [254, 265, 276, 302, 332, 333, 335], "secondari": [255, 256, 351], "sss": [256, 274, 351], "carrier": [268, 290, 347], "offset": [268, 290], "equal": [269, 270, 271, 291, 351], "cell": [273, 274, 332, 351], "id": [273, 274, 351], "us": [275, 276, 284, 285, 286, 287, 288, 292, 293, 294, 311, 319, 320, 327, 332, 333, 335, 337, 360], "schedul": [278, 279, 283, 304, 305, 306, 307, 308, 309], "round": 279, "robin": 279, "adapt": [280, 281], "rank": [281, 325, 326, 337], "alloc": 282, "research": 284, "work": 284, "carri": 284, "out": 284, "frame": [285, 287, 288], "some": [285, 287, 288], "basic": [285, 287, 288, 312, 323, 332], "emul": [285, 287, 288, 289, 291], "construct": [285, 287, 351], "transmiss": [285, 287, 289, 291, 294, 327, 330, 331, 334, 351, 352], "domain": [285, 287, 341, 342, 343, 344, 347, 349], "sampl": [285, 287, 301], "sdr": [285, 287, 288, 289, 291, 294, 295], "setup": [285, 287, 288, 289, 291, 294, 322, 365], "rf": [285, 287, 288, 289, 291, 294], "recept": [285, 288, 289, 291, 294], "correl": [285, 288, 289, 291, 294], "visual": [285, 302, 327, 330, 331, 332, 333, 334, 335], "save": [285, 354], "run": 285, "side": [287, 288, 328, 351, 354], "implement": [287, 288, 289, 291, 294, 354], "spectrum": [291, 294, 342, 351], "verif": [291, 294], "data": [293, 294, 318], "commun": [293, 294], "relat": 294, "recours": 294, "kei": 294, "indic": 294, "integr": 295, "introductori": 296, "cours": 296, "standard": 296, "learn": [297, 301, 313, 318], "licens": [298, 359, 362, 363], "trademark": 298, "sourc": 298, "tentet": 299, "list": 299, "featur": [299, 361], "In": 299, "progress": 299, "To": 299, "releas": [299, 364], "soon": 299, "next": 299, "quarter": 299, "befor": [299, 312], "septemb": 299, "2023": 299, "march": 299, "2024": 299, "previou": 300, "version": 300, "databas": [301, 312], "preprocess": [301, 312], "postprocess": 301, "train": [301, 312, 314, 318], "valid": 301, "infer": 301, "from": [301, 318, 351], "llrnet": 301, "output": 301, "m": 301, "6": 301, "throughput": [301, 311, 325, 326], "ber": [301, 322, 323, 325, 326, 339, 351, 353, 365], "framework": 301, "deploy": 301, "section": 301, "evalu": [301, 311, 322, 329, 338, 339, 351, 352, 353, 365], "v": [301, 307, 322, 323, 325, 326, 334, 336, 339, 365], "snr": [301, 322, 323, 325, 326, 339, 352, 365], "db": 301, "16": [301, 305], "qam": 301, "64": 301, "256": 301, "bler": [301, 311, 318, 322, 323, 325, 326, 352, 365], "10000": [301, 325, 326, 352, 354], "batch": [301, 323, 325, 326, 352, 354], "64000": 301, "complex": 301, "analysi": [301, 302, 304, 310, 330, 331, 332, 333, 334, 335, 336, 351], "conclus": [301, 322], "limit": 301, "between": 302, "millimet": [302, 330, 335, 343], "wave": [302, 330], "wireless": [302, 311, 312, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 341, 343, 344, 345, 347, 349, 351, 352, 354], "slot": [302, 332, 333, 335], "ul": [302, 332, 333, 335], "result": [302, 304, 325, 326, 339, 354], "averag": [302, 325, 326, 329, 336, 338, 339, 352, 354], "over": [302, 325, 326, 329, 338, 339, 352, 354], "2000": [302, 330, 331, 332, 333, 334], "probabl": [304, 305, 306, 307, 308, 309, 310, 348], "coverag": [304, 352], "condit": [304, 337], "good": 304, "scenario": [304, 346], "medium": 304, "extrem": 304, "plot": [304, 305, 306, 307, 308, 318, 329, 341, 343, 344, 345, 347, 353], "variat": [305, 306, 339, 345, 346], "al": 305, "impact": [305, 307, 308], "number": [305, 306, 307, 309, 337], "analyz": [306, 307, 308], "effect": 306, "candid": 306, "strategi": 307, "ii": 307, "capabl": 308, "case": 308, "coreset": [308, 309, 323, 328], "reduc": 308, "blind": [308, 328], "A": [308, 311, 323, 325, 326, 328, 352], "minimum": 309, "given": 309, "target": 309, "numu": 309, "5": 309, "10": [309, 360, 363], "15": 309, "displai": [309, 312, 328, 330, 331, 337, 345, 352, 365], "requir": [309, 359, 362, 363], "meet": 309, "blockag": 310, "redcap": 310, "devic": [310, 330], "compress": [311, 313], "reconstruct": [311, 313, 351], "csinet": [311, 314], "tdd": 311, "massiv": [311, 324, 325, 326], "cdl": [311, 323, 325, 326, 328, 352], "reconstrunct": 311, "net": 311, "svd": [311, 324, 325, 337, 354], "beamform": [311, 330, 331, 334, 337, 351, 354], "perfect": 311, "imperfect": 311, "dataset": [312, 314, 329, 338], "ai": [312, 313, 314], "common": 312, "storag": 312, "sparsiti": [312, 342, 349], "artifici": 313, "intellig": 313, "machin": 313, "ml": [313, 314], "load": 314, "compar": [315, 351], "studi": [315, 330, 331, 334, 345], "qualiti": [316, 330, 331], "beyond": [316, 317, 331, 334, 346], "automat": 317, "repeat": 317, "request": 317, "an": [318, 360], "phy": 318, "autoencod": 318, "step": 318, "test": 318, "normal": 318, "function": [318, 345], "defin": 318, "line": [318, 335, 348], "n": 318, "k": [318, 330, 331, 334, 348], "system": [319, 320, 351, 359, 360, 362, 363], "project": 321, "For": [323, 330, 331, 332, 333], "valu": [323, 352, 353], "reliabl": [323, 339], "20000": 323, "combin": [324, 325, 326, 351], "se": [325, 326], "codebook": 326, "p1": 327, "procedur": [327, 331, 334, 339, 363], "beam": [327, 334, 349], "manag": 327, "ati": 327, "power": [327, 336, 345, 346], "heatmap": [327, 342, 352], "rsrp": [327, 334], "station": 327, "topologi": 327, "65": 329, "5000": 329, "point": [329, 338], "industri": 330, "iot": 330, "interpol": [330, 331], "locu": [330, 331, 335], "circl": [330, 331], "best": [330, 331, 334], "measur": [330, 331, 334], "geni": [330, 331, 334], "aid": [330, 331, 334], "further": [330, 331, 334, 345], "outdoor": [332, 341, 345, 348], "urban": 332, "micro": 332, "site": [332, 345], "indoor": [333, 335, 343, 344], "open": [333, 344], "offic": [333, 344], "rural": [334, 345], "macro": [334, 345], "terrain": [334, 341, 343, 344, 348], "window": [334, 360, 363], "index": 334, "aod": [334, 348], "dl": 334, "local": 335, "factori": [335, 343], "accuraci": 335, "1300": 335, "peak": [336, 351], "ratio": 336, "cp": 336, "aclr": 336, "100": [338, 339], "fix": 339, "follow": 339, "ar": 339, "tb": 339, "deploi": [341, 343], "geometri": 341, "coeffici": [341, 342, 343, 344, 345, 346, 347, 349], "magnitud": [341, 343, 344, 347], "respons": [341, 343, 344, 347], "spatial": 342, "consist": 342, "statist": 342, "realist": 342, "amplitud": 342, "subcarri": 342, "accross": 342, "One": 342, "phase": 342, "doppler": 342, "dens": 343, "high": 343, "band": 343, "genar": 344, "user": 345, "connect": 345, "across": [345, 346], "anim": 345, "snapshot": 345, "dual": 346, "multipl": 347, "propag": 348, "characterist": 348, "rough": 348, "sight": 348, "path": 348, "loss": 348, "distribut": 348, "shadow": 348, "fade": 348, "rician": 348, "factor": 348, "charaterist": 348, "angular": 348, "azimuth": 348, "elev": 348, "demonstr": 349, "detail": [350, 360, 363], "tutori": [350, 355, 359, 362], "3gpp": 350, "initi": 351, "extern": 351, "libari": 351, "odfm": 351, "analog": 351, "addit": 351, "largest": 351, "extact": 351, "assist": 351, "libraier": 352, "m_c": 353, "mc": 353, "recevi": 354, "challeng": [356, 357], "Of": 356, "thi": [356, 358], "week": 356, "arxiv": 357, "ed": 357, "solut": 358, "month": 358, "problem": 358, "instal": [359, 360, 362, 363], "depend": [359, 362, 363], "miniconda": [359, 360, 362], "jupyt": [359, 360, 362], "notebook": [359, 360, 362], "final": [359, 360, 362], "confirm": [359, 360, 362], "activ": [359, 362, 363], "video": [359, 362], "ubuntu": [360, 363], "updat": 360, "11": [360, 363], "environ": 360, "conda": 360, "salient": 361, "technic": 361, "r24a": 361, "organ": 361, "look": 361, "help": 361, "more": 361, "20": 363, "04": 363, "22": 363, "note": 364}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Getting Started": [[0, "getting-started"]], "Understanding API Documentation": [[0, "understanding-api-documentation"]], "Hello World!": [[0, "hello-world"]], "Import Python Libraries": [[0, "import-python-libraries"], [294, "Import-Python-Libraries"], [301, "Import-Python-Libraries"], [302, "Import-Python-Libraries"], [304, "Import-Python-Libraries"], [311, "Import-Python-Libraries"], [312, "Import-Python-Libraries"], [314, "Import-Python-Libraries"], [325, "Import-Python-Libraries"], [325, "import-python-libraries-1"], [326, "Import-Python-Libraries"], [326, "import-python-libraries-1"], [336, "Import-Python-Libraries"], [337, "Import-Python-Libraries"], [337, "import-python-libraries-1"], [341, "Import-Python-Libraries"], [342, "Import-Python-Libraries"], [343, "Import-Python-Libraries"], [344, "Import-Python-Libraries"], [346, "Import-Python-Libraries"], [349, "Import-Python-Libraries"], [352, "Import-Python-Libraries"], [354, "Import-Python-Libraries"], [365, "Import-Python-Libraries"]], "How to import 5G Toolkit Libraries": [[0, "how-to-import-5g-toolkit-libraries"]], "Create Objects for all the Modules": [[0, "create-objects-for-all-the-modules"]], "Generate Payload bits and Encode them": [[0, "generate-payload-bits-and-encode-them"]], "Symbol Mapping the Encoded Bits": [[0, "symbol-mapping-the-encoded-bits"]], "Pass through AWGN Channel": [[0, "pass-through-awgn-channel"]], "Demapping the Symbols": [[0, "demapping-the-symbols"], [365, "Demapping-the-Symbols"]], "Detect Error in the Blocks": [[0, "detect-error-in-the-blocks"]], "Compute Bit and Block Error Rate": [[0, "compute-bit-and-block-error-rate"]], "Constellation Diagrams at the Tx and Rx": [[0, "constellation-diagrams-at-the-tx-and-rx"]], "Link Level Simulation": [[0, "link-level-simulation"], [365, "Link-Level-Simulation"]], "Bit/Block Error Rate Performance": [[0, "bit-block-error-rate-performance"]], "Resources and Scripts": [[0, "resources-and-scripts"]], "API Documentation": [[1, "api-documentation"]], "Table-1: The modules and packages supported by 5G Toolkit": [[1, "id1"]], "Cyclic Redundancy Check": [[2, "cyclic-redundancy-check"], [42, "cyclic-redundancy-check"], [51, "cyclic-redundancy-check"], [53, "cyclic-redundancy-check"], [67, "cyclic-redundancy-check"], [110, "cyclic-redundancy-check"]], "Table-2: Uplink Reference Signal and its utility": [[2, "id1"], [42, "id1"], [49, "id3"], [51, "id1"], [53, "id1"], [67, "id1"], [72, "id3"], [99, "id3"], [110, "id1"], [115, "id3"], [171, "id3"], [174, "id3"], [243, "id4"], [259, "id3"]], "CRC Decoder": [[3, "crc-decoder"]], "CRC Encoder": [[4, "crc-encoder"]], "Hamming Coder": [[5, "hamming-coder"]], "Hamming coder": [[5, "id1"]], "Hamming Decoder": [[5, "hamming-decoder"]], "Hamming Decoder - Sphere Decoding": [[5, "hamming-decoder-sphere-decoding"]], "Hamming Decoder - Syndrome Based Decoding": [[5, "hamming-decoder-syndrome-based-decoding"]], "Low Density Parity Check Codes": [[6, "low-density-parity-check-codes"], [96, "low-density-parity-check-codes"]], "LDPC Encoder": [[6, "ldpc-encoder"], [96, "ldpc-encoder"]], "LDPC Decoder": [[6, "ldpc-decoder"], [96, "ldpc-decoder"]], "LDPC Codec Subcomponents": [[6, "ldpc-codec-subcomponents"], [96, "ldpc-codec-subcomponents"]], "Codeblock Processing: Receiver": [[7, "codeblock-processing-receiver"]], "Code-block Segregation": [[7, "code-block-segregation"], [11, "code-block-segregation"], [44, "code-block-segregation"], [69, "code-block-segregation"], [112, "code-block-segregation"], [143, "code-block-segregation"]], "Codeblock Aggregation": [[7, "codeblock-aggregation"]], "Codeblock Processing: Transmitter": [[8, "codeblock-processing-transmitter"]], "Codeblock Segmentation": [[8, "codeblock-segmentation"]], "Codeblock Concatenation": [[8, "codeblock-concatenation"]], "LDPC Parameters Computation": [[9, "ldpc-parameters-computation"]], "Polar Codes": [[10, "polar-codes"], [55, "polar-codes"], [74, "polar-codes"], [117, "polar-codes"], [142, "polar-codes"], [146, "polar-codes"]], "Table-1: Polar codes and its configurations for different channels [Bioglio]": [[10, "id9"], [55, "id9"], [74, "id9"], [117, "id9"], [142, "id9"], [146, "id9"]], "Polar Encoder": [[10, "polar-encoder"], [55, "polar-encoder"], [74, "polar-encoder"], [117, "polar-encoder"], [142, "polar-encoder"], [146, "polar-encoder"]], "Polar Decoder": [[10, "polar-decoder"], [55, "polar-decoder"], [74, "polar-decoder"], [117, "polar-decoder"], [142, "polar-decoder"], [146, "polar-decoder"]], "Performance Comparison of Different Polar Decoding Methods.": [[10, "id10"], [55, "id10"], [74, "id10"], [117, "id10"], [142, "id10"], [146, "id10"]], "Polar Codec Components": [[10, "polar-codec-components"], [55, "polar-codec-components"], [74, "polar-codec-components"], [117, "polar-codec-components"], [142, "polar-codec-components"], [146, "polar-codec-components"]], "Code-block Processing: Transmitter": [[11, "code-block-processing-transmitter"], [44, "code-block-processing-transmitter"], [69, "code-block-processing-transmitter"], [112, "code-block-processing-transmitter"], [143, "code-block-processing-transmitter"]], "Code-block Segmentation": [[11, "code-block-segmentation"], [44, "code-block-segmentation"], [69, "code-block-segmentation"], [112, "code-block-segmentation"], [143, "code-block-segmentation"]], "Code-block Concatenation": [[11, "code-block-concatenation"], [44, "code-block-concatenation"], [69, "code-block-concatenation"], [112, "code-block-concatenation"], [143, "code-block-concatenation"]], "Code-block Processing: Receiver": [[11, "code-block-processing-receiver"], [44, "code-block-processing-receiver"], [69, "code-block-processing-receiver"], [112, "code-block-processing-receiver"], [143, "code-block-processing-receiver"]], "Code-block Aggregation": [[11, "code-block-aggregation"], [44, "code-block-aggregation"], [69, "code-block-aggregation"], [112, "code-block-aggregation"], [143, "code-block-aggregation"]], "Input Bit Interleavers": [[11, "input-bit-interleavers"], [44, "input-bit-interleavers"], [69, "input-bit-interleavers"], [112, "input-bit-interleavers"], [143, "input-bit-interleavers"]], "Input Bit Interleaver": [[11, "input-bit-interleaver"], [27, "input-bit-interleaver"], [27, "id1"], [43, "input-bit-interleaver"], [44, "input-bit-interleaver"], [68, "input-bit-interleaver"], [69, "input-bit-interleaver"], [111, "input-bit-interleaver"], [112, "input-bit-interleaver"], [143, "input-bit-interleaver"]], "Input Bit Deinterleaver": [[11, "input-bit-deinterleaver"], [44, "input-bit-deinterleaver"], [69, "input-bit-deinterleaver"], [112, "input-bit-deinterleaver"], [143, "input-bit-deinterleaver"]], "Reed Muller Codes": [[12, "reed-muller-codes"]], "Reed Muller Encoder 5G": [[12, "reed-muller-encoder-5g"]], "Reed Muller Decoder 5G": [[12, "reed-muller-decoder-5g"]], "Forward Error Correction": [[13, "forward-error-correction"]], "Antenna Array": [[14, "antenna-array"]], "Antenna Elements": [[14, "antenna-elements"]], "3GPP_38_901 Antenna Element": [[14, "gpp-38-901-antenna-element"]], "Hertzian Dipole Antenna Element": [[14, "hertzian-dipole-antenna-element"]], "Linear Dipole Antenna Element": [[14, "linear-dipole-antenna-element"]], "Channel Generator": [[15, "channel-generator"]], "Channel Models": [[16, "channel-models"]], "Node Mobility": [[17, "node-mobility"], [342, "Node-Mobility"], [345, "Node-Mobility"], [347, "Node-Mobility"]], "Mobility Models": [[17, "mobility-models"]], "Random-Walk": [[17, "random-walk"]], "Circular Route": [[17, "circular-route"]], "Vehicle Drops on HighWays": [[17, "vehicle-drops-on-highways"]], "Channel Parameter Generator": [[18, "channel-parameter-generator"]], "Simulation Layout": [[19, "simulation-layout"], [342, "Simulation-Layout"], [345, "Simulation-Layout"], [346, "Simulation-Layout"], [348, "Simulation-Layout"], [349, "Simulation-Layout"]], "BS Layouts": [[19, "bs-layouts"]], "Hexagonal Layout": [[19, "hexagonal-layout"]], "Rectangular Layout": [[19, "rectangular-layout"]], "UE Drops": [[19, "ue-drops"]], "Rectangular Drop": [[19, "rectangular-drop"]], "Circular Drop": [[19, "circular-drop"]], "Hexagonal Drop": [[19, "hexagonal-drop"]], "Channel Processing and Hardware Impairment": [[20, "channel-processing-and-hardware-impairment"]], "Add Noise and CFO at Receiver": [[21, "add-noise-and-cfo-at-receiver"]], "Apply Channel to Transmitted Signal": [[22, "apply-channel-to-transmitted-signal"]], "Interleavers": [[23, "interleavers"]], "Table-1: Interleavers in 5G": [[23, "id1"]], "Bit Interleavers": [[24, "bit-interleavers"]], "Bit Interleaver": [[24, "bit-interleaver"], [101, "bit-interleaver"], [208, "bit-interleaver"]], "Bit Deinterleaver": [[24, "bit-deinterleaver"]], "PBCH Interleaver": [[25, "pbch-interleaver"], [25, "id1"]], "PBCH DeInterleaver": [[25, "pbch-deinterleaver"]], "Channel Interleaver": [[26, "channel-interleaver"], [26, "id1"], [56, "channel-interleaver"], [58, "channel-interleaver"], [75, "channel-interleaver"], [77, "channel-interleaver"], [118, "channel-interleaver"], [120, "channel-interleaver"], [211, "channel-interleaver"]], "Channel De-interleaver": [[26, "channel-de-interleaver"], [58, "channel-de-interleaver"], [77, "channel-de-interleaver"], [120, "channel-de-interleaver"], [211, "channel-de-interleaver"]], "Input Bit DeInterleaver": [[27, "input-bit-deinterleaver"]], "Sub Block Interleaver": [[28, "sub-block-interleaver"], [28, "id1"], [28, "id4"], [56, "sub-block-interleaver"], [75, "sub-block-interleaver"], [118, "sub-block-interleaver"]], "Code-Books": [[29, "code-books"]], "Type-1 Code-Book": [[29, "type-1-code-book"]], "Arrangement of Type-I Single Panel assuming that Tx support atleast 4 CSI-RS ports.": [[29, "id3"]], "Arrangement of Type-I Multi Panel assuming that the Tx support atleast 8 CSI-RS ports": [[29, "id4"]], "MIMO Processing": [[30, "mimo-processing"]], "Orthogonal Frequency Division Multiplexing": [[31, "orthogonal-frequency-division-multiplexing"]], "Contents:": [[31, null], [361, null]], "OFDM: Demodulator": [[32, "ofdm-demodulator"]], "OFDM: Modulator": [[33, "ofdm-modulator"]], "Table-1: Positioning in 5G Networks": [[33, "id1"]], "Transform Decoding": [[34, "transform-decoding"]], "Transform Decoding for 5G": [[35, "transform-decoding-for-5g"]], "Transform Precoding": [[36, "transform-precoding"]], "Transform Precoding for 5G": [[37, "transform-precoding-for-5g"]], "Downlink Control Information (DCI)": [[38, "downlink-control-information-dci"]], "Master Information Block (MIB)": [[39, "master-information-block-mib"], [46, "master-information-block-mib"]], "Table-1: Content of PBCH Payload/MIB": [[39, "id1"], [46, "id1"]], "MIB Generation": [[39, "mib-generation"], [46, "mib-generation"]], "MIB Extraction": [[39, "mib-extraction"], [46, "mib-extraction"]], "Payload Generation": [[40, "payload-generation"]], "Cyclic Redundency Check": [[41, "cyclic-redundency-check"], [50, "cyclic-redundency-check"], [66, "cyclic-redundency-check"], [109, "cyclic-redundency-check"]], "PBCH Payload": [[45, "pbch-payload"]], "Modulation": [[47, "modulation"], [70, "modulation"], [97, "modulation"], [113, "modulation"], [172, "modulation"]], "Demapper": [[48, "demapper"], [60, "demapper"], [71, "demapper"], [79, "demapper"], [98, "demapper"], [114, "demapper"], [122, "demapper"], [170, "demapper"], [173, "demapper"], [258, "demapper"]], "Symbol Mapping": [[49, "symbol-mapping"], [72, "symbol-mapping"], [99, "symbol-mapping"], [115, "symbol-mapping"], [169, "symbol-mapping"], [174, "symbol-mapping"], [257, "symbol-mapping"]], "Mapper": [[49, "mapper"], [72, "mapper"], [99, "mapper"], [115, "mapper"], [171, "mapper"], [174, "mapper"], [259, "mapper"]], "PBCH Scrambler": [[52, "pbch-scrambler"]], "Polar Coder": [[54, "polar-coder"], [73, "polar-coder"], [116, "polar-coder"]], "Rate Matching": [[56, "rate-matching"], [75, "rate-matching"], [100, "rate-matching"], [118, "rate-matching"], [151, "rate-matching"], [157, "rate-matching"], [161, "rate-matching"]], "Bit Selection": [[56, "bit-selection"], [57, "bit-selection"], [75, "bit-selection"], [76, "bit-selection"], [102, "bit-selection"], [118, "bit-selection"], [119, "bit-selection"], [152, "bit-selection"], [159, "bit-selection"], [207, "bit-selection"], [210, "bit-selection"]], "Bit Selection for Polar Coder": [[57, "bit-selection-for-polar-coder"], [76, "bit-selection-for-polar-coder"], [119, "bit-selection-for-polar-coder"], [152, "bit-selection-for-polar-coder"], [159, "bit-selection-for-polar-coder"], [210, "bit-selection-for-polar-coder"]], "Bit De-selection": [[57, "bit-de-selection"], [76, "bit-de-selection"], [102, "bit-de-selection"], [119, "bit-de-selection"], [152, "bit-de-selection"], [159, "bit-de-selection"], [207, "bit-de-selection"], [210, "bit-de-selection"]], "Channel Interleaver for Polar Coder": [[58, "channel-interleaver-for-polar-coder"], [77, "channel-interleaver-for-polar-coder"], [120, "channel-interleaver-for-polar-coder"], [153, "channel-interleaver-for-polar-coder"], [158, "channel-interleaver-for-polar-coder"], [211, "channel-interleaver-for-polar-coder"]], "Sub Block Interleaver for Polar Coder": [[59, "sub-block-interleaver-for-polar-coder"], [78, "sub-block-interleaver-for-polar-coder"], [121, "sub-block-interleaver-for-polar-coder"], [154, "sub-block-interleaver-for-polar-coder"], [158, "sub-block-interleaver-for-polar-coder"], [212, "sub-block-interleaver-for-polar-coder"]], "Sub-block Interleaver": [[59, "sub-block-interleaver"], [78, "sub-block-interleaver"], [121, "sub-block-interleaver"], [212, "sub-block-interleaver"]], "Sub-block De-interleaver": [[59, "sub-block-de-interleaver"], [78, "sub-block-de-interleaver"], [121, "sub-block-de-interleaver"], [212, "sub-block-de-interleaver"]], "RNTI Masking": [[61, "rnti-masking"], [62, "rnti-masking"], [80, "rnti-masking"], [81, "rnti-masking"], [123, "rnti-masking"], [124, "rnti-masking"], [164, "rnti-masking"], [241, "rnti-masking"]], "Scrambling: PDCCH": [[63, "scrambling-pdcch"], [82, "scrambling-pdcch"], [125, "scrambling-pdcch"]], "Descrambler": [[64, "descrambler"], [83, "descrambler"], [106, "descrambler"], [126, "descrambler"], [163, "descrambler"], [167, "descrambler"], [240, "descrambler"]], "Scrambling": [[65, "scrambling"], [84, "scrambling"], [107, "scrambling"], [127, "scrambling"], [162, "scrambling"], [168, "scrambling"], [239, "scrambling"]], "Table-1: Scrambling and Scrambling parameters in 5G": [[65, "id4"], [84, "id4"], [107, "id4"], [127, "id4"], [162, "id1"], [168, "id4"], [239, "id1"]], "Scrambler": [[65, "scrambler"], [84, "scrambler"], [107, "scrambler"], [127, "scrambler"], [165, "scrambler"], [168, "scrambler"], [242, "scrambler"]], "PDSCH: Lower Physical layer Chain": [[85, "pdsch-lower-physical-layer-chain"]], "PDSCH: Lower Physical layer Chain Decoder": [[86, "pdsch-lower-physical-layer-chain-decoder"]], "PDSCH: Upper Physical layer Chain": [[87, "pdsch-upper-physical-layer-chain"]], "PDSCH: Upper Physical layer Chain Decoder": [[88, "pdsch-upper-physical-layer-chain-decoder"]], "PDSCH Chain": [[89, "pdsch-chain"]], "Receiver Processing": [[90, "receiver-processing"]], "Receiver": [[90, "receiver"]], "Receiver Chain": [[90, "receiver-chain"], [181, "receiver-chain"]], "Transmitter Processing": [[91, "transmitter-processing"]], "Transmitter": [[91, "transmitter"], [318, "Transmitter"]], "Transmitter Chain": [[91, "transmitter-chain"], [182, "transmitter-chain"]], "Code Block Concatenation": [[92, "code-block-concatenation"], [148, "code-block-concatenation"]], "Codeblock Concatenation: Transmitter": [[92, "codeblock-concatenation-transmitter"]], "Code-block Segregation: Receiver": [[92, "code-block-segregation-receiver"]], "Code Block Segmentation": [[93, "code-block-segmentation"], [149, "code-block-segmentation"]], "Codeblock Segmentation: Transmitter": [[93, "codeblock-segmentation-transmitter"]], "Code Block Aggregation: Receiver": [[93, "code-block-aggregation-receiver"], [149, "code-block-aggregation-receiver"]], "Transport Block Size Computation": [[94, "transport-block-size-computation"]], "Layer Mapper": [[95, "layer-mapper"]], "Layer Mapper: Transmitter": [[95, "layer-mapper-transmitter"]], "Layer Demapper: Receiver": [[95, "layer-demapper-receiver"]], "Bit Interleaver for LDPC": [[101, "bit-interleaver-for-ldpc"], [208, "bit-interleaver-for-ldpc"]], "Bit De-interleaver": [[101, "bit-de-interleaver"], [208, "bit-de-interleaver"]], "Rate matching for LDPC": [[102, "rate-matching-for-ldpc"], [209, "rate-matching-for-ldpc"]], "Bit Selection for LDPC": [[102, "bit-selection-for-ldpc"], [207, "bit-selection-for-ldpc"]], "Physical Downlink Shared Channel-DMRS": [[103, "physical-downlink-shared-channel-dmrs"], [104, "physical-downlink-shared-channel-dmrs"], [229, "physical-downlink-shared-channel-dmrs"]], "Scrambling: PDSCH": [[105, "scrambling-pdsch"]], "Transport Block Processing": [[108, "transport-block-processing"]], "Transport Block Processing: Transmitter": [[108, "transport-block-processing-transmitter"]], "Transport Block Processing: Receiver": [[108, "transport-block-processing-receiver"]], "PUCCH Format 0": [[128, "pucch-format-0"]], "Format0": [[129, "format0"]], "Resource De-Mapping": [[130, "resource-de-mapping"], [136, "resource-de-mapping"]], "Resource Mapping": [[131, "resource-mapping"], [137, "resource-mapping"], [226, "resource-mapping"]], "Sequence Generation": [[132, "sequence-generation"], [138, "sequence-generation"], [243, "sequence-generation"]], "PUCCH Format 1": [[133, "pucch-format-1"]], "De-Spreading": [[134, "de-spreading"]], "Format1": [[135, "format1"]], "Spreading": [[139, "spreading"]], "PUCCH Format 2": [[140, "pucch-format-2"]], "Format 2,3,4": [[141, "format-2-3-4"]], "Channel Coding of Small Block Length": [[144, "channel-coding-of-small-block-length"], [147, "channel-coding-of-small-block-length"]], "Encoding of 1-bit Information": [[144, "encoding-of-1-bit-information"], [147, "encoding-of-1-bit-information"]], "Encoding of 2-bit Information": [[144, "encoding-of-2-bit-information"], [147, "encoding-of-2-bit-information"]], "Encoding of other small block lengths (Reed Muller Coder)": [[144, "encoding-of-other-small-block-lengths-reed-muller-coder"], [147, "encoding-of-other-small-block-lengths-reed-muller-coder"]], "Channel De-Coding of Small Block Length": [[144, "channel-de-coding-of-small-block-length"], [147, "channel-de-coding-of-small-block-length"]], "Channel Coder": [[145, "channel-coder"]], "Code Block Concatenation: Transmitter": [[148, "code-block-concatenation-transmitter"]], "Code Block Segregation: Receiver": [[148, "code-block-segregation-receiver"]], "Code Block Segmentation: Transmitter": [[149, "code-block-segmentation-transmitter"]], "PUCCH Components": [[150, "pucch-components"]], "Rate matching for Small Block Length 5G": [[151, "rate-matching-for-small-block-length-5g"], [161, "rate-matching-for-small-block-length-5g"]], "De-Rate Matching": [[151, "de-rate-matching"], [161, "de-rate-matching"]], "Rate matching for Polar coder": [[155, "rate-matching-for-polar-coder"], [159, "rate-matching-for-polar-coder"], [213, "rate-matching-for-polar-coder"]], "Rate matching": [[156, "rate-matching"], [214, "rate-matching"]], "Rate Matching for Polar Coder": [[160, "rate-matching-for-polar-coder"]], "Scrambling: PUCCH": [[166, "scrambling-pucch"]], "PUCCH Receiver": [[175, "pucch-receiver"]], "PUCCH: Upper Physical Layer Chain": [[175, "pucch-upper-physical-layer-chain"], [176, "pucch-upper-physical-layer-chain"]], "PUCCH Transmitter": [[176, "pucch-transmitter"]], "PUCCH Format 3": [[177, "pucch-format-3"]], "PUCCH Format 4": [[178, "pucch-format-4"]], "PUCCH": [[179, "pucch"]], "PUSCH Chain": [[180, "pusch-chain"]], "Physical Channels": [[183, "physical-channels"]], "Physical Broadcast Channel (PBCH)": [[184, "physical-broadcast-channel-pbch"]], "PBCH Transmitter": [[184, "pbch-transmitter"]], "PBCH Receiver": [[184, "pbch-receiver"], [294, "PBCH-Receiver"]], "PBCH Components": [[184, "pbch-components"]], "Physical Downlink Control Channel (PDCCH)": [[185, "physical-downlink-control-channel-pdcch"], [230, "physical-downlink-control-channel-pdcch"]], "PDCCH Transmitter": [[185, "pdcch-transmitter"]], "PDCCH Receiver": [[185, "pdcch-receiver"]], "PDCCH Components": [[185, "pdcch-components"]], "Physical Downlink Shared Channel (PDSCH)": [[186, "physical-downlink-shared-channel-pdsch"]], "PDSCH Transmitter": [[186, "pdsch-transmitter"]], "PDSCH Receiver": [[186, "pdsch-receiver"], [294, "PDSCH-Receiver"]], "PDSCH Components": [[186, "pdsch-components"]], "Physical Random Access Channel (PRACH)": [[187, "physical-random-access-channel-prach"]], "Physical Sidelink Broadcast Channel (PSBCH)": [[188, "physical-sidelink-broadcast-channel-psbch"]], "PSBCH Transmitter": [[188, "psbch-transmitter"]], "PSBCH Receiver": [[188, "psbch-receiver"]], "PSBCH Components": [[188, "psbch-components"]], "Physical Sidelink Control Channel (PSCCH)": [[189, "physical-sidelink-control-channel-pscch"], [232, "physical-sidelink-control-channel-pscch"]], "PSCCH Transmitter": [[189, "pscch-transmitter"]], "PSCCH Receiver": [[189, "pscch-receiver"]], "PSCCH Components": [[189, "pscch-components"]], "Physical Uplink Control Channel (PUCCH)": [[190, "physical-uplink-control-channel-pucch"], [234, "physical-uplink-control-channel-pucch"]], "Physical Uplink Shared Channel (PUSCH)": [[191, "physical-uplink-shared-channel-pusch"]], "DFT based AoA Method": [[192, "dft-based-aoa-method"]], "ESPRIT based DoA Estimation": [[193, "esprit-based-doa-estimation"]], "MUSIC based DoA Estimation": [[194, "music-based-doa-estimation"]], "Direction of Arrival Estimation": [[195, "direction-of-arrival-estimation"]], "Direction of Arrival Estimation Methods": [[195, "id1"]], "Least Squares based Position Estimator for DoA": [[196, "least-squares-based-position-estimator-for-doa"]], "Table-1: Angle od Departure and Arrival based Positioning in 5G Networks": [[196, "id4"]], "Gradient Descent based Position Estimator for DoA": [[196, "gradient-descent-based-position-estimator-for-doa"]], "Least Square based Position Estimator for Hybrid ToA/mRTT and DoA": [[197, "least-square-based-position-estimator-for-hybrid-toa-mrtt-and-doa"]], "Least Square based Position Estimator for Hybrid TDoA and DoA": [[197, "least-square-based-position-estimator-for-hybrid-tdoa-and-doa"]], "Least Squares based Position Estimator for TDoA": [[198, "least-squares-based-position-estimator-for-tdoa"]], "Table-1: TDoA in 4G and 5G Networks": [[198, "id6"]], "Gradient Descent based Position Estimator for TDoA": [[198, "gradient-descent-based-position-estimator-for-tdoa"]], "Newton Raphson based Position Estimator for TDoA": [[198, "newton-raphson-based-position-estimator-for-tdoa"]], "Least Squares based Position Estimator for ToA/mRTT": [[199, "least-squares-based-position-estimator-for-toa-mrtt"]], "Optimization Algorithms": [[200, "optimization-algorithms"]], "DFT based Method": [[202, "dft-based-method"]], "ESPRIT based ToA Estimation": [[203, "esprit-based-toa-estimation"]], "MUSIC based ToA Estimation": [[204, "music-based-toa-estimation"]], "Time of Arrival (ToA)/Delay Estimation": [[205, "time-of-arrival-toa-delay-estimation"]], "Position Estimation": [[206, "position-estimation"], [206, "id1"]], "Positioning in 5G Networks": [[206, "id2"]], "Submodules": [[206, "submodules"]], "PUCCH Format 0 Resource De-Mapping": [[215, "pucch-format-0-resource-de-mapping"]], "PUCCH Format 0 Resource Mapping": [[216, "pucch-format-0-resource-mapping"]], "PUCCH Format-1 De-Spreading": [[217, "pucch-format-1-de-spreading"]], "PUCCH Format-1 Resource De-Mapping": [[218, "pucch-format-1-resource-de-mapping"]], "PUCCH Format-1 Resource Mapping": [[219, "pucch-format-1-resource-mapping"]], "PUCCH Format-1 Spreading": [[220, "pucch-format-1-spreading"]], "PUCCH Format-0": [[221, "pucch-format-0"]], "PUCCH Format-1": [[222, "pucch-format-1"]], "PUCCH Format-2": [[223, "pucch-format-2"]], "PUCCH Format-3": [[224, "pucch-format-3"]], "PUCCH Format-4": [[225, "pucch-format-4"]], "Control Resource Set": [[227, "control-resource-set"]], "Channel state Information reference signal (CSI-RS)": [[228, "channel-state-information-reference-signal-csi-rs"]], "Positioning Reference Signal (PRS)": [[231, "positioning-reference-signal-prs"]], "Physical Downlink Shared Channel-PTRS": [[233, "physical-downlink-shared-channel-ptrs"]], "Table-1: PUCCH Format in 5G-NR": [[234, "id1"]], "Sidelink Synchronization Signal Block (SSB) Grid Generation": [[235, "sidelink-synchronization-signal-block-ssb-grid-generation"]], "Table-1: Sizes of the components of SSBs": [[235, "id1"], [237, "id2"]], "Search Space Set": [[236, "search-space-set"]], "Synchronization Signal Block (SSB) Grid Generation": [[237, "synchronization-signal-block-ssb-grid-generation"]], "Synchronization Signal Block (SSB) Resource Mapping": [[238, "synchronization-signal-block-ssb-resource-mapping"]], "Table-1: Downlink Reference Signal and its utility": [[243, "id3"]], "Table-4: Sidelink Reference Signal and its utility": [[243, "id5"]], "Low PAPR Sequence Type 1": [[244, "low-papr-sequence-type-1"]], "Low PAPR Sequence Type 2": [[245, "low-papr-sequence-type-2"]], "PUCCH Format 0 Sequence": [[246, "pucch-format-0-sequence"]], "PUCCH Format 1 Sequence": [[247, "pucch-format-1-sequence"]], "Channel State Information Reference Sequence (CSI-RS)": [[248, "channel-state-information-reference-sequence-csi-rs"]], "Demodulation Reference Sequence (DMRS)": [[249, "demodulation-reference-sequence-dmrs"]], "Table-1: Parameters for generating DMRS for each channel.": [[249, "id3"]], "Pseudo Random (PN) Sequence": [[250, "pseudo-random-pn-sequence"]], "Positioning Reference Sequence (PRS)": [[251, "positioning-reference-sequence-prs"]], "Primary Synchronization Signal": [[252, "primary-synchronization-signal"]], "Primary Synchronization Signal for Sidelink (S-PSS)": [[253, "primary-synchronization-signal-for-sidelink-s-pss"]], "Sounding Reference Sequence (SRS)": [[254, "sounding-reference-sequence-srs"]], "Secondary Synchronization Signal": [[255, "secondary-synchronization-signal"]], "Secondary Synchronization Signal for Sidelink (S-SSS)": [[256, "secondary-synchronization-signal-for-sidelink-s-sss"]], "5G Configurations": [[260, "g-configurations"]], "Channel state information reference signal (CSI-RS) Configurations": [[261, "channel-state-information-reference-signal-csi-rs-configurations"]], "SSB/PBCH Configurations": [[262, "ssb-pbch-configurations"], [266, "ssb-pbch-configurations"]], "PDSCH Lower Physical Layer Configurations": [[263, "pdsch-lower-physical-layer-configurations"]], "PDSCH Upper Physical Layer Configurations": [[264, "pdsch-upper-physical-layer-configurations"]], "Sounding Reference Signal (SRS) Configurations": [[265, "sounding-reference-signal-srs-configurations"]], "Time-Frequency 5G-Configurations": [[267, "time-frequency-5g-configurations"]], "Carrier Frequency Offset (CFO) Estimation": [[268, "carrier-frequency-offset-cfo-estimation"]], "Channel Estimation and Symbol Equalization for PBCH": [[269, "channel-estimation-and-symbol-equalization-for-pbch"]], "Channel Estimation and Symbol Equalization for PDCCH": [[270, "channel-estimation-and-symbol-equalization-for-pdcch"]], "Channel Estimation and Symbol Equalization for PDSCH": [[271, "channel-estimation-and-symbol-equalization-for-pdsch"]], "SSB Parameters Estimation": [[272, "ssb-parameters-estimation"]], "Time Synchronization and PSS/Cell ID-2 Detection": [[273, "time-synchronization-and-pss-cell-id-2-detection"]], "SSS/Cell ID-1 Detection": [[274, "sss-cell-id-1-detection"]], "Downlink Channel Estimation using CSI-RS": [[275, "downlink-channel-estimation-using-csi-rs"], [337, "Downlink-Channel-Estimation-using-CSI-RS"]], "Uplink Channel Estimation using SRS for Positioning": [[276, "uplink-channel-estimation-using-srs-for-positioning"]], "Receiver Algorithms": [[277, "receiver-algorithms"]], "PDCCH Scheduler": [[278, "pdcch-scheduler"]], "Round Robin Scheduler": [[279, "round-robin-scheduler"]], "Link Adaptation": [[280, "link-adaptation"]], "Rank Adaptation": [[281, "rank-adaptation"]], "Resource Allocation": [[282, "resource-allocation"]], "Scheduler": [[283, "scheduler"]], "Research work carried out using 5G Toolkit": [[284, "research-work-carried-out-using-5g-toolkit"]], "Downlink Time/Frame Synchronization using PSS in 5G Networks": [[285, "Downlink-Time/Frame-Synchronization-using-PSS-in-5G-Networks"]], "Import Libraries": [[285, "Import-Libraries"], [287, "Import-Libraries"], [288, "Import-Libraries"], [289, "Import-Libraries"], [291, "Import-Libraries"], [301, "Import-Libraries"], [301, "id1"], [302, "Import-Libraries"], [311, "Import-Libraries"], [314, "Import-Libraries"], [322, "Import-Libraries"], [323, "Import-Libraries"], [328, "Import-Libraries"], [329, "Import-Libraries"], [330, "Import-Libraries"], [331, "Import-Libraries"], [332, "Import-Libraries"], [334, "Import-Libraries"], [336, "Import-Libraries"], [339, "Import-Libraries"], [341, "Import-Libraries"], [342, "Import-Libraries"], [343, "Import-Libraries"], [344, "Import-Libraries"], [345, "Import-Libraries"], [346, "Import-Libraries"], [347, "Import-Libraries"], [349, "Import-Libraries"], [351, "Import-Libraries"], [352, "Import-Libraries"], [353, "import-libraries"]], "Import Some Basic Python Libraries": [[285, "Import-Some-Basic-Python-Libraries"], [287, "Import-Some-Basic-Python-Libraries"], [288, "Import-Some-Basic-Python-Libraries"]], "Import 5G Libraries": [[285, "Import-5G-Libraries"], [287, "Import-5G-Libraries"], [288, "Import-5G-Libraries"], [346, "Import-5G-Libraries"]], "Emulation Parameters": [[285, "Emulation-Parameters"], [287, "Emulation-Parameters"], [288, "Emulation-Parameters"]], "Generate SSB Parameters": [[285, "Generate-SSB-Parameters"], [287, "Generate-SSB-Parameters"]], "Construct Transmission Grid and Generate Time Domain Samples": [[285, "Construct-Transmission-Grid-and-Generate-Time-Domain-Samples"], [287, "Construct-Transmission-Grid-and-Generate-Time-Domain-Samples"]], "SDR-Setup Configurations": [[285, "SDR-Setup-Configurations"], [287, "SDR-Setup-Configurations"], [288, "SDR-Setup-Configurations"], [289, "SDR-Setup-Configurations"], [291, "SDR-Setup-Configurations"], [294, "SDR-Setup-Configurations"]], "Transmission: SDR RF Transmitter": [[285, "Transmission:-SDR-RF-Transmitter"], [287, "Transmission:-SDR-RF-Transmitter"], [289, "Transmission:-SDR-RF-Transmitter"], [291, "Transmission:-SDR-RF-Transmitter"], [294, "Transmission:-SDR-RF-Transmitter"]], "Reception: SDR RF Receiver": [[285, "Reception:-SDR-RF-Receiver"], [288, "Reception:-SDR-RF-Receiver"], [289, "Reception:-SDR-RF-Receiver"], [291, "Reception:-SDR-RF-Receiver"], [294, "Reception:-SDR-RF-Receiver"]], "Time Synchronization: Based on PSS Correlation": [[285, "Time-Synchronization:-Based-on-PSS-Correlation"], [288, "Time-Synchronization:-Based-on-PSS-Correlation"], [289, "Time-Synchronization:-Based-on-PSS-Correlation"], [291, "Time-Synchronization:-Based-on-PSS-Correlation"], [294, "Time-Synchronization:-Based-on-PSS-Correlation"]], "Frame Synchronization: Visualization": [[285, "Frame-Synchronization:-Visualization"]], "Saving Running frames": [[285, "Saving-Running-frames"]], "Time/OFDM Symbol Synchronization using PSS in 5G": [[286, "time-ofdm-symbol-synchronization-using-pss-in-5g"]], "[BS Side Implementation]-Downlink Time/Frame Synchronization using PSS in 5G Networks": [[287, "[BS-Side-Implementation]-Downlink-Time/Frame-Synchronization-using-PSS-in-5G-Networks"]], "[UE Side Implementation]-Downlink Time/Frame Synchronization using PSS in 5G Networks": [[288, "[UE-Side-Implementation]-Downlink-Time/Frame-Synchronization-using-PSS-in-5G-Networks"]], "Time Frequency Configurations": [[288, "Time-Frequency-Configurations"]], "Downlink Synchronization in 5G Networks: SSB": [[289, "Downlink-Synchronization-in-5G-Networks:-SSB"], [291, "Downlink-Synchronization-in-5G-Networks:-SSB"]], "Import Python and SDR Libraries": [[289, "Import-Python-and-SDR-Libraries"], [291, "Import-Python-and-SDR-Libraries"]], "Import 5G Toolkit Libraries": [[289, "Import-5G-Toolkit-Libraries"], [291, "Import-5G-Toolkit-Libraries"], [302, "Import-5G-Toolkit-Libraries"], [304, "Import-5G-Toolkit-Libraries"], [311, "Import-5G-Toolkit-Libraries"], [312, "Import-5G-Toolkit-Libraries"], [332, "Import-5G-Toolkit-Libraries"], [341, "Import-5G-Toolkit-Libraries"], [343, "Import-5G-Toolkit-Libraries"], [344, "Import-5G-Toolkit-Libraries"], [365, "Import-5G-Toolkit-Libraries"]], "Emulation Configurations": [[289, "Emulation-Configurations"], [291, "Emulation-Configurations"]], "Transmitter Implementation": [[289, "Transmitter-Implementation"], [291, "Transmitter-Implementation"]], "Generate the SSB Grid for synchronization": [[289, "Generate-the-SSB-Grid-for-synchronization"], [291, "Generate-the-SSB-Grid-for-synchronization"]], "Constellation Diagram": [[289, "Constellation-Diagram"], [291, "Constellation-Diagram"], [294, "Constellation-Diagram"], [365, "Constellation-Diagram"]], "OFDM Modulation: Tx": [[289, "OFDM-Modulation:-Tx"], [291, "OFDM-Modulation:-Tx"]], "Receiver Implementation": [[289, "Receiver-Implementation"], [291, "Receiver-Implementation"]], "Carrier Frequency Offset (CFO) Estimation and Correction in 5G Networks": [[290, "carrier-frequency-offset-cfo-estimation-and-correction-in-5g-networks"]], "OFDM Demodulation and SSB Extraction": [[291, "OFDM-Demodulation-and-SSB-Extraction"]], "SSB Grid: Transmitter and Receiver": [[291, "SSB-Grid:-Transmitter-and-Receiver"], [294, "SSB-Grid:-Transmitter-and-Receiver"]], "Spectrum: Transmitted Grid and Received Grid": [[291, "Spectrum:-Transmitted-Grid-and-Received-Grid"], [294, "Spectrum:-Transmitted-Grid-and-Received-Grid"]], "Parameter Estimation for SSB and PBCH": [[291, "Parameter-Estimation-for-SSB-and-PBCH"]], "Channel Estimation and PBCH Symbol Equalization": [[291, "Channel-Estimation-and-PBCH-Symbol-Equalization"], [351, "Channel-Estimation-and-PBCH-Symbol-Equalization"]], "PBCH Decoding and Constellation": [[291, "PBCH-Decoding-and-Constellation"], [294, "PBCH-Decoding-and-Constellation"]], "Performance Verification": [[291, "Performance-Verification"], [294, "Performance-Verification"]], "Downlink Synchronization using SSB in 5G Networks": [[292, "downlink-synchronization-using-ssb-in-5g-networks"]], "Downlink Data Communication using PDSCH in 5G Networks": [[293, "downlink-data-communication-using-pdsch-in-5g-networks"]], "Downlink Data Communication in 5G Networks": [[294, "Downlink-Data-Communication-in-5G-Networks"]], "5G Toolkit Libraries": [[294, "5G-Toolkit-Libraries"], [322, "5G-Toolkit-Libraries"], [328, "5G-Toolkit-Libraries"], [329, "5G-Toolkit-Libraries"], [330, "5G-Toolkit-Libraries"], [331, "5G-Toolkit-Libraries"], [333, "5G-Toolkit-Libraries"], [334, "5G-Toolkit-Libraries"], [335, "5G-Toolkit-Libraries"], [339, "5G-Toolkit-Libraries"], [345, "5G-Toolkit-Libraries"], [347, "5G-Toolkit-Libraries"]], "Simulation Parameters": [[294, "Simulation-Parameters"], [301, "Simulation-Parameters"], [302, "Simulation-Parameters"], [304, "Simulation-Parameters"], [305, "Simulation-Parameters"], [306, "Simulation-Parameters"], [307, "Simulation-Parameters"], [308, "Simulation-Parameters"], [309, "Simulation-Parameters"], [311, "Simulation-Parameters"], [312, "Simulation-Parameters"], [323, "Simulation-Parameters"], [325, "Simulation-Parameters"], [326, "Simulation-Parameters"], [327, "Simulation-Parameters"], [328, "Simulation-Parameters"], [329, "Simulation-Parameters"], [330, "Simulation-Parameters"], [331, "Simulation-Parameters"], [332, "Simulation-Parameters"], [333, "Simulation-Parameters"], [334, "Simulation-Parameters"], [335, "Simulation-Parameters"], [336, "Simulation-Parameters"], [337, "Simulation-Parameters"], [341, "Simulation-Parameters"], [342, "Simulation-Parameters"], [343, "Simulation-Parameters"], [344, "Simulation-Parameters"], [345, "Simulation-Parameters"], [346, "Simulation-Parameters"], [347, "Simulation-Parameters"], [348, "Simulation-Parameters"], [349, "Simulation-Parameters"], [352, "Simulation-Parameters"], [353, "simulation-parameters"], [354, "Simulation-Parameters"]], "PDSCH Transmitter Implementation": [[294, "PDSCH-Transmitter-Implementation"]], "Generate the PDSCH related parameters: Use PDSCH Configurations": [[294, "Generate-the-PDSCH-related-parameters:-Use-PDSCH-Configurations"]], "Generate the PDSCH Resource Grid": [[294, "Generate-the-PDSCH-Resource-Grid"]], "SSB Transmitter Implementation": [[294, "SSB-Transmitter-Implementation"]], "Generate the SSB Resource Grid": [[294, "Generate-the-SSB-Resource-Grid"]], "Receiver Implementation: SSB": [[294, "Receiver-Implementation:-SSB"]], "PDSCH Recourse Implementation": [[294, "PDSCH-Recourse-Implementation"]], "Extract PDSCH Resource Grid": [[294, "Extract-PDSCH-Resource-Grid"]], "Key Performance Indicators": [[294, "Key-Performance-Indicators"]], "Integration with SDRs": [[295, "integration-with-sdrs"]], "Introductory Course on 5G Standards": [[296, "introductory-course-on-5g-standards"]], "Learning Resources": [[297, "learning-resources"]], "License": [[298, "license"]], "Trademarks": [[298, "trademarks"]], "Source Code": [[298, "source-code"]], "Content": [[298, "content"]], "Tentetive list of Feature": [[299, "tentetive-list-of-feature"]], "In Progress (To be Released soon):": [[299, "in-progress-to-be-released-soon"]], "Next Quarter": [[299, "next-quarter"]], "Before September 2023": [[299, "before-september-2023"]], "Before March 2024": [[299, "before-march-2024"]], "Previous Versions": [[300, "previous-versions"]], "Learning to Demap: Database Generation, Preprocessing, Postprocessing, Training, Validation and Inferences from the LLRNet": [[301, "Learning-to-Demap:-Database-Generation,-Preprocessing,-Postprocessing,-Training,-Validation-and-Inferences-from-the-LLRNet"]], "Table of Contents": [[301, "Table-of-Contents"], [353, "table-of-contents"]], "Import 5G Toolkit Modules": [[301, "Import-5G-Toolkit-Modules"]], "Learning to Demap the Symbols": [[301, "Learning-to-Demap-the-Symbols"]], "Input Output Mapping for M = 4": [[301, "Input-Output-Mapping-for-M-=-4"]], "Input Output Mapping for M = 6": [[301, "Input-Output-Mapping-for-M-=-6"]], "Input Output Mapping for M = 8": [[301, "Input-Output-Mapping-for-M-=-8"]], "Throughput and BER Performance of LLRnet": [[301, "Throughput-and-BER-Performance-of-LLRnet"]], "PDSCH Parameters": [[301, "PDSCH-Parameters"], [311, "PDSCH-Parameters"]], "LLRnet Parameters": [[301, "LLRnet-Parameters"]], "Training Framework": [[301, "Training-Framework"]], "Deployment Framework": [[301, "Deployment-Framework"]], "Simulation Section": [[301, "Simulation-Section"]], "Performance Evaluation": [[301, "Performance-Evaluation"], [329, "Performance-Evaluation"], [353, "performance-evaluation"]], "Throughput vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM": [[301, "Throughput-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM"]], "Bit Error rate (BER) vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM": [[301, "Bit-Error-rate-(BER)-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM"]], "Block Error Rate (BLER) vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM": [[301, "Block-Error-Rate-(BLER)-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM"]], "Performance Evaluation: 10000 batches and 64000 training samples for LLRNet": [[301, "Performance-Evaluation:-10000-batches-and-64000-training-samples-for-LLRNet"]], "Throughput vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM.": [[301, "Throughput-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM."]], "Bit Error rate (BER) vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM.": [[301, "Bit-Error-rate-(BER)-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM."]], "Block Error rate (BER) vs SNR (dB) for 16-QAM, 64-QAM and, 256-QAM.": [[301, "Block-Error-rate-(BER)-vs-SNR-(dB)-for-16-QAM,-64-QAM-and,-256-QAM."]], "Complexity Analysis": [[301, "Complexity-Analysis"]], "Conclusion": [[301, "Conclusion"]], "Positives of the LLRnet:": [[301, "Positives-of-the-LLRnet:"]], "Limitations of the LLRnet:": [[301, "Limitations-of-the-LLRnet:"]], "References:": [[301, "References:"]], "Performance comparison between different Positioning Methods for millimeter wave 5G Networks": [[302, "Performance-comparison-between-different-Positioning-Methods-for-millimeter-wave-5G-Networks"]], "Generate Wireless Channels": [[302, "Generate-Wireless-Channels"], [332, "Generate-Wireless-Channels"], [333, "Generate-Wireless-Channels"], [335, "Generate-Wireless-Channels"]], "SRS Configurations": [[302, "SRS-Configurations"], [332, "SRS-Configurations"], [333, "SRS-Configurations"], [335, "SRS-Configurations"]], "Slot by Slot Simulation": [[302, "Slot-by-Slot-Simulation"], [332, "Slot-by-Slot-Simulation"], [333, "Slot-by-Slot-Simulation"], [335, "Slot-by-Slot-Simulation"]], "Position Estimation: Based on UL-ToA": [[302, "Position-Estimation:-Based-on-UL-ToA"], [332, "Position-Estimation:-Based-on-UL-ToA"], [333, "Position-Estimation:-Based-on-UL-ToA"], [335, "Position-Estimation:-Based-on-UL-ToA"]], "Visualization of Estimated Position": [[302, "Visualization-of-Estimated-Position"], [332, "Visualization-of-Estimated-Position"], [333, "Visualization-of-Estimated-Position"]], "Performance Analysis of Positioning Error for ToA based method": [[302, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"], [330, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"], [331, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"], [332, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"], [334, "Performance-Analysis-of-Positioning-Error-for-ToA-based-method"]], "Positioning Results Averaged over 2000 UEs": [[302, "Positioning-Results-Averaged-over-2000-UEs"]], "Physical downlink control Channel in 5G": [[303, "physical-downlink-control-channel-in-5g"]], "Analysis of Blocking Probability for different Coverage Conditions": [[304, "Analysis-of-Blocking-Probability-for-different-Coverage-Conditions"]], "PDCCH Scheduling Parameters": [[304, "PDCCH-Scheduling-Parameters"], [305, "PDCCH-Scheduling-Parameters"], [306, "PDCCH-Scheduling-Parameters"], [307, "PDCCH-Scheduling-Parameters"], [308, "PDCCH-Scheduling-Parameters"], [309, "PDCCH-Scheduling-Parameters"]], "PDCCH Scheduling for Good Coverage Scenarios": [[304, "PDCCH-Scheduling-for-Good-Coverage-Scenarios"]], "PDCCH Scheduling for Medium Coverage Scenarios": [[304, "PDCCH-Scheduling-for-Medium-Coverage-Scenarios"]], "PDCCH Scheduling for Extreme Coverage Scenarios": [[304, "PDCCH-Scheduling-for-Extreme-Coverage-Scenarios"]], "Plotting the results": [[304, "Plotting-the-results"]], "References": [[304, "References"], [305, "References"], [306, "References"], [307, "References"], [308, "References"], [309, "References"], [311, "References"], [318, "References"], [336, "References"]], "Variation in Blocking Probability with Different Aggregation Levels (ALs)": [[305, "Variation-in-Blocking-Probability-with-Different-Aggregation-Levels-(ALs)"]], "Python Libraries": [[305, "Python-Libraries"], [307, "Python-Libraries"], [308, "Python-Libraries"], [309, "Python-Libraries"], [322, "Python-Libraries"], [328, "Python-Libraries"], [329, "Python-Libraries"], [330, "Python-Libraries"], [331, "Python-Libraries"], [333, "Python-Libraries"], [334, "Python-Libraries"], [335, "Python-Libraries"], [338, "Python-Libraries"], [345, "Python-Libraries"], [347, "Python-Libraries"], [353, "python-libraries"]], "5G-Toolkit Libraries": [[305, "5G-Toolkit-Libraries"], [307, "5G-Toolkit-Libraries"], [308, "5G-Toolkit-Libraries"], [309, "5G-Toolkit-Libraries"]], "Impact of AL 1": [[305, "Impact-of-AL-1"]], "Impact of AL 2": [[305, "Impact-of-AL-2"]], "Impact of AL 4": [[305, "Impact-of-AL-4"]], "Impact of AL 8": [[305, "Impact-of-AL-8"]], "Impact of AL 16": [[305, "Impact-of-AL-16"]], "Plot the Variation in Blocking Probability with number of UEs for different Aggregation levels.": [[305, "Plot-the-Variation-in-Blocking-Probability-with-number-of-UEs-for-different-Aggregation-levels."]], "Analyzing the effect of Number of Candidates on Blocking Probability": [[306, "Analyzing-the-effect-of-Number-of-Candidates-on-Blocking-Probability"]], "Plot the Variation in Blocking Probability with number of PDCCH candidates": [[306, "Plot-the-Variation-in-Blocking-Probability-with-number-of-PDCCH-candidates"]], "Analyzing the Impact of Scheduling Strategy on Blocking Probability": [[307, "Analyzing-the-Impact-of-Scheduling-Strategy-on-Blocking-Probability"]], "Simulation for Scheduling Strategy-I": [[307, "Simulation-for-Scheduling-Strategy-I"]], "Blocking probability vs number of UEs to be scheduled.": [[307, "Blocking-probability-vs-number-of-UEs-to-be-scheduled."]], "Simulation for Scheduling Strategy-II": [[307, "Simulation-for-Scheduling-Strategy-II"]], "Plotting Blocking Probability vs Number of UEs for Scheduling Strategy": [[307, "Plotting-Blocking-Probability-vs-Number-of-UEs-for-Scheduling-Strategy"]], "Analyze the Impact of UE Capability on Blocking Probability": [[308, "Analyze-the-Impact-of-UE-Capability-on-Blocking-Probability"]], "Simulating the Reference Case": [[308, "Simulating-the-Reference-Case"]], "Plot Blocking Probability for Different CORESET Sizes for Different UEs": [[308, "Plot-Blocking-Probability-for-Different-CORESET-Sizes-for-Different-UEs"], [308, "id1"]], "Simulating Reduced Blind Decoding Case-A": [[308, "Simulating-Reduced-Blind-Decoding-Case-A"]], "Simulating Reduced Blind Decoding Case-B": [[308, "Simulating-Reduced-Blind-Decoding-Case-B"]], "Selection of minimum CORESET Size for a Given Target Block Probability": [[309, "Selection-of-minimum-CORESET-Size-for-a-Given-Target-Block-Probability"]], "Compute minimum coreset size for numUEs = 5.": [[309, "Compute-minimum-coreset-size-for-numUEs-=-5."]], "Compute minimum coreset size for numUEs = 10.": [[309, "Compute-minimum-coreset-size-for-numUEs-=-10."]], "Compute minimum coreset size for numUEs = 15.": [[309, "Compute-minimum-coreset-size-for-numUEs-=-15."]], "Display Minimum CORESET size required to meet the Target Blocking Probability for different number of UEs.": [[309, "Display-Minimum-CORESET-size-required-to-meet-the-Target-Blocking-Probability-for-different-number-of-UEs."]], "Blockage Probability Analysis for RedCap Devices in 5G Networks": [[310, "blockage-probability-analysis-for-redcap-devices-in-5g-networks"]], "CSI Compression and Reconstruction using CSINet for TDD Massive MIMO 5G Networks": [[311, "CSI-Compression-and-Reconstruction-using-CSINet-for-TDD-Massive-MIMO-5G-Networks"]], "Wireless Channel Generation: CDL-A": [[311, "Wireless-Channel-Generation:-CDL-A"]], "Reconstrunction Performance of CSI-Net": [[311, "Reconstrunction-Performance-of-CSI-Net"]], "PDSCH: Transmitter": [[311, "PDSCH:-Transmitter"]], "SVD Based Beamforming: Perfect CSI": [[311, "SVD-Based-Beamforming:-Perfect-CSI"]], "Pass through Channel": [[311, "Pass-through-Channel"]], "Link Level Simulation: SVD based Beamforming using Perfect CSI": [[311, "Link-Level-Simulation:-SVD-based-Beamforming-using-Perfect-CSI"]], "SVD Based Beamforming: CSI Reconstructed using CSINet": [[311, "SVD-Based-Beamforming:-CSI-Reconstructed-using-CSINet"]], "Pass through Wireless Channel": [[311, "Pass-through-Wireless-Channel"]], "Link Level Simulation: SVD based Beamforming using Imperfect CSI": [[311, "Link-Level-Simulation:-SVD-based-Beamforming-using-Imperfect-CSI"]], "Performance Evaluations": [[311, "Performance-Evaluations"], [338, "Performance-Evaluations"], [365, "Performance-Evaluations"]], "Throughput Evaluations": [[311, "Throughput-Evaluations"]], "BLER Evaluations": [[311, "BLER-Evaluations"]], "Wireless Channel Dataset Generation for Training the AI based Models": [[312, "Wireless-Channel-Dataset-Generation-for-Training-the-AI-based-Models"]], "Import Basic Python LIbraries": [[312, "Import-Basic-Python-LIbraries"]], "Set Channel Parameters and Generate Common Parameters": [[312, "Set-Channel-Parameters-and-Generate-Common-Parameters"]], "Generate the Wireless Channels Databases and Preprocess it before storage.": [[312, "Generate-the-Wireless-Channels-Databases-and-Preprocess-it-before-storage."]], "Aggregate all the Datasets into a single Dataset": [[312, "Aggregate-all-the-Datasets-into-a-single-Dataset"]], "Display Sparsity of Wireless Channels": [[312, "Display-Sparsity-of-Wireless-Channels"]], "Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks": [[313, "artificial-intelligence-and-machine-learning-ai-ml-for-csi-compression-and-reconstruction-in-5g-networks"]], "Training the CSINet": [[314, "Training-the-CSINet"]], "Important AI-ML Libraries": [[314, "Important-AI-ML-Libraries"]], "Load Datasets": [[314, "Load-Datasets"]], "Set Training Parameters": [[314, "Set-Training-Parameters"]], "Comparative Study of Reed Muller codes, Polar Codes and LDPC codes": [[315, "comparative-study-of-reed-muller-codes-polar-codes-and-ldpc-codes"]], "Channel Quality Estimation in 5G and Beyond Networks": [[316, "channel-quality-estimation-in-5g-and-beyond-networks"]], "Hybrid Automatic repeat Request in 5G and Beyond": [[317, "hybrid-automatic-repeat-request-in-5g-and-beyond"]], "Constellation Learning in an AWGN Channel": [[318, "Constellation-Learning-in-an-AWGN-Channel"]], "PHY layer as AutoEncoder": [[318, "PHY-layer-as-AutoEncoder"]], "Steps": [[318, "Steps"]], "Importing Libraries": [[318, "Importing-Libraries"]], "Parameters of AutoEncoder": [[318, "Parameters-of-AutoEncoder"]], "Training Data": [[318, "Training-Data"]], "Testing Data": [[318, "Testing-Data"]], "Normalization Functions": [[318, "Normalization-Functions"]], "Defining AutoEncoder Model": [[318, "Defining-AutoEncoder-Model"]], "Training AutoEncoder": [[318, "Training-AutoEncoder"]], "Defining Tx, Channel and Rx from Trained AutoEncoder": [[318, "Defining-Tx,-Channel-and-Rx-from-Trained-AutoEncoder"]], "Block Error Rate (BLER) performance": [[318, "Block-Error-Rate-(BLER)-performance"]], "Hamming Codes": [[318, "Hamming-Codes"], [322, "Hamming-Codes"]], "BLER plot : comparison of AutoEncoder BLER with base line (n,k) Hamming Code BLER": [[318, "BLER-plot-:-comparison-of-AutoEncoder-BLER-with-base-line-(n,k)-Hamming-Code-BLER"]], "Constellation Learning": [[318, "Constellation-Learning"]], "learned constellation plot": [[318, "learned-constellation-plot"]], "Downlink Synchronization using SSB in 5G systems": [[319, "downlink-synchronization-using-ssb-in-5g-systems"]], "Uplink Synchronization using PRACH in 5G systems": [[320, "uplink-synchronization-using-prach-in-5g-systems"]], "Projects": [[321, "projects"]], "Hamming Codes Parameters": [[322, "Hamming-Codes-Parameters"]], "Simulation Setup": [[322, "Simulation-Setup"], [365, "Simulation-Setup"]], "Performance Evaluation: SNR vs BER": [[322, "Performance-Evaluation:-SNR-vs-BER"]], "Performance Evaluation: SNR vs BLER": [[322, "Performance-Evaluation:-SNR-vs-BLER"]], "Conclusions": [[322, "Conclusions"]], "Link Level Simulation for Physical Downlink Control Channels": [[323, "Link-Level-Simulation-for-Physical-Downlink-Control-Channels"]], "Import Basic Python Libraries": [[323, "Import-Basic-Python-Libraries"], [332, "Import-Basic-Python-Libraries"]], "Import 5G-Toolkit Libraries": [[323, "Import-5G-Toolkit-Libraries"], [325, "Import-5G-Toolkit-Libraries"], [326, "Import-5G-Toolkit-Libraries"], [336, "Import-5G-Toolkit-Libraries"], [337, "Import-5G-Toolkit-Libraries"], [354, "Import-5G-Toolkit-Libraries"]], "CORESET Parameters": [[323, "CORESET-Parameters"]], "Generate Wireless Channel: CDL-A": [[323, "Generate-Wireless-Channel:-CDL-A"], [325, "Generate-Wireless-Channel:-CDL-A"], [326, "Generate-Wireless-Channel:-CDL-A"]], "Link level Simulation: For each Aggregation level and Each SNR value": [[323, "Link-level-Simulation:-For-each-Aggregation-level-and-Each-SNR-value"]], "Reliability Performance: BER/BLER vs SNR": [[323, "Reliability-Performance:-BER/BLER-vs-SNR"]], "Reliability Performance: BER/BLER vs SNR for 20000 Batches": [[323, "Reliability-Performance:-BER/BLER-vs-SNR-for-20000-Batches"]], "SVD based Downlink Precoding and Combining for Massive MIMO in 5G Networks": [[324, "svd-based-downlink-precoding-and-combining-for-massive-mimo-in-5g-networks"]], "SVD based Downlink Precoding and Combining for Massive MIMO 5G Networks": [[325, "SVD-based-Downlink-Precoding-and-Combining-for-Massive-MIMO-5G-Networks"]], "Link level simulation: BLER/BER/Throughput/SE vs SNR for different ranks": [[325, "Link-level-simulation:-BLER/BER/Throughput/SE-vs-SNR-for-different-ranks"], [326, "Link-level-simulation:-BLER/BER/Throughput/SE-vs-SNR-for-different-ranks"]], "Simulation Results": [[325, "Simulation-Results"], [326, "Simulation-Results"], [354, "Simulation-Results"]], "Simulation Results: Averaged over 10000 batches": [[325, "Simulation-Results:-Averaged-over-10000-batches"], [326, "Simulation-Results:-Averaged-over-10000-batches"], [354, "Simulation-Results:-Averaged-over-10000-batches"]], "Type-1 codebook based Downlink Precoding and Combining for Massive MIMO 5G Networks": [[326, "Type-1-codebook-based-Downlink-Precoding-and-Combining-for-Massive-MIMO-5G-Networks"]], "P1 Procedure: Beam management in 5G networks using SSB": [[327, "P1-Procedure:-Beam-management-in-5G-networks-using-SSB"]], "Import librariers": [[327, "Import-librariers"]], "Import Python libraries": [[327, "Import-Python-libraries"]], "Import 5G Toolkit libraries": [[327, "Import-5G-Toolkit-libraries"]], "Generate Wireless Channel": [[327, "Generate-Wireless-Channel"]], "Generate Time Frequency Parameters and MIB+ATI Parameters": [[327, "Generate-Time-Frequency-Parameters-and-MIB+ATI-Parameters"]], "Generate OFDM Resource/Transmission Grid": [[327, "Generate-OFDM-Resource/Transmission-Grid"]], "Pass through the Wireless Channel": [[327, "Pass-through-the-Wireless-Channel"], [352, "Pass-through-the-Wireless-Channel"], [354, "Pass-through-the-Wireless-Channel"]], "Power Heatmap of Received Grid": [[327, "Power-Heatmap-of-Received-Grid"]], "Add Noise": [[327, "Add-Noise"], [330, "Add-Noise"], [331, "Add-Noise"], [334, "Add-Noise"]], "RSRP Computation": [[327, "RSRP-Computation"]], "Visualization of All Beam RSRP": [[327, "Visualization-of-All-Beam-RSRP"]], "Selected Base-station and Beam": [[327, "Selected-Base-station-and-Beam"]], "Simulation Topology": [[327, "Simulation-Topology"]], "Search space, CORESET and blind decoding of PDCCH channels in 5G Networks": [[328, "Search-space,-CORESET-and-blind-decoding-of-PDCCH-channels-in-5G-Networks"]], "CORESET and Search Space Set Parameters": [[328, "CORESET-and-Search-Space-Set-Parameters"]], "Transmitter Side Processing": [[328, "Transmitter-Side-Processing"]], "Displaying Resource Grid": [[328, "Displaying-Resource-Grid"]], "Wireless Channel : CDL-A": [[328, "Wireless-Channel-:-CDL-A"]], "Receiver Side Processing and Blind Decoding of UE": [[328, "Receiver-Side-Processing-and-Blind-Decoding-of-UE"]], "Reed Muller Codes in 5G": [[329, "Reed-Muller-Codes-in-5G"]], "Table of content:": [[329, "Table-of-content:"], [338, "Table-of-content:"]], "Mapper and Demapper Parameters": [[329, "Mapper-and-Demapper-Parameters"]], "Simulation": [[329, "Simulation"], [353, "simulation"]], "Performance Plot: Averaged over 65 datasets of 5000 points each.": [[329, "Performance-Plot:-Averaged-over-65-datasets-of-5000-points-each."]], "Downlink TDoA Based Positioning for Industrial IoT Devices in Millimeter Wave 5G Networks": [[330, "Downlink-TDoA-Based-Positioning-for-Industrial-IoT-Devices-in-Millimeter-Wave-5G-Networks"]], "Channel Generation": [[330, "Channel-Generation"], [331, "Channel-Generation"], [334, "Channel-Generation"], [351, "Channel-Generation"]], "Channel Parameters:": [[330, "Channel-Parameters:"], [331, "Channel-Parameters:"], [334, "Channel-Parameters:"]], "Position Reference Signal": [[330, "Position-Reference-Signal"], [331, "Position-Reference-Signal"], [334, "Position-Reference-Signal"]], "OFDM Transmitter: Create Transmission Grid": [[330, "OFDM-Transmitter:-Create-Transmission-Grid"], [331, "OFDM-Transmitter:-Create-Transmission-Grid"], [334, "OFDM-Transmitter:-Create-Transmission-Grid"]], "Display Transmission Grid": [[330, "Display-Transmission-Grid"], [331, "Display-Transmission-Grid"]], "Transmit Beamforming": [[330, "Transmit-Beamforming"], [331, "Transmit-Beamforming"], [334, "Transmit-Beamforming"], [337, "Transmit-Beamforming"]], "Pass the Beamformed Grid Through Wireless Channel": [[330, "Pass-the-Beamformed-Grid-Through-Wireless-Channel"], [331, "Pass-the-Beamformed-Grid-Through-Wireless-Channel"], [334, "Pass-the-Beamformed-Grid-Through-Wireless-Channel"]], "Extracting the Resource Grid": [[330, "Extracting-the-Resource-Grid"], [331, "Extracting-the-Resource-Grid"]], "Channel Estimation + Interpolation": [[330, "Channel-Estimation-+-Interpolation"], [331, "Channel-Estimation-+-Interpolation"]], "Display the quality of Channel Estimates": [[330, "Display-the-quality-of-Channel-Estimates"], [331, "Display-the-quality-of-Channel-Estimates"]], "ToA Estimation": [[330, "ToA-Estimation"], [331, "ToA-Estimation"]], "Visualization: Time of Arrival locus Circles": [[330, "Visualization:-Time-of-Arrival-locus-Circles"], [331, "Visualization:-Time-of-Arrival-locus-Circles"]], "Position Estimation + K-Best Measurement Selection (Genie Aided)": [[330, "Position-Estimation-+-K-Best-Measurement-Selection-(Genie-Aided)"], [331, "Position-Estimation-+-K-Best-Measurement-Selection-(Genie-Aided)"], [334, "Position-Estimation-+-K-Best-Measurement-Selection-(Genie-Aided)"]], "Measurement Selection:": [[330, "Measurement-Selection:"], [331, "Measurement-Selection:"], [334, "Measurement-Selection:"]], "Visualization of Positioning": [[330, "Visualization-of-Positioning"], [331, "Visualization-of-Positioning"], [334, "Visualization-of-Positioning"]], "Performance Analysis: For 2000 UEs": [[330, "Performance-Analysis:-For-2000-UEs"], [331, "Performance-Analysis:-For-2000-UEs"], [332, "Performance-Analysis:-For-2000-UEs"], [333, "Performance-Analysis:-For-2000-UEs"]], "Further Study": [[330, "Further-Study"], [331, "Further-Study"], [334, "Further-Study"], [345, "Further-Study"]], "Downlink Time of Arrival based Positioning in 5G and Beyond Networks": [[331, "Downlink-Time-of-Arrival-based-Positioning-in-5G-and-Beyond-Networks"]], "Positioning Procedure": [[331, "Positioning-Procedure"], [334, "Positioning-Procedure"]], "Table of Content:": [[331, "Table-of-Content:"], [334, "Table-of-Content:"]], "Positioning the Outdoor UEs using 5G Urban Micro cell sites based Uplink Time Difference of Arrival (UL-TDoA) method": [[332, "Positioning-the-Outdoor-UEs-using-5G-Urban-Micro-cell-sites-based-Uplink-Time-Difference-of-Arrival-(UL-TDoA)-method"]], "Positioning the Indoor Open Office UEs using Uplink ToA method": [[333, "Positioning-the-Indoor-Open-Office-UEs-using-Uplink-ToA-method"]], "Performance Analysis of Positioning Error for Uplink-ToA based method": [[333, "Performance-Analysis-of-Positioning-Error-for-Uplink-ToA-based-method"]], "Downlink Angle of Departure based Positioning for Rural Macro Terrain in 5G and Beyond Network": [[334, "Downlink-Angle-of-Departure-based-Positioning-for-Rural-Macro-Terrain-in-5G-and-Beyond-Network"]], "Compute the Measurement Windows": [[334, "Compute-the-Measurement-Windows"]], "RSRP vs beam Index": [[334, "RSRP-vs-beam-Index"]], "AoD Estimation": [[334, "AoD-Estimation"]], "Performance Analysis for DL-AoD method: 2000 UEs": [[334, "Performance-Analysis-for-DL-AoD-method:-2000-UEs"]], "Uplink AoA (UL-AoA) based Localization of the Indoor Factory UEs using millimeter 5G Networks": [[335, "Uplink-AoA-(UL-AoA)-based-Localization-of-the-Indoor-Factory-UEs-using-millimeter-5G-Networks"]], "Visualization: Direction of Arrival Locus Lines": [[335, "Visualization:-Direction-of-Arrival-Locus-Lines"]], "Visualization of Estimated Position and its accuracy": [[335, "Visualization-of-Estimated-Position-and-its-accuracy"]], "Performance Analysis of Positioning Error for UL-AoA method": [[335, "Performance-Analysis-of-Positioning-Error-for-UL-AoA-method"]], "Performance Analysis for UL-AoA method: 1300 UEs": [[335, "Performance-Analysis-for-UL-AoA-method:-1300-UEs"]], "Performance comparison of OFDM and DFT-s-OFDM in 5G Networks": [[336, "Performance-comparison-of-OFDM-and-DFT-s-OFDM-in-5G-Networks"]], "Peak to Average Power Ratio (PAPR) Analysis": [[336, "Peak-to-Average-Power-Ratio-(PAPR)-Analysis"]], "PAPR Analysis: CP-OFDM": [[336, "PAPR-Analysis:-CP-OFDM"]], "PAPR Analysis: DFT-s-OFDM": [[336, "PAPR-Analysis:-DFT-s-OFDM"]], "PAPR Performance Comparison: CP-OFDM vs DFT-s-OFDM": [[336, "PAPR-Performance-Comparison:-CP-OFDM-vs-DFT-s-OFDM"]], "ACLR Analysis: CP-OFDM vs DFT-s-OFDM": [[336, "ACLR-Analysis:-CP-OFDM-vs-DFT-s-OFDM"]], "ACLR Comparison of OFDM and DFT-s-OFDM": [[336, "ACLR-Comparison-of-OFDM-and-DFT-s-OFDM"]], "Generate Channel": [[337, "Generate-Channel"], [354, "Generate-Channel"]], "CSI Configurations": [[337, "CSI-Configurations"]], "Generate CSI-RS Resource Grid": [[337, "Generate-CSI-RS-Resource-Grid"]], "Generate the Transmit Grid": [[337, "Generate-the-Transmit-Grid"]], "Pass through the Channel": [[337, "Pass-through-the-Channel"]], "Add noise at Receiver": [[337, "Add-noise-at-Receiver"]], "Extract the Resource Grid": [[337, "Extract-the-Resource-Grid"]], "Estimate the Channel using CSI-RS": [[337, "Estimate-the-Channel-using-CSI-RS"]], "Display the Estimated channel": [[337, "Display-the-Estimated-channel"]], "Estimate the Rank and Condition number": [[337, "Estimate-the-Rank-and-Condition-number"]], "SVD of Channel and Condition number": [[337, "SVD-of-Channel-and-Condition-number"]], "Estimate the Precoder: Type-I": [[337, "Estimate-the-Precoder:-Type-I"]], "Polar Codes in 5G": [[338, "Polar-Codes-in-5G"]], "Import libraries": [[338, "Import-libraries"]], "5G Toolkit libraries": [[338, "5G-Toolkit-libraries"]], "Symbol Mapping Configurations": [[338, "Symbol-Mapping-Configurations"], [339, "Symbol-Mapping-Configurations"]], "Polar Coder Configurations": [[338, "Polar-Coder-Configurations"]], "Simulation: AWGN Channel": [[338, "Simulation:-AWGN-Channel"]], "Performance Evaluations: Averaging over a 100 dataset of 100 points each": [[338, "Performance-Evaluations:-Averaging-over-a-100-dataset-of-100-points-each"]], "Low Density Parity Check (LDPC) Codes in 5G": [[339, "Low-Density-Parity-Check-(LDPC)-Codes-in-5G"]], "Python LIbraries": [[339, "Python-LIbraries"]], "Simulation: Variation in Reliability with code-rate for fixed block-length": [[339, "Simulation:-Variation-in-Reliability-with-code-rate-for-fixed-block-length"]], "LDPC Parameters": [[339, "LDPC-Parameters"]], "Simulation Procedure": [[339, "Simulation-Procedure"]], "Performance Evaluation: BER vs SNR for different code-rates": [[339, "Performance-Evaluation:-BER-vs-SNR-for-different-code-rates"]], "Simulation: Variation in Reliability with block-length for fixed coderate": [[339, "Simulation:-Variation-in-Reliability-with-block-length-for-fixed-coderate"]], "Performance Evaluation: BER vs SNR for different block lengths": [[339, "Performance-Evaluation:-BER-vs-SNR-for-different-block-lengths"]], "Following results are averaged over 100 results": [[339, "Following-results-are-averaged-over-100-results"]], "BER vs SNR": [[339, "BER-vs-SNR"]], "BER vs TB-size": [[339, "BER-vs-TB-size"]], "Wireless Channel Generation for Outdoor Terrains deployed in Hexagonal Geometry": [[341, "Wireless-Channel-Generation-for-Outdoor-Terrains-deployed-in-Hexagonal-Geometry"]], "Generate Antenna Arrays": [[341, "Generate-Antenna-Arrays"], [343, "Generate-Antenna-Arrays"], [344, "Generate-Antenna-Arrays"]], "Generate Simulation Layout": [[341, "Generate-Simulation-Layout"], [343, "Generate-Simulation-Layout"], [344, "Generate-Simulation-Layout"], [347, "Generate-Simulation-Layout"]], "Generate Channel Parameters": [[341, "Generate-Channel-Parameters"], [343, "Generate-Channel-Parameters"], [344, "Generate-Channel-Parameters"], [347, "Generate-Channel-Parameters"]], "Generate Channel Coefficients": [[341, "Generate-Channel-Coefficients"], [343, "Generate-Channel-Coefficients"], [344, "Generate-Channel-Coefficients"], [347, "Generate-Channel-Coefficients"]], "Generate OFDM Channel": [[341, "Generate-OFDM-Channel"], [343, "Generate-OFDM-Channel"], [344, "Generate-OFDM-Channel"], [347, "Generate-OFDM-Channel"]], "Frequency Domain : Magnitude Response Plot": [[341, "Frequency-Domain-:-Magnitude-Response-Plot"], [343, "Frequency-Domain-:-Magnitude-Response-Plot"], [344, "Frequency-Domain-:-Magnitude-Response-Plot"], [347, "Frequency-Domain-:-Magnitude-Response-Plot"]], "Time Domain Channel response": [[341, "Time-Domain-Channel-response"], [343, "Time-Domain-Channel-response"], [344, "Time-Domain-Channel-response"], [347, "Time-Domain-Channel-response"]], "Generate Spatially Consistent Statistical Channels for Realistic Simulations": [[342, "Generate-Spatially-Consistent-Statistical-Channels-for-Realistic-Simulations"]], "Import 5G Toolkit": [[342, "Import-5G-Toolkit"], [349, "Import-5G-Toolkit"]], "Antenna Arrays": [[342, "Antenna-Arrays"], [345, "Antenna-Arrays"], [348, "Antenna-Arrays"], [349, "Antenna-Arrays"]], "Antenna Array at Rx": [[342, "Antenna-Array-at-Rx"], [349, "Antenna-Array-at-Rx"]], "Antenna Array at Tx": [[342, "Antenna-Array-at-Tx"], [349, "Antenna-Array-at-Tx"]], "Channel Parameters, Channel Coefficients and OFDM Channel": [[342, "Channel-Parameters,-Channel-Coefficients-and-OFDM-Channel"], [345, "Channel-Parameters,-Channel-Coefficients-and-OFDM-Channel"], [346, "Channel-Parameters,-Channel-Coefficients-and-OFDM-Channel"], [349, "Channel-Parameters,-Channel-Coefficients-and-OFDM-Channel"]], "Frequency Domain Consistency": [[342, "Frequency-Domain-Consistency"]], "Amplitude Spectrum: Each subcarrier accross time": [[342, "Amplitude-Spectrum:-Each-subcarrier-accross-time"]], "Amplitude Spectrum: One subcarrier accross time": [[342, "Amplitude-Spectrum:-One-subcarrier-accross-time"]], "Amplitude Heatmap": [[342, "Amplitude-Heatmap"]], "Phase Spectrum": [[342, "Phase-Spectrum"]], "Doppler Domain Sparsity": [[342, "Doppler-Domain-Sparsity"]], "Delay/Time Domain: Sparsity": [[342, "Delay/Time-Domain:-Sparsity"]], "Wireless Channel Generation for a Dense High Indoor Factory Terrain Deployed at millimeter band.": [[343, "Wireless-Channel-Generation-for-a-Dense-High-Indoor-Factory-Terrain-Deployed-at-millimeter-band."]], "Genarating the Wireless Channel for Indoor Open Office Terrain": [[344, "Genarating-the-Wireless-Channel-for-Indoor-Open-Office-Terrain"]], "Wireless Channel Generation for Outdoor Mobile User Connected to Rural Macro Site": [[345, "Wireless-Channel-Generation-for-Outdoor-Mobile-User-Connected-to-Rural-Macro-Site"]], "Variation in Channel Power across Time": [[345, "Variation-in-Channel-Power-across-Time"], [346, "Variation-in-Channel-Power-across-Time"]], "Animation: Displaying the variation in receiver power of a UE time snapshots": [[345, "Animation:-Displaying-the-variation-in-receiver-power-of-a-UE-time-snapshots"]], "Functions to Animate the Plot": [[345, "Functions-to-Animate-the-Plot"]], "Simulation Animation": [[345, "Simulation-Animation"]], "Channel Generation for Dual Mobility Scenarios in 5G and Beyond": [[346, "Channel-Generation-for-Dual-Mobility-Scenarios-in-5G-and-Beyond"]], "Generate Antenna Array": [[346, "Generate-Antenna-Array"], [347, "Generate-Antenna-Array"]], "Generate Transmit Arrays": [[346, "Generate-Transmit-Arrays"]], "Generate Receiver Arrays": [[346, "Generate-Receiver-Arrays"]], "Generate the Routes": [[346, "Generate-the-Routes"]], "Generate the BS Routes": [[346, "Generate-the-BS-Routes"]], "Generate the UE Routes": [[346, "Generate-the-UE-Routes"]], "Wireless Channel Generation for Multiple Carrier Frequencies": [[347, "Wireless-Channel-Generation-for-Multiple-Carrier-Frequencies"]], "Propagation Characteristics of Outdoor Terrains": [[348, "Propagation-Characteristics-of-Outdoor-Terrains"]], "Compute the Rough estimate of the Probability of line of sight": [[348, "Compute-the-Rough-estimate-of-the-Probability-of-line-of-sight"]], "Parameter Generator": [[348, "Parameter-Generator"]], "Path-loss Characteristics": [[348, "Path-loss-Characteristics"]], "Distribution of Shadow fading": [[348, "Distribution-of-Shadow-fading"]], "Probability Distribution of Rician K factor": [[348, "Probability-Distribution-of-Rician-K-factor"]], "Delay Spread Charateristics": [[348, "Delay-Spread-Charateristics"]], "Angular Spread Characteristics": [[348, "Angular-Spread-Characteristics"]], "Probability distribution of Azimuth-AoA": [[348, "Probability-distribution-of-Azimuth-AoA"]], "Probability distribution of Azimuth-AoD": [[348, "Probability-distribution-of-Azimuth-AoD"]], "Probability distribution of Elevation-AoA": [[348, "Probability-distribution-of-Elevation-AoA"]], "Probability distribution of Elevation-AoD": [[348, "Probability-distribution-of-Elevation-AoD"]], "Beam Domain and Delay Domain Sparsity in Wireless Channel Models": [[349, "Beam-Domain-and-Delay-Domain-Sparsity-in-Wireless-Channel-Models"]], "Demonstrating the Beam Domain Sparsity": [[349, "Demonstrating-the-Beam-Domain-Sparsity"]], "Demonstrating the Delay Domain Sparsity": [[349, "Demonstrating-the-Delay-Domain-Sparsity"]], "Detailed Tutorials on 3GPP Channel Models": [[350, "detailed-tutorials-on-3gpp-channel-models"]], "Initial Access in 5G": [[351, "Initial-Access-in-5G"]], "External Libaries": [[351, "External-Libaries"]], "5G Toolkit Modules": [[351, "5G-Toolkit-Modules"]], "System Parameters": [[351, "System-Parameters"]], "PBCH Information": [[351, "PBCH-Information"]], "Transmission-side Processing": [[351, "Transmission-side-Processing"]], "Generate Primary Synchronization Sequence (PSS)": [[351, "Generate-Primary-Synchronization-Sequence-(PSS)"]], "Generate Secondary Synchronization Sequence (SSS)": [[351, "Generate-Secondary-Synchronization-Sequence-(SSS)"]], "Generate Demodulation Reference Sequence (DMRS)": [[351, "Generate-Demodulation-Reference-Sequence-(DMRS)"]], "Generate the PBCH Payload": [[351, "Generate-the-PBCH-Payload"]], "Constellation Diagram: Tx": [[351, "Constellation-Diagram:-Tx"]], "Construct SSB Grid": [[351, "Construct-SSB-Grid"]], "Mapping SSB to Transmission Grid for ODFM": [[351, "Mapping-SSB-to-Transmission-Grid-for-ODFM"]], "OFDM-Modulator": [[351, "OFDM-Modulator"]], "Analog Beamforming": [[351, "Analog-Beamforming"]], "Pass Tx signal through Wireless Channel": [[351, "Pass-Tx-signal-through-Wireless-Channel"]], "Noise addition at receiver": [[351, "Noise-addition-at-receiver"]], "SSB Receiver Side": [[351, "SSB-Receiver-Side"]], "Receiver combining": [[351, "Receiver-combining"]], "PSS Detection: largest peak": [[351, "PSS-Detection:-largest-peak"]], "Largest peak": [[351, "Largest-peak"]], "OFDM Demodulation: Resource Grid reconstruction": [[351, "OFDM-Demodulation:-Resource-Grid-reconstruction"]], "SSB Extaction from Resource Grid": [[351, "SSB-Extaction-from-Resource-Grid"]], "Comparing Transmitted and Received SSB Grid": [[351, "Comparing-Transmitted-and-Received-SSB-Grid"]], "Spectrum Analysis": [[351, "Spectrum-Analysis"]], "(SSS Detection: PSS channel assisted) + Cell-ID estimation": [[351, "(SSS-Detection:-PSS-channel-assisted)-+-Cell-ID-estimation"]], "DMRS Parameters Detection + DMRS Sequence Generation": [[351, "DMRS-Parameters-Detection-+-DMRS-Sequence-Generation"]], "Constellation Diagram: Rx": [[351, "Constellation-Diagram:-Rx"]], "PBCH Decoding": [[351, "PBCH-Decoding"]], "Information Aggregation": [[351, "Information-Aggregation"]], "Performance Evaluations: BER + Cell-IDs + DMRS Parameter Detection": [[351, "Performance-Evaluations:-BER-+-Cell-IDs-+-DMRS-Parameter-Detection"]], "Cell-IDs Detection": [[351, "Cell-IDs-Detection"]], "DMRS Parameter Detection": [[351, "DMRS-Parameter-Detection"]], "BER computation": [[351, "BER-computation"]], "Coverage Evaluation of Physical Broadcast Channels (PBCH) in 5G Networks": [[352, "Coverage-Evaluation-of-Physical-Broadcast-Channels-(PBCH)-in-5G-Networks"]], "Import 5G Toolkit Libraiers": [[352, "Import-5G-Toolkit-Libraiers"]], "Generate the Wireless Channel : CDL-A": [[352, "Generate-the-Wireless-Channel-:-CDL-A"]], "Set SSB and Time-Frequency OFDM Configurations/Parameters": [[352, "Set-SSB-and-Time-Frequency-OFDM-Configurations/Parameters"]], "Generate the Synchronization Signal Block (SSB) Grid": [[352, "Generate-the-Synchronization-Signal-Block-(SSB)-Grid"]], "Generate the Transmission Grid": [[352, "Generate-the-Transmission-Grid"]], "Display the Heatmap for the Received Grid": [[352, "Display-the-Heatmap-for-the-Received-Grid"]], "Link level Simulation: BLER for each SNR value": [[352, "Link-level-Simulation:-BLER-for-each-SNR-value"]], "Block Error Rate Performance": [[352, "Block-Error-Rate-Performance"]], "Block Error Rate: Averaged over a 10000 batches": [[352, "Block-Error-Rate:-Averaged-over-a-10000-batches"]], "BER Performance of PUCCH Format 0": [[353, "ber-performance-of-pucch-format-0"]], "5G ToolKit Libraries": [[353, "g-toolkit-libraries"]], "Format 0": [[353, "format-0"]], "Format 0 Decoder": [[353, "format-0-decoder"]], "M_CS Estimation": [[353, "m-cs-estimation"]], "Information content based on MCS value": [[353, "information-content-based-on-mcs-value"]], "Performance Plot": [[353, "performance-plot"]], "Link Level Simulation for Physical Downlink Shared Channel in 5G": [[354, "Link-Level-Simulation-for-Physical-Downlink-Shared-Channel-in-5G"]], "PDSCH Configurations": [[354, "PDSCH-Configurations"]], "PDSCH Implementation": [[354, "PDSCH-Implementation"]], "SVD based Precoding and Beamforming": [[354, "SVD-based-Precoding-and-Beamforming"]], "Recevier Side Processing": [[354, "Recevier-Side-Processing"]], "Save Results": [[354, "Save-Results"]], "Tutorials": [[355, "tutorials"]], "Challenge Of this Week": [[356, "challenge-of-this-week"]], "Arxiv-ed Challenges": [[357, "arxiv-ed-challenges"]], "Solution of this Months Problems": [[358, "solution-of-this-months-problems"]], "Install 5G Toolkit": [[359, "install-5g-toolkit"], [359, "id2"], [360, "install-5g-toolkit"], [360, "id1"], [360, "id5"], [362, "install-5g-toolkit"], [362, "id3"], [363, "install-5g-toolkit"]], "System Requirements:": [[359, "system-requirements"], [362, "system-requirements"], [363, "system-requirements"]], "Dependent Libraries:": [[359, "dependent-libraries"], [363, "dependent-libraries"]], "Install Miniconda": [[359, "install-miniconda"], [360, "install-miniconda"], [360, "id2"], [362, "install-miniconda"]], "Install Jupyter Notebook": [[359, "install-jupyter-notebook"], [360, "install-jupyter-notebook"], [360, "id4"], [362, "install-jupyter-notebook"]], "Final Confirmation": [[359, "final-confirmation"], [360, "final-confirmation"], [360, "id6"], [362, "final-confirmation"]], "License 5G Toolkit": [[359, "license-5g-toolkit"], [362, "license-5g-toolkit"], [363, "license-5g-toolkit"]], "Activate the 5G Toolkit License": [[359, "activate-the-5g-toolkit-license"], [362, "activate-the-5g-toolkit-license"], [363, "activate-the-5g-toolkit-license"]], "Installation Tutorial: Video": [[359, "installation-tutorial-video"], [362, "installation-tutorial-video"]], "Detailed Installation on Ubuntu": [[360, "detailed-installation-on-ubuntu"]], "Update Ubuntu system": [[360, "update-ubuntu-system"]], "Detailed Installation on Windows 10/11": [[360, "detailed-installation-on-windows-10-11"]], "Create an environment using Conda": [[360, "create-an-environment-using-conda"]], "5G Toolkit": [[361, "g-toolkit"]], "Salient Features": [[361, "salient-features"]], "Technical Features": [[361, "technical-features"]], "5G Toolkit R24a.0.3 Documentation": [[361, "g-toolkit-version-documentation"]], "How the documentation is organized": [[361, "how-the-documentation-is-organized"]], "Looking for Help": [[361, "looking-for-help"]], "More Information": [[361, "more-information"]], "5G Toolkit Features": [[361, "g-toolkit-features"]], "Dependent Libraries": [[362, "dependent-libraries"], [363, "id2"]], "How to install 5G Toolkit:": [[363, "how-to-install-5g-toolkit"]], "system Requirements": [[363, "id1"]], "Install 5G Toolkit on Ubuntu (20.04/22.04) and Windows (10/11)": [[363, "install-5g-toolkit-on-ubuntu-20-04-22-04-and-windows-10-11"]], "Library Dependencies": [[363, "id3"]], "Detailed Installation Procedure": [[363, "detailed-installation-procedure"]], "Release Notes": [[364, "release-notes"]], "Getting Started with 5G Toolkit": [[365, "Getting-Started-with-5G-Toolkit"]], "Create Objects": [[365, "Create-Objects"]], "Payload Bits Generation and Encoding": [[365, "Payload-Bits-Generation-and-Encoding"]], "Symbol Mapper": [[365, "Symbol-Mapper"]], "AWGN Channel": [[365, "AWGN-Channel"]], "CRC Decoder: Error Detection": [[365, "CRC-Decoder:-Error-Detection"]], "BER and Block Error Computation": [[365, "BER-and-Block-Error-Computation"]], "Display BER/BLER vs SNR.": [[365, "Display-BER/BLER-vs-SNR."]]}, "indexentries": {"crcdecoder (class in toolkit5g.crc)": [[3, "toolkit5G.CRC.CRCDecoder"]], "crcencoder (class in toolkit5g.crc)": [[4, "toolkit5G.CRC.CRCEncoder"]], "hammingdecoder (class in toolkit5g.channelcoder.hammingcoder.hammingdecoder)": [[5, "toolkit5G.ChannelCoder.HammingCoder.hammingDecoder.HammingDecoder"]], "hammingencoder (class in toolkit5g.channelcoder.hammingcoder.hammingencoder)": [[5, "toolkit5G.ChannelCoder.HammingCoder.hammingEncoder.HammingEncoder"]], "hammingspheredecoder (class in toolkit5g.channelcoder.hammingcoder.hammingdecoder)": [[5, "toolkit5G.ChannelCoder.HammingCoder.hammingDecoder.HammingSphereDecoder"]], "hammingsyndromedecoder (class in toolkit5g.channelcoder.hammingcoder.hammingdecoder)": [[5, "toolkit5G.ChannelCoder.HammingCoder.hammingDecoder.HammingSyndromeDecoder"]], "ldpcdecoder5g (class in toolkit5g.channelcoder)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G"]], "ldpcencoder5g (class in toolkit5g.channelcoder)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G"]], "bm (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.bm"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.bm"]], "bm (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.bm"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.bm"]], "computeils() (toolkit5g.channelcoder.ldpcdecoder5g method)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.computeIls"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.computeIls"]], "computeils() (toolkit5g.channelcoder.ldpcencoder5g method)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.computeIls"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.computeIls"]], "i_ls (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.i_ls"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.i_ls"]], "i_ls (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.i_ls"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.i_ls"]], "k (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.k"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.k"]], "k_ldpc (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.k_ldpc"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.k_ldpc"]], "llr_max (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.llr_max"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.llr_max"]], "n (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.n"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.n"]], "n (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.n"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.n"]], "n_ldpc (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.n_ldpc"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.n_ldpc"]], "n_ldpc (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.n_ldpc"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.n_ldpc"]], "nb_pruned_nodes (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.nb_pruned_nodes"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.nb_pruned_nodes"]], "pcm (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.pcm"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.pcm"]], "prune_pcm (toolkit5g.channelcoder.ldpcdecoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCDecoder5G.prune_pcm"], [96, "toolkit5G.ChannelCoder.LDPCDecoder5G.prune_pcm"]], "z (toolkit5g.channelcoder.ldpcencoder5g property)": [[6, "toolkit5G.ChannelCoder.LDPCEncoder5G.z"], [96, "toolkit5G.ChannelCoder.LDPCEncoder5G.z"]], "c (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.C"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.C"]], "codeblockaggregation (class in toolkit5g.channelcoder.ldpc)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation"]], "codeblocksegregation (class in toolkit5g.channelcoder.ldpc)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegregation"], [92, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegregation"]], "kbar (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.Kbar"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.Kbar"]], "kcb (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.Kcb"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.Kcb"]], "basegraph (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.baseGraph"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.baseGraph"]], "coderate (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.codeRate"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.codeRate"]], "crctype (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.crcType"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.crcType"]], "tbsize (toolkit5g.channelcoder.ldpc.codeblockaggregation property)": [[7, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.tbSize"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockAggregation.tbSize"]], "b (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.B"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.B"]], "c (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.C"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.C"]], "codeblockconcatenation (class in toolkit5g.channelcoder.ldpc)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockConcatenation"], [92, "toolkit5G.ChannelCoder.LDPC.CodeBlockConcatenation"]], "codeblocksegmentation (class in toolkit5g.channelcoder.ldpc)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation"]], "k (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.K"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.K"]], "kb (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Kb"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Kb"]], "kbar (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Kbar"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Kbar"]], "l (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.L"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.L"]], "zc (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Zc"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.Zc"]], "basegraph (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.baseGraph"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.baseGraph"]], "coderate (toolkit5g.channelcoder.ldpc.codeblocksegmentation property)": [[8, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.codeRate"], [93, "toolkit5G.ChannelCoder.LDPC.CodeBlockSegmentation.codeRate"]], "ldpcparameters (class in toolkit5g.channelcoder.ldpc)": [[9, "toolkit5G.ChannelCoder.LDPC.LDPCparameters"]], "e (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.E"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.E"]], "k (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.K"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.K"]], "n (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.N"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.N"]], "n (toolkit5g.channelcoder.polarencoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [55, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [74, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [117, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [142, "toolkit5G.ChannelCoder.PolarEncoder5G.N"], [146, "toolkit5G.ChannelCoder.PolarEncoder5G.N"]], "polardecoder5g (class in toolkit5g.channelcoder)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G"]], "polarencoder5g (class in toolkit5g.channelcoder)": [[10, "toolkit5G.ChannelCoder.PolarEncoder5G"], [55, "toolkit5G.ChannelCoder.PolarEncoder5G"], [74, "toolkit5G.ChannelCoder.PolarEncoder5G"], [117, "toolkit5G.ChannelCoder.PolarEncoder5G"], [142, "toolkit5G.ChannelCoder.PolarEncoder5G"], [146, "toolkit5G.ChannelCoder.PolarEncoder5G"]], "dec_type (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.dec_type"]], "llr_max (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.llr_max"]], "output_dtype (toolkit5g.channelcoder.polardecoder5g property)": [[10, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [55, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [74, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [117, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [142, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"], [146, "toolkit5G.ChannelCoder.PolarDecoder5G.output_dtype"]], "codeblockaggregation (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [44, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [69, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [112, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [143, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"], [149, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockAggregation"]], "codeblockconcatenation (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [44, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [69, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [112, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [143, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"], [148, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockConcatenation"]], "codeblocksegmentation (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [44, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [69, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [112, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [143, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"], [149, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegmentation"]], "codeblocksegregation (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [44, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [69, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [112, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [143, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"], [148, "toolkit5G.ChannelCoder.PolarCoder.CodeBlockSegregation"]], "inputbitdeinterleaver (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [27, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [44, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [69, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [112, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"], [143, "toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver"]], "inputbitinterleaver (class in toolkit5g.channelcoder.polarcoder)": [[11, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [27, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [44, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [69, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [112, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"], [143, "toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver"]], "reedmullerdecoder5g (class in toolkit5g.channelcoder)": [[12, "toolkit5G.ChannelCoder.ReedMullerDecoder5G"]], "reedmullerencoder5g (class in toolkit5g.channelcoder)": [[12, "toolkit5G.ChannelCoder.ReedMullerEncoder5G"]], "dtype (toolkit5g.channelcoder.reedmullerdecoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerDecoder5G.dtype"]], "dtype (toolkit5g.channelcoder.reedmullerencoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerEncoder5G.dtype"]], "hardin (toolkit5g.channelcoder.reedmullerdecoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerDecoder5G.hardIn"]], "k (toolkit5g.channelcoder.reedmullerdecoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerDecoder5G.k"]], "k (toolkit5g.channelcoder.reedmullerencoder5g property)": [[12, "toolkit5G.ChannelCoder.ReedMullerEncoder5G.k"]], "antennaarrays (class in toolkit5g.channelmodels)": [[14, "toolkit5G.ChannelModels.AntennaArrays"]], "antenna_3gpp_38901 (class in toolkit5g.channelmodels.antennaarrays)": [[14, "toolkit5G.ChannelModels.antennaArrays.Antenna_3GPP_38901"]], "antenna_hertziandipole (class in toolkit5g.channelmodels.antennaarrays)": [[14, "toolkit5G.ChannelModels.antennaArrays.Antenna_HertzianDipole"]], "antenna_lineardipole (class in toolkit5g.channelmodels.antennaarrays)": [[14, "toolkit5G.ChannelModels.antennaArrays.Antenna_LinearDipole"]], "channelgenerator (class in toolkit5g.channelmodels)": [[15, "toolkit5G.ChannelModels.ChannelGenerator"]], "circularroute (class in toolkit5g.channelmodels.nodemobility)": [[17, "toolkit5G.ChannelModels.nodeMobility.CircularRoute"]], "dropvehicleshighway (class in toolkit5g.channelmodels.nodemobility)": [[17, "toolkit5G.ChannelModels.nodeMobility.DropVehiclesHighway"]], "nodemobility (class in toolkit5g.channelmodels)": [[17, "toolkit5G.ChannelModels.NodeMobility"]], "randomwalk (class in toolkit5g.channelmodels.nodemobility)": [[17, "toolkit5G.ChannelModels.nodeMobility.RandomWalk"]], "displayroute() (toolkit5g.channelmodels.nodemobility method)": [[17, "toolkit5G.ChannelModels.NodeMobility.displayRoute"]], "parametergenerator (class in toolkit5g.channelmodels)": [[18, "toolkit5G.ChannelModels.ParameterGenerator"]], "bslocations (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.BSLocations"]], "hexagonallayout (class in toolkit5g.channelmodels.simulationlayout)": [[19, "toolkit5G.ChannelModels.simulationLayout.HexagonalLayout"]], "isd (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.ISD"]], "rectangularlayout (class in toolkit5g.channelmodels.simulationlayout)": [[19, "toolkit5G.ChannelModels.simulationLayout.RectangularLayout"]], "simulationlayout (class in toolkit5g.channelmodels)": [[19, "toolkit5G.ChannelModels.SimulationLayout"]], "uelocations (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.UELocations"]], "uedistibution (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.UEdistibution"]], "ueheightdistribution (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.UEheightDistribution"]], "bsantennaarray (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.bsAntennaArray"]], "bsroute (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.bsRoute"]], "carrierfrequency (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.carrierFrequency"]], "clutterdensity (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.clutterDensity"]], "clutterheight (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.clutterHeight"]], "cluttersize (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.clutterSize"]], "correlationdistanceindoor (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.correlationDistanceIndoor"]], "correlationdistancelos (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.correlationDistanceLoS"]], "correlationtypeindoor (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.correlationTypeIndoor"]], "correlationtypelos (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.correlationTypeLoS"]], "enablespatialconsistencyindoor (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.enableSpatialConsistencyIndoor"]], "enablespatialconsistencylos (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.enableSpatialConsistencyLoS"]], "force3gppspatialconsistencyparameters (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.force3GPPSpatialConsistencyParameters"]], "forcelos (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.forceLOS"]], "heightofbs (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.heightOfBS"]], "heightofroom (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.heightOfRoom"]], "heightofue (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.heightOfUE"]], "indooruefraction (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.indoorUEfraction"]], "layoutlength (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.layoutLength"]], "layouttype (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.layoutType"]], "layoutwidth (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.layoutWidth"]], "lengthofindoorobject (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.lengthOfIndoorObject"]], "maxnumberoffloors (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.maxNumberOfFloors"]], "memoryefficient (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.memoryEfficient"]], "minnumberoffloors (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.minNumberOfFloors"]], "minuebsdistance (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.minUEBSDistance"]], "numofbs (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.numOfBS"]], "numofsectorspersite (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.numOfSectorsPerSite"]], "numofsnapshots (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.numOfSnapShots"]], "numofue (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.numOfUE"]], "radiusforcircularuedrop (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.radiusForCircularUEDrop"]], "routetype (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.routeType"]], "terrain (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.terrain"]], "ueantennaarray (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.ueAntennaArray"]], "uedropmethod (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.ueDropMethod"]], "ueroute (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.ueRoute"]], "widthofindoorobject (toolkit5g.channelmodels.simulationlayout property)": [[19, "toolkit5G.ChannelModels.SimulationLayout.widthOfIndoorObject"]], "addnoise (class in toolkit5g.channelprocessing)": [[21, "toolkit5G.ChannelProcessing.AddNoise"]], "applychannel (class in toolkit5g.channelprocessing)": [[22, "toolkit5G.ChannelProcessing.ApplyChannel"]], "enableintertxinterference (toolkit5g.channelprocessing.applychannel property)": [[22, "toolkit5G.ChannelProcessing.ApplyChannel.enableInterTxInterference"]], "isfrequencydomain (toolkit5g.channelprocessing.applychannel property)": [[22, "toolkit5G.ChannelProcessing.ApplyChannel.isFrequencyDomain"]], "memoryconsumptionlevel (toolkit5g.channelprocessing.applychannel property)": [[22, "toolkit5G.ChannelProcessing.ApplyChannel.memoryConsumptionLevel"]], "bitdeinterleaver (class in toolkit5g.ratematcher.ldpc)": [[24, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver"], [101, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver"], [208, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver"]], "bitinterleaver (class in toolkit5g.ratematcher.ldpc)": [[24, "toolkit5G.Ratematcher.LDPC.BitInterleaver"], [101, "toolkit5G.Ratematcher.LDPC.BitInterleaver"], [208, "toolkit5G.Ratematcher.LDPC.BitInterleaver"]], "modorder (toolkit5g.ratematcher.ldpc.bitdeinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.modOrder"], [101, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.modOrder"], [208, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.modOrder"]], "modorder (toolkit5g.ratematcher.ldpc.bitinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitInterleaver.modOrder"], [101, "toolkit5G.Ratematcher.LDPC.BitInterleaver.modOrder"], [208, "toolkit5G.Ratematcher.LDPC.BitInterleaver.modOrder"]], "numbits1 (toolkit5g.ratematcher.ldpc.bitdeinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits1"], [101, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits1"], [208, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits1"]], "numbits1 (toolkit5g.ratematcher.ldpc.bitinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits1"], [101, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits1"], [208, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits1"]], "numbits2 (toolkit5g.ratematcher.ldpc.bitdeinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits2"], [101, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits2"], [208, "toolkit5G.Ratematcher.LDPC.BitDeinterleaver.numBits2"]], "numbits2 (toolkit5g.ratematcher.ldpc.bitinterleaver property)": [[24, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits2"], [101, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits2"], [208, "toolkit5G.Ratematcher.LDPC.BitInterleaver.numBits2"]], "pbchdeinterleaver (class in toolkit5g.physicalchannels.pbch)": [[25, "toolkit5G.PhysicalChannels.PBCH.PBCHDeInterleaver"]], "pbchinterleaver (class in toolkit5g.physicalchannels.pbch)": [[25, "toolkit5G.PhysicalChannels.PBCH.PBCHInterleaver"]], "channeldeinterleaver (class in toolkit5g.ratematcher.polarcoder)": [[26, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [58, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [77, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [120, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [153, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [158, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"], [211, "toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver"]], "channelinterleaver (class in toolkit5g.ratematcher.polarcoder)": [[26, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [58, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [77, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [120, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [153, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [158, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"], [211, "toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver"]], "subblock_deinterleaver (class in toolkit5g.ratematcher.polarcoder)": [[28, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [59, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [78, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [121, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [154, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [158, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"], [212, "toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver"]], "subblock_interleaver (class in toolkit5g.ratematcher.polarcoder)": [[28, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [59, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [78, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [121, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [154, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [158, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"], [212, "toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver"]], "searchfree (class in toolkit5g.mimoprocessing)": [[29, "toolkit5G.MIMOProcessing.SearchFree"]], "typeicodebook (class in toolkit5g.mimoprocessing)": [[29, "toolkit5G.MIMOProcessing.TypeICodeBook"]], "ofdmdemodulator (class in toolkit5g.ofdm)": [[32, "toolkit5G.OFDM.OFDMDemodulator"]], "ofdmmodulator (class in toolkit5g.ofdm)": [[33, "toolkit5G.OFDM.OFDMModulator"]], "transformprecoding (class in toolkit5g.ofdm)": [[34, "toolkit5G.OFDM.TransformPrecoding"], [36, "toolkit5G.OFDM.TransformPrecoding"]], "transformdecoding5g (class in toolkit5g.ofdm)": [[35, "toolkit5G.OFDM.TransformDecoding5G"]], "transformprecoding5g (class in toolkit5g.ofdm)": [[37, "toolkit5G.OFDM.TransformPrecoding5G"]], "dciextraction (class in toolkit5g.payloadgeneration)": [[38, "toolkit5G.PayloadGeneration.DCIExtraction"]], "dcigeneration (class in toolkit5g.payloadgeneration)": [[38, "toolkit5G.PayloadGeneration.DCIGeneration"]], "mibextraction (class in toolkit5g.payloadgeneration)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction"], [46, "toolkit5G.PayloadGeneration.MIBExtraction"]], "mibgeneration (class in toolkit5g.payloadgeneration)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration"], [46, "toolkit5G.PayloadGeneration.MIBGeneration"]], "carrierfreq (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.carrierFreq"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.carrierFreq"]], "carrierfreq (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.carrierFreq"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.carrierFreq"]], "cellbarred (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.cellBarred"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.cellBarred"]], "cellbarred (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.cellBarred"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.cellBarred"]], "choicebit (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.choiceBit"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.choiceBit"]], "choicebit (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.choiceBit"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.choiceBit"]], "controlresourceset0 (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.controlResourceSet0"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.controlResourceSet0"]], "controlresourceset0 (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.controlResourceSet0"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.controlResourceSet0"]], "displayparameters() (toolkit5g.payloadgeneration.mibextraction method)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.displayParameters"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.displayParameters"]], "displayparameters() (toolkit5g.payloadgeneration.mibgeneration method)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.displayParameters"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.displayParameters"]], "dmrstypeaposition (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.dmrsTypeAPosition"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.dmrsTypeAPosition"]], "dmrstypeaposition (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.dmrsTypeAPosition"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.dmrsTypeAPosition"]], "hrfbit (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.hrfBit"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.hrfBit"]], "hrfbit (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.hrfBit"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.hrfBit"]], "intrafrequencyreselection (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.intraFrequencyReselection"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.intraFrequencyReselection"]], "intrafrequencyreselection (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.intraFrequencyReselection"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.intraFrequencyReselection"]], "nssbcandidatesinhrf (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.nssbCandidatesInHrf"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.nssbCandidatesInHrf"]], "nssbcandidatesinhrf (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.nssbCandidatesInHrf"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.nssbCandidatesInHrf"]], "searchspace0 (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.searchSpace0"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.searchSpace0"]], "searchspace0 (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.searchSpace0"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.searchSpace0"]], "ssbindex (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.ssbIndex"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.ssbIndex"]], "ssbindex (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.ssbIndex"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.ssbIndex"]], "ssbsubcarrieroffset (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.ssbSubCarrierOffset"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.ssbSubCarrierOffset"]], "ssbsubcarrieroffset (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.ssbSubCarrierOffset"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.ssbSubCarrierOffset"]], "subcarrierspacingcommon (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.subCarrierSpacingCommon"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.subCarrierSpacingCommon"]], "subcarrierspacingcommon (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.subCarrierSpacingCommon"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.subCarrierSpacingCommon"]], "systemframenumber (toolkit5g.payloadgeneration.mibextraction property)": [[39, "toolkit5G.PayloadGeneration.MIBExtraction.systemFrameNumber"], [46, "toolkit5G.PayloadGeneration.MIBExtraction.systemFrameNumber"]], "systemframenumber (toolkit5g.payloadgeneration.mibgeneration property)": [[39, "toolkit5G.PayloadGeneration.MIBGeneration.systemFrameNumber"], [46, "toolkit5G.PayloadGeneration.MIBGeneration.systemFrameNumber"]], "demapper (class in toolkit5g.symbolmapping)": [[48, "toolkit5G.SymbolMapping.Demapper"], [60, "toolkit5G.SymbolMapping.Demapper"], [71, "toolkit5G.SymbolMapping.Demapper"], [79, "toolkit5G.SymbolMapping.Demapper"], [98, "toolkit5G.SymbolMapping.Demapper"], [114, "toolkit5G.SymbolMapping.Demapper"], [122, "toolkit5G.SymbolMapping.Demapper"], [170, "toolkit5G.SymbolMapping.Demapper"], [173, "toolkit5G.SymbolMapping.Demapper"], [258, "toolkit5G.SymbolMapping.Demapper"]], "mapper (class in toolkit5g.symbolmapping)": [[49, "toolkit5G.SymbolMapping.Mapper"], [72, "toolkit5G.SymbolMapping.Mapper"], [99, "toolkit5G.SymbolMapping.Mapper"], [115, "toolkit5G.SymbolMapping.Mapper"], [171, "toolkit5G.SymbolMapping.Mapper"], [174, "toolkit5G.SymbolMapping.Mapper"], [259, "toolkit5G.SymbolMapping.Mapper"]], "bitdeselection (class in toolkit5g.ratematcher.polarcoder)": [[57, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [76, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [119, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [152, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [159, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"], [210, "toolkit5G.Ratematcher.PolarCoder.BitDeSelection"]], "bitselection (class in toolkit5g.ratematcher.polarcoder)": [[57, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [76, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [119, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [152, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [159, "toolkit5G.Ratematcher.PolarCoder.BitSelection"], [210, "toolkit5G.Ratematcher.PolarCoder.BitSelection"]], "rntimasking (class in toolkit5g.scrambler)": [[62, "toolkit5G.Scrambler.RNTImasking"], [81, "toolkit5G.Scrambler.RNTImasking"], [124, "toolkit5G.Scrambler.RNTImasking"], [164, "toolkit5G.Scrambler.RNTImasking"], [241, "toolkit5G.Scrambler.RNTImasking"]], "rnti (toolkit5g.scrambler.rntimasking property)": [[62, "toolkit5G.Scrambler.RNTImasking.rnti"], [81, "toolkit5G.Scrambler.RNTImasking.rnti"], [124, "toolkit5G.Scrambler.RNTImasking.rnti"], [164, "toolkit5G.Scrambler.RNTImasking.rnti"], [241, "toolkit5G.Scrambler.RNTImasking.rnti"]], "descrambler (class in toolkit5g.scrambler)": [[64, "toolkit5G.Scrambler.DeScrambler"], [83, "toolkit5G.Scrambler.DeScrambler"], [106, "toolkit5G.Scrambler.DeScrambler"], [126, "toolkit5G.Scrambler.DeScrambler"], [163, "toolkit5G.Scrambler.DeScrambler"], [167, "toolkit5G.Scrambler.DeScrambler"], [240, "toolkit5G.Scrambler.DeScrambler"]], "lmax (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.Lmax"], [83, "toolkit5G.Scrambler.DeScrambler.Lmax"], [106, "toolkit5G.Scrambler.DeScrambler.Lmax"], [126, "toolkit5G.Scrambler.DeScrambler.Lmax"], [163, "toolkit5G.Scrambler.DeScrambler.Lmax"], [167, "toolkit5G.Scrambler.DeScrambler.Lmax"], [240, "toolkit5G.Scrambler.DeScrambler.Lmax"]], "c_init (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.c_init"], [83, "toolkit5G.Scrambler.DeScrambler.c_init"], [106, "toolkit5G.Scrambler.DeScrambler.c_init"], [126, "toolkit5G.Scrambler.DeScrambler.c_init"], [163, "toolkit5G.Scrambler.DeScrambler.c_init"], [167, "toolkit5G.Scrambler.DeScrambler.c_init"], [240, "toolkit5G.Scrambler.DeScrambler.c_init"]], "id (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.id"], [83, "toolkit5G.Scrambler.DeScrambler.id"], [106, "toolkit5G.Scrambler.DeScrambler.id"], [126, "toolkit5G.Scrambler.DeScrambler.id"], [163, "toolkit5G.Scrambler.DeScrambler.id"], [167, "toolkit5G.Scrambler.DeScrambler.id"], [240, "toolkit5G.Scrambler.DeScrambler.id"]], "mu (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.mu"], [83, "toolkit5G.Scrambler.DeScrambler.mu"], [106, "toolkit5G.Scrambler.DeScrambler.mu"], [126, "toolkit5G.Scrambler.DeScrambler.mu"], [163, "toolkit5G.Scrambler.DeScrambler.mu"], [167, "toolkit5G.Scrambler.DeScrambler.mu"], [240, "toolkit5G.Scrambler.DeScrambler.mu"]], "nid (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.nID"], [83, "toolkit5G.Scrambler.DeScrambler.nID"], [106, "toolkit5G.Scrambler.DeScrambler.nID"], [126, "toolkit5G.Scrambler.DeScrambler.nID"], [163, "toolkit5G.Scrambler.DeScrambler.nID"], [167, "toolkit5G.Scrambler.DeScrambler.nID"], [240, "toolkit5G.Scrambler.DeScrambler.nID"]], "purpose (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.purpose"], [83, "toolkit5G.Scrambler.DeScrambler.purpose"], [106, "toolkit5G.Scrambler.DeScrambler.purpose"], [126, "toolkit5G.Scrambler.DeScrambler.purpose"], [163, "toolkit5G.Scrambler.DeScrambler.purpose"], [167, "toolkit5G.Scrambler.DeScrambler.purpose"], [240, "toolkit5G.Scrambler.DeScrambler.purpose"]], "q (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.q"], [83, "toolkit5G.Scrambler.DeScrambler.q"], [106, "toolkit5G.Scrambler.DeScrambler.q"], [126, "toolkit5G.Scrambler.DeScrambler.q"], [163, "toolkit5G.Scrambler.DeScrambler.q"], [167, "toolkit5G.Scrambler.DeScrambler.q"], [240, "toolkit5G.Scrambler.DeScrambler.q"]], "rnti (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.rnti"], [83, "toolkit5G.Scrambler.DeScrambler.rnti"], [106, "toolkit5G.Scrambler.DeScrambler.rnti"], [126, "toolkit5G.Scrambler.DeScrambler.rnti"], [163, "toolkit5G.Scrambler.DeScrambler.rnti"], [167, "toolkit5G.Scrambler.DeScrambler.rnti"], [240, "toolkit5G.Scrambler.DeScrambler.rnti"]], "ssbindex (toolkit5g.scrambler.descrambler property)": [[64, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [83, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [106, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [126, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [163, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [167, "toolkit5G.Scrambler.DeScrambler.ssbIndex"], [240, "toolkit5G.Scrambler.DeScrambler.ssbIndex"]], "lmax (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.Lmax"], [84, "toolkit5G.Scrambler.Scrambler.Lmax"], [107, "toolkit5G.Scrambler.Scrambler.Lmax"], [127, "toolkit5G.Scrambler.Scrambler.Lmax"], [165, "toolkit5G.Scrambler.Scrambler.Lmax"], [168, "toolkit5G.Scrambler.Scrambler.Lmax"], [242, "toolkit5G.Scrambler.Scrambler.Lmax"]], "scrambler (class in toolkit5g.scrambler)": [[65, "toolkit5G.Scrambler.Scrambler"], [84, "toolkit5G.Scrambler.Scrambler"], [107, "toolkit5G.Scrambler.Scrambler"], [127, "toolkit5G.Scrambler.Scrambler"], [165, "toolkit5G.Scrambler.Scrambler"], [168, "toolkit5G.Scrambler.Scrambler"], [242, "toolkit5G.Scrambler.Scrambler"]], "c_init (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.c_init"], [84, "toolkit5G.Scrambler.Scrambler.c_init"], [107, "toolkit5G.Scrambler.Scrambler.c_init"], [127, "toolkit5G.Scrambler.Scrambler.c_init"], [165, "toolkit5G.Scrambler.Scrambler.c_init"], [168, "toolkit5G.Scrambler.Scrambler.c_init"], [242, "toolkit5G.Scrambler.Scrambler.c_init"]], "id (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.id"], [84, "toolkit5G.Scrambler.Scrambler.id"], [107, "toolkit5G.Scrambler.Scrambler.id"], [127, "toolkit5G.Scrambler.Scrambler.id"], [165, "toolkit5G.Scrambler.Scrambler.id"], [168, "toolkit5G.Scrambler.Scrambler.id"], [242, "toolkit5G.Scrambler.Scrambler.id"]], "mu (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.mu"], [84, "toolkit5G.Scrambler.Scrambler.mu"], [107, "toolkit5G.Scrambler.Scrambler.mu"], [127, "toolkit5G.Scrambler.Scrambler.mu"], [165, "toolkit5G.Scrambler.Scrambler.mu"], [168, "toolkit5G.Scrambler.Scrambler.mu"], [242, "toolkit5G.Scrambler.Scrambler.mu"]], "nid (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.nID"], [84, "toolkit5G.Scrambler.Scrambler.nID"], [107, "toolkit5G.Scrambler.Scrambler.nID"], [127, "toolkit5G.Scrambler.Scrambler.nID"], [165, "toolkit5G.Scrambler.Scrambler.nID"], [168, "toolkit5G.Scrambler.Scrambler.nID"], [242, "toolkit5G.Scrambler.Scrambler.nID"]], "purpose (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.purpose"], [84, "toolkit5G.Scrambler.Scrambler.purpose"], [107, "toolkit5G.Scrambler.Scrambler.purpose"], [127, "toolkit5G.Scrambler.Scrambler.purpose"], [165, "toolkit5G.Scrambler.Scrambler.purpose"], [168, "toolkit5G.Scrambler.Scrambler.purpose"], [242, "toolkit5G.Scrambler.Scrambler.purpose"]], "q (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.q"], [84, "toolkit5G.Scrambler.Scrambler.q"], [107, "toolkit5G.Scrambler.Scrambler.q"], [127, "toolkit5G.Scrambler.Scrambler.q"], [165, "toolkit5G.Scrambler.Scrambler.q"], [168, "toolkit5G.Scrambler.Scrambler.q"], [242, "toolkit5G.Scrambler.Scrambler.q"]], "rnti (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.rnti"], [84, "toolkit5G.Scrambler.Scrambler.rnti"], [107, "toolkit5G.Scrambler.Scrambler.rnti"], [127, "toolkit5G.Scrambler.Scrambler.rnti"], [165, "toolkit5G.Scrambler.Scrambler.rnti"], [168, "toolkit5G.Scrambler.Scrambler.rnti"], [242, "toolkit5G.Scrambler.Scrambler.rnti"]], "ssbindex (toolkit5g.scrambler.scrambler property)": [[65, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [84, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [107, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [127, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [165, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [168, "toolkit5G.Scrambler.Scrambler.ssbIndex"], [242, "toolkit5G.Scrambler.Scrambler.ssbIndex"]], "pdschlowerphy (class in toolkit5g.physicalchannels)": [[85, "toolkit5G.PhysicalChannels.PDSCHLowerPhy"]], "displaydmrsgrid() (toolkit5g.physicalchannels.pdschlowerphy method)": [[85, "toolkit5G.PhysicalChannels.PDSCHLowerPhy.displayDMRSGrid"]], "displayresourcegrid() (toolkit5g.physicalchannels.pdschlowerphy method)": [[85, "toolkit5G.PhysicalChannels.PDSCHLowerPhy.displayResourceGrid"]], "pdschdecoderlowerphy (class in toolkit5g.physicalchannels)": [[86, "toolkit5G.PhysicalChannels.PDSCHDecoderLowerPhy"]], "pdschupperphy (class in toolkit5g.physicalchannels)": [[87, "toolkit5G.PhysicalChannels.PDSCHUpperPhy"]], "pdschdecoderupperphy (class in toolkit5g.physicalchannels)": [[88, "toolkit5G.PhysicalChannels.PDSCHDecoderUpperPhy"]], "computetransportblocksize (class in toolkit5g.physicalchannels.pdsch)": [[94, "toolkit5G.PhysicalChannels.PDSCH.ComputeTransportBlockSize"]], "layerdemapper (class in toolkit5g.physicalchannels.pdsch)": [[95, "toolkit5G.PhysicalChannels.PDSCH.LayerDemapper"]], "layermapper (class in toolkit5g.physicalchannels.pdsch)": [[95, "toolkit5G.PhysicalChannels.PDSCH.LayerMapper"]], "bitdeselection (class in toolkit5g.ratematcher.ldpc)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection"]], "bitselection (class in toolkit5g.ratematcher.ldpc)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection"]], "ncb (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.Ncb"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.Ncb"]], "ratematchparameters (class in toolkit5g.ratematcher.ldpc)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters"]], "basegraph (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.baseGraph"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.baseGraph"]], "basegraph (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.baseGraph"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.baseGraph"]], "basegraph (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.baseGraph"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.baseGraph"]], "enablelbrm (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.enableLBRM"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.enableLBRM"]], "enablelbrm (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.enableLBRM"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.enableLBRM"]], "enablelbrm (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.enableLBRM"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.enableLBRM"]], "k0 (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.k0"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.k0"]], "k0 (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.k0"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.k0"]], "k0 (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.k0"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.k0"]], "liftingfactor (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.liftingFactor"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.liftingFactor"]], "liftingfactor (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.liftingFactor"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.liftingFactor"]], "liftingfactor (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.liftingFactor"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.liftingFactor"]], "modorder (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.modOrder"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.modOrder"]], "modorder (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.modOrder"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.modOrder"]], "nldpc (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.nLDPC"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.nLDPC"]], "numcbs (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.numCBs"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.numCBs"]], "numcodeblocks (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numCodeBlocks"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numCodeBlocks"]], "numcodedbits (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.numCodedBits"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.numCodedBits"]], "numcodedbits (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numCodedBits"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numCodedBits"]], "numlayers (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.numLayers"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.numLayers"]], "numlayers (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numLayers"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.numLayers"]], "rvid (toolkit5g.ratematcher.ldpc.bitdeselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitDeselection.rvID"], [207, "toolkit5G.Ratematcher.LDPC.BitDeselection.rvID"]], "rvid (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.rvID"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.rvID"]], "rvid (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.rvID"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.rvID"]], "tbsize (toolkit5g.ratematcher.ldpc.bitselection property)": [[102, "toolkit5G.Ratematcher.LDPC.BitSelection.tbSize"], [207, "toolkit5G.Ratematcher.LDPC.BitSelection.tbSize"]], "tbsize (toolkit5g.ratematcher.ldpc.ratematchparameters property)": [[102, "toolkit5G.Ratematcher.LDPC.RatematchParameters.tbSize"], [209, "toolkit5G.Ratematcher.LDPC.RatematchParameters.tbSize"]], "resourcemapperdmrspdsch (class in toolkit5g.resourcemapping)": [[103, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH"], [104, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH"], [229, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH"]], "displaycdmpattern() (toolkit5g.resourcemapping.resourcemapperdmrspdsch method)": [[103, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayCDMPattern"], [104, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayCDMPattern"], [229, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayCDMPattern"]], "displayresourcegrid() (toolkit5g.resourcemapping.resourcemapperdmrspdsch method)": [[103, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayResourceGrid"], [104, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayResourceGrid"], [229, "toolkit5G.ResourceMapping.ResourceMapperDMRSPDSCH.displayResourceGrid"]], "transportblockrxprocessing (class in toolkit5g.physicalchannels.pdsch)": [[108, "toolkit5G.PhysicalChannels.PDSCH.TransportBlockRxProcessing"]], "transportblocktxprocessing (class in toolkit5g.physicalchannels.pdsch)": [[108, "toolkit5G.PhysicalChannels.PDSCH.TransportBlockTxProcessing"]], "resourcedemapperformat0 (class in toolkit5g.resourcemapping)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0"]], "formatpucch (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.formatPUCCH"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.formatPUCCH"]], "indexpucch (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.indexPUCCH"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.indexPUCCH"]], "interlaceindex_0 (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.interlaceIndex_0"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.interlaceIndex_0"]], "interlaceindex_1 (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.interlaceIndex_1"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.interlaceIndex_1"]], "maxnumprbs (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.maxNumPRBs"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.maxNumPRBs"]], "numinterlacedrbs (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numInterlacedRBs"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numInterlacedRBs"]], "numofinterlaces (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numOfInterlaces"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numOfInterlaces"]], "numrbs (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numRBs"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numberOfSymb"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.numberOfSymb"]], "offset (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.offset"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.offset"]], "rg_size (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.rg_Size"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.rg_Size"]], "secondhopprb (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.secondHopPRB"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.secondHopPRB"]], "seqlength (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.seqLength"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.seqLength"]], "start_symbindex (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.start_SymbIndex"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.start_SymbIndex"]], "startingprb (toolkit5g.resourcemapping.resourcedemapperformat0 property)": [[130, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.startingPRB"], [215, "toolkit5G.ResourceMapping.ResourceDeMapperFormat0.startingPRB"]], "resourcemapperformat0 (class in toolkit5g.resourcemapping)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0"]], "formatpucch (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.formatPUCCH"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.formatPUCCH"]], "indexpucch (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.indexPUCCH"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.indexPUCCH"]], "interlaceindex_0 (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.interlaceIndex_0"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.interlaceIndex_0"]], "interlaceindex_1 (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.interlaceIndex_1"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.interlaceIndex_1"]], "maxnumprbs (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.maxNumPRBs"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.maxNumPRBs"]], "numinterlacedrbs (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numInterlacedRBs"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numInterlacedRBs"]], "numofinterlaces (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numOfInterlaces"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numOfInterlaces"]], "numrbs (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numRBs"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numberOfSymb"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.numberOfSymb"]], "offset (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.offset"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.offset"]], "rg_size (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.rg_Size"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.rg_Size"]], "secondhopprb (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.secondHopPRB"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.secondHopPRB"]], "seqlength (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.seqLength"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.seqLength"]], "start_symbindex (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.start_SymbIndex"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.start_SymbIndex"]], "startingprb (toolkit5g.resourcemapping.resourcemapperformat0 property)": [[131, "toolkit5G.ResourceMapping.ResourceMapperFormat0.startingPRB"], [216, "toolkit5G.ResourceMapping.ResourceMapperFormat0.startingPRB"]], "pucchformat0sequence (class in toolkit5g.sequencegeneration)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence"]], "controlinfo (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.controlInfo"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.controlInfo"]], "indexpucch (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.indexPUCCH"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.indexPUCCH"]], "initial_cyclicshift (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.initial_CyclicShift"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.initial_CyclicShift"]], "m_cs (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.m_CS"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.m_CS"]], "nid (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.nID"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.nID"]], "numbatches (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numBatches"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numBatches"]], "numinterlacedrbs (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numInterlacedRBs"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numInterlacedRBs"]], "numrbs (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numRBs"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numRBs"]], "numberofsymb (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numberOfSymb"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.numberOfSymb"]], "pucch_grouphopping (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.pucch_GroupHopping"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.pucch_GroupHopping"]], "seqnumber (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.seqNumber"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.seqNumber"]], "slotnumber (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.slotNumber"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.slotNumber"]], "start_symbindex (toolkit5g.sequencegeneration.pucchformat0sequence property)": [[132, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.start_SymbIndex"], [246, "toolkit5G.SequenceGeneration.PUCCHFormat0Sequence.start_SymbIndex"]], "despreadingformat1 (class in toolkit5g.resourcemapping)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1"]], "spreadingfactor (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.SpreadingFactor"]], "indexpucch (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.indexPUCCH"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.indexPUCCH"]], "maxnumprbs (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.maxNumPRBs"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.maxNumPRBs"]], "numberofsymb (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.numberOfSymb"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.numberOfSymb"]], "start_symbindex (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.start_SymbIndex"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.start_SymbIndex"]], "timedomainocc (toolkit5g.resourcemapping.despreadingformat1 property)": [[134, "toolkit5G.ResourceMapping.DeSpreadingFormat1.timedomainOCC"], [217, "toolkit5G.ResourceMapping.DeSpreadingFormat1.timedomainOCC"]], "resourcedemapperformat1 (class in toolkit5g.resourcemapping)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1"]], "indexpucch (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.indexPUCCH"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.indexPUCCH"]], "interlaceindex_0 (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.interlaceIndex_0"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.interlaceIndex_0"]], "interlaceindex_1 (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.interlaceIndex_1"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.interlaceIndex_1"]], "maxnumprbs (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.maxNumPRBs"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.maxNumPRBs"]], "numinterlacedrbs (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numInterlacedRBs"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numInterlacedRBs"]], "numofinterlaces (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numOfInterlaces"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numOfInterlaces"]], "numrbs (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numRBs"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numberOfSymb"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.numberOfSymb"]], "offset (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.offset"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.offset"]], "rg_size (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.rg_Size"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.rg_Size"]], "secondhopprb (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.secondHopPRB"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.secondHopPRB"]], "seqlength (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.seqLength"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.seqLength"]], "start_symbindex (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.start_SymbIndex"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.start_SymbIndex"]], "startingprb (toolkit5g.resourcemapping.resourcedemapperformat1 property)": [[136, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.startingPRB"], [218, "toolkit5G.ResourceMapping.ResourceDeMapperFormat1.startingPRB"]], "resourcemapperformat1 (class in toolkit5g.resourcemapping)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1"]], "indexpucch (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.indexPUCCH"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.indexPUCCH"]], "interlaceindex_0 (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.interlaceIndex_0"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.interlaceIndex_0"]], "interlaceindex_1 (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.interlaceIndex_1"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.interlaceIndex_1"]], "maxnumprbs (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.maxNumPRBs"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.maxNumPRBs"]], "numinterlacedrbs (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numInterlacedRBs"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numInterlacedRBs"]], "numofinterlaces (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numOfInterlaces"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numOfInterlaces"]], "numrbs (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numRBs"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numberOfSymb"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.numberOfSymb"]], "offset (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.offset"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.offset"]], "rg_size (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.rg_Size"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.rg_Size"]], "secondhopprb (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.secondHopPRB"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.secondHopPRB"]], "seqlength (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.seqLength"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.seqLength"]], "start_symbindex (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.start_SymbIndex"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.start_SymbIndex"]], "startingprb (toolkit5g.resourcemapping.resourcemapperformat1 property)": [[137, "toolkit5G.ResourceMapping.ResourceMapperFormat1.startingPRB"], [219, "toolkit5G.ResourceMapping.ResourceMapperFormat1.startingPRB"]], "pucchformat1sequence (class in toolkit5g.sequencegeneration)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence"]], "indexpucch (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.indexPUCCH"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.indexPUCCH"]], "initial_cyclicshift (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.initial_CyclicShift"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.initial_CyclicShift"]], "m_cs (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.m_CS"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.m_CS"]], "maxnumprbs (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.maxNumPRBs"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.maxNumPRBs"]], "nhop (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.nHop"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.nHop"]], "nid (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.nID"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.nID"]], "numinterlacedrbs (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numInterlacedRBs"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numInterlacedRBs"]], "numrbs (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numRBs"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numRBs"]], "numberofsymb (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numberOfSymb"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.numberOfSymb"]], "pucch_grouphopping (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.pucch_GroupHopping"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.pucch_GroupHopping"]], "slotnumber (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.slotNumber"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.slotNumber"]], "start_symbindex (toolkit5g.sequencegeneration.pucchformat1sequence property)": [[138, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.start_SymbIndex"], [247, "toolkit5G.SequenceGeneration.PUCCHFormat1Sequence.start_SymbIndex"]], "spreadingfactor (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.SpreadingFactor"]], "spreadingformat1 (class in toolkit5g.resourcemapping)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1"]], "indexpucch (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.indexPUCCH"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.indexPUCCH"]], "numrbs (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.numRBs"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.numRBs"]], "numberofsymb (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.numberOfSymb"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.numberOfSymb"]], "start_symbindex (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.start_SymbIndex"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.start_SymbIndex"]], "timedomainocc (toolkit5g.resourcemapping.spreadingformat1 property)": [[139, "toolkit5G.ResourceMapping.SpreadingFormat1.timedomainOCC"], [220, "toolkit5G.ResourceMapping.SpreadingFormat1.timedomainOCC"]], "puschdecoderupperphy (class in toolkit5g.physicalchannels)": [[181, "toolkit5G.PhysicalChannels.PUSCHDecoderUpperPhy"]], "puschupperphy (class in toolkit5g.physicalchannels)": [[182, "toolkit5G.PhysicalChannels.PUSCHUpperPhy"]], "pbch (class in toolkit5g.physicalchannels)": [[184, "toolkit5G.PhysicalChannels.PBCH"]], "pbchdecoder (class in toolkit5g.physicalchannels)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder"]], "chil_bits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.chIL_bits"]], "channeldeinterleaverbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.channelDeInterleaverBits"]], "crccheck (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.crcCheck"]], "decrcbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.deCRCBits"]], "descrambledbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.deScrambledBits"]], "descrambled2llrs (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.descrambled2LLRs"]], "encbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.encBits"]], "iilbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.iILBits"]], "ilbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.ilBits"]], "inputdeinteleavedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.inputDeinteleavedBits"]], "llr (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.llr"]], "mib (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.mib"]], "mibrx (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.mibRx"]], "payloadcrc (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.payloadCRC"]], "payloadmib (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.payloadMIB"]], "pbchdeinterleavedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.pbchDeInterleavedBits"]], "polardecodedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.polarDecodedBits"]], "ratedematedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.rateDematedBits"]], "rmbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.rmBits"]], "sbil_bits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.sBIL_bits"]], "scr2bits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.scr2bits"]], "scrbits (toolkit5g.physicalchannels.pbch property)": [[184, "toolkit5G.PhysicalChannels.PBCH.scrBits"]], "subblockdeinterleavedbits (toolkit5g.physicalchannels.pbchdecoder property)": [[184, "toolkit5G.PhysicalChannels.PBCHDecoder.subBlockDeinterleavedBits"]], "pdcch (class in toolkit5g.physicalchannels)": [[185, "toolkit5G.PhysicalChannels.PDCCH"]], "pdcchdecoder (class in toolkit5g.physicalchannels)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder"]], "check (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.check"]], "dcibil (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciBIL"]], "dcibits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.dciBits"]], "dcicrc (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciCRC"]], "dciibi (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciIBI"]], "dcirm (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciRM"]], "dcirnti (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciRNTI"]], "dciscr (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.dciSCR"]], "decodedbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.decodedBits"]], "dematchedbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.dematchedBits"]], "descrambledllrs (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.descrambledLLRs"]], "encbits (toolkit5g.physicalchannels.pdcch property)": [[185, "toolkit5G.PhysicalChannels.PDCCH.encBits"]], "ibdilbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.ibDILBits"]], "llr (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.llr"]], "sbdbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.sbdBits"]], "unmaskedbits (toolkit5g.physicalchannels.pdcchdecoder property)": [[185, "toolkit5G.PhysicalChannels.PDCCHDecoder.unmaskedBits"]], "psbch (class in toolkit5g.physicalchannels)": [[188, "toolkit5G.PhysicalChannels.PSBCH"]], "psbchdecoder (class in toolkit5g.physicalchannels)": [[188, "toolkit5G.PhysicalChannels.PSBCHDecoder"]], "pscchlowerphy (class in toolkit5g.physicalchannels)": [[189, "toolkit5G.PhysicalChannels.PSCCHLowerPhy"]], "pscchlowerphydecoder (class in toolkit5g.physicalchannels)": [[189, "toolkit5G.PhysicalChannels.PSCCHLowerPhyDecoder"]], "pscchupperphy (class in toolkit5g.physicalchannels)": [[189, "toolkit5G.PhysicalChannels.PSCCHUpperPhy"]], "pscchupperphydecoder (class in toolkit5g.physicalchannels)": [[189, "toolkit5G.PhysicalChannels.PSCCHUpperPhyDecoder"]], "dft_doa (class in toolkit5g.positioning)": [[192, "toolkit5G.Positioning.DFT_DoA"]], "esprit_doa (class in toolkit5g.positioning)": [[193, "toolkit5G.Positioning.ESPRIT_DoA"]], "music_doa (class in toolkit5g.positioning)": [[194, "toolkit5G.Positioning.MUSIC_DoA"]], "doaestimation (class in toolkit5g.positioning)": [[195, "toolkit5G.Positioning.DoAEstimation"]], "gradientdescentdoa (class in toolkit5g.positioning)": [[196, "toolkit5G.Positioning.GradientDescentDoA"]], "leastsquaredoa (class in toolkit5g.positioning)": [[196, "toolkit5G.Positioning.LeastSquareDoA"]], "hybridtdoaaoa (class in toolkit5g.positioning)": [[197, "toolkit5G.Positioning.HybridTDoAAoA"]], "hybridtoaaoa (class in toolkit5g.positioning)": [[197, "toolkit5G.Positioning.HybridToAAoA"]], "gradientdescenttdoa (class in toolkit5g.positioning)": [[198, "toolkit5G.Positioning.GradientDescentTDoA"]], "leastsquaretdoa (class in toolkit5g.positioning)": [[198, "toolkit5G.Positioning.LeastSquareTDoA"]], "newtonraphsontdoa (class in toolkit5g.positioning)": [[198, "toolkit5G.Positioning.NewtonRaphsonTDoA"]], "leastsquaretoa (class in toolkit5g.positioning)": [[199, "toolkit5G.Positioning.LeastSquareToA"]], "dft_toa (class in toolkit5g.positioning)": [[202, "toolkit5G.Positioning.DFT_ToA"]], "esprit_toa (class in toolkit5g.positioning)": [[203, "toolkit5G.Positioning.ESPRIT_ToA"]], "music_toa (class in toolkit5g.positioning)": [[204, "toolkit5G.Positioning.MUSIC_ToA"]], "toaestimation (class in toolkit5g.positioning)": [[205, "toolkit5G.Positioning.ToAEstimation"]], "positionestimation (class in toolkit5g.positioning)": [[206, "toolkit5G.Positioning.PositionEstimation"]], "coreset (class in toolkit5g.resourcemapping)": [[227, "toolkit5G.ResourceMapping.CORESET"]], "displaycoresetreg_cce_mapping() (toolkit5g.resourcemapping.coreset method)": [[227, "toolkit5G.ResourceMapping.CORESET.displayCoresetREG_CCE_Mapping"]], "resourcemappercsirs (class in toolkit5g.resourcemapping)": [[228, "toolkit5G.ResourceMapping.ResourceMapperCSIRS"]], "displaycdmpattern() (toolkit5g.resourcemapping.resourcemappercsirs method)": [[228, "toolkit5G.ResourceMapping.ResourceMapperCSIRS.displayCDMPattern"]], "displayresourcegrid() (toolkit5g.resourcemapping.resourcemappercsirs method)": [[228, "toolkit5G.ResourceMapping.ResourceMapperCSIRS.displayResourceGrid"]], "resourcemappingpdcch (class in toolkit5g.resourcemapping)": [[230, "toolkit5G.ResourceMapping.ResourceMappingPDCCH"]], "resourcemapperprs (class in toolkit5g.resourcemapping)": [[231, "toolkit5G.ResourceMapping.ResourceMapperPRS"]], "resourcemappingpscch (class in toolkit5g.resourcemapping)": [[232, "toolkit5G.ResourceMapping.ResourceMappingPSCCH"]], "resourcemapperptrspdsch (class in toolkit5g.resourcemapping)": [[233, "toolkit5G.ResourceMapping.ResourceMapperPTRSPDSCH"]], "sssb_grid (class in toolkit5g.resourcemapping)": [[235, "toolkit5G.ResourceMapping.SSSB_Grid"]], "displaygrid() (toolkit5g.resourcemapping.sssb_grid method)": [[235, "toolkit5G.ResourceMapping.SSSB_Grid.displayGrid"]], "searchspaceset (class in toolkit5g.resourcemapping)": [[236, "toolkit5G.ResourceMapping.SearchSpaceSet"]], "ssb_grid (class in toolkit5g.resourcemapping)": [[237, "toolkit5G.ResourceMapping.SSB_Grid"]], "displaygrid() (toolkit5g.resourcemapping.ssb_grid method)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.displayGrid"]], "dmrsindices (toolkit5g.resourcemapping.ssb_grid property)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.dmrsIndices"]], "pbchindices (toolkit5g.resourcemapping.ssb_grid property)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.pbchIndices"]], "pssindices (toolkit5g.resourcemapping.ssb_grid property)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.pssIndices"]], "sssindices (toolkit5g.resourcemapping.ssb_grid property)": [[237, "toolkit5G.ResourceMapping.SSB_Grid.sssIndices"]], "resourcemapperssb (class in toolkit5g.resourcemapping)": [[238, "toolkit5G.ResourceMapping.ResourceMapperSSB"]], "lowpaprsequencetype1 (class in toolkit5g.sequencegeneration)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1"]], "basesequencenumber (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.baseSequenceNumber"]], "cyclicshift (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.cyclicShift"]], "delta (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.delta"]], "groupnumber (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.groupNumber"]], "lengthofsequence (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.lengthOfSequence"]], "numrbs (toolkit5g.sequencegeneration.lowpaprsequencetype1 property)": [[244, "toolkit5G.SequenceGeneration.LowPAPRSequenceType1.numRBs"]], "lowpaprsequencetype2 (class in toolkit5g.sequencegeneration)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2"]], "cinit (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.cinit"]], "delta (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.delta"]], "groupnumber (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.groupNumber"]], "groupnumber_or_cinit (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.groupNumber_Or_cinit"]], "lengthofsequence (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.lengthOfSequence"]], "numrbs (toolkit5g.sequencegeneration.lowpaprsequencetype2 property)": [[245, "toolkit5G.SequenceGeneration.LowPAPRSequenceType2.numRBs"]], "csirs (class in toolkit5g.sequencegeneration)": [[248, "toolkit5G.SequenceGeneration.CSIRS"]], "dmrs (class in toolkit5g.sequencegeneration)": [[249, "toolkit5G.SequenceGeneration.DMRS"]], "pnsequence (class in toolkit5g.sequencegeneration)": [[250, "toolkit5G.SequenceGeneration.PNSequence"]], "prs (class in toolkit5g.sequencegeneration)": [[251, "toolkit5G.SequenceGeneration.PRS"]], "pss (class in toolkit5g.sequencegeneration)": [[252, "toolkit5G.SequenceGeneration.PSS"]], "s_pss (class in toolkit5g.sequencegeneration)": [[253, "toolkit5G.SequenceGeneration.S_PSS"]], "srs (class in toolkit5g.sequencegeneration)": [[254, "toolkit5G.SequenceGeneration.SRS"]], "lengthofsequence (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.lengthOfSequence"]], "nrofcyclicshift (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.nrOfCyclicShift"]], "nrofsymbols (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.nrofSymbols"]], "sequenceid (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.sequenceId"]], "slotindex (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.slotIndex"]], "startposition (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.startPosition"]], "symbolindices (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.symbolIndices"]], "transmissioncomb (toolkit5g.sequencegeneration.srs property)": [[254, "toolkit5G.SequenceGeneration.SRS.transmissionComb"]], "sss (class in toolkit5g.sequencegeneration)": [[255, "toolkit5G.SequenceGeneration.SSS"]], "s_sss (class in toolkit5g.sequencegeneration)": [[256, "toolkit5G.SequenceGeneration.S_SSS"]], "csiconfiguration (class in toolkit5g.configurations)": [[261, "toolkit5G.Configurations.CSIConfiguration"]], "generatevalidssbparameters (class in toolkit5g.configurations)": [[262, "toolkit5G.Configurations.GenerateValidSSBParameters"]], "pdschlowerphyconfiguration (class in toolkit5g.configurations)": [[263, "toolkit5G.Configurations.PDSCHLowerPhyConfiguration"]], "pdschupperphyconfiguration (class in toolkit5g.configurations)": [[264, "toolkit5G.Configurations.PDSCHUpperPhyConfiguration"]], "srsconfiguration (class in toolkit5g.configurations)": [[265, "toolkit5G.Configurations.SRSConfiguration"]], "bhop (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.bHop"]], "bsrs (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.bSRS"]], "betasrs (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.betaSRS"]], "csrs (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.cSRS"]], "comboffset (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.combOffset"]], "enablestartrbhopping (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.enableStartRBHopping"]], "freqdomainposition (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.freqDomainPosition"]], "freqdomainshift (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.freqDomainShift"]], "freqscalingfactor (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.freqScalingFactor"]], "grouporsequencehopping (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.groupOrSequenceHopping"]], "lengthofsequence (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.lengthOfSequence"]], "nrofcyclicshift (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.nrOfCyclicShift"]], "nrofsrs_ports (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.nrofSRS_Ports"]], "nrofsymbols (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.nrofSymbols"]], "offsetinslots (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.offsetInSlots"]], "periodicityinslots (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.periodicityInSlots"]], "purpose (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.purpose"]], "repetitionfactor (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.repetitionFactor"]], "resourcegridsizeinrbs (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.resourceGridSizeinRBs"]], "resourcetype (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.resourceType"]], "sequenceid (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.sequenceId"]], "slotindex (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.slotIndex"]], "startposition (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.startPosition"]], "startrbindex (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.startRBIndex"]], "symbolindices (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.symbolIndices"]], "systemframenumber (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.systemFrameNumber"]], "transmissioncomb (toolkit5g.configurations.srsconfiguration property)": [[265, "toolkit5G.Configurations.SRSConfiguration.transmissionComb"]], "ssbconfiguration (class in toolkit5g.configurations)": [[266, "toolkit5G.Configurations.SSBConfiguration"]], "timefrequency5gparameters (class in toolkit5g.configurations)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters"]], "getgaurdband_fr1() (toolkit5g.configurations.timefrequency5gparameters method)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters.getGaurdBand_FR1"]], "getgaurdband_fr2() (toolkit5g.configurations.timefrequency5gparameters method)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters.getGaurdBand_FR2"]], "getnumberrb_fr1() (toolkit5g.configurations.timefrequency5gparameters method)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters.getNumberRB_FR1"]], "getnumberrb_fr2() (toolkit5g.configurations.timefrequency5gparameters method)": [[267, "toolkit5G.Configurations.TimeFrequency5GParameters.getNumberRB_FR2"]], "carrierfrequencyoffsetestimation (class in toolkit5g.receiveralgorithms)": [[268, "toolkit5G.ReceiverAlgorithms.CarrierFrequencyOffsetEstimation"]], "channelestimationandequalizationpbch (class in toolkit5g.receiveralgorithms)": [[269, "toolkit5G.ReceiverAlgorithms.ChannelEstimationAndEqualizationPBCH"]], "channelestimationandequalizationpdcch (class in toolkit5g.receiveralgorithms)": [[270, "toolkit5G.ReceiverAlgorithms.ChannelEstimationAndEqualizationPDCCH"]], "channelestimationandequalizationpdsch (class in toolkit5g.receiveralgorithms)": [[271, "toolkit5G.ReceiverAlgorithms.ChannelEstimationAndEqualizationPDSCH"]], "dmrsparameterdetection (class in toolkit5g.receiveralgorithms)": [[272, "toolkit5G.ReceiverAlgorithms.DMRSParameterDetection"]], "pssdetection (class in toolkit5g.receiveralgorithms)": [[273, "toolkit5G.ReceiverAlgorithms.PSSDetection"]], "sssdetection (class in toolkit5g.receiveralgorithms)": [[274, "toolkit5G.ReceiverAlgorithms.SSSDetection"]], "channelestimationcsirs (class in toolkit5g.receiveralgorithms)": [[275, "toolkit5G.ReceiverAlgorithms.ChannelEstimationCSIRS"]], "channelestimationsrs (class in toolkit5g.receiveralgorithms)": [[276, "toolkit5G.ReceiverAlgorithms.ChannelEstimationSRS"]], "pdcchscheduler (class in toolkit5g.scheduler)": [[278, "toolkit5G.Scheduler.PDCCHScheduler"]], "roundrobinscheduler (class in toolkit5g.scheduler)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler"]], "firstacrosstime (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.firstAcrossTime"]], "numrb (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.numRB"]], "numsymbol (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.numSymbol"]], "numuescheduledacrossfreq (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.numUEscheduledAcrossFreq"]], "numuescheduledacrosstime (toolkit5g.scheduler.roundrobinscheduler property)": [[279, "toolkit5G.Scheduler.RoundRobinScheduler.numUEscheduledAcrossTime"]], "linkadaptation (class in toolkit5g.scheduler)": [[280, "toolkit5G.Scheduler.LinkAdaptation"]], "selectmcs() (toolkit5g.scheduler.linkadaptation method)": [[280, "toolkit5G.Scheduler.LinkAdaptation.selectMCS"]], "rankadaptation (class in toolkit5g.scheduler)": [[281, "toolkit5G.Scheduler.RankAdaptation"]]}}) \ No newline at end of file diff --git a/test_GettingStarted.html b/test_GettingStarted.html index 452d9db2..3d85cc86 100644 --- a/test_GettingStarted.html +++ b/test_GettingStarted.html @@ -1750,7 +1750,57 @@ -
  • Channel Interpolation based on SRCNN and DnCNN
  • +
  • Artificial Intelligence and Machine Learning (AI-ML) for CSI Compression and Reconstruction in 5G Networks +
  • Comparative Study of Reed Muller codes, Polar Codes and LDPC codes
  • Channel Quality Estimation in 5G and Beyond Networks
  • Hybrid Automatic repeat Request in 5G and Beyond