{ "cells": [ { "cell_type": "markdown", "id": "d021b529", "metadata": {}, "source": [ "# 5G NR PUSCH Tutorial\n", "\n", "This notebook provides an introduction to Sionna's [5G New Radio (NR) module](https://nvlabs.github.io/sionna/phy/api/nr/index.html) and, in particular, the [physical uplink shared channel (PUSCH)](https://nvlabs.github.io/sionna/phy/api/nr/pusch.html). This module provides implementations of a small subset of the physical layer functionalities as described in the 3GPP specifications [38.211](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3213), [38.212](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3214) and [38.214](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3216). \n", "\n", "\n", "You will\n", "\n", "- Get an understanding of the different components of a PUSCH configuration, such as the carrier, DMRS, and transport block,\n", "- Learn how to rapidly simulate PUSCH transmissions for multiple transmitters,\n", "- Modify the PUSCHReceiver to use a custom MIMO Detector.\n", "\n", "## Table of Contents\n", "* [Configuration and Imports](#Configuration-and-Imports)\n", "* [A \"Hello World!\" Example](#A-Hello-World-Example)\n", "* [Carrier Configuration](#Carrier-Configuration)\n", "* [Understanding the DMRS Configuration](#Understanding-the-DMRS-Configuration)\n", " * [Configuring Multiple Layers](#Configuring-Multiple-Layers)\n", " * [Controlling the Number of DMRS Symbols in a Slot](#Controlling-the-Number-of-DMRS-Symbols-in-a-Slot)\n", " * [How to control the number of available DMRS ports?](#How-to-control-the-number-of-available-DMRS-ports?)\n", "* [Transport Blocks and MCS](#Transport-Blocks-and-MCS)\n", "* [Looking into the PUSCHTransmitter](#Looking-into-the-PUSCHTransmitter)\n", "* [Components of the PUSCHReceiver](#Components-of-the-PUSCHReceiver)\n", "* [End-to-end PUSCH Simulations](#End-to-end-PUSCH-Simulations)\n" ] }, { "cell_type": "markdown", "id": "e3174011", "metadata": { "tags": [] }, "source": [ "## Configuration and Imports" ] }, { "cell_type": "code", "execution_count": 1, "id": "ea40a820-e6b6-4fa6-9eed-0a2eea001498", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:18.017769Z", "iopub.status.busy": "2026-08-07T09:18:18.017647Z", "iopub.status.idle": "2026-08-07T09:18:21.262218Z", "shell.execute_reply": "2026-08-07T09:18:21.261196Z" } }, "outputs": [], "source": [ "# Import Sionna\n", "try:\n", " import sionna.phy\n", "except ImportError as e:\n", " import sys\n", " import os\n", " if 'google.colab' in sys.modules:\n", " # Install Sionna in Google Colab\n", " print(\"Installing Sionna and restarting the runtime. Please run the cell again.\")\n", " os.system(\"pip install sionna\")\n", " os.kill(os.getpid(), 5)\n", " else:\n", " raise e\n", "\n", "sionna.phy.config.seed = 42 # Set seed for reproducible results\n", "\n", "# Load the required Sionna components\n", "from sionna.phy import Block\n", "from sionna.phy.nr import PUSCHConfig, PUSCHTransmitter, PUSCHReceiver\n", "from sionna.phy.channel import AWGN, RayleighBlockFading, OFDMChannel, \\\n", " TimeChannel, time_lag_discrete_time_channel\n", "from sionna.phy.channel import gen_single_sector_topology as gen_topology\n", "from sionna.phy.channel.tr38901 import AntennaArray, UMi, UMa, RMa\n", "from sionna.phy.utils import compute_ber, ebnodb2no, sim_ber\n", "from sionna.phy.ofdm import KBestDetector, LinearDetector\n", "from sionna.phy.mimo import StreamManagement" ] }, { "cell_type": "code", "execution_count": 2, "id": "376e6700", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:21.264446Z", "iopub.status.busy": "2026-08-07T09:18:21.264184Z", "iopub.status.idle": "2026-08-07T09:18:21.272470Z", "shell.execute_reply": "2026-08-07T09:18:21.271761Z" } }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import torch\n", "import time\n", "import warnings\n", "\n", "warnings.filterwarnings(\n", " \"ignore\",\n", " message=\"Torchinductor does not support code generation for complex operators.*\",\n", ")\n", "warnings.filterwarnings(\n", " \"ignore\",\n", " message=\"`torch._prims_common.check` is deprecated.*\",\n", " category=FutureWarning,\n", ")" ] }, { "cell_type": "markdown", "id": "74cdcae8", "metadata": { "tags": [] }, "source": [ "## A Hello World Example" ] }, { "cell_type": "markdown", "id": "70cfc8d3", "metadata": {}, "source": [ "Let us start with a simple \"Hello, World!\" example in which we will simulate PUSCH transmissions from a single transmitter to a single receiver over an AWGN channel." ] }, { "cell_type": "code", "execution_count": 3, "id": "726ccf12", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:21.274731Z", "iopub.status.busy": "2026-08-07T09:18:21.274608Z", "iopub.status.idle": "2026-08-07T09:18:21.972223Z", "shell.execute_reply": "2026-08-07T09:18:21.971232Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "BER: 0.0\n" ] } ], "source": [ "# Create a PUSCH configuration with default settings\n", "pusch_config = PUSCHConfig()\n", "\n", "# Instantiate a PUSCHTransmitter from the PUSCHConfig\n", "pusch_transmitter = PUSCHTransmitter(pusch_config)\n", "\n", "# Create a PUSCHReceiver using the PUSCHTransmitter\n", "pusch_receiver = PUSCHReceiver(pusch_transmitter)\n", "\n", "# AWGN channel\n", "channel = AWGN()\n", "\n", "# Simulate transmissions over the AWGN channel\n", "batch_size = 16\n", "no = 0.1 # Noise variance\n", "\n", "x, b = pusch_transmitter(batch_size) # Generate transmit signal and info bits\n", "\n", "y = channel(x, no) # Simulate channel output\n", "\n", "b_hat = pusch_receiver(y, no) # Recover the info bits\n", "\n", "# Compute BER\n", "print(\"BER:\", compute_ber(b, b_hat).cpu().numpy())" ] }, { "cell_type": "markdown", "id": "4e34c2f8", "metadata": {}, "source": [ "Although the above code snippet seems rather simple, you have actually carried out standard-compliant simulations of the NR PUSCH!\n", "\n", "To better understand what is actually going on under the hood, we can inspect the OFDM resource grid that is generated by the transmitter with the following command:" ] }, { "cell_type": "code", "execution_count": 4, "id": "71e70335", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:21.974272Z", "iopub.status.busy": "2026-08-07T09:18:21.974135Z", "iopub.status.idle": "2026-08-07T09:18:22.144771Z", "shell.execute_reply": "2026-08-07T09:18:22.143931Z" } }, "outputs": [ { "data": { "image/png": "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7Oxgbm5eoa/P2dkZW7duxezZs/Hpp5+ie/fusLKywuXLl2UL9asq3o4kIiKqpnbt2iW7GqShoYF69erhk08+KXENmaqqKhYvXox58+bh+vXryMzMRP369dG4ceO3hhlnZ2c8fvwYoaGhKCgoQJs2bVCnTh3ZnBcuXEBISAjS0tLwySefQFdXF//++y9q164NAFBTU8PRo0fx6aefyo3bokULHD16tNh8JW3W6unpiZEjRyIsLAyFhYWwt7eX24KitLHEpiIUxdVqLCsrC/r6+uhQuzvUVapn7swc4lDpc+ofuVrpcxIRKZNEkCA4/ywyMzOVtoi76HdSyr1O0KtTvt9JWc8lMGl2Wan1UeXh7UgiIiIiETCEEREREYmAIYyIiIhIBAxhRERERCJgCCMiIiISAUMYERERkQgYwoiIiIhEwBBGREREJAKGMCIiIiIRMIQRERERiYAhjIiIiEgEDGFEREREImAIIyIiIhIBQxgRERGRCBjCiIiIiETAEEZEREQkAoYwIiIiIhEwhBERERGJgCGMiIiISAQMYUREREQiYAgjIiIiEgFDGBEREZEIGMKIiIiIRMAQRkRERCQChjAiIiIiETCEEREREYmAIYyIiIhIBAxhRERERCJgCCMiIiISAUMYERERkQjUxS6AiIioJuoS0hxq2hrlOqcw5yWAy2jXrh3U1NTg7e0Nb29v5RRISscQRkRE9IEJCQmBnp6e2GXQe+LtSCIiIiIRMIQRERERiYAhjIiIiEgEDGFEREREImAIIyIiIhIBQxgRERGRCBjCiIiIiETAEEZEREQkAoYwIiIiIhEwhBERERGJgCGMiIiISAQMYUREREQiYAgjIiIiEoFCIWznzp0lthcUFGDRokXvVRARERFRTaBQCPvf//4Hd3d3pKeny9oiIyPRqVMn7Nq1q6JqIyIiIqq2FAph//33Hx49eoTmzZvj3Llz+OWXX9C6dWvUr18ft27dqugaiYiIiKoddUVOatKkCa5cuYL//e9/cHFxgZqaGn7++WdMmjRJoSIKCwshkUigoaFRah+pVIqcnBzo6uoqNAcRERFRVaLwwvx///0XJ06cQKtWraCjowM/Pz+kpKSUa4zr169jwIABMDY2hp6eHpo0aYJ9+/bJ9REEAT4+PjAwMICRkREaNmyIkydPKlo2ERERUZWgUAibN28eevfujc8/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pusch_transmitter.resource_grid.show();" ] }, { "cell_type": "markdown", "id": "812933e2", "metadata": {}, "source": [ "The above figure tells us that we are simulating a slot of 14 OFDM symbols spanning 48 subcarriers, which correspond to four physical resource blocks (PRBs) in 5G terminology. The third OFDM symbol is reserved for pilot transmissions, so-called demodulation reference signals (DMRS), and the rest is used for data. " ] }, { "cell_type": "markdown", "id": "3bad481f", "metadata": {}, "source": [ "## Carrier Configuration\n", "\n", "When you create a PUSCHConfig instance, it automatically creates a CarrierConfig instance with default settings.\n", "You can inspect this configuration with the following command:" ] }, { "cell_type": "code", "execution_count": 5, "id": "7c010bd8", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:22.146476Z", "iopub.status.busy": "2026-08-07T09:18:22.146342Z", "iopub.status.idle": "2026-08-07T09:18:22.149684Z", "shell.execute_reply": "2026-08-07T09:18:22.148916Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Carrier Configuration\n", "=====================\n", "cyclic_prefix : normal\n", "cyclic_prefix_length : 5.208333333333334e-06\n", "frame_duration : 0.01\n", "frame_number : 0\n", "kappa : 64.0\n", "mu : 0\n", "n_cell_id : 1\n", "n_size_grid : 4\n", "n_start_grid : 0\n", "num_slots_per_frame : 10\n", "num_slots_per_subframe : 1\n", "num_symbols_per_slot : 14\n", "slot_number : 0\n", "sub_frame_duration : 0.001\n", "subcarrier_spacing : 15\n", "t_c : 5.086263020833334e-10\n", "t_s : 3.2552083333333335e-08\n", "\r\n" ] } ], "source": [ "pusch_config.carrier.show()" ] }, { "cell_type": "markdown", "id": "443ffd6a", "metadata": {}, "source": [ "Most of these parameters cannot be controlled as they are simply derived from others. For example, the cyclic prefix length depends on the subcarrier spacing.\n", "Let us see what happens, when we choose larger subcarrier spacing:" ] }, { "cell_type": "code", "execution_count": 6, "id": "c8ca703b", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:22.151106Z", "iopub.status.busy": "2026-08-07T09:18:22.150986Z", "iopub.status.idle": "2026-08-07T09:18:22.153977Z", "shell.execute_reply": "2026-08-07T09:18:22.153258Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Carrier Configuration\n", "=====================\n", "cyclic_prefix : normal\n", "cyclic_prefix_length : 1.6927083333333335e-06\n", "frame_duration : 0.01\n", "frame_number : 0\n", "kappa : 64.0\n", "mu : 2\n", "n_cell_id : 1\n", "n_size_grid : 4\n", "n_start_grid : 0\n", "num_slots_per_frame : 40\n", "num_slots_per_subframe : 4\n", "num_symbols_per_slot : 14\n", "slot_number : 0\n", "sub_frame_duration : 0.001\n", "subcarrier_spacing : 60\n", "t_c : 5.086263020833334e-10\n", "t_s : 3.2552083333333335e-08\n", "\r\n" ] } ], "source": [ "pusch_config.carrier.subcarrier_spacing = 60\n", "pusch_config.carrier.show()" ] }, { "cell_type": "markdown", "id": "1bd7dfcb", "metadata": {}, "source": [ "The cyclic prefix has shrunk from $5.2 \\mu s$ to $1.69 \\mu s$ and the number of slots per frame has increased from $10$ to $40$.\n", "\n", "If we change to the extended cyclic prefix, the number of OFDM symbols per slot will decrease from 14 to 12." ] }, { "cell_type": "code", "execution_count": 7, "id": "3316b591", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:22.155530Z", "iopub.status.busy": "2026-08-07T09:18:22.155413Z", "iopub.status.idle": "2026-08-07T09:18:22.158672Z", "shell.execute_reply": "2026-08-07T09:18:22.157884Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Carrier Configuration\n", "=====================\n", "cyclic_prefix : extended\n", "cyclic_prefix_length : 4.166666666666667e-06\n", "frame_duration : 0.01\n", "frame_number : 0\n", "kappa : 64.0\n", "mu : 2\n", "n_cell_id : 1\n", "n_size_grid : 4\n", "n_start_grid : 0\n", "num_slots_per_frame : 40\n", "num_slots_per_subframe : 4\n", "num_symbols_per_slot : 12\n", "slot_number : 0\n", "sub_frame_duration : 0.001\n", "subcarrier_spacing : 60\n", "t_c : 5.086263020833334e-10\n", "t_s : 3.2552083333333335e-08\n", "\r\n" ] } ], "source": [ "pusch_config_ext = pusch_config.clone()\n", "pusch_config_ext.carrier.cyclic_prefix = \"extended\"\n", "pusch_config_ext.carrier.show()" ] }, { "cell_type": "markdown", "id": "9e1803b5", "metadata": {}, "source": [ "Please have a look at the API documentation of [PUSCHCarrierConfig](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.PUSCHConfig.html) for more detail." ] }, { "cell_type": "markdown", "id": "390851a7", "metadata": {}, "source": [ "## Understanding the DMRS Configuration\n", "\n", "We can learn more about the structure of the resource grid by having a look at the pilot pattern in the next section." ] }, { "cell_type": "code", "execution_count": 8, "id": "541d253b", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:22.160154Z", "iopub.status.busy": "2026-08-07T09:18:22.160036Z", "iopub.status.idle": "2026-08-07T09:18:22.307543Z", "shell.execute_reply": "2026-08-07T09:18:22.306661Z" } }, "outputs": [ { "data": { "image/png": "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1Kl5zi1RooSGDh2q8PBwBQcHKzw8XI8++ugNLwnx9PTUfffdp6FDh2rlypWWUHTs2DG1bt3actrrX//6l/71r39Z7XvkyBF1795dPXr00Lx58+Tq6qrk5GTNnz9fkZGRaty4sSSpV69eevTRRxUeHq6uXbsqKSlJy5cv16ZNm1SvXj1J0rx587R69eoC/WyKVNApU6ZMriu0Bw0apIyMDM2ePVsvv/yyGjZsqIiICAUEBDipSwAAipb4+HirsxceHh43nB8SEqIuXbropZde0rp16zRz5kydOnXKak52drZeffVVLV++XPHx8bpy5YokqUeP/z1DbfTo0Ro2bJgOHz6sHj16qGfPnqpatapl+5UrV9SuXTsNGDBA8+bNs4zv3btXWVlZCg4OliTLypFhGGrRooUk6cCBA8rJybHMkSRvb29L6Mkvpz9H55+2bt2qN954I9f4iBEj9MsvvygxMVEbNmywpD8AAKBcl2vcLOg0a9ZMVatW1cCBA9W+fXurcHLVzJkztXTpUn388cdKSUmRYRh65plnlJWVZZnTv39/HTp0SN27d9eWLVtUt25dvfbaa5btxYoVU/fu3bV+/XrFxcVZxnNyciRJiYmJysrKUnZ2tnJycmQYht0fH1Okgg4AACgcISEhioyM1KhRo/Lc/tNPP6lfv35q27atSpYsKUnavXt3rnmVKlXSmDFjtHLlSv3f//2fpk2bJsMwJP199/SSJUvUrl073XvvvTp+/LgkqXHjxnJ1dbVcH5SXu+++W66urpZriSQpPT1dsbGxBfqcBB0AAO5ATz31lAzD0EMPPZTn9jp16mjDhg36448/dPbsWU2ZMkU///yz1ZyRI0dq9erVOnv2rM6ePasff/xR1atXtzweRpJcXV318ccfq02bNurUqZOOHz+ugIAAjRkzRuPGjdPatWt18eJFHT16VDNnztT7778vSQoICNBDDz2k5557TrGxsUpOTlZYWJhSU1ML9DkJOgAAIJeXX35ZjRs31j333KNq1app3759GjFihNWcf//73/r0009Vq1Yt1axZUydPntSqVatyHeufYefqys6cOXP073//W+PGjVO5cuXUo0cPnT59WsOHD7fsN2/ePNWtW1fBwcFq2rSpSpcurU6dOhXoc7gYV9eXTOzChQt/36r+8tdy8/R2djsOsWJwpUKvOeRz7roCYC7ZGena91YfpaamOuzRJFd/J0VHR9/yVySkpaWpWbNmDu33dseKDgAAMK0idXs5bLcoOfzmk+yux82nAADgRKzoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0+I5OiYR6h9S6DW3iCcjAwCKNlZ0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAafEcHZNYlBzuhKo9nFATAID8Y0UHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFreXm0Sof0ih19yihEKvCQBAQbCiAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIvn6JjEouRwJ1Tt4YSaAADkHys6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtHiOjkmE+ocUes0tSij0mgAAFAQrOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLS4vdwkFiWHO6FqDyfUBAAg/1jRAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApsVzdEwi1D+k0GtuUUKh1wQAs1iSslQelz1u6RiZ6ZmSpObNm8vNzU1hYWEKCwuzR3umQdABAOA2FxkZKV9fX2e3USRx6goAAJiWTUHno48+ynP8r7/+0qRJk26pIQAAAHuxKeg89dRTGjRokM6dO2cZO3TokNq0aaMlS5bYqzcAAIBbYlPQ+eWXX3T06FE1atRIW7du1aJFi9S0aVNVrlxZ+/bts3ePAAAANrHpYuTatWvr559/1lNPPaXOnTvLzc1N//d//6fRo0fb1ER2draysrLk4XH9q89zcnJ06dIl+fj42FQDAADceWy+GPmHH37QN998o3vuuUfe3t5au3atkpOTC3SMPXv2qE+fPipbtqx8fX1Vu3ZtLVu2zGqOYRiaOHGiSpcuLT8/P1WrVk3r1q2ztW0AAHAHsWlFZ9y4cZo9e7ZefPFFTZ06VQkJCRo+fLgaNmyoxYsX67777svXcVatWqWnn35aK1eulLu7uxYtWqThw4erVq1aatGihSRpzpw5mjdvnjZu3Kjg4GDNmjVL/fv3V0xMjGrXrm1L+6a0KDncCVV7OKEmAAD5Z9OKzsqVKxUREaE33nhD7u7uqlq1qr7//ns9+eST6tevX76P88Ybb6hr167y8PCQm5ubHnvsMbm5uem3336zzJk7d65Gjx6tVq1ayd3dXePHj1dgYKAWLFhgS+sAAOAOYtOKzq+//qpSpUpZjbm5uWnSpEnq3r17gY71119/KTU1VRcuXNDChQtVvnx5y4pQcnKyjh49qnbt2lnt06FDB+3atcuW1gEAwB3EpqBzNeRcvnxZx44dU926dS3brp5yyq8ff/xRgwYNUmpqqnx8fPTpp58qICBAkizX/Pj7+1vt4+/vr507d173mJmZmcrMzLS8v3DhQoF6AgAA5mDTqau0tDQNGzZMPj4+qlevnmV80KBBio6OLtCxOnfurJSUFF2+fFlvv/22+vXrp61bt0qSXFxcJP19V9Y/ZWVlydX1+q1PmzZNpUqVsryCgoIK1BMAADAHm4LOhAkTlJiYqMjISKvxRx55RK+++qpNjbi7u+vxxx9XcHCw5c6rwMBASVJSUpLV3KSkJFWsWPGG/aWmplpe8fHxNvUEAABubzYFndWrVys8PFxNmza1Gm/VqpVlNcZW58+ftzxPp1SpUmrUqJE2b95s2Z6dna2IiAi1b9/+usfw8PCQr6+v1QsAANx5bLpGJyUlReXLl5f0v9NL0t/X7BiGka9jpKen61//+pfGjx+vevXq6fz585o3b57+/PNPhYSEWOZNnDhRw4YNU5s2bdS6dWvNmDFDWVlZGjNmjC2tm1aof8jNJ9nZFiUUek0AAArCphWdJk2aaP369ZKsg86cOXPUsmXLfB3D29tbb731lhYuXKiOHTtq6NChunTpknbv3m21UjRo0CB9+OGHmjNnju69917Fx8crIiLCcsEyAADA9di0ovPGG2+of//++umnnyRJ06dP14YNG7Rjxw5FRETk+zitWrXSV199ddN5I0aM0IgRI2xpFQAA3MFsWtHp2rWrvvvuO/35558KCAjQ7Nmz5eXlpW3btuV65g0AAICz2LSiI0mtW7fW2rVr7dkLAACAXdn8pZ4AAABFXb5XdApy8e+pU6dsagYAAMCe8h10Zs+ebflzbGyspk+frmHDhql58+aSpMjISH366ad68cUX7d4kAACALfIddIYMGWL5c+fOnbV06VINGjTIMvb444+re/fufKu4kyxKDndC1R5OqAkAQP7ZdI1OdHS0evbsmWu8Z8+eBf6uKwAAAEexKej4+Pho3bp1uca//fZblSxZ8pabAgAAsAebbi+fOHGiHnnkEf33v/9V8+bNZRiGoqKi9Pnnn+v999+3d48AAAA2sSnojB07VrVr19Z7772nWbNmSZLq1aun9evXq0uXLnZtEAAAwFY2PzCwa9eu6tq1qz17AQAAsCseGAgAAEzLpqBz/PhxPfDAAypfvrzc3d1zvQAAAIoCm1LJqFGjdOXKFc2ZM0dlypSxd0+wQah/SKHX3KKEQq8JAEBB2BR0du7cqSNHjhToayEAAAAKm02nripWrChXVy7vAQAARZtNaWXUqFGaOHGirly5Yu9+AAAA7MamU1effPKJYmNj9fnnnysoKEguLi5W23/77Te7NAcAAHArbAo6jz32mL37AAAAsDubgs6zzz5r5zYAAADsr0BBJy0tLV/zfHx8bGoGAADAngoUdPL7zeSGYdjUDGy3KDncCVV7OKEmAAD5V6Cgs3LlSkf1AQAAYHcFCjoPPvigo/oAAACwO576BwAATIugAwAATIugAwAATMumoJPf28wBAACcyaYHBvr6+ionJ8feveAWhPqHFHrNLUoo9JoAABSETSs6FSpU0KlTp+zdCwAAgF3ZFHTCwsI0btw4TmEBAIAizaZTV8uXL1dsbKy+/PJLBQUFqXjx4lbb+fZyAABQFPDt5QAAwLT49nIAAGBat/QcncuXLys2NtZevQAAANiVzc/RGTZsmHx8fFSvXj3L+KBBgxQdHW235gAAAG6FTaeuJkyYoMTEREVGRqpZs2aW8UceeUSvvvqqvv76a7s1iPxZlBzuhKo9nFATAID8synorF69Wj/88IOqV69uNd6qVSsNHjzYLo0BAADcKptOXaWkpKh8+fKSJBcXF8v45cuXZRiGfToDAACFZsaMGXrhhReu+/52ZVPQadKkidavXy/JOujMmTNHLVu2tE9nAADAbmJjYxUcHKzg4GA1b95cPXv21Msvv6yUlBRJUlxcnI4cOWKZf+37/Jg2bZpefPFFu/Z9q2w6dfXGG2+of//++umnnyRJ06dP14YNG7Rjxw5FRETYtUEAAHDr0tPTFR0drRUrVqhGjRo6ceKEJk+erDVr1ig6Olrjx4/XX3/9dUs14uLiLMGpqLAp6HTt2lXfffed3n77bQUEBGj27Nlq2rSptm3bptatW9u7RwAAYCf169dXgwYNJEmBgYFq3ry5duzYoT179igpKUnvvvvudffdsGGDFi5cqKSkJNWqVUvjxo1T/fr1JUnz58/XV199paysLAUHB0uS/vOf/6hSpUp655139Ouvv6ps2bIaOnSo+vfv7/gP+v/ZFHQkqXXr1lq7dq09ewEAAIWoQoUKkqRz584pLi5OCQkJ1537zTffaMCAAZo6dapatmyp5cuXq1WrVoqJiVHVqlXVt29fbd68WefPn9f06dMlSXfffbc6dOig6tWra/LkyUpLS9OyZcvk7e2tHj0K585dm4MOAAAoGi5cuGD13sPDQx4eHjfdb/78+SpWrJiaN2+ubdu23XDuhAkTFBYWppdfflmS1KVLF8XExOjNN9/UokWLFBgYKH9/f7m4uFhWdDIyMrR3714tXrxY99xzjySpT58+yszMtOVj2iTfQadq1aqSpGPHjln+fD3Hjh27hZZgi1D/kEKvuUXXT/4AgMITFBRk9X7KlCmaOnVqnnOHDBkiT09PnTp1SpmZmQoPD7/p7/WMjAz9/vvvuU5r9ezZU99+++119/P09FTbtm01evRoPfnkk7r33ntVtWrVfIUwe8l30Jk0aVKefwYAAM4VHx8vX19fy/sbBYnJkyerZs2aKlOmjCpXrix395tHgbS0NBmGIW9vb6txHx8fXbx48Yb7btq0SR999JHWrFmj5557TnXq1NHy5ctzPYvPUfIddEaPHm3585AhQ+Tj4+OQhgAAQMH4+vpaBZ0b+efFyPlVrlw5lSpVSr///rvat29vGd+/f79q1Khhee/q6prreXolSpTQ2LFjNXbsWF26dEndu3fXa6+9piVLlhSoB1vZ9Byd/P4wAQCAOYwePVozZ87UqVOnJEm7d+/WF198occee8wyJyAgwOqC5lOnTundd99VRkaGJKl48eJydXWVp6dnofVtU9CpUKGC5YMCAADzmzp1qho0aKDq1aurdu3a6tixo5599lmrW8WHDh2q48ePq3r16goODtaRI0eUlJSkgIAA1a9fXwEBAcrOztaUKVMKrW+b7roKCwvTuHHjNH/+fE5hAQBwG6hXr54iIyNVs2bNPLdf+8DAa9/7+Pjoq6++UlJSkpKSklS1atVcZ3hq1qypuLg4HTt2TBcuXNDdd9+tdu3a6c0339Qff/yhMmXKKCAgwDEf8DpsCjrLly9XbGysvvzySwUFBal48eJW23/77Te7NAcAAOzDy8vLctt3XipXrnzD91dVqFDB8vydvBQvXly1a9fONVa3bt0CdGs/NgWdf56PQ9GwKDncCVUL52FPAADYyqagU7NmTfXu3dvevQAAANiVTRcj9+vXL9ftYwAAAEWNTUGnRo0a+v333+3dCwAAgF3ZFHTGjx+v4cOHa/PmzTpx4oRSUlKsXgAAAEWBTdfoXH1Kcrdu3fLczmktAABQFNgUdPbs2WPvPgAAAOzOpqDTpEkTO7cBAABgfzYFHRQ9of4hhV5zixJuPgkAACeyKejk5OQoPDxcK1eu1PHjx5WVlWW1/ciRI3ZpDgAA4FbYdNfV22+/rddee02dO3fWwYMH9eSTT6pFixb6888/eZAgAAAoMmxa0bm6mtOqVStNmDBBzz77rCSpQ4cOWr16tT37AwAAsJlNKzpxcXFq1qyZJKlEiRK6ePGipL+/nn3Hjh326w4AAOAW2BR0srOzVaxYMUlSlSpV9PPPP0uSjh49Kg8PD/t1BwAAcAtu+a6r0NBQDRkyRB06dNBPP/2kQYMGFfgYV65ckZubm9zc3K47JycnR5cuXZKPj8+ttAsAAO4gNq3oXD1VJUnPP/+85s+fr6pVq+q1117T3Llz832cVatWqXXr1vLz85OPj486duyovXv3Ws0xDEMTJ05U6dKl5efnp2rVqmndunW2tA0AAO4wNq3oXLuqMnjwYA0ePLhAx8jOztZnn32m2bNnq2nTprpy5YrGjh2rHj166ODBgypdurQkac6cOZo3b542btyo4OBgzZo1S/3791dMTIxq165tS/umtCg53AlVezihJgAA+WfTik5aWppWrVqVa3zVqlVKS0vL1zHc3Nz05ZdfqmXLlipWrJi8vb311ltv6fTp09q9e7dl3ty5czV69Gi1atVK7u7uGj9+vAIDA7VgwQJbWgcAAHcQm7+9/PTp07nGT58+rZdeesnmZuLi4iRJ/v7+kqTk5GQdPXpU7dq1s5rXoUMH7dq1y+Y6AADgzmBT0Pniiy/yvOh40KBB+vLLL21qJCMjQ08//bTat2+ve+65R9LfQUf6X/C5yt/f37ItL5mZmbpw4YLVCwAA3HlsCjpZWVlKTU3NNX7+/HldvnzZpuMNGTJEZ86c0WeffWYZd3FxkfT39TzXznd1vX7r06ZNU6lSpSyvoKCgAvcEAABufzYFnc6dO+ull16yCjWXL1/W+PHj1blz5wIdKysrSw899JD27t2r77//XnfddZdlW2BgoCQpKSnJap+kpCRVrFjxusecMGGCUlNTLa/4+PgC9QQAAMzBpruuZsyYofbt26tatWoKDg6WYRiKioqSm5ubfvzxx3wfJysrS0OHDlVkZKS+//57ValSxWp7qVKl1KhRI23evFkDBw6U9PfqTkREhJ544onrHtfDw4MHFwIAANuCTo0aNRQTE6PFixfrl19+kYuLi1544QWFhITIz88vX8fIycnR8OHDtW3bNq1bt04+Pj5KSUmRJJUsWdISVCZOnKhhw4apTZs2at26tWbMmKGsrCyNGTPGltZNK9Q/pNBrblFCodcEAKAgbH4yctmyZTVu3DibC58/f16bNm2SJPXs2dNq2+zZszVs2DBJf1/gnJGRodmzZ+vll19Ww4YNFRERoYCAAJtrAwCAO4PNQef8+fP66KOPFBsbK0mqV6+eHnnkEcuD/m7Gz8/PsoJzMyNGjNCIESNsbRUAANyhbLoYeceOHapWrZpmzpypkydP6uTJk3r33XdVvXp1yxd8AgAAOJtNKzpjx47VyJEj9e6778rd/e9DZGVl6YUXXtDYsWO1Z88euzYJAABgC5tWdA4dOqRXXnnFEnIkyd3dXZMnT9bBgwft1hwAAMCtsCno1KpVy/J1Df90/Phx1apV65abAgAAsId8n7r654XDTz75pAYOHKi33npLzZs3tzxH5+WXX9aLL77okEYBAAAKKt9B59rvm5KkwYMH5xp77LHHFBoaemtdocAWJYc7oWoPJ9QEACD/8h10uMAYAADcbvIddJo0aeLANgAAAOzPptvLDxw4cMPtderUsakZAAAAe7Ip6NStW/eG2w3DsKkZAAAAe7Ip6MTHx1u9z8nJ0eHDh/X888/r6aeftktjAAAAt8qmoFOpUqVcY5UrV9Ynn3yiUaNGKSSk8L9JGwAA4Fo2PTDweqpXr37T63cAAAAKi83fXn6tc+fOadq0aapataq9DokCCPUv/FW0LUoo9JoAABSETUHHxcUlz/Fy5cppxYoVt9QQAACAvdgUdDZt2pRrrEyZMqpbt668vLxuuSkAAAB7sCnodO3a1d59AAAA2F2Bg056erq8vb0t70+fPq05c+bo3Llz6tu3r3r04PuPAABA0VCgu642bdqkAQMGWN5nZGSo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AweUk5OjGjVqFNrD0b7++mslJydr9OjRDqsxYcIEDRw4ULNnz1bDhg0VHR2tXbt26euvv3ZIPT8/P8XExFiNJSYmKiMjQ/v371fz5s0dUvefrvf3T0pKihISEhQUFOTwHgpbZGSkJKlGjRoOrbNr1y6lp6crKipKGzdu1Oeff+7Qeig6CDrXOHv2rOrXr281dvUC1rNnzzqjJYdKS0tTaGiounTpojZt2ji01owZM/THH3/o4MGD6tWrl8Muur506ZIGDx6smTNnqmrVqkpLS3NInX9q3ry5jh49qipVqkiSZs+erUceeUS1atVyyAXJJ06cUJkyZdSlSxclJiYqKytLqamp+s9//qOBAwfavd61wsPD1a5dO9WtW9dhNZo1a6b+/fvr1VdfVfXq1fXHH3/okUcecdg/NsLCwtS6dWuNGTNGDzzwgA4cOKBFixZJKrz/7589ezbXBfP//PvHbEHnzJkzCgsLU//+/XP9vWtvr7/+uk6ePKmDBw9q4MCB1z3VBfPhGp1rFCtWTBkZGVZjV697KIw7kwrT5cuX1adPHxmGoRUrVji83ooVKxQZGamEhAQlJyerX79+DqkzdepUlShRQlWrVtX27dv1888/S5IOHDigffv2OaRmjx49LCFHkp599lnVqlVLK1eudEi9YsWKae/evXrwwQd14MABHTlyRM8//7xGjBhh07UOBZGQkKDvvvtOoaGhDq0zcuRIy7U50dHROnbsmL7//ns98cQTDqkXHBysqKgoZWdna8aMGdq3b58l6JQoUcIhNa91J/39c+HCBd13330qW7asPvroI4fX+/bbbxUdHa3jx49r//79evjhhx1eE0UDKzrXqFKlihISEqzGrv7icMStps6SkZGhPn36KCkpSVu3blW5cuUKrbavr68ef/xxDRkyRBcvXlTJkiXtenwvLy+VKFFCL730kqS/L9yVpGXLlik+Pl4LFiywa73rqVChgsNCR9WqVeXm5mYVNp544gm9/PLLioyMdOjt+0uWLFHJkiUdvnL07bff6p133pGvr68kqXTp0nr44Yc1bdo0h9Vs3LixFi5caHm/dOlSubi4qF69eg6r+U9VqlTJ9d9MYmKiXFxcTLWac/HiRfXs2VPZ2dnavHmz5X/jwuDn56eQkBA99dRTysnJkasr/943O/4Xvka3bt30008/KSUlxTK2du1a1a1bt1Cf/eJIV0NOYmKiIiIiVL58eYfWS09PzzV25MgReXt7O+RfylOnTrW6O2jjxo2S/l66dlTIufYzJicna+/evWrQoIFD6vXo0UPZ2dk6deqUZexqQPf393dITUkyDEMfffSRhg0b5vBVDn9//1z/6IiPj3fY58vKylJWVpblfU5OjhYsWKD77ruv0P4h0K1bN0VERFj997R27Vq1atVKPj4+hdKDo10NOVeuXNGmTZtUunRph9a73t8/ZcqUIeTcIVjRucZDDz2k9957T3379tW4ceMUExOj8PBwrVq1ymE1Dx06pNOnT+vw4cOSpO3bt0uSGjVq5JB/6fTv31+7du3S4sWLdfjwYUvdqlWrOuSBbJMnT1ZGRoY6d+4sHx8f/fTTT5oxY4amTJlyyw8KKyruvfde9evXT/fcc49SUlL0zjvvqHz58ho7dqxD6rVt21YPPPCABgwYoAkTJigrK0uvv/66OnTo4NCHFEZEROjo0aMOP20lSU8//bQmT56ssmXL6p577lFkZKQWLFigmTNnOqReamqq+vbtq7Fjx8rX11cLFy5UXFycli9fbpfj5+Tk6KeffpL09y/7kydPavv27fL29tY999wjSRo9erTmzZunvn376qmnntKuXbv01VdfWcJ6Qf3+++86e/as/vzzT2VlZVn+bmnatKm8vLzyPSe/kpOTdfDgQcs1Tb/99ps8PT1VuXJlVa5cWVlZWbr//vt16NAhffTRR9q/f79lX1sfPHm139TUVCUlJWn79u0qUaKE5aLuZ555RiVLllSHDh3k4eGhH374QbNnz9b7779f4Fq4PfHt5Xk4d+6cpk+frqioKPn5+Sk0NFTdunVzWL3XX39d3333Xa7x+fPnO+TCy3bt2uU5PmbMGIect87JydGyZcu0fv16nTt3TlWrVtXw4cML5QnQ0t/XOHTr1k1vvPGGOnXq5JAa586d0wcffKBdu3bJy8tLLVq00NixYwv8i6Igrly5orlz52rTpk3y9PRU27Zt9eSTTzp0peWdd97Rvn379Omnnzqsxj+tXbtWX375pU6dOqWKFStq8ODBuv/++x1Wb+/evZo1a5aSkpLUvHlzPfPMM3ZbQbr63+G1qlevrqVLl1renz59Wm+//bZ+/fVXS1hu3769TTVffPFF7dixI9f4J598Ynnie37m5NfGjRv12muv5Rof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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pusch_transmitter.pilot_pattern.show();" ] }, { "cell_type": "markdown", "id": "96a9afc5", "metadata": {}, "source": [ "From the figure above, we can see that there is a single transmitter sending a single stream (or so-called layer).\n", "DMRS are only sent on even subcarriers while odd subcarriers are masked, i.e., blocked for data transmission.\n", "This corresponds to the DMRS Configuration Type 1 with the parameter `NumCDMGroupsWithoutData` set to 2. We will explain what that means later.\n", "\n", "In 5G NR, one can configure many different pilot patterns to adapt to different channel conditions and to allow for spatial multiplexing of up to twelve layers. Each transmitted layer is identified by a DMRS port, i.e., a distinct pilot pattern. In our running example, the transmitter uses the DMRS port 0.\n", "\n", "With the current PUSCH configuration, four different DMRS ports 0,1,2,3 are available.\n", "This can be verified with the following command:" ] }, { "cell_type": "code", "execution_count": 9, "id": "8310da11", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:22.309369Z", "iopub.status.busy": "2026-08-07T09:18:22.309237Z", "iopub.status.idle": "2026-08-07T09:18:22.312640Z", "shell.execute_reply": "2026-08-07T09:18:22.311931Z" } }, "outputs": [ { "data": { "text/plain": [ "[0, 1, 2, 3]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pusch_config.dmrs.allowed_dmrs_ports" ] }, { "cell_type": "markdown", "id": "09b846c4", "metadata": {}, "source": [ "Next, we configure three other transmitters using each one of the remaining ports. Then, we create a new PUSCHTransmitter instance from the list of PUSCH configurations which is able to generate transmit signals for all four transmitters in parallel." ] }, { "cell_type": "code", "execution_count": 10, "id": "fb66df3e", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:22.314437Z", "iopub.status.busy": "2026-08-07T09:18:22.314319Z", "iopub.status.idle": "2026-08-07T09:18:22.532488Z", "shell.execute_reply": "2026-08-07T09:18:22.531623Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of x: torch.Size([16, 4, 1, 14, 48])\n" ] } ], "source": [ "# Clone the original PUSCHConfig and change the DMRS port set\n", "pusch_config_1 = pusch_config.clone()\n", "pusch_config_1.dmrs.dmrs_port_set = [1]\n", "pusch_config_2 = pusch_config.clone()\n", "pusch_config_2.dmrs.dmrs_port_set = [2]\n", "pusch_config_3 = pusch_config.clone()\n", "pusch_config_3.dmrs.dmrs_port_set = [3]\n", "\n", "# Create a PUSCHTransmitter from the list of PUSCHConfigs\n", "pusch_transmitter_multi = PUSCHTransmitter([pusch_config, pusch_config_1, pusch_config_2, pusch_config_3])\n", "\n", "# Generate a batch of random transmit signals\n", "x, b = pusch_transmitter_multi(batch_size)\n", "\n", "# x has shape [batch_size, num_tx, num_tx_ant, num_ofdm_symbols, fft_size]\n", "print(\"Shape of x:\", x.shape)" ] }, { "cell_type": "markdown", "id": "bd19d2c6", "metadata": {}, "source": [ "Inspecting the shape of x reveals that we have indeed four single-antenna transmitters. Let us now have a look at the resulting pilot pattern for each of them:" ] }, { "cell_type": "code", "execution_count": 11, "id": "80feec0e", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:22.534149Z", "iopub.status.busy": "2026-08-07T09:18:22.534011Z", "iopub.status.idle": "2026-08-07T09:18:23.326386Z", "shell.execute_reply": "2026-08-07T09:18:23.325928Z" } }, "outputs": [ { "data": { "image/png": "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1Kl5zi1RooSGDh2q8PBwBQcHKzw8XI8++ugNLwnx9PTUfffdp6FDh2rlypWWUHTs2DG1bt3actrrX//6l/71r39Z7XvkyBF1795dPXr00Lx58+Tq6qrk5GTNnz9fkZGRaty4sSSpV69eevTRRxUeHq6uXbsqKSlJy5cv16ZNm1SvXj1J0rx587R69eoC/WyKVNApU6ZMriu0Bw0apIyMDM2ePVsvv/yyGjZsqIiICAUEBDipSwAAipb4+HirsxceHh43nB8SEqIuXbropZde0rp16zRz5kydOnXKak52drZeffVVLV++XPHx8bpy5YokqUeP/z1DbfTo0Ro2bJgOHz6sHj16qGfPnqpatapl+5UrV9SuXTsNGDBA8+bNs4zv3btXWVlZCg4OliTLypFhGGrRooUk6cCBA8rJybHMkSRvb29L6Mkvpz9H55+2bt2qN954I9f4iBEj9MsvvygxMVEbNmywpD8AAKBcl2vcLOg0a9ZMVatW1cCBA9W+fXurcHLVzJkztXTpUn388cdKSUmRYRh65plnlJWVZZnTv39/HTp0SN27d9eWLVtUt25dvfbaa5btxYoVU/fu3bV+/XrFxcVZxnNyciRJiYmJysrKUnZ2tnJycmQYht0fH1Okgg4AACgcISEhioyM1KhRo/Lc/tNPP6lfv35q27atSpYsKUnavXt3rnmVKlXSmDFjtHLlSv3f//2fpk2bJsMwJP199/SSJUvUrl073XvvvTp+/LgkqXHjxnJ1dbVcH5SXu+++W66urpZriSQpPT1dsbGxBfqcBB0AAO5ATz31lAzD0EMPPZTn9jp16mjDhg36448/dPbsWU2ZMkU///yz1ZyRI0dq9erVOnv2rM6ePasff/xR1atXtzweRpJcXV318ccfq02bNurUqZOOHz+ugIAAjRkzRuPGjdPatWt18eJFHT16VDNnztT7778vSQoICNBDDz2k5557TrGxsUpOTlZYWJhSU1ML9DkJOgAAIJeXX35ZjRs31j333KNq1app3759GjFihNWcf//73/r0009Vq1Yt1axZUydPntSqVatyHeufYefqys6cOXP073//W+PGjVO5cuXUo0cPnT59WsOHD7fsN2/ePNWtW1fBwcFq2rSpSpcurU6dOhXoc7gYV9eXTOzChQt/36r+8tdy8/R2djsOsWJwpUKvOeRz7roCYC7ZGena91YfpaamOuzRJFd/J0VHR9/yVySkpaWpWbNmDu33dseKDgAAMK0idXs5bLcoOfzmk+yux82nAADgRKzoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0+I5OiYR6h9S6DW3iCcjAwCKNlZ0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAafEcHZNYlBzuhKo9nFATAID8Y0UHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFreXm0Sof0ih19yihEKvCQBAQbCiAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIvn6JjEouRwJ1Tt4YSaAADkHys6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtHiOjkmE+ocUes0tSij0mgAAFAQrOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLS4vdwkFiWHO6FqDyfUBAAg/1jRAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApsVzdEwi1D+k0GtuUUKh1wQAs1iSslQelz1u6RiZ6ZmSpObNm8vNzU1hYWEKCwuzR3umQdABAOA2FxkZKV9fX2e3USRx6goAAJiWTUHno48+ynP8r7/+0qRJk26pIQAAAHuxKeg89dRTGjRokM6dO2cZO3TokNq0aaMlS5bYqzcAAIBbYlPQ+eWXX3T06FE1atRIW7du1aJFi9S0aVNVrlxZ+/bts3ePAAAANrHpYuTatWvr559/1lNPPaXOnTvLzc1N//d//6fRo0fb1ER2draysrLk4XH9q89zcnJ06dIl+fj42FQDAADceWy+GPmHH37QN998o3vuuUfe3t5au3atkpOTC3SMPXv2qE+fPipbtqx8fX1Vu3ZtLVu2zGqOYRiaOHGiSpcuLT8/P1WrVk3r1q2ztW0AAHAHsWlFZ9y4cZo9e7ZefPFFTZ06VQkJCRo+fLgaNmyoxYsX67777svXcVatWqWnn35aK1eulLu7uxYtWqThw4erVq1aatGihSRpzpw5mjdvnjZu3Kjg4GDNmjVL/fv3V0xMjGrXrm1L+6a0KDncCVV7OKEmAAD5Z9OKzsqVKxUREaE33nhD7u7uqlq1qr7//ns9+eST6tevX76P88Ybb6hr167y8PCQm5ubHnvsMbm5uem3336zzJk7d65Gjx6tVq1ayd3dXePHj1dgYKAWLFhgS+sAAOAOYtOKzq+//qpSpUpZjbm5uWnSpEnq3r17gY71119/KTU1VRcuXNDChQtVvnx5y4pQcnKyjh49qnbt2lnt06FDB+3atcuW1gEAwB3EpqBzNeRcvnxZx44dU926dS3brp5yyq8ff/xRgwYNUmpqqnx8fPTpp58qICBAkizX/Pj7+1vt4+/vr507d173mJmZmcrMzLS8v3DhQoF6AgAA5mDTqau0tDQNGzZMPj4+qlevnmV80KBBio6OLtCxOnfurJSUFF2+fFlvv/22+vXrp61bt0qSXFxcJP19V9Y/ZWVlydX1+q1PmzZNpUqVsryCgoIK1BMAADAHm4LOhAkTlJiYqMjISKvxRx55RK+++qpNjbi7u+vxxx9XcHCw5c6rwMBASVJSUpLV3KSkJFWsWPGG/aWmplpe8fHxNvUEAABubzYFndWrVys8PFxNmza1Gm/VqpVlNcZW58+ftzxPp1SpUmrUqJE2b95s2Z6dna2IiAi1b9/+usfw8PCQr6+v1QsAANx5bLpGJyUlReXLl5f0v9NL0t/X7BiGka9jpKen61//+pfGjx+vevXq6fz585o3b57+/PNPhYSEWOZNnDhRw4YNU5s2bdS6dWvNmDFDWVlZGjNmjC2tm1aof8jNJ9nZFiUUek0AAArCphWdJk2aaP369ZKsg86cOXPUsmXLfB3D29tbb731lhYuXKiOHTtq6NChunTpknbv3m21UjRo0CB9+OGHmjNnju69917Fx8crIiLCcsEyAADA9di0ovPGG2+of//++umnnyRJ06dP14YNG7Rjxw5FRETk+zitWrXSV199ddN5I0aM0IgRI2xpFQAA3MFsWtHp2rWrvvvuO/35558KCAjQ7Nmz5eXlpW3btuV65g0AAICz2LSiI0mtW7fW2rVr7dkLAACAXdn8pZ4AAABFXb5XdApy8e+pU6dsagYAAMCe8h10Zs+ebflzbGyspk+frmHDhql58+aSpMjISH366ad68cUX7d4kAACALfIddIYMGWL5c+fOnbV06VINGjTIMvb444+re/fufKu4kyxKDndC1R5OqAkAQP7ZdI1OdHS0evbsmWu8Z8+eBf6uKwAAAEexKej4+Pho3bp1uca//fZblSxZ8pabAgAAsAebbi+fOHGiHnnkEf33v/9V8+bNZRiGoqKi9Pnnn+v999+3d48AAAA2sSnojB07VrVr19Z7772nWbNmSZLq1aun9evXq0uXLnZtEAAAwFY2PzCwa9eu6tq1qz17AQAAsCseGAgAAEzLpqBz/PhxPfDAAypfvrzc3d1zvQAAAIoCm1LJqFGjdOXKFc2ZM0dlypSxd0+wQah/SKHX3KKEQq8JAEBB2BR0du7cqSNHjhToayEAAAAKm02nripWrChXVy7vAQAARZtNaWXUqFGaOHGirly5Yu9+AAAA7MamU1effPKJYmNj9fnnnysoKEguLi5W23/77Te7NAcAAHArbAo6jz32mL37AAAAsDubgs6zzz5r5zYAAADsr0BBJy0tLV/zfHx8bGoGAADAngoUdPL7zeSGYdjUDGy3KDncCVV7OKEmAAD5V6Cgs3LlSkf1AQAAYHcFCjoPPvigo/oAAACwO576BwAATIugAwAATIugAwAATMumoJPf28wBAACcyaYHBvr6+ionJ8feveAWhPqHFHrNLUoo9JoAABSETSs6FSpU0KlTp+zdCwAAgF3ZFHTCwsI0btw4TmEBAIAizaZTV8uXL1dsbKy+/PJLBQUFqXjx4lbb+fZyAABQFPDt5QAAwLT49nIAAGBat/QcncuXLys2NtZevQAAANiVzc/RGTZsmHx8fFSvXj3L+KBBgxQdHW235gAAAG6FTaeuJkyYoMTEREVGRqpZs2aW8UceeUSvvvqqvv76a7s1iPxZlBzuhKo9nFATAID8synorF69Wj/88IOqV69uNd6qVSsNHjzYLo0BAADcKptOXaWkpKh8+fKSJBcXF8v45cuXZRiGfToDAACFZsaMGXrhhReu+/52ZVPQadKkidavXy/JOujMmTNHLVu2tE9nAADAbmJjYxUcHKzg4GA1b95cPXv21Msvv6yUlBRJUlxcnI4cOWKZf+37/Jg2bZpefPFFu/Z9q2w6dfXGG2+of//++umnnyRJ06dP14YNG7Rjxw5FRETYtUEAAHDr0tPTFR0drRUrVqhGjRo6ceKEJk+erDVr1ig6Olrjx4/XX3/9dUs14uLiLMGpqLAp6HTt2lXfffed3n77bQUEBGj27Nlq2rSptm3bptatW9u7RwAAYCf169dXgwYNJEmBgYFq3ry5duzYoT179igpKUnvvvvudffdsGGDFi5cqKSkJNWqVUvjxo1T/fr1JUnz58/XV199paysLAUHB0uS/vOf/6hSpUp655139Ouvv6ps2bIaOnSo+vfv7/gP+v/ZFHQkqXXr1lq7dq09ewEAAIWoQoUKkqRz584pLi5OCQkJ1537zTffaMCAAZo6dapatmyp5cuXq1WrVoqJiVHVqlXVt29fbd68WefPn9f06dMlSXfffbc6dOig6tWra/LkyUpLS9OyZcvk7e2tHj0K585dm4MOAAAoGi5cuGD13sPDQx4eHjfdb/78+SpWrJiaN2+ubdu23XDuhAkTFBYWppdfflmS1KVLF8XExOjNN9/UokWLFBgYKH9/f7m4uFhWdDIyMrR3714tXrxY99xzjySpT58+yszMtOVj2iTfQadq1aqSpGPHjln+fD3Hjh27hZZgi1D/kEKvuUXXT/4AgMITFBRk9X7KlCmaOnVqnnOHDBkiT09PnTp1SpmZmQoPD7/p7/WMjAz9/vvvuU5r9ezZU99+++119/P09FTbtm01evRoPfnkk7r33ntVtWrVfIUwe8l30Jk0aVKefwYAAM4VHx8vX19fy/sbBYnJkyerZs2aKlOmjCpXrix395tHgbS0NBmGIW9vb6txHx8fXbx48Yb7btq0SR999JHWrFmj5557TnXq1NHy5ctzPYvPUfIddEaPHm3585AhQ+Tj4+OQhgAAQMH4+vpaBZ0b+efFyPlVrlw5lSpVSr///rvat29vGd+/f79q1Khhee/q6prreXolSpTQ2LFjNXbsWF26dEndu3fXa6+9piVLlhSoB1vZ9Byd/P4wAQCAOYwePVozZ87UqVOnJEm7d+/WF198occee8wyJyAgwOqC5lOnTundd99VRkaGJKl48eJydXWVp6dnofVtU9CpUKGC5YMCAADzmzp1qho0aKDq1aurdu3a6tixo5599lmrW8WHDh2q48ePq3r16goODtaRI0eUlJSkgIAA1a9fXwEBAcrOztaUKVMKrW+b7roKCwvTuHHjNH/+fE5hAQBwG6hXr54iIyNVs2bNPLdf+8DAa9/7+Pjoq6++UlJSkpKSklS1atVcZ3hq1qypuLg4HTt2TBcuXNDdd9+tdu3a6c0339Qff/yhMmXKKCAgwDEf8DpsCjrLly9XbGysvvzySwUFBal48eJW23/77Te7NAcAAOzDy8vLctt3XipXrnzD91dVqFDB8vydvBQvXly1a9fONVa3bt0CdGs/NgWdf56PQ9GwKDncCVUL52FPAADYyqagU7NmTfXu3dvevQAAANiVTRcj9+vXL9ftYwAAAEWNTUGnRo0a+v333+3dCwAAgF3ZFHTGjx+v4cOHa/PmzTpx4oRSUlKsXgAAAEWBTdfoXH1Kcrdu3fLczmktAABQFNgUdPbs2WPvPgAAAOzOpqDTpEkTO7cBAABgfzYFHRQ9of4hhV5zixJuPgkAACeyKejk5OQoPDxcK1eu1PHjx5WVlWW1/ciRI3ZpDgAA4FbYdNfV22+/rddee02dO3fWwYMH9eSTT6pFixb6888/eZAgAAAoMmxa0bm6mtOqVStNmDBBzz77rCSpQ4cOWr16tT37AwAAsJlNKzpxcXFq1qyZJKlEiRK6ePGipL+/nn3Hjh326w4AAOAW2BR0srOzVaxYMUlSlSpV9PPPP0uSjh49Kg8PD/t1BwAAcAtu+a6r0NBQDRkyRB06dNBPP/2kQYMGFfgYV65ckZubm9zc3K47JycnR5cuXZKPj8+ttAsAAO4gNq3oXD1VJUnPP/+85s+fr6pVq+q1117T3Llz832cVatWqXXr1vLz85OPj486duyovXv3Ws0xDEMTJ05U6dKl5efnp2rVqmndunW2tA0AAO4wNq3oXLuqMnjwYA0ePLhAx8jOztZnn32m2bNnq2nTprpy5YrGjh2rHj166ODBgypdurQkac6cOZo3b542btyo4OBgzZo1S/3791dMTIxq165tS/umtCg53AlVezihJgAA+WfTik5aWppWrVqVa3zVqlVKS0vL1zHc3Nz05ZdfqmXLlipWrJi8vb311ltv6fTp09q9e7dl3ty5czV69Gi1atVK7u7uGj9+vAIDA7VgwQJbWgcAAHcQm7+9/PTp07nGT58+rZdeesnmZuLi4iRJ/v7+kqTk5GQdPXpU7dq1s5rXoUMH7dq1y+Y6AADgzmBT0Pniiy/yvOh40KBB+vLLL21qJCMjQ08//bTat2+ve+65R9LfQUf6X/C5yt/f37ItL5mZmbpw4YLVCwAA3HlsCjpZWVlKTU3NNX7+/HldvnzZpuMNGTJEZ86c0WeffWYZd3FxkfT39TzXznd1vX7r06ZNU6lSpSyvoKCgAvcEAABufzYFnc6dO+ull16yCjWXL1/W+PHj1blz5wIdKysrSw899JD27t2r77//XnfddZdlW2BgoCQpKSnJap+kpCRVrFjxusecMGGCUlNTLa/4+PgC9QQAAMzBpruuZsyYofbt26tatWoKDg6WYRiKioqSm5ubfvzxx3wfJysrS0OHDlVkZKS+//57ValSxWp7qVKl1KhRI23evFkDBw6U9PfqTkREhJ544onrHtfDw4MHFwIAANuCTo0aNRQTE6PFixfrl19+kYuLi1544QWFhITIz88vX8fIycnR8OHDtW3bNq1bt04+Pj5KSUmRJJUsWdISVCZOnKhhw4apTZs2at26tWbMmKGsrCyNGTPGltZNK9Q/pNBrblFCodcEAKAgbH4yctmyZTVu3DibC58/f16bNm2SJPXs2dNq2+zZszVs2DBJf1/gnJGRodmzZ+vll19Ww4YNFRERoYCAAJtrAwCAO4PNQef8+fP66KOPFBsbK0mqV6+eHnnkEcuD/m7Gz8/PsoJzMyNGjNCIESNsbRUAANyhbLoYeceOHapWrZpmzpypkydP6uTJk3r33XdVvXp1yxd8AgAAOJtNKzpjx47VyJEj9e6778rd/e9DZGVl6YUXXtDYsWO1Z88euzYJAABgC5tWdA4dOqRXXnnFEnIkyd3dXZMnT9bBgwft1hwAAMCtsCno1KpVy/J1Df90/Phx1apV65abAgAAsId8n7r654XDTz75pAYOHKi33npLzZs3tzxH5+WXX9aLL77okEYBAAAKKt9B59rvm5KkwYMH5xp77LHHFBoaemtdocAWJYc7oWoPJ9QEACD/8h10uMAYAADcbvIddJo0aeLANgAAAOzPptvLDxw4cMPtderUsakZAAAAe7Ip6NStW/eG2w3DsKkZAAAAe7Ip6MTHx1u9z8nJ0eHDh/X888/r6aeftktjAAAAt8qmoFOpUqVcY5UrV9Ynn3yiUaNGKSSk8L9JGwAA4Fo2PTDweqpXr37T63cAAAAKi83fXn6tc+fOadq0aapataq9DokCCPUv/FW0LUoo9JoAABSETUHHxcUlz/Fy5cppxYoVt9QQAACAvdgUdDZt2pRrrEyZMqpbt668vLxuuSkAAAB7sCnodO3a1d59AAAA2F2Bg056erq8vb0t70+fPq05c+bo3Llz6tu3r3r04PuPAABA0VCgu642bdqkAQMGWN5nZGSo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AweUk5OjGjVqFNrD0b7++mslJydr9OjRDqsxYcIEDRw4ULNnz1bDhg0VHR2tXbt26euvv3ZIPT8/P8XExFiNJSYmKiMjQ/v371fz5s0dUvefrvf3T0pKihISEhQUFOTwHgpbZGSkJKlGjRoOrbNr1y6lp6crKipKGzdu1Oeff+7Qeig6CDrXOHv2rOrXr281dvUC1rNnzzqjJYdKS0tTaGiounTpojZt2ji01owZM/THH3/o4MGD6tWrl8Muur506ZIGDx6smTNnqmrVqkpLS3NInX9q3ry5jh49qipVqkiSZs+erUceeUS1atVyyAXJJ06cUJkyZdSlSxclJiYqKytLqamp+s9//qOBAwfavd61wsPD1a5dO9WtW9dhNZo1a6b+/fvr1VdfVfXq1fXHH3/okUcecdg/NsLCwtS6dWuNGTNGDzzwgA4cOKBFixZJKrz/7589ezbXBfP//PvHbEHnzJkzCgsLU//+/XP9vWtvr7/+uk6ePKmDBw9q4MCB1z3VBfPhGp1rFCtWTBkZGVZjV697KIw7kwrT5cuX1adPHxmGoRUrVji83ooVKxQZGamEhAQlJyerX79+DqkzdepUlShRQlWrVtX27dv1888/S5IOHDigffv2OaRmjx49LCFHkp599lnVqlVLK1eudEi9YsWKae/evXrwwQd14MABHTlyRM8//7xGjBhh07UOBZGQkKDvvvtOoaGhDq0zcuRIy7U50dHROnbsmL7//ns98cQTDqkXHBysqKgoZWdna8aMGdq3b58l6JQoUcIhNa91J/39c+HCBd13330qW7asPvroI4fX+/bbbxUdHa3jx49r//79evjhhx1eE0UDKzrXqFKlihISEqzGrv7icMStps6SkZGhPn36KCkpSVu3blW5cuUKrbavr68ef/xxDRkyRBcvXlTJkiXtenwvLy+VKFFCL730kqS/L9yVpGXLlik+Pl4LFiywa73rqVChgsNCR9WqVeXm5mYVNp544gm9/PLLioyMdOjt+0uWLFHJkiUdvnL07bff6p133pGvr68kqXTp0nr44Yc1bdo0h9Vs3LixFi5caHm/dOlSubi4qF69eg6r+U9VqlTJ9d9MYmKiXFxcTLWac/HiRfXs2VPZ2dnavHmz5X/jwuDn56eQkBA99dRTysnJkasr/943O/4Xvka3bt30008/KSUlxTK2du1a1a1bt1Cf/eJIV0NOYmKiIiIiVL58eYfWS09PzzV25MgReXt7O+RfylOnTrW6O2jjxo2S/l66dlTIufYzJicna+/evWrQoIFD6vXo0UPZ2dk6deqUZexqQPf393dITUkyDEMfffSRhg0b5vBVDn9//1z/6IiPj3fY58vKylJWVpblfU5OjhYsWKD77ruv0P4h0K1bN0VERFj997R27Vq1atVKPj4+hdKDo10NOVeuXNGmTZtUunRph9a73t8/ZcqUIeTcIVjRucZDDz2k9957T3379tW4ceMUExOj8PBwrVq1ymE1Dx06pNOnT+vw4cOSpO3bt0uSGjVq5JB/6fTv31+7du3S4sWLdfjwYUvdqlWrOuSBbJMnT1ZGRoY6d+4sHx8f/fTTT5oxY4amTJlyyw8KKyruvfde9evXT/fcc49SUlL0zjvvqHz58ho7dqxD6rVt21YPPPCABgwYoAkTJigrK0uvv/66OnTo4NCHFEZEROjo0aMOP20lSU8//bQmT56ssmXL6p577lFkZKQWLFigmTNnOqReamqq+vbtq7Fjx8rX11cLFy5UXFycli9fbpfj5+Tk6KeffpL09y/7kydPavv27fL29tY999wjSRo9erTmzZunvn376qmnntKuXbv01VdfWcJ6Qf3+++86e/as/vzzT2VlZVn+bmnatKm8vLzyPSe/kpOTdfDgQcs1Tb/99ps8PT1VuXJlVa5cWVlZWbr//vt16NAhffTRR9q/f79lX1sfPHm139TUVCUlJWn79u0qUaKE5aLuZ555RiVLllSHDh3k4eGhH374QbNnz9b7779f4Fq4PfHt5Xk4d+6cpk+frqioKPn5+Sk0NFTdunVzWL3XX39d3333Xa7x+fPnO+TCy3bt2uU5PmbMGIect87JydGyZcu0fv16nTt3TlWrVtXw4cML5QnQ0t/XOHTr1k1vvPGGOnXq5JAa586d0wcffKBdu3bJy8tLLVq00NixYwv8i6Igrly5orlz52rTpk3y9PRU27Zt9eSTTzp0peWdd97Rvn379Omnnzqsxj+tXbtWX375pU6dOqWKFStq8ODBuv/++x1Wb+/evZo1a5aSkpLUvHlzPfPMM3ZbQbr63+G1qlevrqVLl1renz59Wm+//bZ+/fVXS1hu3769TTVffPFF7dixI9f4J598Ynnie37m5NfGjRv12muv5RofOXKkQkNDlZaWpp49e+a577hx49S3b98C1cvOzlbHjh1zjVeqVMly3WFWVpaWLFmijRs3Ki0tTdWqVdOoUaNy3d0G8yLoAAAA0+IEJQAAMC2CDgAAMC2CDgAAMC2CDgAAMC2CDgAAMC2CDgAAMC2CDgAAMC2CDoBCc+bMGa1YscLqqxZskZqaqhUrVuT6AkwAuBYPDATs4Pjx49q3b58Mw1CDBg1yPVH28uXLWrt2ba79ypcvr86dO1ttd3Fxkbe3typVqqT69eurWLFieR7LxcVFAwcOzPV9PV9//bUuXbqkrl273vA7mhISErR//365u7vrnnvukZ+fn60fP9927typ1q1b6+LFi7f03U2//fabGjZsqJMnT9r0tQEA7hzm+KIhwEnOnTunkJAQbdy4Ue3atZObm5u2b9+u9u3ba8mSJZagcebMGT300EPq1KmTKlSoYNm/Xr166ty5c67tly9f1oEDB5ScnKynn35akyZNsnwv2NW5klSmTBl1797dcrzY2Fj169dPhmHoxx9/zPPrPgzD0NixY/Xxxx+rTZs2cnd31/79+3X//fdr/vz5cnFxceSPDAAKFUEHsFFOTo569+6tixcv6siRI5aVhTNnzuj+++9Xr1699PPPP1t9cenEiRPVtWvX6x7z2u1btmzRwIEDlZSUpPnz51vN7dChg8LDw62CTnh4uDp06KBt27Zdt8bnn3+u8PBw/frrr6pbt64k6a+//tKSJUt0dYF35cqVat26tYKCgqw+78qVK9W2bVuVKFFCmzZt0oMPPqhDhw7pyJEjql27turUqSPDMBQdHa0TJ06oSZMmqly5cp597N+/X3/88Yfq1Kmj2rVr59oeFxenPXv2qGTJkmrTpo3Dvy0dgEkZAGzy1VdfGZKMbdu25dq2Z88ew8XFxfj0008NwzCM+Ph4Q5KxadOmPI91o+0LFiwwXF1djT///NNq7pIlSwxPT08jJSXFMAzDuHLliuHv728sXbrUkGT8+OOPedaaOHGiUaVKlRt+ti5duhhjxoyxGtuwYYNRrFgxIykpyfj5558NSUbHjh2N4OBgo1u3boarq6vxxhtvGN27dzdatGhhdOnSxfD09DS+/fZbyzGu7terVy+jfv36RpcuXQwPDw/jzTfftKr1yiuvGCVKlDC6du1q1KtXzwgMDDT27Nlj2R4TE2NIMk6ePHnDzwEAXIwM2Gjjxo0qV66cOnTokGtbkyZNVKNGjVzfSv/9999rxYoVlldiYuJN6/Tp00c5OTn68ccfrcZr1KihVq1aadmyZZL+/qbv0qVL3/Sbrlu1aqW4uDhNmDBBBw8ezHNOaGioPvvsM6uLfRcvXqzevXurfPnylrF27dopMjJSGzdu1OTJkzVp0iS1b99eu3bt0ubNmxUWFqZXX3011/FLlSqlmJgYbd68WV9++aVeeeUVHThwQJK0a9cuvf7661q/fr02bdqkmJgYtW/fXqNHj7asOAFAfhF0ABudOnXquqdlJKly5co6deqU1diOHTu0Zs0ay+vkyZM3rXP1mp7k5ORc20JCQhQeHi5J+vDDDxUSEnLT4/Xu3Vvz58/XF198oTp16sjPz08PPvigdu3aZZnzwAMPyM3NTV999ZUk6ezZs1q7dq1GjRpldazHH3/c8ufWrVvnOXbo0KFcPbzwwguWa4F69+6tu+++W6tWrZIkrVixQq1bt1anTp0kSa6urpowYYKio6N1+PDhm34+APgngg5gIx8fH505c+a621NSUnLdWTRx4kSrFZ3g4OCb1klLS5MkeXt759o2YMAAxcXFafXq1dq6datGjBiRr96feOIJ/fHHHzp69KjmzZun5ORktW3b1hJ2ihcvruHDh2vx4sWSpGXLlsnPz0+9evWyOk6ZMmUsf/bw8MhzLK9bwKtWrWr1vlq1aoqLi5P097U51atXt9peo0YNyzYAKAiCDmCjFi1aKD4+XgkJCbm2nTlzRocPH1bLli1vuc7PP/8s6e/TYdcqUaKEhg4dqkcffVQ9e/ZUxYoVC3TsatWq6aGHHtKmTZtUtmxZff7555ZtoaGh2rp1q+Li4rR48WKNGDFCbm5ut/RZrjp37lyu91fvUCtXrpzOnj1rtf3q+xvdLg8AeSHoADYaNmyY/Pz89NJLL+Xa9sorr8jDw0OPPvroLdVIS0vTpEmT1KxZM7Vo0SLPOWPHjlXPnj31/PPP5+uY8fHxys7OthrLzs5WVlaWSpcubRmrV6+eWrZsqWeffVZ79+7NddrqVqxZs8aqn8jISLVt21bS39f9bNu2zWq1bOXKlSpXrpzq1Kljtx4A3Bm4vRywUZkyZbR69Wr17dtXXbt21cCBA+Xm5qY1a9Zo+/btWr16tdWFu/nx/fffKyUlRRkZGTp48KA+/fRT+fn5WR4QmJcGDRpoxYoV+a6xYcMGvfvuu+rXr59q166t9PR0ffLJJ/L09MwVZkJDQzVq1Ci1a9cuz1vAbfXee+/p7NmzuuuuuzR37ly1bdtW999/v6S/A+T8+fPVqVMnjRkzRgkJCZo5c6bmz5/PLeYACowVHeAWtGvXTocPH1afPn20e/du/fTTT+rcubMOHz6se++91zLPy8tLgwcPvu5TfK9uP3LkiNauXasffvhBxYoV0+LFi7Vnzx6ra1quzvX398/zWN7e3jfcHhoaqo0bN8rf318///yzDh8+rFGjRik2NlaVKlWymtu3b19JyhWAypUrp8GDB1s9tbl8+fIaPHiw1ZOa77rrLg0aNCjXfj/99JO8vb0VFRWlUaNGad26dZY5rq6uioiI0GOPPabdu3frwoUL2rhxo1UPpUuX1uDBgwk+AG6Kr4AAcF3Lly/X2LFjlZiYmOfF0ABQ1HHqCkAuf/75p77//ntNnTpVzz77LCEHwG2LoAMgl+PHj2vz5s0aO3as/v3vfzu7HQCwGaeuAACAaXExMgAAMC2CDgAAMC2CDgAAMC2CDgAAMC2CDgAAMC2CDgAAMC2CDgAAMC2CDgAAMC2CDgAAMK3/B8nftAivM3OtAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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qlWrpvT0dIfU+acWLVro8OHDqlq1qiRp1qxZevzxx1WrVi2HXJB87NgxlS1bVl27dlVSUpKysrKUlpamf//73+rfv7/d610rIiJC7du3V926dR1Wo3nz5urbt69ee+01Va9eXX/++acef/xxh/1jIzw8XG3atNHIkSP14IMPat++fVq4cKGkwvv//unTp3NdMP/Pv3/MFnROnTql8PBw9e3bN9ffu/b2xhtv6Pjx49q/f7/69+9/3VNdMB+u0blGsWLFlJmZaTV29bqHwrgzqTBdvHhRvXr1kmEYWr58ucPrLV++XFFRUUpMTFRKSor69OnjkDpTpkxRiRIlVK1aNW3btk2//PKLJGnfvn3as2ePQ2p2797dEnIk6fnnn1etWrW0YsUKh9QrVqyYdu/erYceekj79u3ToUOHNHr0aA0dOtSmax0KIjExUd9//73CwsIcWuexxx6zXJsTExOjI0eO6IcfftBTTz3lkHohISGKjo5Wdna2pk+frj179liCTokSJRxS81p30t8/586d0/33369y5crp448/dni97777TjExMTp69Kj27t2rRx55xOE1UTSwonONqlWrKjEx0Wrs6i8OR9xq6iyZmZnq1auXkpOTtWXLFpUvX77Qavv4+OjJJ5/UoEGDdP78eZUqVcquxy9ZsqRKlCihV155RdKVC3claenSpUpISND8+fPtWu96Klas6LDQUa1aNbm5uVmFjaeeekrjx49XVFSUQ2/fX7x4sUqVKuXwlaPvvvtO7777rnx8fCRJZcqU0SOPPKJp06Y5rGbjxo21YMECy/slS5bIxcVF9erVc1jNf6patWqu/2aSkpLk4uJiqtWc8+fPq0ePHsrOztamTZss/xsXBl9fX4WGhuqZZ55RTk6OXF35977Z8b/wNe655x79/PPPSk1NtYytWbNGdevWLdRnvzjS1ZCTlJSkyMhIVahQwaH1MjIyco0dOnRIXl5eDvmX8pQpU6zuDtqwYYOkK0vXjgo5137GlJQU7d69Ww0aNHBIve7duys7O1snTpywjF0N6H5+fg6pKUmGYejjjz/WkCFDHL7K4efnl+sfHQkJCQ77fFlZWcrKyrK8z8nJ0fz583X//fcX2j8E7rnnHkVGRlr997RmzRq1bt1a3t7ehdKDo10NOZcvX9bGjRtVpkwZh9a73t8/ZcuWJeTcIVjRucbDDz+s999/X71799aYMWMUGxuriIgIrVy50mE1Dxw4oJMnT+rgwYOSpG3btkmSGjVq5JB/6fTt21c7d+7UokWLdPDgQUvdatWqOeSBbJMmTVJmZqa6dOkib29v/fzzz5o+fbomT558yw8KKyruvvtu9enTR02bNlVqaqreffddVahQQaNGjXJIvXbt2unBBx9Uv379NG7cOGVlZemNN95Qx44dHfqQwsjISB0+fNjhp60k6dlnn9WkSZNUrlw5NW3aVFFRUZo/f75mzJjhkHppaWnq3bu3Ro0aJR8fHy1YsEDx8fFatmyZXY6fk5Ojn3/+WdKVX/bHjx/Xtm3b5OXlpaZNm0qSRowYoblz56p379565plntHPnTn399deWsF5Qf/zxh06fPq2//vpLWVlZlr9bmjVrppIlS+Z7Tn6lpKRo//79lmuafv/9d3l6eiooKEhBQUHKysrSAw88oAMHDujjjz/W3r17Lfva+uDJq/2mpaUpOTlZ27ZtU4kSJSwXdT/33HMqVaqUOnbsKA8PD/3444+aNWuWPvjggwLXwu2Jby/Pw5kzZ/TOO+8oOjpavr6+CgsL0z333OOwem+88Ya+//77XOPz5s1zyIWX7du3z3N85MiRDjlvnZOTo6VLl2rdunU6c+aMqlWrpkcffbRQngAtXbnG4Z577tHUqVPVuXNnh9Q4c+aMPvzwQ+3cuVMlS5ZUy5YtNWrUqAL/oiiIy5cva86cOdq4caM8PT3Vrl07Pf300w5daXn33Xe1Z88effbZZw6r8U9r1qzRV199pRMnTqhSpUoaOHCgHnjgAYfV2717t2bOnKnk5GS1aNFCzz33nN1WkK7+d3it6tWra8mSJZb3J0+e1Ntvv63ffvvNEpY7dOhgU82XX35Z27dvzzX+6aefWp74np85+bVhwwa9/vrrucYfe+wxhYWFKT09XT169Mhz3zFjxqh3794Fqpedna1OnTrlGq9SpYrlusOsrCwtXrxYGzZsUHp6uoKDgzV8+PBcd7fBvAg6AADAtDhBCQAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugA6DQnDp1SsuXL7f6qgVbpKWlafny5bm+ABMArsUDAwE7OHr0qPbs2SPDMNSgQYNcT5S9ePGi1qxZk2u/ChUqqEuXLlbbXVxc5OXlpSpVqqh+/foqVqxYnsdycXFR//79c31fzzfffKMLFy6oW7duN/yOpsTERO3du1fu7u5q2rSpfH19bf34+bZjxw61adNG58+fv6Xvbvr999/VsGFDHT9+3KavDQBw5zDHFw0BTnLmzBmFhoZqw4YNat++vdzc3LRt2zZ16NBBixcvtgSNU6dO6eGHH1bnzp1VsWJFy/716tVTly5dcm2/ePGi9u3bp5SUFD377LOaOHGi5XvBrs6VpLJly+ree++1HC8uLk59+vSRYRj66aef8vy6D8MwNGrUKH3yySdq27at3N3dtXfvXj3wwAOaN2+eXFxcHPkjA4BCRdABbJSTk6OePXvq/PnzOnTokGVl4dSpU3rggQd033336ZdffrH64tIJEyaoW7du1z3mtds3b96s/v37Kzk5WfPmzbOa27FjR0VERFgFnYiICHXs2FFbt269bo0vvvhCERER+u2331S3bl1J0t9//63Fixfr6gLvihUr1KZNGwUGBlp93hUrVqhdu3YqUaKENm7cqIceekgHDhzQoUOHVLt2bdWpU0eGYSgmJkbHjh1TkyZNFBQUlGcfe/fu1Z9//qk6deqodu3aubbHx8dr165dKlWqlNq2bevwb0sHYFIGAJt8/fXXhiRj69atubbt2rXLcHFxMT777DPDMAwjISHBkGRs3Lgxz2PdaPv8+fMNV1dX46+//rKau3jxYsPT09NITU01DMMwLl++bPj5+RlLliwxJBk//fRTnrUmTJhgVK1a9YafrWvXrsbIkSOtxtavX28UK1bMSE5ONn755RdDktGpUycjJCTEuOeeewxXV1dj6tSpxr333mu0bNnS6Nq1q+Hp6Wl89913lmNc3e++++4z6tevb3Tt2tXw8PAw3nzzTatar776qlGiRAmjW7duRr169YyAgABj165dlu2xsbGGJOP48eM3/BwAwMXIgI02bNig8uXLq2PHjrm2NWnSRDVq1Mj1rfQ//PCDli9fbnklJSXdtE6vXr2Uk5Ojn376yWq8Ro0aat26tZYuXSrpyjd9lylT5qbfdN26dWvFx8dr3Lhx2r9/f55zwsLC9Pnnn1td7Lto0SL17NlTFSpUsIy1b99eUVFR2rBhgyZNmqSJEyeqQ4cO2rlzpzZt2qTw8HC99tpruY5funRpxcbGatOmTfrqq6/06quvat++fZKknTt36o033tC6deu0ceNGxcbGqkOHDhoxYoRlxQkA8ougA9joxIkT1z0tI0lBQUE6ceKE1dj27du1evVqy+v48eM3rXP1mp6UlJRc20JDQxURESFJ+uijjxQaGnrT4/Xs2VPz5s3Tl19+qTp16sjX11cPPfSQdu7caZnz4IMPys3NTV9//bUk6fTp01qzZo2GDx9udawnn3zS8uc2bdrkOXbgwIFcPbz00kuWa4F69uypu+66SytXrpQkLV++XG3atFHnzp0lSa6urho3bpxiYmJ08ODBm34+APgngg5gI29vb506deq621NTU3PdWTRhwgSrFZ2QkJCb1klPT5ckeXl55drWr18/xcfHa9WqVdqyZYuGDh2ar96feuop/fnnnzp8+LDmzp2rlJQUtWvXzhJ2ihcvrkcffVSLFi2SJC1dulS+vr667777rI5TtmxZy589PDzyHMvrFvBq1apZvQ8ODlZ8fLykK9fmVK9e3Wp7jRo1LNsAoCAIOoCNWrZsqYSEBCUmJubadurUKR08eFCtWrW65Tq//PKLpCunw65VokQJDR48WMOGDVOPHj1UqVKlAh07ODhYDz/8sDZu3Khy5crpiy++sGwLCwvTli1bFB8fr0WLFmno0KFyc3O7pc9y1ZkzZ3K9v3qHWvny5XX69Gmr7Vff3+h2eQDIC0EHsNGQIUPk6+urV155Jde2V199VR4eHho2bNgt1UhPT9fEiRPVvHlztWzZMs85o0aNUo8ePTR69Oh8HTMhIUHZ2dlWY9nZ2crKylKZMmUsY/Xq1VOrVq30/PPPa/fu3blOW92K1atXW/UTFRWldu3aSbpy3c/WrVutVstWrFih8uXLq06dOnbrAcCdgdvLARuVLVtWq1atUu/evdWtWzf1799fbm5uWr16tbZt26ZVq1ZZXbibHz/88INSU1OVmZmp/fv367PPPpOvr6/lAYF5adCggZYvX57vGuvXr9d7772nPn36qHbt2srIyNCnn34qT0/PXGEmLCxMw4cPV/v27fO8BdxW77//vk6fPq3KlStrzpw5ateunR544AFJVwLkvHnz1LlzZ40cOVKJiYmaMWOG5s2bxy3mAAqMFR3gFrRv314HDx5Ur1699Ouvv+rnn39Wly5ddPDgQd19992WeSVLltTAgQOv+xTfq9sPHTqkNWvW6Mcff1SxYsW0aNEi7dq1y+qalqtz/fz88jyWl5fXDbeHhYVpw4YN8vPz0y+//KKDBw9q+PDhiouLU5UqVazm9u7dW5JyBaDy5ctr4MCBVk9trlChggYOHGj1pObKlStrwIABufb7+eef5eXlpejoaA0fPlxr1661zHF1dVVkZKSeeOIJ/frrrzp37pw2bNhg1UOZMmU0cOBAgg+Am+IrIABc17JlyzRq1CglJSXleTE0ABR1nLoCkMtff/2lH374QVOmTNHzzz9PyAFw2yLoAMjl6NGj2rRpk0aNGqUXX3zR2e0AgM04dQUAAEyLi5EBAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBp/T984INvLSh0YgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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/oU+ztSpU9WjRw95eHjIzc1Njz32mNzc3PTbb79Z5sybN0+jRo1S27Zt5e7urnHjxikwMFALFy60pXUAAHALsWlF59dff5Wvr6/VmJubmyZOnKi77767SMf666+/lJ6eroyMDC1atEiVK1e2rAilpqbq8OHD6tixo9U+nTt31s6dO21pHQAA3EJsCjqXQ86FCxd05MgRNWjQwLLt8imnwvrpp580ePBgpaeny9vbWx9//LECAgIkyXLNj7+/v9U+/v7+2rFjx1WPefHiRV28eNHyPiMjo0g9AQAAc7Dp1FVmZqaGDx8ub29vNWzY0DI+ePBgxcbGFulY3bp1U1pami5cuKA333xT/fv31+bNmyVJLi4ukv6+K+ufcnJy5Op69danT58uX19fyysoKKhIPQEAAHOwKehEREQoOTlZ0dHRVuOPPPKIXn31VZsacXd31+OPP66QkBDLnVeBgYGSpJSUFKu5KSkpqlq16jX7S09Pt7wSExNt6gkAANzcbAo6q1evVmRkpFq0aGE13rZtW8tqjK3Onj1reZ6Or6+vmjZtqo0bN1q25+bmKioqSp06dbrqMTw8POTj42P1AgAAtx6brtFJS0tT5cqVJf3v9JL09zU7hmEU6hhZWVn617/+pXHjxqlhw4Y6e/as5s+frz///FOhof+7VXrChAkaPny42rdvr3bt2mnGjBnKycnR6NGjbWndtBanRjqhak8n1AQAoPBsWtFp3ry51q1bJ8k66MyZM0dt2rQp1DG8vLw0bdo0LVq0SF26dNGwYcN0/vx5/fLLL1YrRYMHD9b777+vOXPm6M4771RiYqKioqIsFywDAABcjU0rOlOnTtWAAQP0888/S5Leeustfffdd9q2bZuioqIKfZy2bdvqyy+/vO68ESNGaMSIEba0CgAAbmE2rej06NFD33//vf78808FBARo9uzZKlu2rLZs2ZLvmTcAAADOYtOKjiS1a9dOa9assWcvAAAAdmXzl3oCAACUdIVe0SnKxb8nTpywqRkAAAB7KnTQmT17tuXP8fHxeuuttzR8+HC1atVKkhQdHa2PP/5YL730kt2bBAAAsEWhg87QoUMtf+7WrZuWLVumwYMHW8Yef/xx3X333XyruJOE+Ydef5KdbVJSsdcEAKAobLpGJzY2Vr169co33qtXryJ/1xUAAICj2BR0vL29tXbt2nzj3377rcqVK3fDTQEAANiDTbeXT5gwQY888oj+85//qFWrVjIMQzExMfr00081d+5ce/cIAABgE5uCzpgxY1SvXj29++67mjVrliSpYcOGWrdunbp3727XBgEAAGxl8wMDe/TooR49etizFwAAALvigYEAAMC0bAo6R48e1X333afKlSvL3d093wsAAKAksCmVjBw5UpcuXdKcOXNUoUIFe/cEGyxOjXRC1Z5OqAkAQOHZFHR27NihQ4cOFelrIQAAAIqbTaeuqlatKldXLu8BAAAlm01pZeTIkZowYYIuXbpk734AAADsxqZTVx999JHi4+P16aefKigoSC4uLlbbf/vtN7s0BwAAcCNsCjqPPfaYvfsAAACwO5uCzrPPPmvnNgAAAOyvSEEnMzOzUPO8vb1tagYAAMCeihR0CvvN5IZh2NQMbBfmH1rsNTcpqdhrAgBQFEUKOqtWrXJUHwAAAHZXpKBz//33O6oPAAAAu+OpfwAAwLQIOgAAwLQIOgAAwLRsCjqFvc0cAADAmWx6YKCPj4/y8vLs3QtuwOLUSCdU7emEmgAAFJ5NKzpVqlTRiRMn7N0LAACAXdkUdMLDwzV27FhOYQEAgBLNplNXK1asUHx8vD7//HMFBQWpdOnSVtv59nIAAFAS8O3lAADAtPj2cgAAYFo39BydCxcuKD4+3l69AAAA2JXNz9EZPny4vL291bBhQ8v44MGDFRsba7fmAAAAboRNp64iIiKUnJys6OhotWzZ0jL+yCOP6NVXX9XXX39ttwZROGH+ocVec5OSir0mAABFYVPQWb16tX788UfVqlXLarxt27YaMmSIXRoDAAC4UTadukpLS1PlypUlSS4uLpbxCxcuyDAM+3QGAACKzYwZM/Tiiy9e9f3Nyqag07x5c61bt06SddCZM2eO2rRpY5/OAACA3cTHxyskJEQhISFq1aqVevXqpfHjxystLU2SlJCQoEOHDlnmX/m+MKZPn66XXnrJrn3fKJtOXU2dOlUDBgzQzz//LEl666239N1332nbtm2Kioqya4MAAODGZWVlKTY2VitXrlTt2rV17NgxTZo0SV999ZViY2M1btw4/fXXXzdUIyEhwRKcSgqbgk6PHj30/fff680331RAQIBmz56tFi1aaMuWLWrXrp29ewQAAHbSqFEjNW7cWJIUGBioVq1aadu2bdq1a5dS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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAHGCAYAAAB98CE/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAASxtJREFUeJzt3Xt8z/X///H7DmxshjFm2ZzlfJzzMYdQQuQYKrOKdS7KKTqqRA75+KJJipQKFR85TIqibZHRnJLZhtkcxsZo2+v3h5/3p7cN29v7vfe83K6Xy/ty8X6+nq/X4/Hep4/dPV+Ht4thGIYAAABMyNXZDQAAADgKQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJiWu7MbAJxh8eLFOnv27E3n1alTR0WKFNEff/yhwYMHq3z58lbbDcPQwoULVaRIET322GM3Pd7Ro0cVFRWlU6dOqWLFimrXrp28vb1t/Rg3lJycrN9++02JiYny8/NTgwYNVK1aNas5x44d05dffqnevXurSpUqDumjMEhKStLGjRuVlpamunXrqk2bNnJxcXF2WwAKACs6uCMlJibqyJEjltdXX32l559/Xtu3b7caT0lJUVBQkCZOnKiQkJAcx5k9e7aeeOIJFSlS5Ib1zp49q549e6pr16768ssvtX37dj333HMKCgrSRx99ZNfPZhiGXn31VVWqVElTpkxRZGSkPv30U9WtW1cdOnTQX3/9ZZl7+PBhPf/889q7d69deyhMFi9erMqVK+vTTz9VVFSU+vXrp06dOun8+fPObg1AQTAAGFOnTjUkGb/++muu2+fNm2dIMhYsWGAZ2717t+Hh4WEMHjz4psdPSUkxfvzxR6uxrKwso3fv3oarq6uxf//+W/sA/7JkyRJDkvHOO+9YjR8+fNho3ry58d///tcy9vPPPxuSjO+++85u9QuTP/74w3BzczMmTpxoGYuPjzdKly5tPPLII85rDECB4dQVkAdPPvmkVq1apRdeeEFdunRRhQoVNGTIEPn7+2vevHk33b9MmTLq0KGD1Zirq6v69eun1atXa8+ePapZs6Zdel23bp2l53+rUqWKIiIidOrUKUnSvn37tGLFCknSt99+q0OHDkmS2rdvryZNmig+Pl5ff/21+vXrp/Lly2vdunWKi4vTkCFDVKZMGUnSkSNHtHXrVp0/f17VqlVTp06d5O7+v79WoqKitHXrVkmSi4uLfHx81KRJEzVs2NCqt/Xr1ysuLk6hoaGKi4vTpk2bVKJECfXq1UseHh6SpLi4OG3evFlFihTR/fffr1KlSt30ZzF79my5ublp7NixlrGKFSvqscce06xZs/Tee++pXLlyef7ZArj9cOoKyKPw8HAVKVJEjzzyiF588UXFxsbq008/VcmSJW0+5vbt21WkSBE1btzYbn36+vpKkhISEnJs8/LyUlBQkCQpPT1dx48fl3TlGparp+tSU1MlSfv379fzzz+vzZs3q2PHjvr888/1ySef6Pjx48rMzNTo0aNVo0YNLV26VFFRUXryySfVsGFDHTlyxFIvNTXVctxDhw5p9erVatGihfr16yfDMCzzli1bpkmTJmnFihUaOHCgtm7dqpdeeklNmzbV2bNntXTpUvXv318//fSTJk6cqHr16ll6v5HNmzerYcOGKlGihNV4u3btlJWVpZ9//jl/P1wAtx9nLykBhcHNTl1dtXTpUkOSIcnqdEhe7d271/jggw+Mt956y3jggQeM6tWrGytXrrSx69zt3LnTKFq0qFG5cmVj7ty5RmxsrPHPP//kOvdGp642bNhgSDIaNGhgHD582DAMw7h06ZJx6tQpY9y4cYabm5uxadMmy/y0tDSjefPmRosWLW7Y3+7duw03NzcjPDzcMvbII48YXl5eRlhYmJGVlWUYhmGcOHHCKFasmPHwww8bjz32mGX85MmThpeXl/Hcc8/dsE52drbh6upqPPjggzm2RUVFGZKM995774bHAHD749QVkA9dunRR8eLFdeHCBfXv3z/f+6elpVlWTQ4cOKCiRYsqKyvrpvvNnj1b2dnZlvetW7dW8+bNc53bqFEjbd++Xe+9954mTpyoM2fOyMvLSx07dtTzzz+vzp0756vnnj17Wu7IKlq0qLy8vDR79mz1799fnTp1sszz8vLSyy+/rH79+umPP/6wnJ66cOGCtmzZori4OF26dEmGYah06dLatm2bRowYYdk/PT1dY8aMkavrlYXm8uXLq0OHDlq6dKkOHTpkGffz81PHjh21efPmG/adkZGh7OxsFStWLMe2q2Pp6en5+lkAuP0QdIB8GDFihFxdXeXv768RI0Zo+/btVtek3Ezz5s0tASUrK0ujRo2ynJJp27bt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pKshJzExURERESpXrpxD66Wnp+cYO3TokLy8vBzyL+UpU6ZY3R20fv16SVeWrh0Vcq79jMnJydq1a5fq1avnkHrdunVTVlaWTpw4YRm7GtD9/PwcUlOSDMPQxx9/rKFDhzp8lcPPzy/HPzri4+Md9vkyMzOVmZlpeZ+dna358+frvvvuK7B/CHTt2lURERFW/z2tXr1aLVu2lLe3d4H04GhXQ87ly5e1YcMGlSpVyqH1rvf3T+nSpQk5dwhWdK4xePBgffDBB+rdu7fGjBmjmJgYhYeH6+uvv3ZYzQMHDujkyZM6ePCgJGnr1q2SpAYNGjjkXzp9+/bVjh07tGjRIh08eNBSt3Llyg55INukSZOUkZGhTp06ydvbW7/88oumTZumyZMn3/KDwgqLe+65R3369FHjxo2VkpKi9957T+XKldPo0aMdUq9NmzZ68MEH1a9fP40bN06ZmZl644031L59e4c+pDAiIkKHDx92+GkrSXrmmWc0adIklSlTRo0bN1ZkZKTmz5+v6dOnO6ReamqqevfurdGjR8vHx0cLFixQXFycli1bZpfjZ2dn65dffpF05Zf98ePHtXXrVnl5ealx48aSpJEjR2ru3Lnq3bu3nn76ae3YsUPffPONJazn159//qnTp0/r77//VmZmpuXvliZNmqh48eJ5npNXycnJ2r9/v+Wapj179sjT01NBQUEKCgpSZmam7r//fh04cEAff/yx9u7da9nX1gdPXu03NTVVSUlJ2rp1q4oVK2a5qPvZZ59ViRIl1L59e3l4eOinn37SzJkzNXv27HzXwu2Jby/PxZkzZ/Tuu+8qKipKvr6+Cg0NVdeuXR1W74033tAPP/yQY3zevHkOufCybdu2uY6PGjXKIeets7OztXTpUq1du1ZnzpxR5cqVNWzYsAJ5ArR05RqHrl276s0331THjh0dUuPMmTP68MMPtWPHDhUvXlzNmzfX6NGj8/2LIj8uX76sOXPmaMOGDfL09FSbNm301FNPOXSl5b333tPu3bv12WefOazGv61evVpfffWVTpw4oQoVKmjgwIG6//77HVZv165dmjFjhpKSktSsWTM9++yzdltBuvrf4bWqVq2qJUuWWN6fPHlS77zzjv744w9LWG7Xrp1NNV9++WVt27Ytx/inn35qeeJ7Xubk1fr16/X666/nGH/kkUcUGhqqtLQ0de/ePdd9x4wZo969e+erXlZWljp06JBjvGLFipbrDjMzM7V48WKtX79eaWlpqlKlikaMGJHj7jaYF0EHAACYFicoAQCAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0ABSYU6dOafny5VZftWCL1NRULV++PMcXYALAtXhgIGAHR48e1e7du2UYhurVq5fjibIXL17U6tWrc+xXrlw5derUyWq7i4uLvLy8VLFiRdWtW1dFihTJ9VguLi7q379/ju/r+fbbb3XhwgV16dLlht/RlJCQoL1798rd3V2NGzeWr6+vrR8/z7Zv365WrVrp/Pnzt/TdTXv27FH9+vV1/Phxm742AMCdwxxfNAQ4yZkzZxQSEqL169erbdu2cnNz09atW9WuXTstXrzYEjROnTqlwYMHq2PHjipfvrxl/zp16qhTp045tl+8eFH79u1TcnKynnnmGU2cONHyvWBX50pS6dKlde+991qOFxsbqz59+sgwDP3888+5ft2HYRgaPXq0PvnkE7Vu3Vru7u7au3ev7r//fs2bN08uLi6O/JEBQIEi6AA2ys7OVs+ePXX+/HkdOnTIsrJw6tQp3X///erRo4d+/fVXqy8unTBhgrp06XLdY167fdOmTerfv7+SkpI0b948q7nt27dXeHi4VdAJDw9X+/bttWXLluvW+OKLLxQeHq4//vhDtWvXliT9888/Wrx4sa4u8K5YsUKtWrVSYGCg1eddsWKF2rRpo2LFimnDhg166KGHdODAAR06dEg1a9ZUrVq1ZBiGoqOjdezYMTVq1EhBQUG59rF371799ddfqlWrlmrWrJlje1xcnHbu3KkSJUqodevWDv+2dAAmZQCwyTfffGNIMrZs2ZJj286dOw0XFxfjs88+MwzDMOLj4w1JxoYNG3I91o22z58/33B1dTX+/vtvq7mLFy82PD09jZSUFMMwDOPy5cuGn5+fsWTJEkOS8fPPP+daa8KECUalSpVu+Nk6d+5sjBo1ymps3bp1RpEiRYykpCTj119/NSQZHTp0MIKDg42uXbsarq6uxptvvmnce++9RvPmzY3OnTsbnp6exvfff285xtX9evToYdStW9fo3Lmz4eHhYbz11ltWtV599VWjWLFiRpcuXYw6deoYAQEBxs6dOy3bY2JiDEnG8ePHb/g5AICLkQEbrV+/XmXLllX79u1zbGvUqJGqVauW41vpf/zxRy1fvtzySkxMvGmdXr16KTs7Wz///LPVeLVq1dSyZUstXbpU0pVv+i5VqtRNv+m6ZcuWiouL07hx47R///5c54SGhurzzz+3uth30aJF6tmzp8qVK2cZa9u2rSIjI7V+/XpNmjRJEydOVLt27bRjxw5t3LhRYWFheu2113Icv2TJkoqJidHGjRv11Vdf6dVXX9W+ffskSTt27NAbb7yhtWvXasOGDYqJiVG7du00cuRIy4oTAOQVQQew0YkTJ657WkaSgoKCdOLECauxbdu2adWqVZbX8ePHb1rn6jU9ycnJObaFhIQoPDxckvTRRx8pJCTkpsfr2bOn5s2bpy+//FK1atWSr6+vHnroIe3YscMy58EHH5Sbm5u++eYbSdLp06e1evVqjRgxwupYTzzxhOXPrVq1ynXswIEDOXp46aWXLNcC9ezZU3fffbe+/vprSdLy5cvVqlUrdezYUZLk6uqqcePGKTo6WgcPHrzp5wOAfyPoADby9vbWqVOnrrs9JSUlx51FEyZMsFrRCQ4OvmmdtLQ0SZKXl1eObf369VNcXJxWrlypzZs3a/jw4Xnq/cknn9Rff/2lw4cPa+7cuUpOTlabNm0sYado0aIaNmyYFi1aJElaunSpfH191aNHD6vjlC5d2vJnDw+PXMdyuwW8cuXKVu+rVKmiuLg4SVeuzalatarV9mrVqlm2AUB+EHQAGzVv3lzx8fFKSEjIse3UqVM6ePCgWrRocct1fv31V0lXToddq1ixYhoyZIgee+wxde/eXRUqVMjXsatUqaLBgwdrw4YNKlOmjL744gvLttDQUG3evFlxcXFatGiRhg8fLjc3t1v6LFedOXMmx/urd6iVLVtWp0+fttp+9f2NbpcHgNwQdAAbDR06VL6+vnrllVdybHv11Vfl4eGhxx577JZqpKWlaeLEiWratKmaN2+e65zRo0ere/fueuGFF/J0zPj4eGVlZVmNZWVlKTMzU6VKlbKM1alTRy1atNBzzz2nXbt25ThtdStWrVpl1U9kZKTatGkj6cp1P1u2bLFaLVuxYoXKli2rWrVq2a0HAHcGbi8HbFS6dGmtXLlSvXv3VpcuXdS/f3+5ublp1apV2rp1q1auXGl14W5e/Pjjj0pJSVFGRob279+vzz77TL6+vpYHBOamXr16Wr58eZ5rrFu3Tu+//7769OmjmjVrKj09XZ9++qk8PT1zhJnQ0FCNGDFCbdu2zfUWcFt98MEHOn36tO666y7NmTNHbdq00f333y/pSoCcN2+eOnbsqFGjRikhIUHTp0/XvHnzuMUcQL6xogPcgrZt2+rgwYPq1auXfvvtN/3yyy/q1KmTDh48qHvuuccyr3jx4ho4cOB1n+J7dfuhQ4e0evVq/fTTTypSpIgWLVqknTt3Wl3TcnWun59frsfy8vK64fbQ0FCtX79efn5++vXXX3Xw4EGNGDFCsbGxqlixotXc3r17S1KOAFS2bFkNHDjQ6qnN5cqV08CBA62e1HzXXXdpwIABOfb75Zdf5OXlpaioKI0YMUJr1qyxzHF1dVVERIQef/xx/fbbbzp37pzWr19v1UOpUqU0cOBAgg+Am+IrIABc17JlyzR69GglJibmejE0ABR2nLoCkMPff/+tH3/8UVOmTNFzzz1HyAFw2yLoAMjh6NGj2rhxo0aPHq0XX3zR2e0AgM04dQUAAEyLi5EBAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBp/T+oLrbomtX96AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pusch_transmitter_multi.pilot_pattern.show();" ] }, { "cell_type": "markdown", "id": "313111da", "metadata": {}, "source": [ "As before, all transmitters send pilots only on the third OFDM symbol. Transmitter 0 and 1 (using DMRS port 0 and 1, respectively) send pilots on all even subcarriers, while Transmitter 2 and 3 (using DMRS port 2 and 3, respectively), send pilots on the odd subcarriers.\n", "This means that the pilots signals of DMRS port 0 and 1 (as well as 2 and 3) interfere with each other as they occupy the same resource elements.\n", "So how can we estimate the channel coefficients for both transmitters individually without pilot contamination? \n", "\n", "The solution to this problem are the so-called code division multiplexing (CDM) groups in 5G NR.\n", "DMRS ports 0,1 belong to CDM group 0, while DMRS ports 2,3 belong to CDM group 1.\n", "\n", "The pilot signals belonging to the same CDM group are multiplied by orthogonal cover codes which allow separating them during channel estimation.\n", "The way this works is as follows. Denote by $\\mathbf{p_0} = [s_1, s_2]^\\textsf{T}$ a pair of two adjacent pilot symbols, e.g., those on subcarrier 0 and 2, of DMRS port 0. DMRS port 1 will simply send $\\mathbf{p_1} = [s_1, -s_2]^\\textsf{T}$. If we assume that the channel is constant over both subcarriers, we get the following received pilot signal at the receiver (we look only at a single antenna here):\n", "\n", "\\begin{align}\n", "\\mathbf{y} = h_0\\mathbf{p}_0 + h_1\\mathbf{p}_1 + \\mathbf{n}\n", "\\end{align}\n", "\n", "where $\\mathbf{y}\\in\\mathbb{C}^2$ is the received signal on both subcarriers, $h_0, h_1$ are the channel coefficients for both users, and $\\mathbf{n}\\in\\mathbb{C}^2$ is a noise vector.\n", "\n", "We can now obtain channel estimates for both transmitters by projecting $\\mathbf{y}$ onto their respective pilot sequences:\n", "\n", "\\begin{align}\n", "\\hat{h}_0 &= \\frac{\\mathbf{p}_0^\\mathsf{H}}{\\lVert \\mathbf{p}_0 \\rVert|^2} \\mathbf{y} = h_0 + \\frac{|s_1|^2-|s_2|^2}{\\lVert \\mathbf{p}_0 \\rVert|^2} h_1 + \\frac{\\mathbf{p}_0^\\mathsf{H}}{\\lVert \\mathbf{p}_0 \\rVert|^2} \\mathbf{n} = h_0 + n_0 \\\\\n", "\\hat{h}_1 &= \\frac{\\mathbf{p}_1^\\mathsf{H}}{\\lVert \\mathbf{p}_1 \\rVert|^2} \\mathbf{y} = \\frac{|s_1|^2-|s_2|^2}{\\lVert \\mathbf{p}_1 \\rVert|^2} h_0 + h_1 +\\frac{\\mathbf{p}_1^\\mathsf{H}}{\\lVert \\mathbf{p}_1 \\rVert|^2} \\mathbf{n} = h_1 + n_1.\n", "\\end{align}\n", "\n", "Since the pilot symbols have the same amplitude, we have $|s_1|^2-|s_2|^2=0$, i.e., the interference between both pilot sequence is zero. Moreover, due to an implicit averaging of the channel estimates for both subcarriers, the effective noise variance is reduced by a factor of 3dB since\n", "\n", "\\begin{align}\n", "\\mathbb{E}\\left[ |n_0|^2 \\right] = \\mathbb{E}\\left[ |n_1|^2 \\right] = \\frac{\\sigma^2}{\\lVert \\mathbf{p}_1 \\rVert|^2} = \\frac{\\sigma^2}{2 |s_0|^2}.\n", "\\end{align}\n", "\n", "We can access the actual pilot sequences that are transmitted as follows:" ] }, { "cell_type": "code", "execution_count": 12, "id": "2884bdf7", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:23.328509Z", "iopub.status.busy": "2026-08-07T09:18:23.328358Z", "iopub.status.idle": "2026-08-07T09:18:23.333349Z", "shell.execute_reply": "2026-08-07T09:18:23.332497Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of pilots: torch.Size([4, 1, 48])\n" ] } ], "source": [ "# pilots has shape [num_tx, num_layers, num_pilots]\n", "pilots = pusch_transmitter_multi.pilot_pattern.pilots\n", "print(\"Shape of pilots:\", pilots.shape)\n", "\n", "# Select only the non-zero subcarriers for all sequence\n", "p_0 = pilots[0,0,::2].cpu().numpy() # Pilot sequence of TX 0 on even subcarriers\n", "p_1 = pilots[1,0,::2].cpu().numpy() # Pilot sequence of TX 1 on even subcarriers\n", "p_2 = pilots[2,0,1::2].cpu().numpy() # Pilot sequence of TX 2 on odd subcarriers\n", "p_3 = pilots[3,0,1::2].cpu().numpy() # Pilot sequence of TX 3 on odd subcarriers" ] }, { "cell_type": "markdown", "id": "75de0579", "metadata": {}, "source": [ "Each pilot pattern consists of 48 symbols that are transmitted on the third OFDM symbol with 4PRBs, i.e., 48 subcarriers. \n", "Let us now verify that pairs of two adjacent pilot symbols in `p_0` and `p_1` as well as in `p_2` and `p_3` are orthogonal." ] }, { "cell_type": "code", "execution_count": 13, "id": "b3fbc970", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:23.334594Z", "iopub.status.busy": "2026-08-07T09:18:23.334464Z", "iopub.status.idle": "2026-08-07T09:18:23.341419Z", "shell.execute_reply": "2026-08-07T09:18:23.340924Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j\n", " 0.+0.j 0.+0.j]\n", "[0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j\n", " 0.+0.j 0.+0.j]\n" ] } ], "source": [ "print(np.sum(np.reshape(p_0, [-1,2]) * np.reshape(np.conj(p_1), [-1,2]), axis=1))\n", "print(np.sum(np.reshape(p_2, [-1,2]) * np.reshape(np.conj(p_3), [-1,2]), axis=1))" ] }, { "cell_type": "markdown", "id": "34942413", "metadata": {}, "source": [ "Let us now come back to the masked resource elements in each pilot pattern. \n", "The parameter `NumCDMGroupsWithoutData` mentioned earlier determines which resource elements in a DMRS-carrying OFDM symbol are masked for data transmissions. This is to avoid inference with pilots from other DMRS groups.\n", "\n", "In our example, `NumCDMGroupsWithoutData` is set to two. This means that no data can be transmitted on any of the resource elements occupied by both DMRS groups. However, if we would have set `NumCDMGroupsWithoutData` equal to one, data and pilots would be frequency multiplexed. \n", "This can be useful, if we only schedule transmissions from DMRS ports in the same CDM group.\n", "\n", "Here is an example of such a configuration:" ] }, { "cell_type": "code", "execution_count": 14, "id": "7d16844f", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:23.346021Z", "iopub.status.busy": "2026-08-07T09:18:23.345878Z", "iopub.status.idle": "2026-08-07T09:18:23.808423Z", "shell.execute_reply": "2026-08-07T09:18:23.807878Z" } }, "outputs": [ { "data": { "image/png": "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fvhhvfvuu+rdu7fGjx+vqKgohYaG6quvvnLYmIcPH9bZs2d15MgRSdKOHTskSY0aNXLIv3T69u2r3bt3a+nSpTpy5Ihl3GrVqjlkQ7apU6cqLS1NwcHB8vLy0s8//6zZs2dr2rRpt7xRWHFx3333qU+fPrr33nuVmJiot99+WxUqVNDYsWMdMl7btm314IMPql+/fpo4caIyMzP1xhtvqEOHDg7dpDAsLEzHjh1z+G0rSXrmmWc0depUlStXTvfee6/Cw8O1ePFizZkzxyHjJSUlqXfv3ho7dqy8vb21ZMkSxcTEaOXKlXa5fnZ2tn7++WdJf/+yP336tHbs2CFPT0/de++9kqRRo0Zp4cKF6t27t55++mnt3r1bX3/9tSWsF9Qff/yh8+fP66+//lJmZqbl75amTZvKw8Mj333yKyEhQYcOHbKsafr999/l7u6uKlWqqEqVKsrMzNQDDzygw4cP66OPPtKBAwcs59q68WROvUlJSYqPj9eOHTtUqlQpy6LuZ599VqVLl1aHDh3k5uamH3/8UfPmzdN7771X4LFwe+Lby/Nw4cIFzZo1SxEREfL19dXo0aPVpUsXh433xhtvaNOmTbnaFy1a5JCFl+3atcuzfcyYMQ65b52dna0VK1Zow4YNunDhgqpVq6ahQ4cWyg7Q0t9rHLp06aIZM2aoU6dODhnjwoULev/997V79255eHioRYsWGjt2bIF/URRERkaGFixYoC1btsjd3V1t27bVU0895dCZlrffflv79+/Xp59+6rAx/mndunX68ssvdebMGVWqVEkDBw7UAw884LDx9u3bp7lz5yo+Pl7NmzfXs88+a7cZpJz/Dq9Vo0YNLV++3PL+7Nmzeuutt/Tbb79ZwnL79u1tGvPll1/Wzp07c7V/8sknlh3f89MnvzZv3qzXX389V/vw4cM1evRopaSkqHv37nmeO378ePXu3btA42VlZaljx4652itXrmxZd5iZmally5Zp8+bNSklJUfXq1TVixIhcT7fBvAg6AADAtLhBCQAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugA6DQnDt3TqtWrbL6qgVbJCUladWqVbm+ABMArsWGgYAdnDhxQvv375dhGGrQoEGuHWWvXLmidevW5TqvQoUKCg4Otjru5OQkT09PVa5cWfXr11eJ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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Y0YHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFvvomAR72gAAkBMzOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLS4vdwkgoM2FvqY3NIOACjumNEBAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmxT46JsGeNgBwd1mSsFQuV13u6BxpKWmSpObNm8vJyUljxozRmDFjCqI80yDoAABwlwsLC5OHh0dRl1EscekKAACYlk1B5/PPP8+1/dq1a5o8efIdFQQAAFBQbAo6L7zwgvr376+LFy9a2o4cOaI2bdpoyZIlBVUbAADAHbEp6Pzvf//T8ePH1bBhQ23dulWffvqpmjZtKn9/fx04cKCgawQAALCJTYuRa9WqpV27dumFF15QUFCQnJyc9H//938aPny4TUVkZmYqIyNDLi43X32elZWlK1euyN3d3aYxAADAvcfmxci//vqrfvzxRzVp0kRubm5au3at4uPj83WOffv2qWfPnipfvrw8PDxUq1YtLVu2zKqPYRiaNGmSypYtKy8vLwUEBGjdunW2lg0AAO4hNs3ojBs3TnPmzNHrr7+uadOm6dSpU3ryySfVoEEDLV68WA8//HCezrNq1Sq9+OKLWrlypZydnfXpp5/qySefVM2aNdWiRQtJ0ty5czV//nxt2rRJgYGBmj17tvr06aPIyEjVqlXLlvJNKThoY6GPyd49AIDizqYZnZUrVyo0NFTTp0+Xs7OzqlWrpl9++UXPP/+8evfunefzTJ8+XZ07d5aLi4ucnJz07LPPysnJSX/88Yelz7x58zR8+HC1atVKzs7OGj9+vHx9fbVw4UJbSgcAAPcQm2Z0fv/9d3l6elq1OTk5afLkyXrooYfyda5r164pMTFRSUlJWrRokSpWrGiZEYqPj9fx48fVrl07q8906NBBe/bssaV0AABwD7Ep6GSHnKtXr+rEiROqU6eO5Vj2Jae8+u2339S/f38lJibK3d1dX331lXx8fCTJsubH29vb6jPe3t7avXv3Tc+ZlpamtLQ0y/ukpKR81QQAAMzBpktXycnJGjx4sNzd3VW3bl1Le//+/RUREZGvcwUFBSkhIUFXr17Ve++9p969e2vr1q2SJAcHB0nX78r6p4yMDDk63rz0GTNmyNPT0/Ly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7l1+fn5W76dOnapp06bl2nfgwIFydXXV2bNnlZaWppCQkNv+Xk9NTdWff/6Z47JWt27d9NNPP930c66urmrbtq2GDx+u559/Xg8++KCqVauWpxBWUPIcdCZPnpzrnwEAQNGKiYmRh4eH5f2tgsSUKVN0//33q1y5cvL395ez8+2jQHJysgzDkJubm1W7u7u7Ll++fMvPbt68WZ9//rnWrFmjV155RbVr19by5ctz7MVnL3kOOsOHD7f8eeDAgXJ3d7dLQQAAIH88PDysgs6t/HMxcl5VqFBBnp6e+vPPP9W+fXtL+8GDB1WjRg3Le0dHxxz76ZUqVUqjR4/W6NGjdeXKFT300EN6++23tWTJknzVYCub9tHJ6w8TAACYw/DhwzVr1iydPXtWkrR37159++23evbZZy19fHx8rBY0nz17Vh9++KFSU1MlSSVLlpSjo6NcXV0LrW6bgk6lSpUsXxQAAJjftGnTVL9+fVWvXl21atVSx44d9fLLL1vdKj5o0CCdPHlS1atXV2BgoI4dO6a4uDj5+PioXr168vHxUWZmpqZOnVpodTsYNjyzYfr06Tp8+LAWLFhwV1zCSkpKkqenpxpO/EFOrm63/wAA4J6UmZqiA+/2VGJiot2uXmT/Tnph40tycbuzRblpKWma13Vunuq9cuWK/vzzT9WvXz/XGZWTJ0/q2rVrlktRN77PFhcXp7i4OFWrVi3XMdPT03XixAklJSXpgQceUJkyZZSenq6//vpL5cqVk4+Pzx184/yz6fby5cuXKyoqSt999538/PxUsmRJq+N//PFHgRQHAAAKRunSpS23fefG39//lu+zVapUybL/Tm5KliypWrVq5WirU6dOPqotODYFnX9ej0PxEBy0sdDH5JZ2AEBxZ1PQuf/++9WjR4+CrgUAAKBA2bQYuXfv3jluHwMAAChubAo6NWrU0J9//lnQtQAAABQom4LO+PHj9eSTT2rLli06ffq0EhISrF4AAADFgU1rdLJ3Se7SpUuux7msBQAAigObgs6+ffsKug4AAIACZ1PQady4cQGXAQAAUPBsCjooftjTBgCAnGwKOllZWQoJCdHKlSt18uRJZWRkWB0/duxYgRQHAABwJ2y66+q9997T22+/raCgIB0+fFjPP/+8WrRoob///puNBAEAQLFh04xO9mxOq1atNGHCBL388suSpA4d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LEwLFy7UrFmz7DJeYmKievXqpdGjR8vDw0OLFi1SdHS0li9fXiDnz8rK0s6dOyVd/2V/5swZbd++XW5ubmrSpIkkafjw4Zo/f7569eqlF154QXv27NH3339vCev59eeff+rChQv6+++/lZGRYfm7pWnTpipdunSe++RVfHy8Dh8+bFnT9Mcff8jV1VX+/v7y9/dXRkaGHnnkER05ckSff/65Dh48aPmsrRtPZtebmJiouLg4bd++XaVKlbIs6n7ppZdUpkwZdejQQS4uLvr11181Z84cffzxx/keC3cnnl6ei4sXL+r9999XeHi4vLy8NGLECHXp0sVu473zzjvauHFjjvYFCxbYZeFlu3btcm0fNWqUXa5bZ2VladmyZVq/fr0uXryoatWq6cknnyyUHaCl62scunTpounTp6tTp052GePixYv65JNPtGfPHpUuXVotWrTQ6NGj8/2LIj/S09M1b948bd68Wa6urmrbtq2ef/55u860fPDBBzpw4IC++uoru43xT2vXrtV3332ns2fPqnLlyhowYIAeeeQRu423f/9+zZ49W3FxcWrevLleeumlAptByv7v8EbVq1fX0qVLLe/PnTun9957T7///rslLLdv396mMV9//XXt2LEjR/uXX35p2fE9L33yatOmTXr77bdztD/11FMaMWKEkpOT1a1bt1w/O27cOPXq1Stf42VmZqpjx4452qtUqWJZd5iRkaElS5Zo06ZNSk5OVkBAgIYOHZrj7jaYF0EHAACYFhcoAQCAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0ABSa8+fPa8WKFVaPWrBFYmKiVqxYkeMBmABwIzYMBArAyZMndeDAARmGofr16+fYUfbq1atau3Ztjs9VrFhRQUFBVscdHBzk5uamKlWqqF69eipRokSu53JwcFC/fv1yPK/nhx9+0JUrV9S5c+dbPqPp1KlTOnjwoJydndWkSRN5eXnZ+vXzbPfu3WrdurUuX758R89u+uOPP9SgQQOdOXPGpscGALh3mONBQ0ARuXjxooYNG6ZNmzapXbt2cnJy0vbt29W+fXstWbLEEjTOnz+vxx9/XJ06dVKlSpUsn69bt66CgoJyHL969aoOHTqk+Ph4vfjii5o8ebLluWDZfSWpXLlyeuihhyzni4qKUu/evWUYhn77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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pusch_config = PUSCHConfig()\n", "pusch_config.dmrs.num_cdm_groups_without_data = 1\n", "pusch_config.dmrs.dmrs_port_set = [0]\n", "\n", "pusch_config_1 = pusch_config.clone()\n", "pusch_config_1.dmrs.dmrs_port_set = [1]\n", "\n", "PUSCHTransmitter([pusch_config, pusch_config_1]).pilot_pattern.show();" ] }, { "cell_type": "markdown", "id": "98221864", "metadata": {}, "source": [ "The DRMS ports 0 and 1 belong both to CDM group 0 so that the resource elements of CDM group 1 do not need to be masked and can be used for data transmission. One can see in the above figure that data and pilots are now indeed multiplexed in the frequency domain." ] }, { "cell_type": "markdown", "id": "c329e4a5", "metadata": {}, "source": [ "### Configuring Multiple Layers" ] }, { "cell_type": "markdown", "id": "bfd3c2a9", "metadata": {}, "source": [ "In 5G NR, a transmitter can be equipped with 1,2, or 4 antenna ports, i.e., physical antennas that are fed with an individual transmit signal.\n", "It can transmit 1,2,3 or 4 layers, i.e., spatial streams, as long as the number of layers does not exceed the number of antenna ports. \n", "Using codebook-based precoding, a number of layers can be mapped onto a larger number of antenna ports, e.g., 2 layers using 4 antenna ports. If no precoding is used, each layer is simply mapped to one of the antenna ports.\n", "\n", "It is important to understand that each layer is transmitted using a different DMRS port. That means that the number of DMRS ports is independent of the number of antenna ports.\n", "\n", "In the next cell, we will configure a single transmitter with four antenna ports, sending two layers on DMRS ports 0 and 1.\n", "We can then choose among different precoding matrices with the help of the transmit precoding matrix identifier (TPMI). " ] }, { "cell_type": "code", "execution_count": 15, "id": "c624eeb1", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:23.814375Z", "iopub.status.busy": "2026-08-07T09:18:23.814228Z", "iopub.status.idle": "2026-08-07T09:18:23.819822Z", "shell.execute_reply": "2026-08-07T09:18:23.819147Z" } }, "outputs": [ { "data": { "text/plain": [ "array([[0.5+0.j , 0. +0.j ],\n", " [0. +0.j , 0.5+0.j ],\n", " [0.5+0.j , 0. +0.j ],\n", " [0. +0.j , 0. +0.5j]])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pusch_config = PUSCHConfig()\n", "pusch_config.num_antenna_ports = 4\n", "pusch_config.num_layers = 2\n", "pusch_config.dmrs.dmrs_port_set = [0,1]\n", "pusch_config.precoding = \"codebook\"\n", "pusch_config.tpmi = 7\n", "\n", "# Show the precoding matrix\n", "pusch_config.precoding_matrix" ] }, { "cell_type": "code", "execution_count": 16, "id": "26516c5b", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:23.823019Z", "iopub.status.busy": "2026-08-07T09:18:23.821467Z", "iopub.status.idle": "2026-08-07T09:18:24.357418Z", "shell.execute_reply": "2026-08-07T09:18:24.356736Z" } }, "outputs": [ { "data": { "image/png": "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1Kl5zi1RooSGDh2q8PBwBQcHKzw8XI8++ugNLwnx9PTUfffdp6FDh2rlypWWUHTs2DG1bt3actrrX//6l/71r39Z7XvkyBF1795dPXr00Lx58+Tq6qrk5GTNnz9fkZGRaty4sSSpV69eevTRRxUeHq6uXbsqKSlJy5cv16ZNm1SvXj1J0rx587R69eoC/WyKVNApU6ZMriu0Bw0apIyMDM2ePVsvv/yyGjZsqIiICAUEBDipSwAAipb4+HirsxceHh43nB8SEqIuXbropZde0rp16zRz5kydOnXKak52drZeffVVLV++XPHx8bpy5YokqUeP/z1DbfTo0Ro2bJgOHz6sHj16qGfPnqpatapl+5UrV9SuXTsNGDBA8+bNs4zv3btXWVlZCg4OliTLypFhGGrRooUk6cCBA8rJybHMkSRvb29L6Mkvpz9H55+2bt2qN954I9f4iBEj9MsvvygxMVEbNmywpD8AAKBcl2vcLOg0a9ZMVatW1cCBA9W+fXurcHLVzJkztXTpUn388cdKSUmRYRh65plnlJWVZZnTv39/HTp0SN27d9eWLVtUt25dvfbaa5btxYoVU/fu3bV+/XrFxcVZxnNyciRJiYmJysrKUnZ2tnJycmQYht0fH1Okgg4AACgcISEhioyM1KhRo/Lc/tNPP6lfv35q27atSpYsKUnavXt3rnmVKlXSmDFjtHLlSv3f//2fpk2bJsMwJP199/SSJUvUrl073XvvvTp+/LgkqXHjxnJ1dbVcH5SXu+++W66urpZriSQpPT1dsbGxBfqcBB0AAO5ATz31lAzD0EMPPZTn9jp16mjDhg36448/dPbsWU2ZMkU///yz1ZyRI0dq9erVOnv2rM6ePasff/xR1atXtzweRpJcXV318ccfq02bNurUqZOOHz+ugIAAjRkzRuPGjdPatWt18eJFHT16VDNnztT7778vSQoICNBDDz2k5557TrGxsUpOTlZYWJhSU1ML9DkJOgAAIJeXX35ZjRs31j333KNq1app3759GjFihNWcf//73/r0009Vq1Yt1axZUydPntSqVatyHeufYefqys6cOXP073//W+PGjVO5cuXUo0cPnT59WsOHD7fsN2/ePNWtW1fBwcFq2rSpSpcurU6dOhXoc7gYV9eXTOzChQt/36r+8tdy8/R2djsOsWJwpUKvOeRz7roCYC7ZGena91YfpaamOuzRJFd/J0VHR9/yVySkpaWpWbNmDu33dseKDgAAMK0idXs5bLcoOfzmk+yux82nAADgRKzoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0+I5OiYR6h9S6DW3iCcjAwCKNlZ0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAaRF0AACAafEcHZNYlBzuhKo9nFATAID8Y0UHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFreXm0Sof0ih19yihEKvCQBAQbCiAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIvn6JjEouRwJ1Tt4YSaAADkHys6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtHiOjkmE+ocUes0tSij0mgAAFAQrOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLQIOgAAwLS4vdwkFiWHO6FqDyfUBAAg/1jRAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApsVzdEwi1D+k0GtuUUKh1wQAs1iSslQelz1u6RiZ6ZmSpObNm8vNzU1hYWEKCwuzR3umQdABAOA2FxkZKV9fX2e3USRx6goAAJiWTUHno48+ynP8r7/+0qRJk26pIQAAAHuxKeg89dRTGjRokM6dO2cZO3TokNq0aaMlS5bYqzcAAIBbYlPQ+eWXX3T06FE1atRIW7du1aJFi9S0aVNVrlxZ+/bts3ePAAAANrHpYuTatWvr559/1lNPPaXOnTvLzc1N//d//6fRo0fb1ER2draysrLk4XH9q89zcnJ06dIl+fj42FQDAADceWy+GPmHH37QN998o3vuuUfe3t5au3atkpOTC3SMPXv2qE+fPipbtqx8fX1Vu3ZtLVu2zGqOYRiaOHGiSpcuLT8/P1WrVk3r1q2ztW0AAHAHsWlFZ9y4cZo9e7ZefPFFTZ06VQkJCRo+fLgaNmyoxYsX67777svXcVatWqWnn35aK1eulLu7uxYtWqThw4erVq1aatGihSRpzpw5mjdvnjZu3Kjg4GDNmjVL/fv3V0xMjGrXrm1L+6a0KDncCVV7OKEmAAD5Z9OKzsqVKxUREaE33nhD7u7uqlq1qr7//ns9+eST6tevX76P88Ybb6hr167y8PCQm5ubHnvsMbm5uem3336zzJk7d65Gjx6tVq1ayd3dXePHj1dgYKAWLFhgS+sAAOAOYtOKzq+//qpSpUpZjbm5uWnSpEnq3r17gY71119/KTU1VRcuXNDChQtVvnx5y4pQcnKyjh49qnbt2lnt06FDB+3atcuW1gEAwB3EpqBzNeRcvnxZx44dU926dS3brp5yyq8ff/xRgwYNUmpqqnx8fPTpp58qICBAkizX/Pj7+1vt4+/vr507d173mJmZmcrMzLS8v3DhQoF6AgAA5mDTqau0tDQNGzZMPj4+qlevnmV80KBBio6OLtCxOnfurJSUFF2+fFlvv/22+vXrp61bt0qSXFxcJP19V9Y/ZWVlydX1+q1PmzZNpUqVsryCgoIK1BMAADAHm4LOhAkTlJiYqMjISKvxRx55RK+++qpNjbi7u+vxxx9XcHCw5c6rwMBASVJSUpLV3KSkJFWsWPGG/aWmplpe8fHxNvUEAABubzYFndWrVys8PFxNmza1Gm/VqpVlNcZW58+ftzxPp1SpUmrUqJE2b95s2Z6dna2IiAi1b9/+usfw8PCQr6+v1QsAANx5bLpGJyUlReXLl5f0v9NL0t/X7BiGka9jpKen61//+pfGjx+vevXq6fz585o3b57+/PNPhYSEWOZNnDhRw4YNU5s2bdS6dWvNmDFDWVlZGjNmjC2tm1aof8jNJ9nZFiUUek0AAArCphWdJk2aaP369ZKsg86cOXPUsmXLfB3D29tbb731lhYuXKiOHTtq6NChunTpknbv3m21UjRo0CB9+OGHmjNnju69917Fx8crIiLCcsEyAADA9di0ovPGG2+of//++umnnyRJ06dP14YNG7Rjxw5FRETk+zitWrXSV199ddN5I0aM0IgRI2xpFQAA3MFsWtHp2rWrvvvuO/35558KCAjQ7Nmz5eXlpW3btuV65g0AAICz2LSiI0mtW7fW2rVr7dkLAACAXdn8pZ4AAABFXb5XdApy8e+pU6dsagYAAMCe8h10Zs+ebflzbGyspk+frmHDhql58+aSpMjISH366ad68cUX7d4kAACALfIddIYMGWL5c+fOnbV06VINGjTIMvb444+re/fufKu4kyxKDndC1R5OqAkAQP7ZdI1OdHS0evbsmWu8Z8+eBf6uKwAAAEexKej4+Pho3bp1uca//fZblSxZ8pabAgAAsAebbi+fOHGiHnnkEf33v/9V8+bNZRiGoqKi9Pnnn+v999+3d48AAAA2sSnojB07VrVr19Z7772nWbNmSZLq1aun9evXq0uXLnZtEAAAwFY2PzCwa9eu6tq1qz17AQAAsCseGAgAAEzLpqBz/PhxPfDAAypfvrzc3d1zvQAAAIoCm1LJqFGjdOXKFc2ZM0dlypSxd0+wQah/SKHX3KKEQq8JAEBB2BR0du7cqSNHjhToayEAAAAKm02nripWrChXVy7vAQAARZtNaWXUqFGaOHGirly5Yu9+AAAA7MamU1effPKJYmNj9fnnnysoKEguLi5W23/77Te7NAcAAHArbAo6jz32mL37AAAAsDubgs6zzz5r5zYAAADsr0BBJy0tLV/zfHx8bGoGAADAngoUdPL7zeSGYdjUDGy3KDncCVV7OKEmAAD5V6Cgs3LlSkf1AQAAYHcFCjoPPvigo/oAAACwO576BwAATIugAwAATIugAwAATMumoJPf28wBAACcyaYHBvr6+ionJ8feveAWhPqHFHrNLUoo9JoAABSETSs6FSpU0KlTp+zdCwAAgF3ZFHTCwsI0btw4TmEBAIAizaZTV8uXL1dsbKy+/PJLBQUFqXjx4lbb+fZyAABQFPDt5QAAwLT49nIAAGBat/QcncuXLys2NtZevQAAANiVzc/RGTZsmHx8fFSvXj3L+KBBgxQdHW235gAAAG6FTaeuJkyYoMTEREVGRqpZs2aW8UceeUSvvvqqvv76a7s1iPxZlBzuhKo9nFATAID8synorF69Wj/88IOqV69uNd6qVSsNHjzYLo0BAADcKptOXaWkpKh8+fKSJBcXF8v45cuXZRiGfToDAACFZsaMGXrhhReu+/52ZVPQadKkidavXy/JOujMmTNHLVu2tE9nAADAbmJjYxUcHKzg4GA1b95cPXv21Msvv6yUlBRJUlxcnI4cOWKZf+37/Jg2bZpefPFFu/Z9q2w6dfXGG2+of//++umnnyRJ06dP14YNG7Rjxw5FRETYtUEAAHDr0tPTFR0drRUrVqhGjRo6ceKEJk+erDVr1ig6Olrjx4/XX3/9dUs14uLiLMGpqLAp6HTt2lXfffed3n77bQUEBGj27Nlq2rSptm3bptatW9u7RwAAYCf169dXgwYNJEmBgYFq3ry5duzYoT179igpKUnvvvvudffdsGGDFi5cqKSkJNWqVUvjxo1T/fr1JUnz58/XV199paysLAUHB0uS/vOf/6hSpUp655139Ouvv6ps2bIaOnSo+vfv7/gP+v/ZFHQkqXXr1lq7dq09ewEAAIWoQoUKkqRz584pLi5OCQkJ1537zTffaMCAAZo6dapatmyp5cuXq1WrVoqJiVHVqlXVt29fbd68WefPn9f06dMlSXfffbc6dOig6tWra/LkyUpLS9OyZcvk7e2tHj0K585dm4MOAAAoGi5cuGD13sPDQx4eHjfdb/78+SpWrJiaN2+ubdu23XDuhAkTFBYWppdfflmS1KVLF8XExOjNN9/UokWLFBgYKH9/f7m4uFhWdDIyMrR3714tXrxY99xzjySpT58+yszMtOVj2iTfQadq1aqSpGPHjln+fD3Hjh27hZZgi1D/kEKvuUXXT/4AgMITFBRk9X7KlCmaOnVqnnOHDBkiT09PnTp1SpmZmQoPD7/p7/WMjAz9/vvvuU5r9ezZU99+++119/P09FTbtm01evRoPfnkk7r33ntVtWrVfIUwe8l30Jk0aVKefwYAAM4VHx8vX19fy/sbBYnJkyerZs2aKlOmjCpXrix395tHgbS0NBmGIW9vb6txHx8fXbx48Yb7btq0SR999JHWrFmj5557TnXq1NHy5ctzPYvPUfIddEaPHm3585AhQ+Tj4+OQhgAAQMH4+vpaBZ0b+efFyPlVrlw5lSpVSr///rvat29vGd+/f79q1Khhee/q6prreXolSpTQ2LFjNXbsWF26dEndu3fXa6+9piVLlhSoB1vZ9Byd/P4wAQCAOYwePVozZ87UqVOnJEm7d+/WF198occee8wyJyAgwOqC5lOnTundd99VRkaGJKl48eJydXWVp6dnofVtU9CpUKGC5YMCAADzmzp1qho0aKDq1aurdu3a6tixo5599lmrW8WHDh2q48ePq3r16goODtaRI0eUlJSkgIAA1a9fXwEBAcrOztaUKVMKrW+b7roKCwvTuHHjNH/+fE5hAQBwG6hXr54iIyNVs2bNPLdf+8DAa9/7+Pjoq6++UlJSkpKSklS1atVcZ3hq1qypuLg4HTt2TBcuXNDdd9+tdu3a6c0339Qff/yhMmXKKCAgwDEf8DpsCjrLly9XbGysvvzySwUFBal48eJW23/77Te7NAcAAOzDy8vLctt3XipXrnzD91dVqFDB8vydvBQvXly1a9fONVa3bt0CdGs/NgWdf56PQ9GwKDncCVUL52FPAADYyqagU7NmTfXu3dvevQAAANiVTRcj9+vXL9ftYwAAAEWNTUGnRo0a+v333+3dCwAAgF3ZFHTGjx+v4cOHa/PmzTpx4oRSUlKsXgAAAEWBTdfoXH1Kcrdu3fLczmktAABQFNgUdPbs2WPvPgAAAOzOpqDTpEkTO7cBAABgfzYFHRQ9of4hhV5zixJuPgkAACeyKejk5OQoPDxcK1eu1PHjx5WVlWW1/ciRI3ZpDgAA4FbYdNfV22+/rddee02dO3fWwYMH9eSTT6pFixb6888/eZAgAAAoMmxa0bm6mtOqVStNmDBBzz77rCSpQ4cOWr16tT37AwAAsJlNKzpxcXFq1qyZJKlEiRK6ePGipL+/nn3Hjh326w4AAOAW2BR0srOzVaxYMUlSlSpV9PPPP0uSjh49Kg8PD/t1BwAAcAtu+a6r0NBQDRkyRB06dNBPP/2kQYMGFfgYV65ckZubm9zc3K47JycnR5cuXZKPj8+ttAsAAO4gNq3oXD1VJUnPP/+85s+fr6pVq+q1117T3Llz832cVatWqXXr1vLz85OPj486duyovXv3Ws0xDEMTJ05U6dKl5efnp2rVqmndunW2tA0AAO4wNq3oXLuqMnjwYA0ePLhAx8jOztZnn32m2bNnq2nTprpy5YrGjh2rHj166ODBgypdurQkac6cOZo3b542btyo4OBgzZo1S/3791dMTIxq165tS/umtCg53AlVezihJgAA+WfTik5aWppWrVqVa3zVqlVKS0vL1zHc3Nz05ZdfqmXLlipWrJi8vb311ltv6fTp09q9e7dl3ty5czV69Gi1atVK7u7uGj9+vAIDA7VgwQJbWgcAAHcQm7+9/PTp07nGT58+rZdeesnmZuLi4iRJ/v7+kqTk5GQdPXpU7dq1s5rXoUMH7dq1y+Y6AADgzmBT0Pniiy/yvOh40KBB+vLLL21qJCMjQ08//bTat2+ve+65R9LfQUf6X/C5yt/f37ItL5mZmbpw4YLVCwAA3HlsCjpZWVlKTU3NNX7+/HldvnzZpuMNGTJEZ86c0WeffWYZd3FxkfT39TzXznd1vX7r06ZNU6lSpSyvoKCgAvcEAABufzYFnc6dO+ull16yCjWXL1/W+PHj1blz5wIdKysrSw899JD27t2r77//XnfddZdlW2BgoCQpKSnJap+kpCRVrFjxusecMGGCUlNTLa/4+PgC9QQAAMzBpruuZsyYofbt26tatWoKDg6WYRiKioqSm5ubfvzxx3wfJysrS0OHDlVkZKS+//57ValSxWp7qVKl1KhRI23evFkDBw6U9PfqTkREhJ544onrHtfDw4MHFwIAANuCTo0aNRQTE6PFixfrl19+kYuLi1544QWFhITIz88vX8fIycnR8OHDtW3bNq1bt04+Pj5KSUmRJJUsWdISVCZOnKhhw4apTZs2at26tWbMmKGsrCyNGTPGltZNK9Q/pNBrblFCodcEAKAgbH4yctmyZTVu3DibC58/f16bNm2SJPXs2dNq2+zZszVs2DBJf1/gnJGRodmzZ+vll19Ww4YNFRERoYCAAJtrAwCAO4PNQef8+fP66KOPFBsbK0mqV6+eHnnkEcuD/m7Gz8/PsoJzMyNGjNCIESNsbRUAANyhbLoYeceOHapWrZpmzpypkydP6uTJk3r33XdVvXp1yxd8AgAAOJtNKzpjx47VyJEj9e6778rd/e9DZGVl6YUXXtDYsWO1Z88euzYJAABgC5tWdA4dOqRXXnnFEnIkyd3dXZMnT9bBgwft1hwAAMCtsCno1KpVy/J1Df90/Phx1apV65abAgAAsId8n7r654XDTz75pAYOHKi33npLzZs3tzxH5+WXX9aLL77okEYBAAAKKt9B59rvm5KkwYMH5xp77LHHFBoaemtdocAWJYc7oWoPJ9QEACD/8h10uMAYAADcbvIddJo0aeLANgAAAOzPptvLDxw4cMPtderUsakZAAAAe7Ip6NStW/eG2w3DsKkZAAAAe7Ip6MTHx1u9z8nJ0eHDh/X888/r6aeftktjAAAAt8qmoFOpUqVcY5UrV9Ynn3yiUaNGKSSk8L9JGwAA4Fo2PTDweqpXr37T63cAAAAKi83fXn6tc+fOadq0aapataq9DokCCPUv/FW0LUoo9JoAABSETUHHxcUlz/Fy5cppxYoVt9QQAACAvdgUdDZt2pRrrEyZMqpbt668vLxuuSkAAAB7sCnodO3a1d59AAAA2F2Bg056erq8vb0t70+fPq05c+bo3Llz6tu3r3r04PuPAABA0VCgu642bdqkAQMGWN5nZGSo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AweUk5OjGjVqFNrD0b7++mslJydr9OjRDqsxYcIEDRw4ULNnz1bDhg0VHR2tXbt26euvv3ZIPT8/P8XExFiNJSYmKiMjQ/v371fz5s0dUvefrvf3T0pKihISEhQUFOTwHgpbZGSkJKlGjRoOrbNr1y6lp6crKipKGzdu1Oeff+7Qeig6CDrXOHv2rOrXr281dvUC1rNnzzqjJYdKS0tTaGiounTpojZt2ji01owZM/THH3/o4MGD6tWrl8Muur506ZIGDx6smTNnqmrVqkpLS3NInX9q3ry5jh49qipVqkiSZs+erUceeUS1atVyyAXJJ06cUJkyZdSlSxclJiYqKytLqamp+s9//qOBAwfavd61wsPD1a5dO9WtW9dhNZo1a6b+/fvr1VdfVfXq1fXHH3/okUcecdg/NsLCwtS6dWuNGTNGDzzwgA4cOKBFixZJKrz/7589ezbXBfP//PvHbEHnzJkzCgsLU//+/XP9vWtvr7/+uk6ePKmDBw9q4MCB1z3VBfPhGp1rFCtWTBkZGVZjV697KIw7kwrT5cuX1adPHxmGoRUrVji83ooVKxQZGamEhAQlJyerX79+DqkzdepUlShRQlWrVtX27dv1888/S5IOHDigffv2OaRmjx49LCFHkp599lnVqlVLK1eudEi9YsWKae/evXrwwQd14MABHTlyRM8//7xGjBhh07UOBZGQkKDvvvtOoaGhDq0zcuRIy7U50dHROnbsmL7//ns98cQTDqkXHBysqKgoZWdna8aMGdq3b58l6JQoUcIhNa91J/39c+HCBd13330qW7asPvroI4fX+/bbbxUdHa3jx49r//79evjhhx1eE0UDKzrXqFKlihISEqzGrv7icMStps6SkZGhPn36KCkpSVu3blW5cuUKrbavr68ef/xxDRkyRBcvXlTJkiXtenwvLy+VKFFCL730kqS/L9yVpGXLlik+Pl4LFiywa73rqVChgsNCR9WqVeXm5mYVNp544gm9/PLLioyMdOjt+0uWLFHJkiUdvnL07bff6p133pGvr68kqXTp0nr44Yc1bdo0h9Vs3LixFi5caHm/dOlSubi4qF69eg6r+U9VqlTJ9d9MYmKiXFxcTLWac/HiRfXs2VPZ2dnavHmz5X/jwuDn56eQkBA99dRTysnJkasr/943O/4Xvka3bt30008/KSUlxTK2du1a1a1bt1Cf/eJIV0NOYmKiIiIiVL58eYfWS09PzzV25MgReXt7O+RfylOnTrW6O2jjxo2S/l66dlTIufYzJicna+/evWrQoIFD6vXo0UPZ2dk6deqUZexqQPf393dITUkyDEMfffSRhg0b5vBVDn9//1z/6IiPj3fY58vKylJWVpblfU5OjhYsWKD77ruv0P4h0K1bN0VERFj997R27Vq1atVKPj4+hdKDo10NOVeuXNGmTZtUunRph9a73t8/ZcqUIeTcIVjRucZDDz2k9957T3379tW4ceMUExOj8PBwrVq1ymE1Dx06pNOnT+vw4cOSpO3bt0uSGjVq5JB/6fTv31+7du3S4sWLdfjwYUvdqlWrOuSBbJMnT1ZGRoY6d+4sHx8f/fTTT5oxY4amTJlyyw8KKyruvfde9evXT/fcc49SUlL0zjvvqHz58ho7dqxD6rVt21YPPPCABgwYoAkTJigrK0uvv/66OnTo4NCHFEZEROjo0aMOP20lSU8//bQmT56ssmXL6p577lFkZKQWLFigmTNnOqReamqq+vbtq7Fjx8rX11cLFy5UXFycli9fbpfj5+Tk6KeffpL09y/7kydPavv27fL29tY999wjSRo9erTmzZunvn376qmnntKuXbv01VdfWcJ6Qf3+++86e/as/vzzT2VlZVn+bmnatKm8vLzyPSe/kpOTdfDgQcs1Tb/99ps8PT1VuXJlVa5cWVlZWbr//vt16NAhffTRR9q/f79lX1sfPHm139TUVCUlJWn79u0qUaKE5aLuZ555RiVLllSHDh3k4eGhH374QbNnz9b7779f4Fq4PfHt5Xk4d+6cpk+frqioKPn5+Sk0NFTdunVzWL3XX39d3333Xa7x+fPnO+TCy3bt2uU5PmbMGIect87JydGyZcu0fv16nTt3TlWrVtXw4cML5QnQ0t/XOHTr1k1vvPGGOnXq5JAa586d0wcffKBdu3bJy8tLLVq00NixYwv8i6Igrly5orlz52rTpk3y9PRU27Zt9eSTTzp0peWdd97Rvn379Omnnzqsxj+tXbtWX375pU6dOqWKFStq8ODBuv/++x1Wb+/evZo1a5aSkpLUvHlzPfPMM3ZbQbr63+G1qlevrqVLl1renz59Wm+//bZ+/fVXS1hu3769TTVffPFF7dixI9f4J598Ynnie37m5NfGjRv12muv5Rof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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAHGCAYAAAB98CE/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAASndJREFUeJzt3Xt8z/X///H7NoxtNsaYZc7kTMz5kJyVEDkkVGYV61yUU3RUiUg+vmiSIiWh4iOHSVGxLbI0hyWzDbM5bDY2bXv9/ujn/eltw/b2fu89L7fr5fK+XLyfr+fr9Xi89+ljd8/X4e1iGIYhAAAAE3J1dgMAAACOQtABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmVcLZDQDOsHTpUp07d+668xo2bKiSJUvqt99+0wMPPKDKlStbbTcMQ4sXL1bJkiX1yCOPXPd4ly5dUnh4uP766y9VrlxZPXr0UNmyZW39GNeUnJys3bt3KzExUX5+fmratKlq165tNef48eP64osv1L9/f9WsWdMhfRQH586d07fffquUlBTdfffdqlevnrNbAlBECDq4JSUmJio5OdnyPjIyUjt37tTQoUPl7+9vGa9UqZLatGmje++9V1u2bNG3335rdZz3339fzzzzjD755JPr1jxy5Ij69Omj3NxcdevWTXv27NHjjz+u1atXq1OnTnb7bIZhaNq0aXr33XfVqFEjNW/eXKdPn9aGDRvUpk0bLVmyxBJ4jhw5omeffVZ16tQxZdCJjY3VM888o8jISNWoUUO7du2Sv78/QQe4lRgAjBkzZhiSjJ9//jnf7QsWLDAkGYsWLbKM7du3z3B3dzceeOCB6x4/NzfXaNGihdGoUSMjIyPDMjZw4ECjYsWKxtmzZ+3yOQzDMJYtW2ZIMt566y2r8SNHjhitW7c2/vvf/1rGfvzxR0OS8c0339itfnFy4MAB45tvvjGysrKMVatWGZKMzz77zNltAShCrOgABfD4449r7dq1eu6559S9e3dVqVJFw4cPl7+/vxYsWHDd/bdv365ff/1VYWFh8vDwkCS5uLhoypQpatGihZYtW6annnrKLr1u3LjR0vO/1axZU+Hh4Tp9+rQk6cCBA1q1apUk6euvv1ZsbKwkqXPnzmrRooXi4+O1evVqDRo0SJUrV9bGjRsVFxen4cOHq0KFCpKko0ePaseOHTp//rxq166trl27qkSJ//21EhkZqR07dlg+r7e3t1q0aKFmzZpZ9bZp0ybFxcUpJCREcXFx2rp1q8qWLat+/frJ3d1dkhQXF6dt27apZMmSuueee1SuXLnr/ixuv/123X777YX9EQIwES5GBgooLCxMJUuW1EMPPaTnn39eMTEx+uSTT+Tj43Pdfbdt2yZJ6tixo9V48+bN5eXlZdluD76+vpKkhISEPNs8PT1VrVo1SVJGRoZOnDghSUpKStLRo0d19OhRpaamSpIOHjyoZ599Vtu2bVOXLl302Wef6eOPP9aJEyeUnZ2tcePGqW7dulq+fLkiIyP1+OOPq1mzZjp69KilXmpqquW4sbGxWrdundq0aaNBgwbJMAzLvBUrVmjq1KlatWqVhg4dqh07duiFF15Qy5Ytde7cOS1fvlyDBw/WDz/8oClTpqhx48aW3gHgmpy9pAQUB9c7dXXZ8uXLDUmGJGPKlCkFPv7IkSMNSZbTVv9Wv359o2nTpoXu+Wr27NljlCpVyqhRo4Yxf/58IyYmxvj777/znXutU1ebN282JBlNmzY1jhw5YhiGYWRlZRmnT582Jk6caLi5uRlbt261zE9PTzdat25ttGnT5pr97du3z3BzczPCwsIsYw899JDh6elphIaGGjk5OYZhGMbJkyeNMmXKGA8++KDxyCOPWMZPnTpleHp6Gs8880yhfi6cugJuTZy6Agqhe/fu8vDw0IULFzR48OAC75eRkSFJKlOmTJ5tZcqUUVpa2jX3f//995Wbm2t53759e7Vu3Trfuc2bN9cvv/yid955R1OmTNHZs2fl6empLl266Nlnn1W3bt0K3Lck9e3b13KhcqlSpeTp6an3339fgwcPVteuXS3zPD099eKLL2rQoEH67bffLKenLly4oO3btysuLk5ZWVkyDEPly5fXzp07NXr0aMv+GRkZGj9+vFxd/1lorly5su68804tX75csbGxlnE/Pz916dLFrqtgAMyLoAMUwujRo+Xq6ip/f3+NHj1av/zyi9U1KVdzOeBkZWWpdOnSVtuysrLyDUD/9txzzyknJ8fy/rXXXrtq0JGkO+64Q5999pkMw1BCQoJ++OEHzZo1S927d9fChQv16KOPXrfny5o2bWr1/sCBA8rIyNCFCxf0wQcfWE5BXa51eU6z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PFz+/v5O6hIAgOIlPj7e6uyFu7v7NecHBwerW7dueumll7R+/XrNmjVLJ0+etJqTk5OjV155RStWrFB8fLwuXbokSerV63/PUBszZoxGjBihw4cPq1evXurdu7dq1Khh2X7p0iV17NhRgwYN0vz58y3je/fuVXZ2toKCgiTJsnJkGIZat24tSTpw4IByc3MtcyTJ09PTEnoKyunP0fm3bdu26fXXX88zPmrUKP36669KTEzUxo0bLekPAAAoz+Ua1ws6LVu2VI0aNTR48GB16tTJKpxcNmvWLC1btkwff/yxUlJSZBiGnn76aWVnZ1vmDBw4UIcOHVLPnj21detWNWjQQK+++qple8mSJdWzZ09t2LBBcXFxlvHc3FxJUmJiorKzs5WTk6Pc3FwZhmH3x8cUq6ADAACKRnBwsCIiIjR69Oh8t//0008aMGCAOnTooLJly0qSdu/enWde1apVNXbsWK1atUr/93//pxkzZsgwDEn/3D29dOlSdezYUXfddZeOHTsmSWrWrJlcXV0t1wfl5/bbb5erq6vlWiJJysjIUExMTKE+J0EHAIBb0JNPPinDMPTAAw/ku71+/frauHGj/vzzT505c0bTpk3Tzz//bDXnoYce0po1a3TmzBmdOXNGP/74o2rVqmV5PIwkubq66uOPP1b79u3VpUsXHTt2TP7+/ho7dqzGjx+vdevW6fz58zpy5IhmzZql999/X5Lk7++vBx54QM8++6xiYmKUnJys0NBQpaamFupzEnQAAEAekyZNUrNmzXTHHXeoZs2a2rdvn0aNGmU15/nnn9enn36qunXrqk6dOjpx4oRWr16d51j/DjuXV3bmzp2r559/XuPHj1fFihXVq1cvnTp1SiNHjrTsN3/+fDVo0EBBQUFq0aKFypUrpy5duhTqc7gYl9eXTCwtLe2fW9UnfS230p7ObschVg6tWuQ1h33OXVcAzCUnM0P73uyn1NRUhz2a5PLvpKioqBv+ioT09HS1bNnSof3e7FjRAQAAplWsbi+H7RYnh11/kt31uv4UAACciBUdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWjxHxyRC/IKLvOZW8WRkAEDxxooOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLZ6jYxKLk8OcULWX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82aVK1fOofWu9vdP+fLlCTm3CFZ0rvDAAw/ovffeU//+/TV+/HhFR0crLCxMq1evdljNQ4cO6dSpUzp8+LAkaceOHZKkpk2bOuRfOgMHDtSuXbu0ZMkSHT582FK3Ro0aDnkg29SpU5WZmamuXbvKy8tLP/30k2bOnKlp06bd8IPCiou77rpLAwYM0B133KGUlBS98847qlSpksaNG+eQeh06dNB9992nQYMGaeLEicrOztZrr72mzp07O/QhheHh4Tpy5IjDT1tJ0lNPPaWpU6eqQoUKuuOOOxQREaGFCxdq1qxZDqmXmpqq/v37a9y4cfL29taiRYsUFxenFStW2OX4ubm5+umnnyT988v+xIkT2rFjhzw9PXXHHXdIksaMGaP58+erf//+evLJJ7Vr1y599dVXlrBeWH/88YfOnDmjv/76S9nZ2Za/W1q0aCEPD48Czymo5ORkHTx40HJN0++//67SpUurWrVqqlatmrKzs3XPPffo0KFD+uijj7R//37LvrY+ePJyv6mpqUpKStKOHTtUpkwZy0XdTz/9tMqWLavOnTvL3d1dP/zwg+bMmaP333+/0LVwc+Lby/Nx9uxZvf3224qMjJSvr69CQkLUo0cPh9V77bXX9N133+UZX7BggUMuvOzYsWO+42PHjnXIeevc3FwtX75cGzZs0NmzZ1WjRg2NHDmySJ4ALf1zjUOPHj30+uuvq0uXLg6pcfbsWX3wwQfatWuXPDw81Lp1a40bN67QvygK49KlS5o3b542b96s0qVLq0OHDnriiSccutLyzjvvaN++ffr0008dVuPf1q1bpy+//FInT55UlSpVNHToUN1zzz0Oq7d3717Nnj1bSUlJatWqlZ5++mm7rSBd/u/wSrVq1dKyZcss70+dOqW33npLv/32myUsd+rUyaaaL774onbu3Jln/JNPPrE88b0gcwpq06ZNevXVV/OMP/TQQwoJCVF6erp69+6d777jx49X//79C1UvJydHd955Z57xqlWrWq47zM7O1tKlS7Vp0yalp6erZs2aGj16dJ6722BeBB0AAGBanKAEAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABUGROnz6tlStXWn3Vgi1SU1O1cuXKPF+ACQBX4oGBgB0cO3ZM+/btk2EYaty4cZ4nyl68eFHr1q3L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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "PUSCHTransmitter(pusch_config).pilot_pattern.show();" ] }, { "cell_type": "markdown", "id": "a84a7981", "metadata": {}, "source": [ "We can see from the pilot patterns above, that we have now a single transmitter sending two streams. Both streams will be precoded and transmit over four antenna ports. From a channel estimation perspective at the receiver, however, this scenario is identical to the previous one with two single-antenna transmitters. The receiver will simply estimate the effective channel (including precoding) for every configured DMRS port." ] }, { "cell_type": "markdown", "id": "fba3ecaa", "metadata": {}, "source": [ "### Controlling the Number of DMRS Symbols in a Slot\n", "\n", "How can we add additional DMRS symbols to the resource grid to enable channel estimation for high-speed scenarios? \n", "\n", "This can be controlled with the parameter ``DMRS.additional_position``.\n", "In the next cell, we configure one additional DMRS symbol to the pattern and visualize it. You can try setting it to different values and see the impact." ] }, { "cell_type": "code", "execution_count": 17, "id": "4f6fe409", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:24.358832Z", "iopub.status.busy": "2026-08-07T09:18:24.358700Z", "iopub.status.idle": "2026-08-07T09:18:24.652288Z", "shell.execute_reply": "2026-08-07T09:18:24.651412Z" } }, "outputs": [ { "data": { "image/png": "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QVy5ckXz58/X5s2bVbJkSbVv315PPvmkQ2da3nnnHe3fv1+ffvqpw2pca926dfryyy91+vRpVa5cWUOHDtX999/vsHr79u3TnDlzlJCQoJYtW+qZZ56x2wzS1f8Pr1ezZk0tX77c8v7MmTN6++239dtvv1nCcseOHW2q+eKLL2rnzp05xj/55BPLE9/zs05+bdq0Sa+99lqO8dGjRys4OFipqanq3bt3rttOmDBB/fv3L1C9rKwsde7cOcd4lSpVLNcdZmZmatmyZdq0aZNSU1NVo0YNjRkzJsfdbTAvgg4AADAtTlACAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAKDRnz57VqlWrrL5qwRbJyclatWpVji/ABIDr8cBAwA5OnDih/fv3yzAMNWrUKMcTZS9fvqx169bl2K5ixYrq2rWr1XIXFxd5enqqSpUqatiwoYoXL57rvlxcXDR48OAc39fzzTff6NKlS+revXue39EUFxenAwcOqFixYrrnnnvk4+Nj68fPt127dqlt27a6ePHiLX130++//67GjRvr1KlTNn1tAIA7hzm+aAhwkvPnzysoKEibNm1Shw4d5Obmph07dqhjx45atmyZJWicPXtWDz30kLp06aJKlSpZtm/QoIG6du2aY/nly5d18OBBJSYm6umnn9aUKVMs3wt2dV1JKleunHr27GnZX3R0tAYMGCDDMPTTTz/l+nUfhmFo/Pjx+vjjj9WuXTsVK1ZMBw4c0P3336+FCxfKxcXFkT8yAChUBB3ARtnZ2erbt68uXryoo0ePWmYWzp49q/vvv199+vTRL7/8YvXFpZMnT1b37t1vuM/rl2/dulWDBw9WQkKCFi5caLVup06dFBoaahV0QkND1alTJ23fvv2GNT7//HOFhobqt99+U/369SVJf//9t5YtW6arE7yrV69W27ZtFRAQYPV5V69erfbt26tUqVLavHmzHnzwQR0+fFhHjx5V3bp1Va9ePRmGocjISJ08eVLNmjVT1apVc+3jwIED+vPPP1WvXj3VrVs3x/KYmBjt3btXpUuXVrt27Rz+bekATMoAYJOvv/7akGRs3749x7K9e/caLi4uxqeffmoYhmHExsYakozNmzfnuq+8li9atMhwdXU1/vrrL6t1ly1bZpQsWdJISkoyDMMwrly5Yvj6+hrLly83JBk//fRTrrUmT55sVKtWLc/P1q1bN2PcuHFWYxs3bjSKFy9uJCQkGL/88oshyejcubMRGBho9OjRw3B1dTXeeOMNo2fPnkarVq2Mbt26GSVLljS+++47yz6ubtenTx+jYcOGRrdu3Qx3d3fjzTfftKr1yiuvGKVKlTK6d+9uNGjQwPD39zf27t1rWR4VFWVIMk6dOpXn5wAALkYGbLRp0yZVqFBBnTp1yrGsWbNmqlWrVo5vpf/hhx+0atUqyys+Pv6mdfr166fs7Gz99NNPVuO1atVSmzZttGLFCkn/fNN32bJlb/pN123atFFMTIwmTZqkQ4cO5bpOcHCwPvvsM6uLfZcuXaq+ffuqYsWKlrEOHTooPDxcmzZt0tSpUzVlyhR17NhRu3fv1pYtWxQSEqJXX301x/7LlCmjqKgobdmyRV9++aVeeeUVHTx4UJK0e/duvf7669qwYYM2b96sqKgodezYUWPHjrXMOAFAfhF0ABudPn36hqdlJKlq1ao6ffq01djOnTu1du1ay+vUqVM3rXP1mp7ExMQcy4KCghQaGipJ+vDDDxUUFHTT/fXt21cLFy7UF198oXr16snHx0cPPvigdu/ebVnngQcekJubm77++mtJ0rlz57Ru3TqNGTPGal+PP/645c9t27bNdezw4cM5enjhhRcs1wL17dtXd999t7766itJ0qpVq9S2bVt16dJFkuTq6qpJkyYpMjJSR44cuennA4BrEXQAG3l5eens2bM3XJ6UlJTjzqLJkydbzegEBgbetE5qaqokydPTM8eyQYMGKSYmRmvWrNG2bds0atSofPX+xBNP6M8//9SxY8e0YMECJSYmqn379pawU6JECY0cOVJLly6VJK1YsUI+Pj7q06eP1X7KlStn+bO7u3uuY7ndAl69enWr9zVq1FBMTIykf67NqVmzptXyWrVqWZYBQEEQdAAbtWrVSrGxsYqLi8ux7OzZszpy5Ihat259y3V++eUXSf+cDrteqVKlNHz4cD366KPq3bu3KleuXKB916hRQw899JA2b96s8uXL6/PPP7csCw4O1rZt2xQTE6OlS5dq1KhRcnNzu6XPctX58+dzvL96h1qFChV07tw5q+VX3+d1uzwA5IagA9hoxIgR8vHx0UsvvZRj2SuvvCJ3d3c9+uijt1QjNTVVU6ZMUYsWLdSqVatc1xk/frx69+6t559/Pl/7jI2NVVZWltVYVlaWMjMzVbZsWctYgwYN1Lp1az377LPat29fjtNWt2Lt2rVW/YSHh6t9+/aS/rnuZ/v27VazZatXr1aFChVUr149u/UA4M7A7eWAjcqVK6c1a9aof//+6t69uwYPHiw3NzetXbtWO3bs0Jo1a6wu3M2PH374QUlJSUpPT9ehQ4f06aefysfHx/KAwNw0atRIq1atyneNjRs36t1339WAAQNUt25dpaWl6ZNPPlHJkiVzhJng4GCNGTNGHTp0yPUWcFu99957OnfunO666y7Nnz9f7du31/333y/pnwC5cOFCdenSRePGjVNcXJxmz56thQsXcos5gAJjRge4BR06dNCRI0fUr18/7dmzRz///LO6du2qI0eO6N5777Ws5+HhoaFDh97wKb5Xlx89elTr1q3Tjz/+qOLFi2vp0qXau3ev1TUtV9f19fXNdV+enp55Lg8ODtamTZvk6+urX375RUeOHNGYMWMUHR2tKlWqWK3bv39/ScoRgCpUqKChQ4daPbW5YsWKGjp0qNWTmu+66y4NGTIkx3Y///yzPD09FRERoTFjxmj9+vWWdVxdXRUWFqbHHntMe/bsUUpKijZt2mTVQ9myZTV06FCCD4Cb4isgANzQypUrNX78eMXHx+d6MTQAFHWcugKQw19//aUffvhB06dP17PPPkvIAXDbIugAyOHEiRPasmWLxo8fr3//+9/ObgcAbMapKwAAYFpcjAwAAEyLoAMAAEyLoAMAAEyLoAMAAEyLoAMAAEyLoAMAAEyLoAMAAEyLoAMAAEyLoAMAAEzr/wHXQzNkM9+RTwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pusch_config.dmrs.additional_position = 1\n", "\n", "# In order to reduce the number of figures, we here only show\n", "# the pilot pattern of the first stream\n", "PUSCHTransmitter(pusch_config).pilot_pattern.show(stream_ind = 0);" ] }, { "cell_type": "markdown", "id": "aa57e45d", "metadata": {}, "source": [ "### How to control the number of available DMRS ports?\n", "\n", "There are two factors that determine the available number of DMRS ports, i.e., layers, that can be transmitted. \n", "The first is the DMRS Configuration and the second the length of a DMRS symbol. Both parameters can take two values so that there are four options in total.\n", "In the previous example, the DMRS Configuration Type 1 was used. In this case, there are two CDM groups and each group uses either odd or even subcarriers. This leads to four available DMRS ports.\n", "With DMRS Configuration Type 2, there are three CDM groups and each group uses two pairs of adjacent subcarriers per PRB, i.e., four pilot-carrying subcarriers. That means that there are six available DMRS ports.\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 18, "id": "cfe0fcb7", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:24.654162Z", "iopub.status.busy": "2026-08-07T09:18:24.654024Z", "iopub.status.idle": "2026-08-07T09:18:24.963645Z", "shell.execute_reply": "2026-08-07T09:18:24.962893Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Available DMRS ports: [0, 1, 2, 3]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAHGCAYAAAB98CE/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAASkRJREFUeJzt3X18zvX////7TthsszHGLJuzknNyfk7OlTciJ0nkrJx06h3lLCrvJCmStw81SRGpUPGWk0lR2JazNGfJzDAbs9lmm22v3x/9dnwdNmyH49jm5Xa9XI7LxfF8PV+vx+NYHXb3OnUyDMMQAACACTkXdgMAAACOQtABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACm5VrYDQCFYdmyZbp8+fJt59WqVUvFihXTgQMH9MQTT6h8+fJWyw3D0Mcff6xixYpp2LBht91eenq6QkJC9Pfff6t8+fLq3LmzSpYsaevHuKXY2Fjt3btX0dHR8vPzU7169VStWjWrOWfPntVXX32lXr16qUqVKg7poyiIiYnR1q1blZSUpNq1a6tVq1ZycnIq7LYAFAD26OCeFB0drVOnTlleX3/9tV5++WXt3r3bajwuLk5BQUGaOnWqRowYkWM7H374oZ599lkVK1bstjVPnjypunXr6vnnn9eBAwc0e/ZsVatWTb/88otdP5thGHr99ddVqVIlzZgxQ6Ghofr8889Vu3ZttWvXTn/99ZdVTy+//LIOHz5s1x6KkmXLlqly5cr6/PPPFRYWpr59+6pDhw66cuVKYbcGoCAYAIxZs2YZkozffvst1+WLFi0yJBlLliyxjB08eNBwc3MznnjiidtuPysry2jYsKFRu3ZtIzk52TLWp08fo2zZskZ8fLxdPodhGMby5csNScY777xjNX7y5EmjadOmxv/+9z/L2C+//GJIMr7//nu71S9KDhw4YLi4uBhTp061jEVFRRmlS5c2hg4dWniNASgwHLoC8mD06NFat26dxo8fr06dOqlChQoaNGiQ/P39tWjRotuuv2PHDv3+++8KDg6Wh4eHJMnJyUlTp05Vw4YNtXz5cr3wwgt26XXTpk2Wnq9XpUoVhYSE6OLFi5KkI0eOaM2aNZKk7777TidOnJAktW3bVg0bNlRUVJS++eYb9e3bV+XLl9emTZsUGRmp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wD3A3d09x6Xgt+Lk5KSgoCDL+/Lly+c6r1y5cipXrly+1ysonKMDAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMixsGmsS2kK6F3QKAQsB3H7g19ugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTci3sBmAfqwZULPCaA1efKfCaAKzx3QdujT06AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtAg6AADAtFwLuwHYx8exwYVQtWsh1ARwPb77wK2xRwcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJjWXRN0srKylJSUVNhtAACAu0iRDzqGYWjKlCkqVaqUfH19VaVKFW3YsKGw2wIAAHeBIh905s+fr4ULF2rz5s1KSUnRmDFj1KdPHx07dqywWwMAAEVckQ86CxYs0MiRI9W8eXO5urpq4sSJCggI0OLFiwu7NQAAUMQV6aATGxurkydPqnXr1lbjbdu21Z49ewqpKwAAcLco8kFHkvz8/KzG/fz8LMtyk5aWpsTERKsXAAC49xTpoOPk5CRJyszMtBrPyMiQs/PNW581a5Z8fHwsr8DAQIf2CQAAiqYiHXQCAgIkSTExMVbjMTExqlChwk3XmzRpkhISEiyvqKgoh/YJAACKpiL99HIfHx/Vq1dPW7duVb9+/ST9s3cnJCREo0ePvul6bm5ucnNzs7w3DOOfddNSHNtwIUpLTivwmpmpyQVeE4A1vvv2lf17Ivv3RkHUKuxtmJ5RxK1evdooVqyYsWzZMuPo0aPGyJEjDV9fX+PcuXN53kZUVJQhiRcvXrx48crTKyoqymG/165evWr4+/vbrVdvb2/jwQcfNGrWrGl89NFHDuv7buVkGAUQW+/Q8uXLNW/ePMXExKhu3bqaPXu26tevn+f1s7KydPbsWZUsWdJy3k9eJCYmKjAwUFFRUfL29ral9Xwxe73CqMlnvPvrFUZNs9crjJp3Sz3DMHTlyhUFBATc8lzQO5Wamqr09HS7bKt48eJyd3e3y7bMqEgfuso2ZMgQDRkyxOb1nZ2dVbFiRZvX9/b2LrC/fO6FeoVRk89499crjJpmr1cYNe+Gej4+Pg7q5v9xd3cnnBSQIn0yMgAAwJ0g6AAAANMi6NyCm5ubpk+fbnUFF/Xurpp8xru/XmHUNHu9wqhp9noouu6Kk5EBAABswR4dAABgWgQdAABgWgQdAABgWnfFfXQKQ3Jyso4cOSJfX19VqVKlQGpGRETo0qVLatWqlcNrZWVl6cSJE8rKylLVqlVVvHhxh9dMTEzUiRMnVL58ed13330Or5ctKipKkZGRqlmzpsqUKePQGtdzdXVV8+bNHVLveufPn9e5c+dUs2ZNh92X4+rVqwoPD8912f333y9/f3+H1JX++dnGxMTI39//ju6HlVcJCQn666+/VLZsWQUFBdl9+2lpaQoPD5e/v7+qVq2a65zExEQdO3ZM5cqVs0sPhw4dUkpKipo1a3ZHc/Lq/PnzOnHihOrWrZvrPWkyMzN1/PhxOTs7q2rVqnJ1vbNfRenp6QoPD5efn5/uv//+XOdcvnxZJ0+eVEBAgEP/f0URVKj3ZS6ili9fbnh5eRnVq1c3vLy8jE6dOhkJCQkOq7dq1SqjWbNmRunSpQ0XFxeH1ck2f/58o2LFisYDDzxg3H///Yafn5+xYsUKh9U7e/asMWjQIKNMmTJGw4YNDW9vb6NFixZGZGSkw2pmi4+PN6pUqWJIMtasWeOwOm+99ZZRsmRJo1WrVpZXt27dHFbPMAwjLi7O6NGjh+Hl5WU0btzYqFSpksM+Y2RkpNVna9WqlVGzZk1DkvHNN984pGZ0dLTRvHlzo3Tp0kajRo0MHx8fo3Xr1kZMTIxD6mVmZhrjxo0zPDw8jAYNGhi+vr5Gt27djMTERLts/+LFi8aECROMgIAAw8PDwxg3blyu8xYuXGiUKFHCqFGjhuHh4WH06tXLSElJsanm0qVLjQYNGhilS5c2ypQpY/OcvAoPDzcef/xxo1y5coYkY8uWLTnm/Oc//zH8/f2NGjVqGFWqVDECAgKMdevW2VTv8uXLxqRJk4z77rvP8PT0NEaMGJFjzqlTp4zHHnvM8PPzMxo2bGh4eXkZDz/8sMP+P0LRw6GrGxw9elTDhw/Xhx9+qKNHj+r06dOKjIzUK6+84rCaERER+uCDD/T+++87rMb1Ll26pNDQUB07dkzHjx/XtGnTNHToUB09etQh9c6cOaMBAwYoNjZW4eHhOnv2rK5du6YXXnjBIfWuN2LECPXv39/hdSSpVq1a2rlzp+X1v//9z2G1srKy1LNnT126dEmnT59WaGioDh06pKtXrzqkXlBQkNVn27lzp7p3764yZcqoR48eDqk5adIkJSYmKioqSmFhYYqMjNT58+f1+uuvO6TeRx99pOXLlyssLEz79u1TVFSUUlJS9PLLL9tl+9HR0SpTpoz279+vunXr5jonLCxMzz33nFasWKGIiAj99ddfCg8P1/Tp022qeezYMQUHB9/yZ5aXOXl1+PBh9evXT2FhYTedk5ycrEOHDikiIkInT57UmDFjNHDgQEVHR+e73rlz5+Tl5aXw8HA1btw41zmRkZEaM2aMLly4oPDwcJ05c0bnz5/XxIkT810Pd6nCTlpFzeTJk42KFStajc2bN8/w8PAwUlNTHVr7008/LZA9OjdKT083nJycjM8++6zAao4dO9Zo3LixQ2ssXLjQaNWqlXH58uUC2aPTqFEjY//+/caRI0eMa9euOayWYRjGhg0bDEnGwYMHHVrnZtLT0w0/Pz9j/PjxDqvRvXt3Y+DAgVZjvXr1Mvr06eOQej179jR69uxpNbZ06VLD3d3dSE5OtmutZs2a5bpHZ+zYsUadOnWsxmbMmGGULVvWyMrKsrneBx98cNu9NXmZk1fnzp276R6dG8XFxRmSjPXr199RzXbt2uW6Ryc3gwYNMjp16nRH9XD34BydG+zbt0+NGjWyGmvatKlSUlJ07Nixm/5L7G4WHh4uwzBuemzbnnWuXLmiAwcO6KuvvlJwcLDDah06dEhvvPGG9uzZIxcXF4fVud6+ffs0aNAgJSQkKDU1VR988IGeeuoph9Tatm2bKlWqpLp16+rIkSPKyspStWrVCuzmaN99951iY2M1cuRIh9WYNGmS+vXrp3nz5qlu3boKDw/Xnj179N133zmknq+vrw4dOmQ1Fh0drdTUVB0+fFhNmjRxSN3r3ezvn7i4OJ05c0aBgYEO76GghYaGSpKqVavm0Dp79uxRcnKywsLCtHnzZq1evdqh9VB0EHRucOnSJdWuXdtqLPsE1kuXLhVGSw6VlJSkUaNGqWPHjmrZsqVDa82ZM0d//fWXjh49qu7duzvspOuUlBQNGDBAc+fOVeXKlZWUlOSQOtdr0qSJTp48qUqVKkmS5s2bp6effloPPPCAQ05IPnv2rEqXLq2OHTsqOjpaGRkZSkhI0H//+1/169fP7vVuFBwcrNatW6tmzZoOq9GoUSP16dNHb7zxhqpWraq//vpLTz/9tMP+sTFu3Di1aNFCY8aM0WOPPaYjR47o448/llRw3/1Lly7lOGH++r9/zBZ0Ll68qHHjxqlPnz45/t61t7feekvnzp3T0aNH1a9fv5se6oL5cI7ODYoVK6bU1FSrsezzHgriyqSCdPXqVfXs2VOGYWjVqlUOr7dq1SqFhobqzJkzio2NVe/evR1SZ8aMGSpRooQqV66snTt36rfffpMkHTlyRAcPHnRIza5du1pCjiS99NJLeuCBB7RmzRqH1CtWrJj279+vxx9/XEeOHNGJEyc0fvx4DRkyxKZzHfLjzJkz+vHHHzVq1CiH1hk6dKjl3Jzw8HCdOnVKP/30k0aPHu2Qeo0bN1ZYWJgyMzM1Z84cHTx40BJ0SpQo4ZCaN7qX/v5JTEzUI488ojJlyujTTz91eL0ffvhB4eHhOn36tA4fPqwnn3zS4TVRNLBH5waVKlXSmTNnrMayf3E44lLTwpKamqqePXsqJiZG27dvV9myZQustre3t5599lkNHDhQV65cUcmSJe26fQ8PD5UoUUKvvfaapH9O3JWkFStWKCoqSosXL7ZrvZspX768w0JH5cqV5eLiYhU2Ro8ercmTJys0NNShl+8vW7ZMJUuWdPieox9++EHvvvuuvL29JUmlSpXSk08+qVmzZjmsZv369bVkyRLL++XLl8vJyUm1atVyWM3rVapUKcf/M9HR0XJycjLV3pwrV66oW7duyszM1NatWy3/jQuCr6+vRowYoeeff15ZWVlydubf+2bHf+EbdO7cWb/++qvi4uIsY+vXr1fNmjUL9N4vjpQdcqKjoxUSEqJy5co5tF5ycnKOsRMnTsjT09Mh/1KeMWOG1dVBmzdvlvTPrmtHhZwbP2NsbKz279+vOnXqOKRe165dlZmZqfPnz1vGsgO6n5+fQ2pKkmEY+vTTTzV48GCH7+Xw8/PL8Y+OqKgoh32+jIwMZWRkWN5nZWVp8eLFeuSRRwrsHwKdO3dWSEiI1f9P69evV/PmzeXl5VUgPThadshJT0/Xli1bVKpUKYfWu9nfP6VLlybk3CPYo3ODJ554Qh988IF69eqlCRMm6NChQwoODtY333zjsJrHjh3ThQsXdPz4cUnSzp07JUn16tVzyL90+vTpoz179mjp0qU6fvy4pW7lypUdckO2adOmKTU1VR06dJCXl5d+/fVXzZkzR9OnT7/jG4UVFQ8//LB69+6thx56SHFxcXr33XdVrlw5jR071iH1WrVqpccee0x9+/bVpEmTlJGRobfeektt27Z16E0KQ0JCdPLkSYcftpKkF154QdOmTVOZMmX00EMPKTQ0VIsXL9bcuXMdUi8hIUG9evXS2LFj5e3trSVLligyMlIrV660y/azsrL066+/Svrnl/25c+e0c+dOeXp66qGHHpIkjRw5UgsXLlSvXr30/PPPa8+ePfr2228tYT2//vzzT126dEl///23MjIyLH+3NGzYUB4eHnmek1exsbE6evSo5ZymP/74Q+7u7goKClJQUJAyMjL06KOP6tixY/r00091+PBhy7q23ngyu9+EhATFxMRo586dKlGihOWk7hdffFElS5ZU27Zt5ebmpp9//lnz5s3Thx9+mO9auDvx9PJcxMfHa/bs2QoLC5Ovr69GjRqlzp07O6zeW2+9pR9//DHH+KJFixxy4mXr1q1zHR8zZoxDjltnZWVpxYoV2rhxo+Lj41W5cmU99dRTBXIHaOmfcxw6d+6smTNnqn379g6pER8fr48++kh79uyRh4eHmjZtqrFjx+b7F0V+pKena8GCBdqyZYvc3d3VqlUrPffccw7d0/Luu+/q4MGD+uKLLxxW43rr16/X119/rfPnz6tChQoaMGCAHn30UYfV279/v95//33FxMSoSZMmevHFF+22Byn7/8MbVa1aVcuXL7e8v3Dhgt555x0dOHDAEpbbtGljU81XX31Vu3btyjH++eefW+74npc5ebV582a9+eabOcaHDh2qUaNGKSkpSd26dct13QkTJqhXr175qpeZmal27drlGK9YsaLlvMOMjAwtW7ZMmzdvVlJSkqpUqaLhw4fnuLoN5kXQAQAApsUBSgAAYFoEHQAAYFoEHQAAYFoEHQAAYFoEHQAAYFoEHQAAYFoEHQAAYFoEHQAF5uLFi1q1apXVoxZskZCQoFWrVuV4ACYA3IgbBgJ2cPr0aR08eFCGYahOnTo57ih79epVrV+/Psd65cqVU4cOHayWOzk5ydPTUxUrVlTt2rVVrFixXLfl5OSkfv365Xhez3fffaeUlBR16tTpls9oOnPmjA4fPixXV1c99NBD8vX1tfXj59nu3bvVokULXbly5Y6e3fTHH3+obt26OnfunE2PDQBw7zDHg4aAQhIfH68RI0Zo8+bNat26tVxcXLRz5061adNGy5YtswSNixcv6oknnlD79u1Vvnx5y/q1atVShw4dciy/evWqjhw5otjYWL3wwguaOnWq5blg2XMlqXTp0urSpYtlexEREerdu7cMw9Avv/yS6+M+DMPQ2LFj9dlnn6lly5ZydXXV4cOH9eijj2rRokVycnJy5I8MAAoUQQewUVZWlnr06KErV67oxIkTlj0LFy9e1KOPPqru3bvrt99+s3pw6ZQpU9SpU6ebbvPG5du2bVO/fv0UExOjRYsWWc1t27atgoODrYJOcHCw2rZtqx07dty0xurVqxUcHKwDBw6oZs2akqRr165p2bJlyt7Bu2bNGrVo0UKBgYFWn3fNmjVq1aqVSpQooS1btujxxx/XsWPHdOLECVWvXl01atSQYRgKDw/X2bNn1aBBAwUFBeXax+HDh/XXX3+pRo0aql69eo7lkZGR2rdvn0qWLKmWLVs6/GnpAEzKAGCTb7/91pBk7NixI8eyffv2GU5OTsYXX3xhGIZhREVFGZKMLVu25LqtWy1fvHix4ezsbPz9999Wc5ctW2a4u7sbcXFxhmEYRnp6uuHn52csX77ckGT88ssvudaaMmWKUalSpVt+to4dOxpjxoyxGtu0aZNRrFgxIyYmxvjtt98MSUa7du2Mxo0bG507dzacnZ2NmTNnGl26dDGaNm1qdOzY0XB3dzd++OEHyzay1+vevbtRu3Zto2PHjoabm5vxn//8x6rW66+/bpQoUcLo1KmTUatWLSMgIMDYt2+fZfmhQ4cMSca5c+du+TkAgJORARtt3rxZZcuWVdu2bXMsa9CggapVq5bjqfQ//fSTVq1aZXlFR0fftk7Pnj2VlZWlX375xWq8WrVqat68uVasWCHpnyd9lypV6rZPum7evLkiIyM1adIkHT16NNc5o0aN0pdffml1su/SpUvVo0cPlStXzjLWunVrhYaGavPmzZo2bZqmTp2qNm3aaM+ePdq6davGjRunN954I8f2fXx8dOjQIW3dulVff/21Xn/9dR05ckSStGfPHr311lvauHGjtmzZokOHDqlNmzYaOXKkZY8TAOQVQQew0fnz5296WEaSgoKCdP78eauxXbt2ad26dZbXuXPnblsn+5ye2NjYHMtGjBih4OBgSdInn3yiESNG3HZ7PXr00KJFi/TVV1+pRo0a8vX11eOPP649e/ZY5jz22GNycXHRt99+K0m6dOmS1q9fr+HDh1tt69lnn7X8uUWLFrmOHTt2LEcPr7zyiuVcoB49eujBBx/UN998I0latWqVWrRoofbt20uSnJ2dNWnSJIWHh+v48eO3/XwAcD2CDmAjLy8vXbx48abL4+LiclxZNGXKFKs9Oo0bN75tnaSkJEmSp6dnjmV9+/ZVZGSk1q5dq+3bt2vIkCF56n306NH666+/dPLkSS1cuFCxsbFq1aqVJewUL15cTz31lJYuXSpJWrFihXx9fdW9e3er7ZQuXdryZzc3t1zHcrsEvHLlylbvq1SposjISEn/nJtTtWpVq+XVqlWzLAOA/CDoADZq2rSpoqKidObMmRzLLl68qOPHj6tZs2Z3XOe3336T9M/hsBuVKFFCgwYN0rBhw9StWzdVqFAhX9uuUqWKnnjiCW3ZskVlypTR6tWrLctGjRql7du3KzIyUkuXLtWQIUPk4uJyR58lW3x8fI732VeolS1bVpcuXbJanv3+VpfLA0BuCDqAjQYPHixfX1+99tprOZa9/vrrcnNz07Bhw+6oRlJSkqZOnapGjRqpadOmuc4ZO3asunXrpvHjx+dpm1FRUcrMzLQay8zMVEZGhkqVKmUZq1Wrlpo1a6aXXnpJ+/fvz3HY6k6sW7fOqp/Q0FC1atVK0j/n/ezYscNqb9maNWtUtmxZ1ahRw249ALg3cHk5YKPSpUtr7dq16tWrlzp16qR+/frJxcVF69at086dO7V27VqrE3fz4qefflJcXJxSU1N19OhRffHFF/L19bXcIDA3derU0apVq/JcY9OmTXrvvffUu3dvVa9eXcnJyfr888/l7u6eI8yMGjVKw4cPV+vWrXO9BNxWH3zwgS5duqT77rtPCxYsUKtWrfToo49K+idALlq0SO3bt9eYMWN05swZzZ07V4sWLeIScwD5xh4d4A60bt1ax48fV8+ePbV37179+uuv6tChg44fP66HH37YMs/Dw0MDBgy46V18s5efOHFC69ev188//6xixYpp6dKl2rdvn9U5Ldlz/fz8ct2Wp6fnLZePGjVKmzdvlp+fn3777TcdP35cw4cPV0REhCpWrGg1t1evXpKUIwCVLVtWAwYMsLprc7ly5TRgwACrOzXfd9996t+/f471fv31V3l6eiosLEzDhw/Xhg0bLHOcnZ0VEhKiZ555Rnv37lViYqI2b95s1UOpUqU0YMAAgg+A2+IREABuauXKlRo7dqyio6NzPRkaAIo6Dl0ByOHvv//WTz/9pBkzZuill14i5AC4axF0AORw+vRpbd26VWPHjtW///3vwm4HAGzGoSsAAGBanIwMAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABM6/8DQTnjXpyjwU0AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pusch_config.dmrs.config_type = 2\n", "PUSCHTransmitter(pusch_config).pilot_pattern.show(stream_ind = 0);\n", "print(\"Available DMRS ports:\", pusch_config.dmrs.allowed_dmrs_ports)" ] }, { "cell_type": "markdown", "id": "0e7b8a25", "metadata": {}, "source": [ "In the above figure, you can see that the pilot pattern has become sparser in the frequency domain. However, there are still only four available DMRS ports. This is because we now need to mask also the resource elements that are used by the third CDM group. This can be done by setting the parameter `NumCDMGroupsWithoutData` equal to three." ] }, { "cell_type": "code", "execution_count": 19, "id": "e98b5c61", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:24.965120Z", "iopub.status.busy": "2026-08-07T09:18:24.964979Z", "iopub.status.idle": "2026-08-07T09:18:25.245105Z", "shell.execute_reply": "2026-08-07T09:18:25.244257Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Available antenna ports: [0, 1, 2, 3, 4, 5]\n" ] }, { "data": { "image/png": "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Q+q1bdtWDz/8sPr166dJkyYpIyNDr7/+utq3b+/QmxSGhobq+PHjDj9sJUnPPvuspk2bprJly+q+++5TWFiYFi1apDlz5jikXmJionr37q1x48bJ29tbixcvVlRUlFasWGGX7WdlZenXX3+V9M8v+zNnzmj79u3y9PTUfffdJ0kaNWqUFixYoN69e+uZZ57Rrl279M0331jCen79+eefunDhgv7++29lZGRY/m5p0qSJPDw88jwnr+Li4nT48GHLOU1//PGH3N3dFRgYqMDAQGVkZOihhx7SkSNH9Mknn+jgwYOWdW298WR2v4mJiYqNjdX27dtVokQJy0ndzz33nEqWLKn27dvLzc1NP//8s+bOnasPPvgg37VwZ+Lp5blISEjQrFmzFB4eLh8fH40ePVpdu3Z1WL3XX39dP/74Y47xhQsXOuTEy6CgoFzHx44d65Dj1llZWVq+fLnWr1+vhIQEVa1aVY8//niB3AFa+ucch65du+qNN95Qx44dHVIjISFBH374oXbt2iUPDw+1aNFC48aNy/cvivy4cuWK5s+fr02bNsnd3V1t27bV008/7dA9Le+8847279+vzz//3GE1rrV27Vp9/fXXOnv2rCpWrKiBAwfqoYcecli9vXv36r333lNsbKyaN2+u5557zm57kLL/P7xe9erVtWzZMsv7c+fO6e2339a+ffssYbldu3Y21XzppZe0Y8eOHOOfffaZ5Y7veZmTVxs3btRrr72WY3zYsGEaPXq0kpOT1b1791zXnTBhgnr37p2vepmZmerQoUOO8cqVK1vOO8zIyNDSpUu1ceNGJScnq1q1ahoxYkSOq9tgXgQdAABgWhygBAAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApkXQAQAApkXQAVBgzp8/r5UrV1o9asEWiYmJWrlyZY4HYALA9bhhIGAHJ0+e1P79+2UYhurXr5/jjrKXL1/W2rVrc6xXvnx5derUyWq5k5OTPD09VblyZdWrV0/FihXLdVtOTk7q379/juf1fPfdd0pNTVWXLl1u+oymU6dO6eDBg3J1ddV9990nHx8fWz9+nu3cuVOtW7fWpUuXbuvZTX/88YcaNGigM2fO2PTYAAB3D3M8aAgoJAkJCRo5cqQ2btyooKAgubi4aPv27WrXrp2WLl1qCRrnz5/Xo48+qo4dO6pC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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pusch_config.dmrs.num_cdm_groups_without_data = 3\n", "PUSCHTransmitter(pusch_config).pilot_pattern.show(stream_ind = 0);\n", "print(\"Available antenna ports:\", pusch_config.dmrs.allowed_dmrs_ports)" ] }, { "cell_type": "markdown", "id": "1d723977", "metadata": {}, "source": [ "The second parameter that controls the number of available DMRS ports is the ``length``, which can be equal to either one or two.\n", "Let's see what happens when we change it to two." ] }, { "cell_type": "code", "execution_count": 20, "id": "cbc1719f", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:25.247035Z", "iopub.status.busy": "2026-08-07T09:18:25.246896Z", "iopub.status.idle": "2026-08-07T09:18:25.525964Z", "shell.execute_reply": "2026-08-07T09:18:25.525116Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Available DMRS ports: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]\n" ] }, { "data": { "image/png": "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HUm67bbb9PXXX8swDJ04cUKbNm3SrFmz1LNnT33yySd6+OGHr1tzrubNm1u937dvn9LS0nTx4kV99NFHllNQuWPl9mnRooVWrVqlBx54QJUrV1bHjh3l7e0tZ2dn5eTk6PTp01bH9fDwUO3ata3aqlWrJjc3N9WtW9eq3dfXV9u2bbtm3W5ubnJyclJmZmaebblt1/u6Ayj9CDpAAX300Uf6+eefFRYWpurVq+vOO+/UK6+8opdeeum6+/r5+Un65741V/7SPnnypG6//fZr7v/EE09YBZ327dsXqGYnJyf5+fnp/vvv16BBgxQYGKhXX331hoJO7sLjXJcuXZIkpaamWhYwX1lrnTp1dPnyZY0YMULt27fXqlWrrO5bkxvC/s3T0zPPscqUKSMPD48897wpU6aMpY6rcXJyUs2aNXXy5Mk823LbctcrATAvgg5QAH///beeffZZDR482HK6Zdy4cXr99dfVv39/tW3b9pr75y5C3r59u1XQ2b9/v86fP59nkfKVZs2aVeBaT5w4oVq1auVp9/DwUGBgoP78808ZhiEnJyfL6aAbUb9+fZUpU0ZNmzbV+++/f9V+R48eVVJSkvr3728VVOLi4vLM5jhKp06d9OOPPyozM9Ny9ZYk/fnnn3JyclJQUFCR1AGg+HDVFXAdmZmZGj58uHx8fPTpp59a2t999135+/vroYceUnp6+jWP0bt3b9WtW1cffvih1czMe++9J3d3d40YMcJu9b7wwgt6+eWX88x4HDx4UDt37lS7du0swSP30urcS84LwtvbWw899JDmzZun6OjoPNv/+usvZWdnq0aNGipbtqyioqIs24z/fzNDR90N+kqPPvqo0tLS9Nlnn1nakpOTNW/ePN11113M6AA3AWZ0gOuYMmWKdu/erbVr11ou3Zb+OdWyYMECdevWTVOmTNHs2bOveoyyZcvq66+/Vr9+/dStWzfddddd+uuvv/TDDz/oiy++UI0aNexWb6tWrTR9+nTNmzdPgwcPVpUqVXTkyBF98803qlatmsLCwix969atqxYtWujVV19VXFyc3N3dLffRuZYPP/xQZ86cUatWrRQcHKxbb71ViYmJioiI0MWLF/Xnn3/K1dVVL774oqZPn660tDQ1aNBAv/76q3r06FFkAaNr16568cUXNWnSJO3Zs0d+fn5atGiRPD099cknnxRJ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woQJN/yL4kZkZWXpww8/1Nq1a+Xm5qagoCA99thjDp1peeutt7R792599dVXDhvj31auXKnvvvtO8fHxql69uoKDg3XXXXc5bLydO3fq3XffVUJCgtq2basnnnjCbjNIuf8Or1S3bl0tXLjQ8v706dN64403tGvXLktY7ty5s01jPvfcc9qyZUue9i+//NJyx/eC9CmoNWvW6OWXX87TPmLECI0bN06pqanq27dvvvtOnjxZAwcOvKHxsrOz1bVr1zzttWrVsqw7vHz5shYsWKA1a9YoNTVVderU0ejRo/Nc3QbzIugAAADT4gQlAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOgCJz5swZLVmyxOpRC7ZITk7WkiVL8jwAEwCuxA0DATs4fvy4du/eLcMw1LRp0zx3lE1PT9fKlSvz7Fe1alV1797daruTk5M8PDxUq1YtNWnSRGXLls33WE5OThoyZEie5/X88MMPunjxonr27HnNZzSdOHFCe/fuVZkyZXTbbbfJx8fH1o9fYH/++ac6duyoCxcuFOrZTXv27FGzZs106tQpmx4bAODmYY4HDQHF5Ny5cxozZozWrFmjTp06ycXFRZs3b1bnzp21YMECS9A4c+aM7rvvPnXr1k3VqlWz7N+4cWN17949z/b09HTt27dPiYmJevzxxzV16lTLc8Fy+0pSxYoV1bt3b8vxoqOjNWjQIBmGod9//z3fx30YhqEJEyboiy++0O23364yZcpo7969uuuuuzR37lw5OTk58ksGAEWKoAPYKCcnR/3799eFCxd06NAhy8zCmTNndNddd6lfv37aunWr1YNLX3jhBfXs2fOqx7xy+6+//qohQ4YoISFBc+fOterbpUsXhYWFWQWdsLAwdenSRRs3brzqGN98843CwsK0a9cuNWrUSJJ06dIlLViwQLkTvEuXLlXHjh3l5+dn9XmXLl2qoKAglS9fXmvXrtW9996rAwcO6NChQ2rQoIEaNmwowzAUGRmpkydPqmXLlvL398+3jr179+rw4cNq2LChGjRokGd7TEyMduzYoQoVKuj22293+NPSAZiUAcAm33//vSHJ2LhxY55tO3bsMJycnIyvvvrKMAzDiI2NNSQZa9euzfdY19r+ySefGM7OzsbRo0et+i5YsMBwc3MzkpKSDMMwjKysLKNKlSrGwoULDUnG77//nu9YL7zwglG7du1rfrYePXoY48ePt2pbvXq1UbZsWSMhIcHYunWrIcno2rWr0aZNG6NXr16Gs7Oz8eqrrxq9e/c22rVrZ/To0cNwc3MzfvrpJ8sxcvfr16+f0aRJE6NHjx6Gq6ur8dprr1mNNX36dKN8+fJGz549jcaNGxs1atQwduzYYdkeFRVlSDJOnTp1zc8BACxGBmy0Zs0aVa5cWV26dMmzrWXLlgoMDMzzVPrffvtNS5Yssbzi4uKuO86AAQOUk5Oj33//3ao9MDBQHTp00KJFiyT986TvW2655bpPuu7QoYNiYmIUGhqq/fv359tn3Lhx+vrrr60W+86bN0/9+/dX1apVLW2dOnVSeHi41qxZo2nTpmnq1Knq3Lmztm3bpnXr1ikkJEQvvfRSnuN7e3srKipK69at03fffafp06dr3759kqRt27bplVde0apVq7R27VpFRUWpc+fOGjt2rGXGCQAKiqAD2Cg+Pv6qp2Ukyd/fX/Hx8VZtW7Zs0YoVKyyvU6dOXXec3DU9iYmJebaNGTNGYWFhkqTPP/9cY8aMue7x+vfvr7lz5+rbb79Vw4YN5ePjo3vvvVfbtm2z9Ln77rvl4uKi77//XpJ09uxZrVy5UqNHj7Y61iOPPGL5c8eOHfNtO3DgQJ4annnmGctaoP79++vWW2/VsmXLJElLlixRx44d1a1bN0mSs7OzQkNDFRkZqYMHD1738wHAvxF0ABt5enrqzJkzV92elJSU58qiF154wWpGp02bNtcdJzU1VZLk4eGRZ9vgwYMVExOj5cuXa8OGDXrooYcKVPujjz6qw4cP68iRI5ozZ44SExMVFBRkCTvlypXTgw8+qHnz5kmSFi1aJB8fH/Xr18/qOBUrVrT82dXVNd+2/C4BDwgIsHpfp04dxcTESPpnbU7dunWttgcGBlq2AcCNIOgANmrXrp1iY2N14sSJPNvOnDmjgwcPqn379oUeZ+vWrZL+OR12pfLly2v48OEaNWqU+vbtq+rVq9/QsevUqaP77rtPa9euVaVKlfTNN99Yto0bN04bNmxQTEyM5s2bp4ceekguLi6F+iy5zp07l+d97hVqlStX1tmzZ622576/1uXyAJAfgg5gowceeEA+Pj6aMmVKnm3Tp0+Xq6urRo0aVagxUlNTNXXqVLVu3Vrt2rXLt8+ECRPUt29fTZo0qUDHjI2NVXZ2tlVbdna2Ll++rFtuucXS1rhxY7Vv315PPvmkdu7cmee0VWGsWLHCqp7w8HAFBQVJ+mfdz8aNG61my5YuXarKlSurYcOGdqsBwM2By8sBG1WsWFHLly/XwIED1bNnTw0ZMkQuLi5asWKFNm/erOXLl1st3C2I3377TUlJScrIyND+/fv11VdfycfHx3KDwPw0bdpUS5YsKfAYq1ev1jvvvKNBgwapQYMGSktL05dffik3N7c8YWbcuHEaPXq0OnXqlO8l4LZ67733dPbsWdWsWVMffvihgoKCdNddd0n6J0DOnTtX3bp10/jx43XixAnNmjVLc+fO5RJzADeMGR2gEDp16qSDBw9qwIAB2r59u/744w91795dBw8e1B133GHp5+7uruDg4KvexTd3+6FDh7Ry5Upt2rRJZcuW1bx587Rjxw6rNS25fatUqZLvsTw8PK65fdy4cVqzZo2qVKmirVu36uDBgxo9erSio6NVq1Ytq74DBw6UpDwBqHLlygoODra6a3PVqlUVHBxsdafmmjVraujQoXn2++OPP+Th4aGIiAiNHj1aP//8s6WPs7Oz1q9fr4cffljbt29XSkqK1qxZY1XDLbfcouDgYIIPgOviERAArmrx4sWaMGGC4uLi8l0MDQAlHaeuAORx9OhR/fbbb5oxY4aefPJJQg6AUougAyCP48ePa926dZowYYKefvrp4i4HAGzGqSsAAGBaLEYGAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACm9f8Ar62/1y7JyWIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pusch_config.n_size_bwp = 1 # We reduce the bandwidth to one PRB for better visualization\n", "pusch_config.dmrs.length = 2\n", "PUSCHTransmitter(pusch_config).pilot_pattern.show(stream_ind = 0);\n", "print(\"Available DMRS ports:\", pusch_config.dmrs.allowed_dmrs_ports)" ] }, { "cell_type": "markdown", "id": "9fe17ece", "metadata": {}, "source": [ "The pilot pattern is now composed of four 2x2 blocks within a PRB. These blocks are used by the four DMRS ports within the same CDM group. This means that we can now support up to twelve layers! \n", "\n", "Let's create a setup with three transmitters, each sending four layers using four antenna ports. We choose the DMRS ports for each transmitters such that they belong to the CDM group. This is not necessary and you are free to choose any desired allocation. \n", "It is however important to understand, that for channel estimation to work, the channel is supposed to be static over 2x2 blocks of resource elements. This is in general the case for low mobility scenarios and channels with not too large delay spread. You can see from the results below that the pilot sequences of the DMRS ports in the same CDM group are indeed orthogonal over the 2x2 blocks." ] }, { "cell_type": "code", "execution_count": 21, "id": "d936f636", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:25.528058Z", "iopub.status.busy": "2026-08-07T09:18:25.527923Z", "iopub.status.idle": "2026-08-07T09:18:25.989048Z", "shell.execute_reply": "2026-08-07T09:18:25.988256Z" } }, "outputs": [], "source": [ "pusch_config = PUSCHConfig()\n", "pusch_config.n_size_bwp = 1\n", "pusch_config.dmrs.config_type = 2\n", "pusch_config.dmrs.length = 2\n", "pusch_config.dmrs.additional_position = 1\n", "pusch_config.dmrs.num_cdm_groups_without_data = 3\n", "pusch_config.num_antenna_ports = 4\n", "pusch_config.num_layers = 4\n", "pusch_config.dmrs.dmrs_port_set = [0,1,6,7]\n", "pusch_config.precoding = \"codebook\"\n", "pusch_config.tpmi = 4\n", "\n", "pusch_config_1 = pusch_config.clone()\n", "pusch_config_1.dmrs.dmrs_port_set = [2,3,8,9]\n", "pusch_config_2 = pusch_config.clone()\n", "pusch_config_2.dmrs.dmrs_port_set = [4,5,10,11]\n", "\n", "pusch_transmitter_multi = PUSCHTransmitter([pusch_config, pusch_config_1, pusch_config_2])" ] }, { "cell_type": "code", "execution_count": 22, "id": "c1ef3b92", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:25.991221Z", "iopub.status.busy": "2026-08-07T09:18:25.991086Z", "iopub.status.idle": "2026-08-07T09:18:25.995044Z", "shell.execute_reply": "2026-08-07T09:18:25.994225Z" } }, "outputs": [ { "data": { "text/plain": [ "matrix([[ True, False, False, False],\n", " [False, True, False, False],\n", " [False, False, True, False],\n", " [False, False, False, True]])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Extract the first 2x2 block of pilot symbols for all DMRS ports of the first transmitter\n", "p = pusch_transmitter_multi.pilot_pattern.pilots[0].cpu().numpy()\n", "p = np.matrix(p[:, [0,1,12,13]])\n", "\n", "# Test that these pilot sequences are mutually orthogonal\n", "# The result should be a boolean identity matrix\n", "np.abs(p*p.getH())>1e-6" ] }, { "cell_type": "markdown", "id": "c31350c2", "metadata": {}, "source": [ "There are several other parameters that impact the pilot patterns. The full DMRS configuration can be displayed with the following command.\n", "We refer to the [API documentation of the PUSCHDMRSConfig class](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.PUSCHDMRSConfig.html) for further details." ] }, { "cell_type": "code", "execution_count": 23, "id": "372e465c", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:25.996928Z", "iopub.status.busy": "2026-08-07T09:18:25.996800Z", "iopub.status.idle": "2026-08-07T09:18:26.000001Z", "shell.execute_reply": "2026-08-07T09:18:25.999200Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PUSCH DMRS Configuration\n", "========================\n", "additional_position : 1\n", "allowed_dmrs_ports : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]\n", "beta : 1.7320508075688772\n", "cdm_groups : [0, 0, 0, 0]\n", "config_type : 2\n", "deltas : [0, 0, 0, 0]\n", "dmrs_port_set : [0, 1, 6, 7]\n", "length : 2\n", "n_id : None\n", "n_scid : 0\n", "num_cdm_groups_without_data : 3\n", "type_a_position : 2\n", "w_f : [[ 1 1 1 1]\n", " [ 1 -1 1 -1]]\n", "w_t : [[ 1 1 1 1]\n", " [ 1 1 -1 -1]]\n", "\r\n" ] } ], "source": [ "pusch_config.dmrs.show()" ] }, { "cell_type": "markdown", "id": "ddc22dc4", "metadata": {}, "source": [ "## Transport Blocks and MCS\n", "\n", "The modulation and coding scheme (MCS) is set in 5G NR via the MCS index and MCS table which are properties of transport block configuration [TBConfig](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.TBConfig.html). When you create an instance of ``PUSCHConfig``, a default instance of ``TBConfig`` is created. It can be accessed via the following command:" ] }, { "cell_type": "code", "execution_count": 24, "id": "8c08f4e0", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.001887Z", "iopub.status.busy": "2026-08-07T09:18:26.001770Z", "iopub.status.idle": "2026-08-07T09:18:26.007831Z", "shell.execute_reply": "2026-08-07T09:18:26.007071Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Transport Block Configuration\n", "=============================\n", "channel_type : PUSCH\n", "mcs_index : 14\n", "mcs_table : 1\n", "n_id : None\n", "num_bits_per_symbol : tensor([4], device='cuda:0', dtype=torch.int32)\n", "target_coderate : tensor([0.5400], device='cuda:0')\n", "tb_scaling : 1.0\n", "\r\n" ] } ], "source": [ "pusch_config = PUSCHConfig()\n", "pusch_config.tb.show()" ] }, { "cell_type": "markdown", "id": "c0d2301c", "metadata": {}, "source": [ "You can see that the current MCS Table is 1 and the MCS index is 14. Looking at the corresponding table in the API documentation of [TBConfig](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.TBConfig.html), you can see that we should have a 16QAM modulation (i.e., 4 bits per symbol) and a target coderate of 553/1024=0.54 which matches the values above. The data scrambling ID $n_\\text{ID}$ is set to `None` which implies that the physical layer cell id $N^\\text{cell}_\\text{ID}$ will be used instead.\n", "\n", "We can change the MCS index and table as follows:" ] }, { "cell_type": "code", "execution_count": 25, "id": "2d06067d", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.009760Z", "iopub.status.busy": "2026-08-07T09:18:26.009643Z", "iopub.status.idle": "2026-08-07T09:18:26.014423Z", "shell.execute_reply": "2026-08-07T09:18:26.013659Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Transport Block Configuration\n", "=============================\n", "channel_type : PUSCH\n", "mcs_index : 26\n", "mcs_table : 2\n", "n_id : None\n", "num_bits_per_symbol : tensor([8], device='cuda:0', dtype=torch.int32)\n", "target_coderate : tensor([0.8950], device='cuda:0')\n", "tb_scaling : 1.0\n", "\r\n" ] } ], "source": [ "pusch_config.tb.mcs_index = 26\n", "pusch_config.tb.mcs_table = 2\n", "pusch_config.tb.show()" ] }, { "cell_type": "markdown", "id": "ac404602", "metadata": {}, "source": [ "The transport block segmentation allows the PUSCH transmitter to fill resource grids of almost arbitrary size and with any of the possible DMRS configurations.\n", "The number of information bits transmitted in a single slot is given by the property ``tb_size`` of the ``PUSCHConfig``.\n" ] }, { "cell_type": "code", "execution_count": 26, "id": "1eb1b886", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.016326Z", "iopub.status.busy": "2026-08-07T09:18:26.016209Z", "iopub.status.idle": "2026-08-07T09:18:26.023955Z", "shell.execute_reply": "2026-08-07T09:18:26.023172Z" } }, "outputs": [ { "data": { "text/plain": [ "303240" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Adding more PRBs will increase the TB size\n", "pusch_config.carrier.n_size_grid = 273\n", "pusch_config.tb_size" ] }, { "cell_type": "code", "execution_count": 27, "id": "a0b5e407", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.025764Z", "iopub.status.busy": "2026-08-07T09:18:26.025647Z", "iopub.status.idle": "2026-08-07T09:18:26.033309Z", "shell.execute_reply": "2026-08-07T09:18:26.032548Z" } }, "outputs": [ { "data": { "text/plain": [ "1213032" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Adding more layers will increase the TB size\n", "pusch_config.num_antenna_ports = 4\n", "pusch_config.num_layers = 4\n", "pusch_config.tb_size" ] }, { "cell_type": "markdown", "id": "77a07cff", "metadata": {}, "source": [ "For more details about how the transportblock encoding/decoding works, we refer to the API documentation of the [TBEncoder](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.TBEncoder.html)." ] }, { "cell_type": "markdown", "id": "c8f838a3", "metadata": {}, "source": [ "## Looking into the PUSCHTransmitter\n", "\n", "We have used the ``PUSCHTransmitter`` class already multiple times without speaking about what it actually does. In short, it generates for every configured transmitter a batch of random information bits of length ``pusch_config.tb_size`` and outputs either a frequency to time-domain representation of the transmitted OFDM waveform from each of the antenna ports of each transmitter.\n", "\n", "However, under the hood it implements the sequence of layers shown in the following figure: " ] }, { "attachments": { "45dafb96-b379-4430-82c8-9df578084676.jpg": { "image/jpeg": "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" } }, "cell_type": "markdown", "id": "0ddd20f7", "metadata": {}, "source": [ "![Picture 1.jpg](attachment:45dafb96-b379-4430-82c8-9df578084676.jpg)" ] }, { "cell_type": "markdown", "id": "bd633a17", "metadata": {}, "source": [ "Information bits are either randomly generated or provided as input and then encoded into a transport block by the [TBEncoder](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.TBEncoder.html). The encoded bits are then mapped to QAM constellation symbols by the [Mapper](https://nvlabs.github.io/sionna/phy/api/mapping/Mapper.html). The [LayerMapper](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.LayerMapper.html) splits the modulated symbols into different layers which are then mapped onto OFDM resource grids by the [ResourceGridMapper](https://nvlabs.github.io/sionna/phy/api/ofdm/sionna.phy.ofdm.ResourceGridMapper.html). If precoding is enabled in the [PUSCHConfig](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.PUSCHConfig.html), the resource grids are further precoded by the [PUSCHPrecoder](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.PUSCHPrecoder.html) so that there is one for each transmitter and antenna port. If ``output_domain`` equals “freq”, these are the outputs \n", "x\n", ". If ``output_domain`` is chosen to be “time”, the resource grids are transformed into time-domain signals by the [OFDMModulator](https://nvlabs.github.io/sionna/phy/api/ofdm/sionna.phy.ofdm.OFDMModulator.html)." ] }, { "cell_type": "markdown", "id": "ac65ef08", "metadata": {}, "source": [ "Let us configure a ``PUSCHTransmitter`` from a list of two ``PUSCHConfig`` and inspect the output shapes: " ] }, { "cell_type": "code", "execution_count": 28, "id": "15ee99f9", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.035496Z", "iopub.status.busy": "2026-08-07T09:18:26.035381Z", "iopub.status.idle": "2026-08-07T09:18:26.259865Z", "shell.execute_reply": "2026-08-07T09:18:26.259215Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of b: torch.Size([32, 2, 2728])\n", "Shape of x: torch.Size([32, 2, 4, 14, 48])\n" ] } ], "source": [ "pusch_config = PUSCHConfig()\n", "pusch_config.num_antenna_ports = 4\n", "pusch_config.num_layers = 2\n", "pusch_config.dmrs.dmrs_port_set = [0,1]\n", "pusch_config.precoding = \"codebook\"\n", "pusch_config.tpmi = 7\n", "\n", "pusch_config_1 = pusch_config.clone()\n", "pusch_config.dmrs.dmrs_port_set = [2,3]\n", "\n", "pusch_transmitter = PUSCHTransmitter([pusch_config, pusch_config_1])\n", "\n", "batch_size = 32\n", "x, b = pusch_transmitter(batch_size)\n", "\n", "# b has shape [batch_size, num_tx, tb_size]\n", "print(\"Shape of b:\", b.shape)\n", "\n", "# x has shape [batch_size, num_tx, num_tx_ant, num_ofdm_symbols, num_subcarriers]\n", "print(\"Shape of x:\", x.shape)" ] }, { "cell_type": "markdown", "id": "5f492ecd", "metadata": {}, "source": [ "If you want to transmit a custom payload, you simply need to deactive the ``return_bits`` flag when creating the transmitter:" ] }, { "cell_type": "code", "execution_count": 29, "id": "3d6e5ba3", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.261790Z", "iopub.status.busy": "2026-08-07T09:18:26.261656Z", "iopub.status.idle": "2026-08-07T09:18:26.478683Z", "shell.execute_reply": "2026-08-07T09:18:26.478020Z" } }, "outputs": [], "source": [ "pusch_transmitter = PUSCHTransmitter([pusch_config, pusch_config_1], return_bits=False)\n", "x_2 = pusch_transmitter(b)\n", "assert np.array_equal(x.cpu().numpy(), x_2.cpu().numpy()) # Check that we get the same output for the payload b generated above" ] }, { "cell_type": "markdown", "id": "69052c60", "metadata": {}, "source": [ "By default, the ``PUSCHTransmitter`` generates frequency-domain outputs. If you want to make time-domain simulations, you need to configure the ``output_domain`` during the initialization:" ] }, { "cell_type": "code", "execution_count": 30, "id": "601b1e56", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.480583Z", "iopub.status.busy": "2026-08-07T09:18:26.480452Z", "iopub.status.idle": "2026-08-07T09:18:26.700276Z", "shell.execute_reply": "2026-08-07T09:18:26.699537Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of x: torch.Size([32, 2, 4, 728])\n" ] } ], "source": [ "pusch_transmitter = PUSCHTransmitter([pusch_config, pusch_config_1], output_domain=\"time\", return_bits=False)\n", "x_time = pusch_transmitter(b)\n", "\n", "# x has shape [batch_size, num_tx, num_tx_ant, num_time_samples]\n", "print(\"Shape of x:\", x_time.shape)" ] }, { "cell_type": "markdown", "id": "07f11907", "metadata": {}, "source": [ "The last dimension of the output signal correspond to the total number of time-domain samples which can be computed in the following way:" ] }, { "cell_type": "code", "execution_count": 31, "id": "2f4c25f4", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.701961Z", "iopub.status.busy": "2026-08-07T09:18:26.701820Z", "iopub.status.idle": "2026-08-07T09:18:26.704535Z", "shell.execute_reply": "2026-08-07T09:18:26.704020Z" } }, "outputs": [ { "data": { "text/plain": [ "728" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(pusch_transmitter.resource_grid.cyclic_prefix_length \\\n", " + pusch_transmitter.resource_grid.fft_size) \\\n", "* pusch_transmitter.resource_grid.num_ofdm_symbols" ] }, { "cell_type": "markdown", "id": "1f050ea6", "metadata": {}, "source": [ "## Components of the PUSCHReceiver\n", "\n", "The [PUSCHReceiver](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.PUSCHReceiver.html) is the counter-part to the [PUSCHTransmitter](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.PUSCHTransmitter.html) as it *simply* recovers the transmitted information bits from received waveform. It combines multiple processing blocks in a single layer as shown in the following figure:" ] }, { "attachments": { "f7ad545c-20f0-47d6-8f02-6473dce4f964.jpg": { "image/jpeg": "/9j/4AAQSkZJRgABAQABSgFKAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAAFKAAAAAQAAAUoAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAATSgAwAEAAAAAQAAAfYAAAAA/8AAEQgB9gE0AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAgICAgICAwICAwUDAwMFBgUFBQUGCAYGBgYGCAoICAgICAgKCgoKCgoKCgwMDAwMDA4ODg4ODw8PDw8PDw8PD//bAEMBAgICBAQEBwQEBxALCQsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEP/dAAQAFP/aAAwDAQACEQMRAD8A/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqF7iCKSOKSRVeXIRSQC2OuB1OPahLmCSRoUkVnT7yhgSPqO1AE1FUNT1Cx0nT7nVdSnS1tLOJ5pppG2pHHGCzuxPACqCSa8e+HfxQ8QfEbwpf8Aj+y8P/2P4durY3OhvqMxhur6EBytxPAEP2aCVQjxBmMuxsuiN8tAHuFFfKH7I/7SN5+058LIfihe+Hl8L219eTW1lbvc+dJMlsAJJOVTgPkDAOQMnngd9N8Wb3w98VLb4b+OtHXS7fxHJIvhzVIp/OttQeGISyWk4Ko1veACR0j+ZJI0LK+4OigHuNFIOlRfaIPO+zeYvm43bMjdt6Zx1x70ATUVDBcW90nm20iypkjcjBhkdRkVNQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//0P38ooooAKKKKACiiigAooooAKKKKACiiigAprckfjTqawyKAPy4/wCCjfw9Xw94Y8P/ALRPhvUr7TPEXhvxLoJuLlbyfy108zm3MMcW/wAuNGecPLtUGQgB9wCgez/s/QaN4l8efED9q26u0sPDfjE2VloTzSG3gl0+1jVXvnWUhQ91cMyI38UUcRABJzc+Kngj4zftCa7rHwZ8b+FtP0H4SjUbaa51U3iXV9rFhbCKdbWG0CEW5kuFIkmdsrGMIgdg6+1/FT4P2fxH8AWnwxtbhNG8P/aLH7VFDCrM1jZSLJ9mh3fLH5mxULYJVCduGwwAPNP2452X9lb4gRC6Nlb3ljHbXNwrY8q1uZ44p3z0GI2bk8Y61Z/a58dW/wAIf2S/iB4n064TT5LHQZbSxcYwlxdILW2CDp991wPyr3bx34D0D4ieBNb+HfiODzdI12xmsJ0HXypk2HGc8r1BPcV4t4e+GWq/ED4cyfBX9pXw5B4ostGW0jGptJG1nri25PkzyQIySw3C7FaaNk8sOwMbsOFAPyY034UR/D2L9jv4ZaZcX0fi7xDeN4gv9QFzKi22n20Yna0UBlEdufMXK4+bafMJJ5/UH9sm6jPwm8Oa/pV0v2m28YeE57KaJsljLq9vHhHXtJG7KexUkHjNesePv2d/gt8UDoTeP/CNnrX/AAjUTW9gswbbFA4VWhZQQHiYIu6N9ynAyDXHeKPAXiz4pfEXRdL13SItB+G/gG+g1G3jd4ZZtb1C1QNassMe9beztHIdd5WZ5kGESNAZQLH0Wmq6dNqE2kRXcLahbokstusimaNJMhWZAdwViDgkYODivyJ8UeCNP8Uf8FGJfBmh6lqFloHh3wtc6t4naO/uGuNQk1CWWQ2k0jOSsGxowiptKJ8ibV4r9H/CHwmbQfi/44+MWraiL3UvFkGnadbwRReVFZ6dpiyGNGJZmlmeWaV3kyq7diKg2sz9BpHwh+G2g+NvEHxH0nw/bW/ibxVEkOqX6hjNdxxqqqkhJIKhVUYHpQB+Zv7CPxK0T4bfs1/Fj4+a9fzS+ErvXdc1zStPDs00Ol2bmMRQRSMSF3AKAMKCeeev3H8Mfj3qHir4hz/CrxzoEXhzxI+i2/iG0SC8F5BcWE7+W4DmONhLAxQSjbt+ddrHPHEePP2MPhYvwS+IXw2+DXh6x8J6n4z0uayFyqs2CdzRRMzFmWBXYkRqQq5JAFL8J/hL4+uvjv8A8Lv8f6PH4d/srwla+GbK0W6S6lllMqy3szNDmMRZhhEOSHPzlkXgUAfaFFIOgzS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/0f38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkNLTT6UmBSv7pbGznvGUssCM5A6kKM4FeO/Cz426L8Vb28stL026sms7eK4JuPLIZZSQANjMcgqc5r1XxD/yAtQP/AE7y/wDoJr4Y/Y6z/butZOf+JZZ/+hyV+ecQ5/isPneBwdKVoVObmVt7Lv0OHEYmUa1OC2Z9/injpTc8U4dK/Q0dwtFFFMAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/S/fyiiigAooooAKKKTI60ALRSZFLkUAFFJkUZBoAWik3A9D0pcigAopMjGaXNABRSZFGRQAtIaXNNPWgDiPGPijw5pWn32nanqdta3MltIwilmRHIZSAQrEHBIIHFfEP7J+t6Roet6u+sXsNisun2iKZ5FjBZXkyBuIyRnkV7R+1N4BTXPCsXjSzh33eg587ABLWj/f6/88zhx6AHHWviv4eeCZvH3jDT/CoG6K5cm5brsto+ZWz2JBCA+rA9q/mrxA4gx1DibCKNBNw+DX4ubTXtZnzuY4iaxEEltt8z9eLS7tb+3ivbKVLi3mUPHJGwZHU8gqwyCD2Iq3VOztrextYbO1QRQwIsaKowFVRgAD2FWwRX9I0nLlXPufRC0UmRS5rQAoopMigBaKTIoyM4oAWikyKMigBaKM0gIPSgBaKTIpaACiiigAooooAKKKKAP//T/fyiiigAoooPSgBhdeg5PP6V4J8Qf2gtB+HfiV/DF/4X8T6tOkMUxn0vRLu+tCsu7AE8KMm4bTuXOV4z1Gcfxb4c8Z+M/wBorwkJzfWXgnwZps+rMYn8q2v9ZuX+z28cjIwdxbQiVzGw8tjKrHLIMfSYX3oA811T4m6dpnw0i+KEuj6vNZy2kF2LCHT5n1QJcFdqNZBfOEi7/nQruXByMg1gfDD43aN8U9Sv9M0vw74h0V9PhSZ5NZ0i506Jw7FQsbzqodgQSVXJA5PBGfaQpwO360oX/OaAPm3xX+0z4c8JeKr3wld+EPFt9cWNwlsbix8P3t1aOzhCGjnjjMbIN4ywOAQwJG1sekfEf4m6b8M/D9v4i1LR9X1aK4mjgEGk2E2oXKmQZDNDAGcKP4mxgd8V6Tg/nRtJGM0AeWfC/wCLGlfFWw1DUNK0XWtGTTplhZNZ02fTZJGZA+Y0uFUuoBALAYzxnIIHnmn/ALT/AIZ1LxdD4Pi8H+L4rie8ayFzL4evY7IOrunmNctGIxHlCQ+7aRggkMufpbacdaXBoA8g+KHxk0f4VSaamq6Dr2tHUvMCHRdKuNSEfljJ837Or+WD/CWwD0HNbPhD4k6f4x8EzeOrPSdVsLeIXJNpf2M1pfN9lLBgtvKFc7ip8vj5+CuQQa9E2ntxSgEf/roA+cvAH7Snhv4ieJ7PwtpnhLxZpk14jutxqmgXthaoEQOd888aopIIABOSeAMg42fiL8etE+G/iGLw5qHhnxJq00sEdwJtJ0e6v7YLIzLtM0KMgcbcspOQCCeCK9120mD/AJNAHmtz8TdNtPhivxUfRtXayNml79gTT521XZJjCGyC+d5oz80e3cOcjIxXMfDT476H8Utau9E0vw14k0eS0tzcNLrOjXWnQMA4j2pJOiqz5OQoySoLdOa9x2mja3PPWgD5k+IX7R3hTwprWs+DdY8GeLdW+wDyppdP8PXt7azK8SyHypoo2SQbXCnaT8wK9VIHMeFtC0n9nPQNY8d6tpepa0uo3cNtaQ6XYzX95HYucwhoIgzjaWPmnGBjJOBmvsHa3+TS7TXkYvJMNXxNLF1I3nTvyv13Mp0Yykptao8o+F3xa0v4qwajcaVoet6KumvGjjWtMuNNaQyruBiW4VS4A+8RwDwecgefL+1B4ZbxZ/wiK+D/ABf5/wDaB077SfD18LPzFkMfmfaDGI/JJGRLnYVwQcEV9L7Wpdp/ya9exqeUfFD4u6V8KrawuNV0TW9aXUHkRV0XTLjUnj8pS5MiwKxUEDgkYJwByQDo/D74kWHxF8MzeKdO0fVtKghlmi8jVLCaxumMPUrDMFcqf4TjDdsjmvRtpzx0owfrQB84eCv2l/DnjfxPYeF7Dwj4t0+bUJJI1uNR0C9s7VDGrEmSaaNVQHacEnDcYzkV0nxL+OOjfDDVrLR9T8OeIdZkvYGnWTR9IudQhQKwQiR4VYI3IIVsEjJGQDj2vafWgqT0/nQB5xbfErT7n4a/8LPXSNWSz+xtefYXsJl1TYvOz7GR5vmntHt3dsZ4rjvhz8f9C+JXiL/hGtO8MeJtIm+zyXHnatot3YW22MoCnnTIqbzvG1c5IDEDCtj3jac9aNp79KAPnn4gftG+H/h34lvPDOoeE/FeqzWUaSNPpWhXl/bOHTfhJoY2ViBwVByDxjNeg+LviRYeD/BEPjm80fVr+3m+y4tLCxlur4faiqrut4wXG0sPM4+QAlsAGvRdpzx/M0bT2NAHj3wv+M+jfFefUbfSvD+v6KdNjhkZta0m501ZBMXCiI3CJvZdhLAZKgqTjcM8RrH7UPhnRvE954Vk8G+MLiezvfsLT2/h6+ltHk3hN6TrGUeLJz5gOzGSTgGvpgKR1P60bT0zxQB5l8T/AIo6b8LtOsdS1TRdY1pL6c26po+nTajKjLG0m6RIFZkQhSAxGN2FzkgGb4ZfE7Sfijo9zrWk6Xq+kpaXLWskOsadcabMZEAYlI7hEZ05GHUFScgHg16PtNcr450K78S+Dtb8P2Oo3Ok3Go2c8Ed5ZvsuLd3QhZImwcMpwRxQB1gYHpS14z+z74m8VeLvg34S1vxzFJF4iksUi1HzYHtme7t8wzSCKQKyq7oWXjoQRkEGvZqACiiigAooooA//9T9/KKKKACg9KKD0oA+YdI8d+K7n9r/AMTfDabUGfw3YeCtI1SC0KJtS8uNQvIZZd4XeS0cSLgsRxkDJNfTw6V5la/EDwjc/FrUPhfDG/8Awk2n6Na6tM/kjZ9huZ5YIgJu58yJ/l7Yz3r02gAooooAKKKKAEJA60ZryL4+/EG/+FPwW8afEbSbdbvUPD2lXV3awyHCSXEcZ8pXP90vjPtXxl8Qfhv4++CHwVl/aN0/4l+JdU8beF7GHWtZW91F7nSdViRUkvbb+zWxawB0yImgSNkYKc4LBgD9Ks+2aTd7E1+VXj7xB4K179oLxjbfEXxF8R7SOGDRZNNtvCM2umwhjubfzHE66WrQpIXPJk2krg9Oa7xPhVJ41/aN1r4ZT+OvGOnab4J8HeG59OltPEN9DO1xcXF8jzXa+Z5d1IRAm5pUYtyHyOgB+jO4YzRu4zjFfkp41/aM+NHhj4DR6bPPc6/478J/EY+HJrywiVZdU0/QpTqM87xoAoaawhZZkUAFyQq5ZRXvJ+Puq6x+2V4S8IaTNKPA914emt5JRIn2afW7+OLUbWAjOfPisopJMY/1b59KAPvMnHWjIr8kfBnhf4iSfAPxj+0d4P8AiP4jg8b6Jq3iy5ig1DVbi/0S4t9J1a6SO0lsLgyRRwtDCIy0IR1GdrA19Py/tYXmrajFofw98Jrrt7Y6Tpmq6ubvVLbS47U6pCZ47WLzyXluRGNxQqiAMuZAcgAH2du5xRuFfGum/tXXvj2DwdJ8HvBFx4mk8aeH28QWxuL23sobWOGZIZYbmTMmJFZiq+WHDMMZC/NVXwh+1n4g8Qw+E/Emu/De+8O+E/FWqLoK3t1fWslzb6m0skAWS2iZwYGmTykkWQsWYEoF+agD7V3CjcK+LtW/a3uLDTtd+Itl4Jurz4X+GNSn0u/18XUSTbrS4Frd3UNk3zyWtvLvV3LK52MURxgnj/2jf2gfFup/Db40aR8KPCl3qmm+DNE1K01HxAl8tgLe++wtMRYhf3szW6srSMhTaxARmcEKAfoBuFG8V82/CX4tDWfEcfwnns5HutB8IaBrct+8u7z/AO0hNFs2n5gwNuWLEnO6vNPCvxSuvif8ZfhP4mtorjS7PVNG8WiSyFyzQs9leWluryKpEbnglCylkDEAjLAgH29nvSbhmvk7Xv2k9Z8G/EPTfDHjXwgNL0TWdXj0W2vE1W1uL1Zp3aO3uJrCMmRLaZlG1wzMAyl0UbiMX4S/F74veJPjj8WPCfibRIF8K+EtZhs47j7ZEGsLc6dDcoAipvn88SeaxLAx7vLwdmSAfZmaQMD0718baP8AtYXuoWnh3x1feCLmy+Gvi7U7XS9M103cMkzNfzm2s7mazX50trmUoI3DM+JFZ0QBiO0+GXxt8a/E7xZqemab4DksfDuhavqOkXur3V9EA8tkSFe1gUM8ys2EcsU2PkDdgmgD6XooooAKKKKACobiUQQvKRkIpb8hmpqimjWWJo34VgQfoRigDzb4P/EeD4t/D/S/H9rYvpsWpmcC3kcSMnkTPCcsoAOSmRwODg816dXnnwt8C+HPht4J0/wb4TnkudLsDMYXlkEznzpWlbLqADhnNeh0AFFFFABRRRQB/9X9/KKKKACkOMHNLQelAHj1h8J7Wy+OWrfGtb92uNV0Cy0E2eweWkdlcz3Kyh+pZjOwI6YAr2GvlrRz4yH7Y3ihZzf/APCK/wDCEaP9n3CX+z/t/wDaF553l5/ded5fl79vzbdu7jFfUo6UAFFFFABRRRQBxfxG8C6J8TvAXiH4d+JA50vxLYXGn3Plna4iuYzGxU9mAOQexr4zuvgn+0/488D6f8Bfidrfh1/BFstrbanrlkLg6rrNhalSbdrGRPItTOqhJXE02V3YVS2V+/yM98UmM0AeN+Bvh5qXhb4j+OvFc00R0/xMdO+yxIzb4xZW4hIfPA6DGPxrynxX8Lvjdp3xv8S/FL4W3egRR+JdB0zRidWS5ke1k0+W6lWYRwsolGbjlCyZ2/eGePrsLijHvQB8TfDr9lfWPAWu+ApL3X01yz0STxLq+vTzReVNqmv+INoa5SIZWOONWmRELMQjKCWIJPP/AA8/Y8l+GXg3wnpPh+7t59W8MeOJPEsc88kxDWLebZRW7MSXZ4dLkW3j3EqCi/wgAffG3nOaTZgYzQB+eFj+zJ8dbv4aat8Bb7xPpGheCdc1jVry/vtPjmm1efTtW1Ge9ls4zJtigZll8sy4fC5woOGHSeNf2bPFOj/ErWvHHw48N+EvF+n+KIdPhuNP8URvG+nSWMJtxPa3EcM5eN41TdblEywLeaMgD7sCgUHrQB886D8JtW0r4m+H/GjLp1nY6X4Yl0eS2sozDGt1NPHM7Qx9FiJU4BOee9ebw/s7+MYvhR4N8CjULJb/AMOeMbfxFPLiQxPaxam960aYIbzDG2wE8buSCOK+zcZ4oI/SgD89tT/Zs+NH/CG+Kf2d9G1HRYfhf4r1K/vW1Z3nGt2lnqt617eWS2wj8iRyzyLFcGVdisoaJimXteL/ANnb40WWhfFj4V/De48Pv4H+Kq6nL5t+1xDfaTPqdottOqRxq6XKsyl1LPFsyBh+a+/8Y6Ubc85oA+LZfgz8ZvBPxDsPH/wxudDvJNV8LaV4Z1eHVWuIxanSzK8V5amFX87mZw0D7N42kSJghs3wJ+z/APFn4fp8I9VstU0jUtS8GvqtnrccqzQw3VlrVwk081oy7jHNGyBkjcMrfc3LnePuXbRt96APzH/4ZR+NVjFdaPZw+E702fi+PxUniG8+0ya3rIS/N2ltcsEUWrRR7bdZVkmUxRqvlqDgfROlfCv4neEPjb401/QF0nU/A/xOura91c3VxNBqWnyW9gliVtY0ieKdZViQ/O8ew7j8/AH1cEx3p2KAPz98P/s3/GSPwj4J+AevahorfDbwHqWlXkGpwtOdYv7TRbkXVlay2zRiCFw8cSzTLI4kCttjjLDb9P8AwX8Baz8PNA1nS9duIbmfUde1jVEaDcEEOo3ktxEh3c7kRwrdsjI617Hgd+1N2+9AD6KKKACiiigAqteI0lrKijcWRgB65BqzVe6laG3klUZKKzY9cDNAHgX7LXhTX/BHwO8OeGPFOmPo2p2ZvPMtJDGWjEl1K6f6pnTlWB4Y9a+ha8d+AvxE1P4rfCzRfHes2kNjeal9oDwwFjEvkTyQgqX+bkID/LivYqACiiigAooooA//1v38ooooAKQ9DS0UAeI/Gj4uz/BnT9I8VajoFxqnhZ7zydcv7Ul30e1ZG2Xj26qzywiXaspXHlqxkOVU16boPivw14p0C08VeG9TttT0a+iWa3vbaZZbeWNujpIpKlffNbc0Ec6NFKAyOCGUgEMDwQQeo9q5bVfAXg7W/CF14B1TR7Wfw5e272s2n+Uq2zwP96MxrgbT3AoA6C31PT7t/LtbmKZhzhJFY49cAmmy6tptvIYbi7hikXqrSKpA68gkdq8e+HH7NPwF+EWvyeKPhl4F0rw1q0tu9q9zYwCKVoJGVmjJHVSyKSPUCszxv+yf+zf8SfE97408efDvRtd13UvL+03t1bCSaXyo1iTc2edqIqj2AFAHvct7awQi4nmSOJsYdmAU7umCeOe1Ntr+zvNwtJ45in3tjq2M9M4JrifGHwp+HnxA8Gr8PvGugWms+G08gCwuU3wYtseUNuf4MDH0rF+GPwG+DvwYk1GX4VeENO8LNq4iF2bCEReeIN3lh8ddu9sfU+tAHpTaxpSyGJryAOp2lTKmcjjGM9amuL60tADdTRwhjgF3C5PoM45r57vP2Qf2ZNQ8UzeN734baLNr9xetqMl8bUee140nnNMXBzvMnzE+vNeh/Ev4NfC74yafZ6T8UvDNl4os9PmM9vFfReakcrKULqOmdpIoA9DgvbW5VntpUlVDglGDAH0JGarR6xpUzrFDeQvI5wqrKpJPoADk1xXw8+EHwy+E2g3Xhf4beG7Lw3pN7M9xPbWMQijkmkQIzsB1JVQufQAdq878I/sjfs0eAvElj4w8GfDjRtG1rTJDLbXdrbCOaJ2UqSrA8ZViPoaAPf7nUbGzZUu7iOFn5UO6qT9MkZp6XtrJb/ao5kaADJkDgpgdfm6cV5N8TP2ffgt8Zb2x1D4p+DtN8UXGmxtFbPfw+cYkchmCZPAJAJre034S/DfR/h4/wm0zw7Z23g+S3mtG0pI8WrW9xkyxFP7r7juHfJoA7WDVdOupPJtrqGaTBIVJFZsDvgGkuNU062k8q5uooXwPleRVP5Eg1438O/2ZPgD8JfEB8V/DTwJpXhvVzA9sbqygEUphkKl0JB5BKg/hVf4gfsu/s9/FTxHJ4u+I3gHSfEWszRRwtd3kAllMcQwi7ieAo6UAe4veWsVv9qeZFhIB3lgEweh3dKittTsL12jtLmKdkGWEbqxH1AJrzXxp8KvhzrPwmuPhdq3h2yu/CVpZRQRaXJEGtEisgrW6LH0CxFFKDsQK+R/2L9H0iw8S+ILqwsLa0ludNs/NaCFIi+JJThtoGQCxIHbJ9a+UzbiiGFzLDZe4XdW+vayOWriOScKaW59/yaxpUUjxy3kKPGcMrSoCD6EE8fjVme9tbRFe7mSFWOAXYKCfQE96+fPEn7JH7NPjHxPeeNfFPw40bVNd1GcXNxe3FsHnlmGPnZic54FejfEj4Q/DP4waNa+Hvif4csvE2m2U4uobe9iEsaTqjRiQKf4grsPoTX1Z1He299aXYZrSaOdUOCUcMAfQ4zioF1jSnkEKXkLSE7QolUnPpjPWuF+Gvwb+F/wd0270f4XeGrLwxY30wuJ4bGLykkmChN7AHrtAGfSvPtK/ZF/Zn0PxVb+ONJ+HGjWuv2l2L6K+S2AnS6D+Z5ofOd+7nPrQB9A3F/ZWbBbueOEtkje6rkDrjJFOjvbWaE3EUyPEM5dWBXjryOOO9eV/E74B/Br4zz6fc/FTwhp3iiXSllS0a/h87yVmKmQJk8biq5+grb8LfCf4c+CPBL/Dfwl4ftNJ8MOs6HTrePZb7bkkzDaD/GWJP1oA7OHVdNuJFit7uGV26KsisTj0ANLNqen2z+Vc3MUT4zh5FU49cE14h4C/ZZ/Z4+F3iODxd8PPh/pPh/WbZHjju7O3EcqpIMMNwPII65q18RP2ZvgF8WtfXxT8S/AmleJNXSBLZbq9txLKIYyxVAxP3QWYge5oA9qa9tVtxdGVBCQCJCw2YPQ7umKjttTsLxmS1uYpmXkhJFYge4BNcTe/Cf4c6j8PE+E174ftJvB0dtFZLpTR5tRbQ48uLZn7q7Rge1c78Nf2ePgj8HdRvNW+F3gvTfDF5qEQguJLGERNLGrbgrYPIB5oA9Ul1nSoJGinvII3ThlaVFIPuCc1ZnvLa2jEtzKkSE43OwUe3J45r588Yfsjfs0+P/El/wCMPGvw40bWda1RxJdXlzbCSaVgoQFmJ5wqgD0Ar0r4gfCj4c/FXw5F4Q+I3h+08RaLBLHOlpeR+ZCskQKo23PVQxA+tAHbW1/Z3gZrSZJwvB8t1bB9DgmvNPEnxn+F3h7xbovw81fXYH8ReI5TBaadb7rm6YbWLSSRwh2ihG0hpZNqBiFLbmAM/wAM/gr8Kvg1ZX2nfCzwxY+F7bUpEmuY7GLyklkRdqsw6ZA4q/4Q+FHw28AXuo6l4K8Nafol5q88t1eT2tskU1xPM26SSWQDczMeSSeaANfwb4P8OeAvD9p4U8J2YsNKsd/kwhncJ5js7fM5ZjliTyTXVUgXBzS0AFFFFABRRRQB/9f9/KKKKACiiigAoopuT070AOopm78qXdQA6imbu1LuoAdRTcmgNQA6im7qTd6UAPopu7v2PSk3ZoAfTTRuppPftQB8+fGr4vy/Dp49IudDlvLbVbaTy7lJVVA4GGQhh1AIPXkZ9K+K/gv8UIvhTqF9eS6bLqf2q1hgCxMFYGFmPQg53bsADvX338avAY8f+BbzTrZAdStP9JsmPaeMHC57BxlT7GviP9njwAfF/juK/vYWOm6EVupQ4xmfP7mIg91YFmHqor+afEDDZx/rLhVh56P4Hb4b/Ff03PncxVb6xHl+R+lOj3d1faZa3t9bGyuJ4leSEsHMTMMlSw4JHTIrSHSo1IAxTt1f0lSTUUpO7PorD6Kbu/CjNaAOopuaTd2NAD6KbupN3bFAD6Kbupu888dKAJKKZuNLuoAdRTN1OzQAtFFFABRRRQAUUUUAf//Q/fyiiigAoNFBoA888VfE/wAKeEfFPhfwTqs0j614wnmhsLWCNppGW3TfNPIFzsgjBUPI2FVnRScsoPEePPB/x11rxNJfeBviFZ+HdEMMSpZS6Qt3KJl3ea5naVchsrtXaNuDknOBOPC/g69/aIk8XT+IEuvE+meGktItGPlF7Ozu7pme8X5fOUXDxCM5bYfJGBkE17iFHX1oA85v9C+Ilx8OotCsPE8Ft4uW2t431g2IaFrhCpmlFoXwBIAwCbztyOTisH4a+Ffi/oGoXk/xH8cW/im1lhVYIYdMWxMUgbLOWV3LZXjHbrXsgUAYFLtFAHzp4l8DftDah4n1DUPDfxNs9J0WedXtbJ9FSd4IQqBozMZQXJYO27AwGAxxk+ifEHQviHreg29l8P8AxPD4a1NJkaW6mslvFeJR86eWWUAsec54r0faKMCgDy/4a6B8StAsr+L4k+K4PFFxNIrW0kFgLAQxhfmUqHfeS3OeMCuCsfAv7Q8XieHUL/4nWc+ireNLJZLoiK7WxckQibzSQQuF347E454+jcCk2igDyX4leGvivr8lg3w38Y2/hZYRJ9oE2nLfecWxswWdNm3n1zWp4T0P4g6b4Kn0rxX4lh1nxG32ny9SjshbRoXLeQfs4dgfLBGfm+bGeM4r0fA6UbRQB8/eCfBPx60jxFZ33jb4j2uvaTGriezi0dLR5WKYUiUSsVAbnpzWj8QfCPxq1vXkvvAHj218N6WII0a1l0pbxzMGYvJ5pkU4YFQFxxjPOePcMDn3pNoHSgDzR9B+JDfDKPw+vimBPGYs44n1oWA8lroY8yYWZkICtg4TecZ6nHOD8O/CXxl0LWbm7+Ifju28T6dJAUhtodLWyaObepEhkWRsgKCNuOc5zxXtO0UbV9KAPnTxj4G/aF1bxBqd/wCDfibZ6FpVwwNpaS6Il01uojVSGlMymTLhn/h4O3tk9Bq/w18R6b4YvLD4U65b+Fdc1O+S+u76SyF3HIzY88CEuuN+PlO75c9D0r2vaKNoxisZ4enKcZuOsdn2vuDSbueWfDbw98TtAhv1+JHi2DxVJO0Zt2hsFsRAFB3ggO+7ccdelcL/AMIL+0OfE41H/hZtmNF+2mX7D/Yib/svmFhB53m53BMLvx1GcV9G7R35pcCtgPKviX4d+KGvxaevw28W2/hV4JHa6aewW+89CpCKAXTZtODnnI4+mj4E0Tx/ovhybT/HXiWLxFq7ySsl5FZraKiN/q18oMwO31zzXom0DtRgUAfPHhLwP8f9M8SWN94u+JVprWjwuxuLKPRo7d5lKkKolErbcHBJxz+NdB8RvCvxh17VrS5+HXji38MWUcJWeCbTFvTJLuyHDs6bfl4xg17PtFJtFAHnVnofxBi+HI0K78TQz+LfspjOsCyVYftJ6Si13kbR/c3n61yPw98H/G7RPEP2z4geP7XxLpXkSILSHSVsn88lNknmiR+FAbK7ecg8Y590wKTaKAPn7x34K+Pms+Ir6+8C/Eiz8O6VIiC3tJdHS7aJggDM0rSqXy+WAwOMDtmu58XaH8RNS8Ew6R4Q8TwaL4kX7L5mpzWIuo2EbKbjFvvQKZVDBTuOwnOGxg+khQKTYuSfWgDyL4aeGPi1oF5qMnxJ8aW3iq2njhFpHDposGgkUv5rMyyPvDgoAuBtKk5O7C8XqvgT9ou68RXd/pfxQsrLSJbsyQ2baIkjxWxfIiMpmG4hfl34HrivpIKB0o2jrQB5j8StB+JPiCwsIfhp4pg8K3MM7Pcyz2AvxNAY2AjVS6BCHKtu54BGOcjK0K/8UfC/wHrPiL42eK7XWodIE15Jf29g1mIbOJAxDxK8pdhgklcccY4zXse0VT1Gxg1GxuLC4UPFcxvEysMgq6lSCO4INADdL1Ox1rT7XV9KnS6sr2JJoZY2DJJHIoZGUjqCDkGr9eS/A34fX3wo+FXhz4cahfQ6i/h+2+yRzW8TQxeRGxEKKjvIQEj2r949Ow4r1qgAooooAKKKKAP/0f38ooooAKQ9OaWkPSgD540v4Y+JbT9qTX/jFKbc6FqnhLTdEiCuftAu7O9uriQsm3AQpOu0hicgggcE/RFfNulfEjxRd/tXeIvhNNcRnw9pvg/S9ZhiEaiQXd1fXUEjF/vbdkKAL0HXvX0kKACiiigAooooARjgeleS/Ej45fCn4Ry2Nr8RPE1to11qYdrW2ffJczLHjeyQxK8hRdw3MFwMgE8ivWW6V8TfBJLHUf2rvj5qPiACTxLplzollYCVQJYdCawjlj8nIz5L3T3GWHBcMM5GAAfQnh/42fDPxVqnhfSfDmtx6jN4z0261fSWhjkaO6sbJ4kmmWTZsUK00fDEE54BAOPVA2ee1fB/xo8K3/i79rn4TaJofiO+8KAeGPFMkt1pQgFw8K3OnBoFeeOVEVmZWZlTeCgAIBbPJr8UfFVn8HE8K+J/F3iTUvFVt40v/Denz+HrWxOta2tlJLLHAxuI/ssP+jr++uG8sDyydylgKAP0dJPb86buOM1+UV18ZPjnpfwt8e+GrnW9V0bX/CnxE8NaBZ32pLp9zqken6zNp8jJcm2D2kpEd0wUqMlCu47wcb3xU8e/Ff4ML8ffBOl+O9U1s+G/AFn4q0m/1JbV7yzvpZbuCQI0UEcbRk2yuEZDglgPlwAAfp+Gzzml3e9fnzqPij4m/A/4h6at7401Px3p2t+CNd1y4tdWS1UJqWkC2lie3FrBD5UcizOrp8wAVSOck+dfBLxh+1V4lufhn44ksfGF6niGS0ufEb6o/h//AIRmTT76PfLJp6WkzX0QgLK1sWXc6DEw3EkAH3bd/Hr4T6d4Eu/ibqfiGGx8M2OoTaXNezpIkaXkF01lJEQV3ZFwpjzjBPQ4INQfDf8AaG+DPxf1O70b4Z+LLTxBe2EK3E8Vt5hKROzIrHcqjBZWHrkGvz115dSf9jmRNFeBdQPxcIt2nBeETf8ACbnyzIqEMV3YLKCGxkcGvs3xXpP7Tz/BvxZaRatorePZ3Y6XcaHbSWaLbFlyg+3yXKfaSN4V2/d5K5T1APpa81Kx06NJtQuY7ZJJEiVpWCBpJGCogLEZZmICjqTwBmsTUvGnhjSPEuj+DdT1KG31vxBHcyWFozYluEswrXDIMciMOu49tw9a/Kv4p6jH8QfhT4UsofGfi+HV9D+KPhay1Cx12Ozh1PSp7ye2QQuyW4ilEO/7TbzK0i+Y2N7ouwfUviyfxp4E/aU+EvhS18X6tqeia34f8Qx3ttem2dJZ9JiieG6Zlt1fzn+0EPh1QhEwn3sgH2tuJOKNx6ivyE8Ea58eNe+F37PfxAm+MHiI3/xZ1BdN1UNDpbRW9pcWd1cq1un2MKsyNbqglYMSHJKkhcexXHjzxX4N8NfFPwF4n8d+JL6Tw94p0zS9CvdOt7K48Q3X9pwW88WnIZIRbs8kjvGJpETYh3MylS9AH6IXl9a6faS39/OlvbQKzySyMEREXklmbAAAHJJAqaKaOeJJYXDo4DKykEMDyCD7jpX5CeOvFPxL134C/tR/DHx/f69bnwdotrq1gusPp8mpLZ31lJK1ndTWCtbywvJbyBsN5uxiCy/KR9K+NG8d+CfD/wAIvhJ4b8d6qknxD1sW95rt59ll1CCyi0+W8a2tGECwqzmFY1LRMwjLkHfhgAfdO49e1G4/XNflj8SvH3xn8Ay/ED4P6J4/v7q70jWvAsmk67dQ2sl9aW/ijUvsU1ncBYVinEJiZwzIrMkgU8rvb9G/A3hS98HaM+lah4h1HxNO8zzNd6m8TzZk/gHkxxIqL/CAvA70AdtRRRQAUUUUAFVbwsttKUJDBGII65watVFPIsMTStyEBP5DNAHz3+yrr3iHxL8DPDms+Kr+41TU7hr3zbi6JMzhLuVE3EgdFAA46CvomvOfhT8RNM+K/gbTvHmkWk1ha6iZgkNxs81PIleFs+WzLyUOMMeMV6NQAUUUUAFFFFAH/9L9/KKKKACkJABJ6UtFAHmVn4s+H9x8WdS8E2yxjxrZ6Pa39yfs5WX+zJ55Y4M3G3DL5scnyBiVPOBkE+m14lp/wnubP9oLWfjadTVoNW8NWGgiw8khkayu7i587zd2CG8/bs2gjGc84Hto6UAFFFFABRRRQA1sd68E+J37N/ww+K3iK18Z65b32meJbO3+xpq2i6hc6RqLWm7f9nkubN45Hh3EtsYlc84zzXvtJgUAeMeE/gL8NPA+o+GtW8OafLBd+EbG/wBPsJJLqaZhDqcsU12ZWlZjLJLJErtI5LE5OfmbOTr37N3ws8R6JPol3Z3Vt5uty+Io7m0vZ7W9ttTmBV57e4iZZIiysyFVYAoxUgqSD77gAYowKAPmXS/2S/gzpFlqen21hfSW+sXmkaleCfUru4ae/wBElE1rdu8sjM05ZV86QnMoVVcsFAHZ+NPgN8NviBqHijUvFGnyXFx4z0OPw5qZS4ljE2mxSSyrEoQgIQ00h3rhvmxngY9nwKMAUAee3/w28Ian4m0TxdfWZm1Dw/Y3WnWrM7FBa3gQTI6fdfcIl+8OPxNeceBP2Yvhb8N/E1t4j8IjVbNLDzPsWmnWL6TSLLzQVYW2nvMbeMYOFATC84xk19E4HpSEc0AfOep/stfCDV/DniXwlcWN5Fo/irVoddu7aDULmBI9RgmW4E9qUcNblp1Er+UVDPljyTlmjfswfDnQ9G1zQbXUPEk9t4hhjhuDdeJNVu5oxE5dWt5Z7h3gcMfvxspPGegr6O6cUDApX1sOx842n7K3wdtvAGsfDuWxvL6z1+7j1G9vbzUbq51Sa+g2eRdG/lka4E0IjQROHygVQuMV02j/AAH8A6TqHhHWCL/UtS8EWupWmm3moajc3lysOrFPtQllndmmL7Fw0hJXGFIHFe0cU7ApiPEtI/Z/+GGieGfAfg/TNMeLTPhpdJd6HGbiVjbzRwywKWYktJ+7mdSHJ656gGq3ir9nf4YeMYfE0OsWNwH8VX9nqt3Pb3c1tcR39hGkVvcW80TK8EkaxqA0ZB717vSYFAHzv4Y/Zf8AhF4WbxT9m0+5vx4309NN10ajfXF9/acMYdQ90bh3Ly7JGj35z5eE+6qgU4f2VPhSvgP/AIV3fnWNT06K9j1Cznvtav7q/wBPuoY/Kjksb2WZri1KR5VRE6gAsMfM2fpTaDyRS470AfO+kfsxfCTRvC8nhVLG8vIrrV7HXbq7vb+5u9Qu9Q02aOa1muLuZ2mlMbRIFV2I2qExt4r6HwPSlwKKACiiigAooooAKhuIhNC8R6OCv5jFTVVvQzWsqp94owGOuccUAcB8Jfh1p/wo8B6Z4D0q7mv7XTTMUmuAgkbz5XmOdgC4BcgYHTFek188/ssaP4j0H4G+HNL8WQXVtqkJvDLHe7/tAD3UrLu8wlvukYyeBivoagAooooAKKKKAP/T/fyiiigAoPSiigDw/wCNfg34k+JdJ03W/hL4i/sTxT4cuftlrBcs/wDZepAoyPZ3yIC3lyK3yyKC0ThXAYAo29Z+L/G9j8Lx4w8U+D5l8TW9mZ7jQdLuYr2ZrhesFvM/kxyFv4SxUeuK9SpMDGMcUAfP/wAL/jP4v+IHiGXQ9e+FHijwRbpbPOL7WRYfZmdGVRCv2W6mfewYsMrjCnJBwDkeP/jz438GeK7/AMOaR8GPF/iu0s/L2anpg002dxvjVz5Xn3kUnyFijbkHzKcZGCfpcADoMUYHpQB5r408d614U8Dx+LtM8H6t4lvnFuf7I04W5vgZsbgfOliiHlZ+f952OM1hfCj4peJviRJqaeIPhz4g8AiwEXltrf2MC6Mu7Ih+y3M/KbRu3bfvDGecez4GMY4owPSgD5f1L9oHx3YeMJ/DEHwS8Y3tnFe/ZBqkQ037E8fmbPtC7rxZfKx83Me7b/DnivSvip8Rdf8Ah1pljf6B4G1rx3LdzGJ7fRBbGWFQpbzJPtU0ChMjAwxOSOOterYHpRgelAHmHw38fa7478N3Gv614L1jwbcQyyRrp+rC3+1OqDIdfs800e1jwPnzXmXhL4/eN/Evi2x8Naj8FvGHh+zvJmibVL5dO+xwqAxDyeVeSShTjAxGTkjIHNfTm1fQUYHpQB4f8Vfi14o+HV9YWegfDTxH48W9jeR5dEFmUtyhACSm6uIOWzkbd3AOccV1Gk+OdZ1H4dHxzP4R1aw1AW0k/wDYc6wf2lvjziHCSmLzGx8v7zb6t3r0jA9KNq9MCgD57+Gnxq8YePvEZ0PXPhP4o8E24gkmF/rC2Ati6FQIh9lup33tuyuVAwpy2cAwfEf44eMfAnieXw/ovwh8V+MraKKOQahpK6ebVi4yUH2m7hkLL0b5cZ6GvovaB2prBSelAHmXibx9rHh34dL46g8I6pqt75NvK+jW3kfb089lDqfMkSLMIYtJ+86Kdu44B4v4QfHuy+Lmqalplr4fvdH/ALOgiuBLdS2siTCV3UBPs80pBG3J3AAgjBPOPZ/EOP7Cvx/07y/+gGvhr9jr/kO60Sf+YZZ/+hyV8DnvEtfDZzg8BC3JV5r99EcOIxEo1acFs7nsPin9oDx14d8WX3hvT/gl4x161s5/JTUrJdN+x3C8fvIzNexybOf4kB4PavT/AIoeP9c+Hmh2mr6F4K1nxzPcXKwNZ6KLYzxIUZ/Of7VNAnlgrtOG3ZYcYyR6dgYp+B6V98juPKfhb8Rdf+IelX2o694G1rwJLaTiFLfWxaiWddobzE+yzzpsydvLA57Y5PnGk/tAeOdT8YQeF5vgp4xsLOe8+ynVbhdNFlHHvK/aG23jTeXgbv8AV7sfw19OgAdBRtHpQB4r8Vvit4m+HFxpsPh/4ceIfHwv1laR9EWzK2vlFQol+13EHMm47du77pzjjO94Q8ea34o8CP4y1Hwdq3hy+RZ2/sbUBB/aB8kkKMQyyxZlxlMSHqM4OQPTMD0owOmKAPnH4d/HPxp448UW/h/Wfg94s8H2s0budQ1ZdPFqhQZCt9nu5pAzdANvXrVr4mfGvxj4B8SLoWh/CXxT41t2t45jf6OLA2odywMR+1XUD71xk/LjkYPWvoTA7Cjauc4oA8yvvHut2nwyTx9F4O1e41NrSK5OgRiA6oryYzbkGUQ+Ymfm/ebeDhu9cx8Lfi54q+IepX1hr/wy8R+BY7OJZEn1sWYjuGZsFI/slzP8w6ndt46Zr3TavoKMAdBQB8w+Nv2gPHXhTxRqPh/S/gn4x8S21jIEj1HTl002lyCobdF597FJgE7eUHIPXivVPiP481rwL4Yi8QaJ4P1bxlcySxxHTtIFubtQ4JLt9pmhj2pjDfPnJGAa9KwPSjAoA8l+FPxJ8QfEay1C68QeA9b8ByWUyxpDrYtRJcKy7i8f2Weddq9Dkg5riNO8c/H7xd48tdN0rwJD4S8H2F1KL/Utcuo5by8iiZ0C2VnaM20SYV1lmkUhTgx5yB9I4HpRgDkCgBiEng1JRRQAUUUUAFFFFAH/1P38ooooAKKKKACikPSse88QaDYS+RfalbW8g/hkmRG/JiKANmiud/4S7wr/ANBmy/8AAmL/AOKo/wCEu8K/9Bmy/wDAmL/4qgDoqK53/hLvCv8A0GbL/wACYv8A4qj/AIS7wr/0GbL/AMCYv/iqAOiornf+Eu8K/wDQZsv/AAJi/wDiqP8AhLvCv/QZsv8AwJi/+KoA6Kiud/4S7wr/ANBmy/8AAmL/AOKo/wCEu8K/9Bmy/wDAmL/4qgDoqK53/hLvCv8A0GbL/wACYv8A4qj/AIS7wr/0GbL/AMCYv/iqAOiphPzVgf8ACXeFf+gzZf8AgTF/8VTT4t8K9f7Zsv8AwJi/+KoA+av2nl8aaJZ2Xirw3rF3aaew+x3kELgRgyf6qQgqcZOUbHXcPSvjHwHdeME1230bwRfzadfaq0dopgIHGSQWBBysY3OfYGv1C8V3fgbxZ4dv/DmpavZNbahC8L/6THkbh1HzdR1FfKv7O3g/SfDniTWPEXifUbOO40yWTT7XdPFhmB/ezr8x4cbQvoMjvX88cc8BYvFcQ4atQnLknq3d+7b4rdrrbzPAx+BnPERlF6P8D7a0exfTdLtLCS4ku3t41jaaY7pJCowWY9yTya1B0rmx4t8LAYGs2Q/7eYv/AIqnDxd4VA/5DNl/4Exf/FV/QdKkoRUF0PfsdHRXO/8ACXeFf+gzZf8AgTF/8VR/wl3hX/oM2X/gTF/8VWgHRUVzv/CXeFf+gzZf+BMX/wAVR/wl3hX/AKDNl/4Exf8AxVAHRUVzv/CXeFf+gzZf+BMX/wAVR/wl3hX/AKDNl/4Exf8AxVAHRUVzv/CXeFf+gzZf+BMX/wAVR/wl3hX/AKDNl/4Exf8AxVAHRUVzv/CXeFf+gzZf+BMX/wAVR/wl3hX/AKDNl/4Exf8AxVAHRUVzn/CXeFf+gzZ/+BMX/wAVWvZ31lqEX2iwuI7mI8BonDr+a5FAFyiiigAooooAKKKKAP/V/fyiiigAoopD0oA+Uvjdq3i/x3490D9nvwRrFx4dj1ezn1bxDqtk4S9ttJicQrb2sgO6Ga7lbasyglESTaUk2MIdP/Ya/ZNsrZILj4YaNqc3JkutQgN9dzuTlpJricvJJIxyWZmJJrH0L/k/fxhzwPh1oX/p11CvswdKAPlv/hiX9kj/AKJF4a/8FsP+FH/DEv7JH/RIvDX/AILYf8K+pKKAPlv/AIYl/ZI/6JF4a/8ABbD/AIUf8MS/skf9Ei8Nf+C2H/CvqSigD5b/AOGJf2SP+iReGv8AwWw/4Uf8MS/skf8ARIvDX/gth/wr6kooA+W/+GJf2SP+iReGv/BbD/hR/wAMS/skf9Ei8Nf+C2H/AAr6koyKAPlv/hiX9kj/AKJF4a/8FsP+FH/DEv7JH/RIvDX/AILYf8K+pKKAPlv/AIYl/ZI/6JF4a/8ABbD/AIUh/Yl/ZI/6JF4a/wDBbD/hX1LRQB8s/wDDEv7JHT/hUXhr/wAFsX+FL/wxN+yT3+EXhr/wXQ/4V9S0UAfLP/DE37I//RIvDX/gth/wpf8AhiX9kj/okXhr/wAFsP8AhX1JkHpS0AfLf/DEv7JH/RIvDX/gth/wo/4Yl/ZI/wCiReGv/BbD/hX1JSZA70AfLn/DEv7JH/RIvDX/AILYf8KP+GJf2SP+iReGv/BbD/hX1JRkUAfLf/DEv7JH/RIvDX/gth/wo/4Yl/ZI/wCiReGv/BbD/hX1JRQB8t/8MS/skf8ARIvDX/gth/wo/wCGJf2SP+iReGv/AAWw/wCFfUlFAHy3/wAMS/skf9Ei8Nf+C2H/AAo/4Yl/ZI/6JF4a/wDBbD/hX1JRQB8tH9iX9kjH/JIvDX/guh/wrhvGn7J/hz4e6XeePP2WLWP4eeNdKiNxBb6ezwaTqvkjf9k1CzG6F0lVSnmBPMj3bkYGvt6qd+M2c4/6Zv8A+gmgDhvhL8QbP4rfDXwz8R7G1ksYvENhBeG2m4lt3kQF4ZB2eNsqw7EV6LXy/wDsanP7OfhTnODfD8ryYV9QUAFFFFABRRRQB//W/fyiiigAooooA+NNC/5P48Zf9k60L/066hX2WOlfGmhf8n8eMv8AsnWhf+nXUK+yx0oAKKKKACmucDPuKdWH4m1OTRfDup6zFE872FrPcLHGpd3MUbOFVQCSxIwAASTxigD4/sf2w9Cvfg58bPifb2kLz/CLUdasDbeYVS6exXfaZcglftG5VYgHDbgM4r0+2+NV7qN38IW0y0t5LL4kQyTTvubdAFsvtQ8rHB+f5Tu7e9fn/wCB/wBnnxzczfA/RJfDq2/hP4maRY6p8Qba7tiJE1DRJTq1skyvsKyzT3Jil3xkkRAfKRXrfwy0fxNoWmfCDSrrRtQtY/hzq3jDTGMttICLbT0uobOQDbzHNH5flMBhhjbxQB7Vo37W/hTVvhv8YvHytAF+E+o6nYTqGbY5s4w0RY9cuzBW29DkDkVb1j9o7WNa8OfC60+FGk2mueLPirYrqNlHdTvDYWdhHAk11d3DorSFI96oiKNzyMqkqMsPjjwR+zr4+vIPgvBcaPFp+k/Eqys774jWzQyRStd6ZLJq0e5AQiNPcTmK4DqTIp2kkCuk8G6P43+Dlz8Nvifqnhm/1DSPhxc+LfB2qwafayS3Fpod1fefpl5b2sab5oo44II2ESkhWJUEgCgD6/8Ahx8YPiCfinffBX4z6HYaV4hOnnV9KvdJnknsNSsUlEU2BOqSRTwuy+Yh3LhlIY5re+M/xZ8R+DdW8MfD34c6Tba5458ZSziygvZ2gs7e1swr3V5dPGryeVGGVQEUlpHReASw8f8AAOqaj8eP2lbD4z6LoepaX4J8F+HrzSrG91S0n06bUr3VZ4pLjy7W6jSYRQJboA7gbmY4BABOv+0Jb6/4B+L/AMN/2hbLRr7X9D8OW+q6JrcGm273d3a2WrCGVb2O3i3SyrFNbIjrGpbbIXxhCCALpnx8+JnhbxL4n+G3xh8PaZY+JbLQL/xJod1pNzPPp2p2Vj8sqOJkSSCaJ2i3p8wIcbGbaxEPwX+Jf7T3xL8L+CviNqui+D7Pwt4n0+01WZLe9v21CG0u7fz1CRtD5bSgsqkFwo5+Y4wfL9XvtV/aD+JmrfFrwloGq2fhHwZ4H8Q6RZ3WpafcWE+qalrCxOwtrW4RJ2SJLfBZo1DM4CbsHHp/7JPwI8CfD/4E+APE9v4Ri0Lxlc+ENOh1KRoXhuzNJaRNcJMjYYOZB86kAhh0BoA8v8GftYfHaH4UeE/2hviX4L0EfDbxFDaT3k+jX9y2o6TBeTeUtxPBcQrFJBECrzssoKLvOCEyfpTSfj/o2o/tHa/8AZ/s8UuleHbDXoJvMPmTrcSzJOuw8BYVWJtw/wCemDjAz8E+BLrxj8Qf2MvBH7J3hzwVr0HiPVNLsNH1241PSrrT7HS7BnBvZHuLhY1eQwbkiWLeRKV3KAGxrfEH4VfFC+i8e/Gb4ZWk1r4vm8ZjR9Me5t33jQLixttBnDo21zbxyBr1dhUMUDgkE7gD2ub9sPXfEXwRs/iX8P8ASdPn1PU/Hi+DYILuWX7KqTao2nwTyNGN43RmOVgBxuIGeDXrvw/+M/j23+KJ+C/xw8P2Gh+IL6wuNV0i90m6kutN1GztHSO4GZ445IZ4fMRnjYFdrAq7YbHxF8Q/hpJ8JLjXfh34K8HXyeFtA8ZfDnxTB/ZtjLOksEDRwagIUhU+ZJCliHdVy3zrnlhXpvxJ8PfEn9qfxZ4j8YeAdB1PwrpPhvwP4i0LQL/V4ZdKutR1nxBHEC8UMgWeGCBYVXzHRWLs2FwoZgD7K8H/ALRXwM+IHiW58G+CfHGk61rdqsrPaWt0skhWBtspTHDhDwxQnHeuY+Dv7UXwq+NOo69pHhnVIEvtEu7+AwO7b5LbT5vIe6+ZFCxl84yenOcV8nfBPw14b8beJ/ht4d1rXfH0Ws/Dpo9Qi0bU/Dtvp+naVcW1q1q0D30OmxRPGVldVEVy+/rkgE1o6tB4l1z4ffHv9m3Q9P1TSPH2v3Gv3WkTvY3UVjdW16qzRPFqKRm3XfvaIK0iybg3y7cMQD7N8DftBfBL4l+ILnwn4C8a6Xrur2ivI9ra3CvLsjYo7oON6qylSyZAIPpVax/aN+BWreM5Ph1pfjjSrvxHFNNbGyhuVkl8+3QySwjHytLGilmQEsADxxXxR8LvDul/E7WvCtpF4m8fjxJ4Gs7ie007W/D0Gk2WlXb2T2ZglvINNt0kAEhCrDPJG2N2T8pr0n9k34jeF/B/w7+H3wA1XwPr3hvxjoVrFYX1jJod41pa3MCsJrltSSI2bRyspZZRMS+4HvQB6/8AAv8Aav8AhJ8edJ1XU/DGrQQSaQ9488MsoLJYW1zLbx3rNhVWGfymkQk/d685A7vwH8ffgz8T5r628AeMNO12fTYFup47aYM6W7Z2zbSAWiOOHUFT2NfANvZeINS/Z4+MP7Ntr4a1WTx2up+KNUXTpbC5gs9SsLvVpL2KGHUfL+yM11byqqospfJYFQVYD01Nftfjh8ZvA3iv4ZeHdX0zSPAug69BrF1qGjXOk5F9bRxQaWqXkUMkjCVRMfKDIDGPmyQCAfWXw8+Pnwa+K+q3Gh/DXxfp/iW9s7WG9njsJfO8mC4x5byFRhd2eFYhvavYq+bf2RPCg8G/sz/DTw9JpP8AY11aaDYi5tni8mWO5eMNOJF67zISXycls5r6SoAKKKKACql//wAec/8A1zf/ANBNW6qX/wDx5z/9c3/9BNAHzR+xp/ybn4V/3r//ANLZq+oq+Xv2NP8Ak3Pwr/vX/wD6WzV9Q0AFFFFABRRRQB//1/38ooooAKKKD0oA+NNC/wCT+PGP/ZOtC/8ATrqFfZY6V8b+IpLH4eftkaL4v112hsfiR4ZXw5bXD4WBNR0q5lvYoC5P+suIp5Sg6ERN+P2MGX1oAdRSZHrRketAC01hkUuR60ZHrQAzbjp0pNnOeR+NSZHrRketADNpI5FG360/I9aMj1oARRjPvQVzS5HrRketADNnTHWl5x707I9aQsM0AM2jvz/n3oI9P50pKjjIpN69iKNR2DaDgc/nxRs4xjOf89aduXrmnbh60kIZtOf/AK9G09cfrxT8j1oyPWmAzb0PJpduelOyPWjI9aAG7M/5/pSbTjHP50/I9aMj1oAbt/DFPpMj1oyPWgBaKTI9aMj1oAWqd/8A8ec//XN//QTVvcPWvPvil8QPC/ww+H2v+PvF96tlpGiWc1zPK2TwiEhVABLOxwFVQSScAUAeP/sZn/jHPwr/AL1//wCls1fUVfP37LXhfXPB/wAA/BWjeJbRtP1ZrEXd3auQzW014zXDwsw4JjaTaSPSvoGgAooooAKKKKAP/9D9/KKKKACg8jFFFAHC/EH4ceDvin4UvPBXjvTU1PSL3aWjZmR0kjO6OWKRCrxSxsAySIyujAFSCAa+eIP2ZfiRo22y8LfHvxlZ6ZCCsNtdjTL8wx/wIs89mZ3CD5QZHdiPvMTyfsGigD5I/wCGffjT/wBHB+Jv/ADSP/kSj/hn340/9HB+Jv8AwA0j/wCRK+t6KAPkj/hn340/9HB+Jv8AwA0j/wCRKP8Ahn340/8ARwfib/wA0j/5Er63ooA+SP8Ahn340/8ARwfib/wA0j/5Eo/4Z9+NP/Rwfib/AMANI/8AkSvreigD5I/4Z9+NP/Rwfib/AMANI/8AkSj/AIZ9+NP/AEcH4m/8ANI/+RK+t6KAPkj/AIZ9+NP/AEcH4m/8ANI/+RKP+GffjT/0cH4m/wDADSP/AJEr63ooA+SP+GffjT/0cH4m/wDADSP/AJEpD+z98aB1/aD8Tf8AgBpH/wAiV9cU0+lJgfHeofAj4z2FnPqB+P8A4mlFsjSbDY6SA2wZwcWmea8X+EsXxk+MN/dWUfxb17w/9gt4botbw2E/m+cWXY3nWzYC7cgjBJ68cH7Z+IPxK8E+FIbnQvEOqR2V9c2rvHE4bLqwKgg4weeK+Jv2Z/G/hbwJquq3XizUI9OinsLaJGkzgtGzlhwD0BGa/IeKeKo0c/wWHWISh73Or6baXPJxeKUa9Nc1u57qP2fvjRgf8ZB+JvT/AI8dI/8AkSl/4Z9+NP8A0cH4m/8AADSP/kSvqfTNSs9Y0+31XTpPNtbuNZYnwRuRxlTg4PIrQHSv1yFRSSktmetc+Sf+GffjT/0cH4m/8ANI/wDkSj/hn340/wDRwfib/wAANI/+RK+t6KsD5I/4Z9+NP/Rwfib/AMANI/8AkSj/AIZ9+NP/AEcH4m/8ANI/+RK+t6KAPkj/AIZ9+NP/AEcH4m/8ANI/+RKP+GffjT/0cH4m/wDADSP/AJEr63ooA+SP+GffjT/0cH4m/wDADSP/AJEo/wCGffjT/wBHB+Jv/ADSP/kSvreigD5I/wCGffjT/wBHB+Jv/ADSP/kSj/hn340/9HB+Jv8AwA0j/wCRK+t6KAPkc/s+fGnH/Jwfib/wA0j/AORKveH/ANlfSX8Q6f4q+LnjHXfinfaRIk+nw67JbrYWc6Hcs0dlZwwQPKrAFXmWRkIBQqck/VVFADQCOD2p1FFABRRRQAUUUUAf/9H9/KKKKACiiigAozXEfEL4jeC/hZ4UvfGvj3VI9J0exC+ZLJlizuQqRxooLySOxCpGgLMxAAJNfOrftN+P9QSK/wDCfwG8a6vplygeG4lGm6c7qembe9u4p0OOcOin2oA+waK+PP8Aho/4yf8ARuXjH/wM0P8A+T6P+Gj/AIyf9G4+Mf8AwM0T/wCT6APsOivjz/ho/wCMn/RuPjH/AMDNE/8Ak+j/AIaP+Mn/AEbj4x/8DNE/+T6APsOivjz/AIaP+Mn/AEbj4x/8DNE/+T6P+Gj/AIyf9G4+Mf8AwM0T/wCT6APsOivjz/ho/wCMn/RuPjH/AMDNE/8Ak+j/AIaP+Mn/AEbj4x/8DNE/+T6APsOivjz/AIaP+Mn/AEbj4x/8DNE/+T6P+Gj/AIyf9G4+Mf8AwM0T/wCT6APsOmnrXx9/w0f8ZP8Ao3Hxj/4GaJ/8n0n/AA0f8Y/+jcvGP/gZof8A8n0Adl+0p4Ck8UeCjr2nxl9S0DdOoT70luRiaMY68DcB/eUV8SfCPwPJ4+8b2GiDLWKkXN2y9DbREHGf+mrYX3G6vqWX9or4wTRtFJ+zj4wZHGCDeaHgg8Y/4/68o+GPjP4lfDObWZ9O/Z18YyvqlyXjJu9DBitl/wBVCP8AT+iZavxvizwyjmGdYfHL4Pt/Lb79jyMZliqVlP7z9GIY0ijWNFCqgCgDoAOmKmHSvjv/AIaP+Mf/AEbl4x/8DdD/APk+l/4aP+Mf/RuXjH/wM0P/AOT6/Y4xsrLY9c+xKK+PP+Gj/jJ/0bj4x/8AAzRP/k+j/ho/4yf9G4+Mf/AzRP8A5PpgfYdFfHn/AA0f8ZP+jcfGP/gZon/yfR/w0f8AGT/o3Hxj/wCBmif/ACfQB9h0V8ef8NH/ABk/6Nx8Y/8AgZon/wAn0f8ADR/xk/6Nx8Y/+Bmif/J9AH2HRXx5/wANH/GT/o3Hxj/4GaJ/8n0f8NH/ABk/6Nx8Y/8AgZon/wAn0AfYdFfHn/DR/wAZP+jcfGP/AIGaJ/8AJ9H/AA0f8ZP+jcfGP/gZon/yfQB9h0ma+Pf+Gj/jJ/0bl4xH/b5of/yfW14e/ao0Jdf03wr8V/CeufC/U9ZdIbFtdhiNjczyvsjgS/tZJrUTufuRNIrtkYBJxQB9U0U0MCcU6gAooooAKKKKAP/S/fyiiigApD0NLRQB8c+I47D4iftj6N4P12Mz2Pw28Mr4jtYJAGgbUtVupbOKcr/z0t4oJVQ9AJW78j7DCng+1fG+h5P7fHjH/snWhf8Ap11CvssdKAEx70Y96WigBMe9GPelooATHvRj3paQnFABj3ox700OpzjnHWlLY/GgBce9GPek3Y5xxRvFAC496QijdjtTPNTcVyCR2BBP5UAP20bcdKNwo3DvQAYNLj3pCwAz1ozQAuPejHvSFgOtG6gBce9GPek3UbsdqAFx70Y96bvHen0AJj3ox70tFACY96Me9LRQAmPevPPir8PPC/xU+Hmv/D/xnZpf6RrdnNbzRvnjch2upGCrqcMrAgggEGvRKqX/APx5z/8AXN//AEE0AeE/ss+Jtc8XfADwTrPiW8bUdWWxW1u7p1Ctcz2bNbvMQOAZDGWI96+ga+Xv2Nf+TdPCuP71/wD+ls1fUNABRRRQAUUUUAf/0/38ooooAKKKKAPjTQv+T+PGX/ZOtC/9OuoV9ljpXxpoX/J/HjL/ALJ1oX/p11CvssdKACiiigAooooAKa/Ip1IaAPk79m/Uby98d/HuK6uJZks/HTwwrI7Mscf9k6e+xAxIVdzM2BgZJOMk153+0b+1f4s+AHiPU57628J3egaTDFeGwk1yWPxJd2Q2/aZLeyFs0QaMsBGskoV+7rxXUQ/An9oHwn438e+I/hj8R9C0vS/HOsHWXtNR8OzX80ExtYLTaJk1CBSu2BTjyxyTXJfED9kT4g+KU+K+heHfHGm6TonxeY3GqS3GjNeanFObBLNoobg3KJ9mJiRwrRlkUuqMCwdAD0/Vf2krXwnqfxW0/wAX2Mdv/wAK/wBHtvEVgIGd5dR0m6gfy32MBiX7TFJAUUnJ2nOWwPBvE37a3iHRtebwJI/gjQPE2hafYyazB4j1+XS0fVb23jujY6ePIeSZYopU3zMoG51ULndttfGX4cP8WvjX8JvBCveTan4Uijk8Z3Fna3VrpNxpSIl1FbvM4MbtJfW8LRwiR3WMvuIBIb2rxD8CPH2lfEXxR8Qvg74n0zRW8cJDJq9lrOlNqcIv7aFbeG9t2S4gdGEKIrxMTG+1WGxt5YA89tP2p/iH8RtX+H+jfBbwlpl7J4+8I3niZH1jUHt47JrO4ht2ika2jnEiF5goaPP94ZHXD0H4MeGvjD8VvjgfFl7qtrqumaxpsVpeadqt7aPYuNItpc26xyqiqJWLbSuH/jDc19KWfwc1GP40eHvi9fa1HPLonhW88Oy20doIRPLeXVtctcqQ+2MA2+PLCn72dwxg+V69+z38bZPHfj3WvAvxQsvCugfEG7t7i7ij0M3OqW4itIrN/s15Jd+UjskeVZrZghP3SRkgHg+g/tneIfCPw2+GnhnxNq3h+Txnq9lfy6hrfibUf7H0trXSLpbJrktHHIXuLpnVo4lAU4cl1wAe18N/tn+KfHGheFLbwP4f0TWPE+seLrzwffC31eSbSYrm10+TURdW16lvumiaFFbb5YYMShIZSa9Ovv2WZfB3/CBX3wH1u28NXPgTS20IW+q2TapZX+luyyFJkWWCRZxIm9Jlfjc4ZG3Db00nwQ8b6/c/C7W/HPimxvta8A67d61cvYaWbG2vBcWlzaJBFD58hiESXA+dnkLbOQN3AB4Lqf7VHx50Lw38RvFWq+BNBktPg9fNa+IRBq1wXuY0iiu3fT1a3UZW2mjbExUM+UyAu49X+0V+1R4p+B+oPq1vF4Tm8PW+mDVTaahrc1t4gvbeJfMuBZ2KW8iMyrgJ5kqK7nBZetdt4h/Zkudd8F/HXwl/wkEcZ+Mt5NdJK1qzLp4l0+2sdrIJQZseRvyGT723jGTxPjb9knxXr+tfExdA8XWGnaN8W9NtdO1prnSftepwRW1j9gMVlcmdFSF0G9UeN/LkZ2XJbCgHRaz8c/i/4i+K958N/g74Z0S/htPC2meJPtWs6hcWpY6nLcRxW4SCCUc+Qcvn5c/dbpWHpv7TnxH8c6X8N0+H3hLTotc8YXOt6fqdtqt/LHFpl7oLmG7WOSGJzOqyo4T5ULrg/LyK850jwF8eNK/aT1TSfA/iLSNL1DTvht4a068v7zRri6s7m4gur9A9si3cZiMfDmNnlyGAJH3jf1r4NeNPhd4p+Bfgb4Za/E+r2E/iW9vtV1awa7hvLu/jNxeSTRQSQ+V588jMu1wqfdAI+UgG54k/bQ1D4deBNbX4n+H9P0Px7o3iO28MfZTqRXRJbq+thew3Z1CWJHis1tt0srSRB12MqqzFQ2DZfty3TeD/AIn3oj8M+J9X8B+HD4lt5/DertqOl3lurNG8EkhRJYJ0dDkbWUqVZWJ3KvdSfsha5rXhTUdT8V+N/tfxNvfEtv4tt9dg09Y7Kz1Kyt/sdrDHp7yvvtEti0TxySln3swdG2bO48QfBX4pfEH4VeP/AIe/EPxTokk3i7Tzp9pJpmiPbQWSuhWR5Ve6ke4LnDbd6AAYHckA9a+F+r/FHXNMudT+Juj6ZojXDxSWNtp13LeOIHiViLl5IolEgckbUDLgA7jnA9UqnZWptbOC2LBjFGqZAwDtUDP6VcoAKKKKACiiigAqpf8A/HnP/wBc3/8AQTVuql//AMec/wD1zf8A9BNAHzT+xp/ybn4V/wB6/wD/AEtmr6hr5e/Y0/5Nz8K/71//AOls1fUNABRRRQAUUUUAf//U/fyiiigApD0paKAPjPQj/wAZ8eMT6/DrQv8A066hX2ZXyb8cNK8X+A/H+gftFeB9Kn8Q2+j2U+k+JNJsk8y9udIlYTJcWqdZZrOVSwhBy6PJtDOFVrln+2v+ytcQI978TdE0m4IBktNTulsLyBiMmOe2uNksUi9GR1BB4IoA+pqK+ZP+G0P2Tf8Aor/hb/wbW3/xdH/DaH7Jv/RX/C3/AINrb/4ugD6bor5k/wCG0P2Tf+iv+Fv/AAbW3/xdH/DaH7Jv/RX/AAt/4Nrb/wCLoA+m6K+ZP+G0P2Tf+iv+Fv8AwbW3/wAXR/w2h+yb/wBFf8Lf+Da2/wDi6APprHek28YBr5m/4bQ/ZN/6K/4W/wDBtbf/ABdH/DaH7Jv/AEV/wt/4Nrb/AOLoA+mNnvShcV8zf8Nofsm/9Ff8Lf8Ag2tv/i6P+G0P2Tf+iv8Ahb/wbW3/AMXQB9NY96Toa+Zv+G0P2Tf+iv8Ahb/wbW3/AMXSf8Nn/sm/9Ff8Lf8Ag2tv/i6GB9Mn1oHSvmb/AIbO/ZOYhR8XfCxJ4GNWt/8A4qtXU/2rv2bNEWN9b+Jeg6cs2Qhub6OEOV6hd5GcZGcVlKtFSUZSSb2XV+gNrZs+hcc0Y4618yf8Nnfsm/8ARX/C3/g2t/8A4ul/4bP/AGTf+iv+Fv8AwbW3/wAXWoH00VyaTZnua+Z/+G0P2Tf+iv8Ahb/wbW3/AMXR/wANofsm/wDRX/C3/g2tv/i6APprFJtz1NfM3/DaH7Jv/RX/AAt/4Nrb/wCLo/4bQ/ZN/wCiv+Fv/Btbf/F0AfTdFfMn/DaH7Jv/AEV/wt/4Nrb/AOLo/wCG0P2Tf+iv+Fv/AAbW3/xdAH03RXzJ/wANofsm/wDRX/C3/g2tv/i6P+G0P2Tf+iv+Fv8AwbW3/wAXQB9N0V8yf8Nofsm/9Ff8Lf8Ag2tv/i6P+G0P2Tf+iv8Ahb/wbW3/AMXQB9N1Tv8A/jzn/wCub/8AoJr5w/4bQ/ZN/wCiveFv/Btbf/F1wXjz9qrRfHehXXgv9laaD4keNdYR7S1n08mbR9LeRdv2rUb1MRRxxBg/lKxmkAwiNzgA7b9jT/k3TwqP9q+/9LJq+oq84+Enw9svhT8NfDXw4sLmW9i8O2MNobmY5luHjUCSaQ8ZaR8sx9Sa9HoAKKKKACiiigD/1f38ooooAKKKKAG7RWJeeF/Dmoy+fqGl2t1J/elgjdvzIJrdooA5f/hCfBv/AEArD/wFi/8AiaP+EJ8G/wDQCsP/AAFi/wDia6iigDl/+EJ8G/8AQCsP/AWL/wCJo/4Qnwb/ANAKw/8AAWL/AOJrqKKAOX/4Qnwb/wBAKw/8BYv/AImj/hCfBv8A0ArD/wABYv8A4muoooA5f/hCfBv/AEArD/wFi/8AiaP+EJ8G/wDQCsP/AAFi/wDia6iigDl/+EJ8G/8AQCsP/AWL/wCJo/4Qnwb/ANAKw/8AAWL/AOJrqKKAOX/4Qnwb/wBAKw/8BYv/AImmnwT4N/6ANh/4Cxf/ABNdVTDjNFwOC17wb4Ri0W+kj0SxVlt5SCLaLghT/s18W/smaXpmta3rCavZw3qx6daMBPEkmGZ3BI3A8kDk9692+PvxO8YfDs2kOn6fa3OkatDLCZpd4dJwCSp2nGGTLLx/CR3FfF/wr+I+vfDTUriTw5YQ6hc6hDBaLHNvGSrHywu3uzOBX898c8YYShxJg/aOS9lfm0fVaW7nhY7GQjiIX6bn6hDwT4Nx/wAgKw/8BYv/AImnf8IR4N/6AVh/4Cxf/E1p6Q+pPpdq+siMXzRIZxFkRiQjLBcknAPTJrUHSv6Ap1OZKXc929zmP+EJ8G/9AKw/8BYv/iaP+EJ8G/8AQCsP/AWL/wCJrqKK0A5f/hCfBv8A0ArD/wABYv8A4mj/AIQnwb/0ArD/AMBYv/ia6iigDl/+EJ8G/wDQCsP/AAFi/wDiaP8AhCfBv/QCsP8AwFi/+JrqKKAOX/4Qnwb/ANAKw/8AAWL/AOJo/wCEJ8G/9AKw/wDAWL/4muoooA5f/hCfBv8A0ArD/wABYv8A4mj/AIQnwb/0ArD/AMBYv/ia6iigDlj4I8GkY/sGw/8AAWL/AOJras9MsNOi8jT7eO1j/uxIsY/JQKv0UANCgHNOoooAKKKKACiiigD/1v38ooooAKKKQ8DNAC0zevTNfPvxt+LHiXwlf+H/AIcfDPToNY8f+M2nGnxXTMlnZ2lqFN1qF2yAt5MG9FCqN0kjogwCWXhD+z98b9XCX2vftB+JLW/lRTNFpFhpVrYrJj5vIjntLiVUzyA8rsP71AH1/uX1o3L618gf8M1/Fj/o4rxt/wB+NE/+V9H/AAzX8WP+jivG3/fjRP8A5X0AfX+5fWjcvrXyB/wzX8WP+jivG3/fjRP/AJX0f8M1/Fj/AKOK8bf9+NE/+V9AH1/uX1o3L618gf8ADNfxY/6OK8bf9+NE/wDlfR/wzX8WP+jivG3/AH40T/5X0AfX+5fWjcvrXyB/wzX8WP8Ao4rxt/340T/5X0f8M1/Fj/o4rxt/340T/wCV9AH1/uX1o3L618gf8M1/Fj/o4rxt/wB+NE/+V9H/AAzX8WP+jivG3/fjRP8A5X0AfX+5fWmkg96+Qv8Ahmv4sf8ARxXjb/vxon/yvpP+Ga/iv3/aK8bf9+NF/wDlfQB7v8VPBNt8QPBWoeHXIW4dRJbSYz5dxEd0bfmOfUZFfFn7Nfw8k1zxvPr+rW/l2/htyrRsOl9yuw+vlDJ+rA9q9c/4Zr+LGP8Ak4vxt/340X/5X1Qsf2WPiTpxuDY/tB+M4PtUzzy7LfRBvlfG5j/xL+pwK+Bz3gHDY7NMPmNTenuu9vh+5nFXwEalSNR9D7LUgADNPDCvkD/hmz4sf9HFeNv+/Gif/K+l/wCGa/ix/wBHFeNv+/Gif/K+vvrHafX+5fWjcvrXyB/wzX8WP+jivG3/AH40T/5X0f8ADNfxY/6OK8bf9+NE/wDlfQB9f7l9aNy+tfIH/DNfxY/6OK8bf9+NE/8AlfR/wzX8WP8Ao4rxt/340T/5X0AfX+5fWjcvrXyB/wAM1/Fj/o4rxt/340T/AOV9H/DNfxY/6OK8bf8AfjRP/lfQB9f7l9aNy+tfIH/DNfxY/wCjivG3/fjRP/lfR/wzX8WP+jivG3/fjRP/AJX0AfX+5fWjcvrXyB/wzX8WP+jivG3/AH40T/5X0f8ADNfxY/6OK8bf9+NE/wDlfQB9fFhjg0BgTjIr5B/4Zr+LA5/4aK8bf9+NE/8AlfXO+KrP9pD9nXRJfHumeKbv4zeGtKBuNX0nVLW3g1tbNBmWbTZ7GKKKWSNQWFvLHmTnEq4AIB9xUVg+F/E2ieM/Dml+LfDV2l9pOs20V5aTxnKSwToHjdSOzKQa3qACiiigAooooA//1/38ooooAKKKKAPjvS7q4u/27vEllcv5kGm/D3Snt0IB8p7rU7xZmU9RvESBvXaK+wgB1718baF/yfx4y/7J1oX/AKddQr7LHSgAooooAKKKKACiiigAooppJHSgB1FfPvxa/aI8OfBn7Zc+K/DviC50ywhimmv7DTJbu1QSttC748nIbAYAHGR2yRi6h+1D4e0rSrfU9Q8IeJ7eS/v4NNsrWTS3S5vLi4jMqCBGYbgFBLEkYwc9DgA+nKTGa+bW/am+GsXw88YfEO9h1Sxi8BSiDWtOubCWHUbWVhGVH2dwDIGWVSrxlkYZ2sSDWz4H/aH8D+NfGB+HkttqfhvxS1u15Dpus2MtjNc26EB5LdnHlzBMjeI2YpkbgMigD3rHajFRh84PY80bjkZ7/wBKAH4FLUQc445qteXYs7Sa8cFlgR3IXqQgJwM98UAXqK89+F3xG0n4s/Drw38TNAgntdN8T2FvqNvFdKqzpFcIHVZAjOoYA84Yj0Jrvi5FAElFRhiwyDUlABRRRQAUUUUAFFFFAB14NUNSjjksLiORQytFICD0IKkGr9VL/wD485/+ub/+gmgD5p/Y0wP2bvBsCgLFaRXNvCigBUhguZY40UDgBUUKB6CvqGvl79jT/k3Pwr/vX/8A6WzV9Q0AFFFFABRRRQB//9D9/KKKKACiiigD400L/k/jxl/2TrQv/TrqFfZY6V8Z6F/yfz4y/wCydaF/6dL+vswdKACiiigAooooAKKKKACjFFFAHzN+2EpP7OHjVUHJtosAf9d4686/ansbzUovgrYadq8vh+6n8XWgTU4FheWzI066JkQXKvESwBjO5SMOcc4r7A8T+F/DnjTQrzwv4u0y21nSNQTy7i0u4lmgmTOdrxuCrDI6EVieN/hl8PPiXosPhz4heGtO8SaXBIssdrqNrHdQrIgKqwSQMoYAkA9cUAfk38Ub99A+HP7UHw1n8QJ47vdO03Q9YvPEsrQJdSXF5N5a2F2LYJbo0EcCMgRUASQFlB+ZvqP46+JfDvjL4+/A/wAI+Bry31jxb4Zv9Q8RzpaOs7W2lxabPbMZnQnykuJ5Y0UE/vCDjOOPq2w+C/wj0rwPdfDTTPBmj2nhO+3faNKisYUsZdzbm3wKoRstycjk1c8BfCj4ZfCy0uLD4a+FNL8LW92/mTR6ZZw2iyPgDc4iVcnAAyfQelAH5T/BTSPjl8SfBngT4qaPf6ZaeLNU1WyvtQ1q58X6g1zJN9oVdT02XRmgNrH+5WSBbUHET/MNrjcPoT4G+HvB/wAVpfGvxJ+KviPUB4vtfGN/ZyWp1y6so9Ih0u+8rTrWK1jmjSJJrdYpHBT/AEjzCW3K4FfXS/AX4Kx+Ol+J0fgbRV8WrKZxqosYReCZl2GQS7dwcr8pbOSOM4pniH4CfBTxZ4th8eeJvAui6r4jt3ikj1C5sYZblXgOYn8xlJ3RnlDnKnpigD89fF/2PWfhR8d/jP4n8ValpnxF8K6xqsOnLb6tPD/ZD6UR/ZVrb2cbCMi5Xy5HR4nM/m4beoUDv7S1s/jV8Wvi1pnxr1i80+bwbpml2+k6RBqc+lRQWl/pcd1cX4EEkRlke6aSETEkRiPYoU7932prXwQ+D3iPxlbfEPX/AAXpGo+J7MxtDqU9lFJdI0OfLIkZS2U3Hac5GTjqaTx38Dvg78UNTs9Z+I3grR/E1/p6NHbz6jZRXMkaNyVVpFYhSeSOlAH5LfC648d+NLL4N/D22s7LVNH0v4YaJqmn6bfeIr3w1bXd1eNLDezA2MUhunt0SIBCNsHmBurqR7leeDfiGuj/AAB+GvxI8VTzrqvjXWYPtGj6zczO+jR2F/dWdpJfKYpbgrHEkMjyZZsEkl/nr7x1/wCA/wAF/FPhrR/BviPwPo+paH4fCDTbKexieCy2Daot1K4iAHAC4wOK6ew+HHgHS7Tw9Yab4d0+1tvCbF9Iiito0TT2MTQE2ygARExOyfLj5WI6E0Aanhjw1pPg/QrTw5oUTQ2FkpWJHkeZgCSxy8jM7HJJyxJroaKKACiiigAooooAKKKKACql/wD8ec//AFzf/wBBNW6qX/8Ax5z/APXN/wD0E0AfNP7Gn/JufhX/AHr/AP8AS2avqGvl79jT/k3Pwr/vX/8A6WzV9Q0AFFFFABRRRQB//9H9/KKKKACkPSlpD0oA+PLW3Ojft16nfag6xJ4l8AWUFiCfmmk0vUrh7oKD18tbqIn/AHq+xK8O+NHwci+Kun6XqOj6vN4Y8YeF5zeaHrNuqvJZzsux0kib5ZreZfllhbhhggh1Vl8xfxR+21ogTTm8DeDfFDQqqnUItdu9LE7ADc/2R7K4MWTnC+dJgfxUAfX9FfHv/Cffttf9El8Jf+FbP/8AKyj/AIT79tr/AKJL4S/8K2f/AOVlAH2FRXx7/wAJ9+21/wBEl8Jf+FbP/wDKyj/hPv22v+iS+Ev/AArZ/wD5WUAfYVFfHv8Awn37bX/RJfCX/hWz/wDyso/4T79tr/okvhL/AMK2f/5WUAfYVFfHv/Cffttf9El8Jf8AhWz/APyso/4T79tr/okvhL/wrZ//AJWUAfYVFfHv/Cffttf9El8Jf+FbP/8AKyj/AIT79tr/AKJL4S/8K2f/AOVlAH2FSd6+Pv8AhPv22v8AokvhL/wrZ/8A5WUf8J7+21/0SXwl/wCFbP8A/KygD7B6Umc18b3XxE/bUtbeW5n+E3hIRwqXJHiy46AZP/MMrk/DX7Rn7RXj24e1+Hvw98OapJBEs0wudfubMIkhwhXNg+7OGyOMYHrx5eKznDUcRTwtSdqk78q72M5Voxkovdn3ninDpXx7/wAJ7+2z2+EvhL/wrZ//AJWUv/Ce/ttf9El8Jf8AhWz/APysr07GjPsKivj3/hPv22v+iS+Ev/Ctn/8AlZR/wn37bX/RJfCX/hWz/wDyspgfYVFfHv8Awn37bX/RJfCX/hWz/wDyso/4T79tr/okvhL/AMK2f/5WUAfYVFfHv/Cffttf9El8Jf8AhWz/APyso/4T79tr/okvhL/wrZ//AJWUAfYVFfHv/Cffttf9El8Jf+FbP/8AKyj/AIT79tr/AKJL4S/8K2f/AOVlAH2FRXx7/wAJ9+21/wBEl8Jf+FbP/wDKyj/hPv22v+iS+Ev/AArZ/wD5WUAfYVZetXVvY6Te3t3IIoLeCWSR2OFVEQlifYAZr5RPj79tn/okvhL/AMK2f/5WVjeI/hj+0P8AtC6b/wAIj8bLrSvAXge5O3VdI8O3cuoXur2+PmtptQmht/s9vICVlWGPzWGNsygkUAd3+xmjf8M1eB7wf6nUrWW+gJBG+3vJ5LiF8NgjdG6nB5Ga+oKo2Fna6daQafYxLBbWyLFFGgwqIgwqgdgBxV6gAooooAKKKKAP/9L9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApp606mNQwsYviL/kBah/17y/+gmvhj9jn/kOaz/2DLP/ANDkr3D45/FjXvhy9vYx6LFfadq8Esa3DTtGVmUHchUIw+6dw55Abpivi/4R/E29+FuoXdxp2lrqst7BBbLGZDESY2O0LhWyWLhQMDnv1r+fON+LMFS4kwTqSa9lzc2j0utPW/keDjsZCOIhfofrABwKeOlZejzahcaXaT6rClveSxI00aMXVHIyVDEAkDpnAz6VqA5Ffv8ASqKSUl11PeFooorQAooooAKKKKACiiigAooooATApcCiigAooooAKKKKACiiigD/0/38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACmsKdTTxQB5f8AF3wLF8QPA9/oaYF4q+daOf4LiPlD9D90+oJFfFH7OHw+k8S+Om1nUYCtl4dbzHRh/wAvZyqRH3j+Zj77a/SQgH8KxdG8PaRoH219Ktltzf3D3U+0ffmkxuY/XFfnvEHh/hsfmmHzGa1huu/8v3Hn4jL41Ksar6G4BwB6U4dKaBTxxX6CegFFFFMAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/1P38ooooAKKKKACiiigAooooAKKKKAOS8aeNvDngHRW17xPdNbW29YkWOKS4mmlYErFDBCryyyMAdqRqzHHArxDTP2mtCN5bnxl4Q8T+C9J1Dmy1TWNLkis5FIzm4aIyPYk9herDzxw3Fes/FrxBo/hP4XeLfFHiCRotN0jSr26uHWR4mWKGF2Yq8ZDqcDgqQwPQ5r8qP2Lf2qLH4X/BX4d6Z8WP+Em8R3XxB12bTpfEt5m4sYdTnZhFZ+ZcTedIEVNpeGN4gcruyGCgH7KwsroHRgysAQRzkHvUtMXA/lQxGPWgB9JkV8VfGn9pPxx8M/2gfBnwx0PwJrHifSdY0jU9QuRpdtby3V1LbtCka2r3F3BGFt95a534PzxeWW+cDk9c+PnizwD+058RdLPhrxR410i28NeHLyHStGiiuBYvLLf/AGmZknnhjRnVEBCsWcpgA7cgA/QKjiuE+GnxG8I/FjwZp3jzwNe/btH1NWMblGjkR42KSxSxtho5I3Uo6MAysCCMio/ib8SvCPwk8H33jvxxeGz0qw2KxRGlllllcRxQxRIC8ksjsFRFBLEgAUAd/kUmR618qWv7U1vb+CvGPjnxj8NvF/g+y8GaPLrcyatZW0bXdrErOVtnhupYTNhTmJ5EYZBOAc0ab+1n4HuvBer/ABN17QNe8M+DdNtrO5tNV1SyWCPVTfHbFFY26yNdSSlyECNEhZiNgYHNAH1ZmkyK8Q+FnxkvviVfXlhqHw+8T+CTDCtxFJrtpBFFcRMduY3t551D9ykhV8c7cV7De3dvYWc9/ev5dvbxvLIx5Cog3MfwA6UAXsj1oyK+W/hr+1BY/FbTrrW/DXgDxTBo7adNqelahdWdulrrFvH937IyXDsryjBRJ1hYqegIIHM/s3ftKeJ/ip8K7rx1418Ea5pUtjb3F60xsI0hu40nlUW9pDHPLM08SoFkR1Ulvu55wAfZeRSZHTNfMvw+/aa0vxv4nfwRrfgjxN4J8SSafPqtjp+u2cMMl/aW5RZGt3t554t6mRAY3dHGehAJHnv7Mv7T/i74ueFvEWueOPBOr6Ouj3WtOL1raCGxMFjdSRJZj/SZJTeRIm2cMoTzA+xyuKAPtzI6UtfPD/tH+DI/hL4D+MRsNQ/sj4hXGh2thAI4vtMT+IJY4rbzl80IAjSDzNrtgZ27+Ac3wd+0xoXj74gXHg7wt4Q8RXukW2oXelN4kW0i/sX7dY7vPi8zzvPGxlZN7QhCw27skZAPpmiiigAooooAKKKKACiiigAooooAKKKKAP/V/fyiiigAooooAKKKKACiiigAooooA+P/ANu7Qfib4w/Zj8WeBPhFo0ut+JPFIt9MjhjKjbbzzL9pdmdkVVEIcZJ6kcHpXy7bfA/xz8YNV/Z/+H0Xgq78G/Dv4Px2uq6pJqsUUE9xqttCEitrWOKR8+XLvaR8bCSpRmANfrCRkUiqAc+2KAKl1JNb2ss0MJmkRWZY1IUuwBIUFsAEnjJOPWvD/wBnH41yfHz4dN47l8O3HhiWLUb/AE2SzuZI5mEmnzvA5WSIlGG9SCVJG4EAkDJ9v1PTrTV9PudL1CMTW13G8MqEkBkkUqwyOeQcVQ8M+GtA8HaBYeFvC2nQaTpOlwpBa2tsgjhhiQYVEUcAAUAfKfx50rxp4d+PPwu+NGg+Fr/xbo3h/T9f0nUbfS/Le8hbVBavBMscrxho827K2GyCy8EZI4y41/x/8P8A9o/xv8To/hj4i8Q6R4p8MeHbe2/s5LRnjvrJ72WS2lWW4j2vi4QbxmMHOWHGfvoqD1pu3pntQB8l/svaJP8AB/4UR6V8Ubqy8O+IfEOqavr8+my3kO6yGrX0t0luW3BWaJZAjlMrvB2kjBqP9pzSL/4peBtIuvhRPZ+KNf8ABOu6Z4kj0iG8hBv49PkPmW+7cVVmRyY9+FMgUEjqPonxB8O/Afiy7jv/ABR4c07V7mJPLSW7tYp3VM52hnUkDPajw/8ADzwN4SupL3wr4e0/SLiZPLeS0tY4HZCQ20sgBIyAcHuAaAPlD4q+LfiB8dfgJ8U/Auj/AAv8RaDfan4T1CO0/tRbSP7Rf3MTxiziWOeQmRSeXOIz2Y1q/H/4ZePPF/7P3hW18GaWt/4j8HX3hzXV0qWRYPtraLNDcS2gdvkWRxGypuO3dgEgcj7K25znvS4PTtQB4J4I+Nd/4nvpB4n8Ca14D06K1SZ7/X2s7aD7Sz7TaLsuJGaQDJ3AbCBwxNejTeOPBtzE9va6xp+oSyKypbx3cLPMxBxGq7+S3QCtrXfDeg+J7E6Z4k0221WzLK/k3USzR7kPyttcEZHb0rkrT4PfCuxuoL6y8HaPb3FuyvHJHYwK6OvRlYLkEdsUAfE/7P3hXx5oHxngtvh94M8TfDv4WXui3z6xoeuS2smmWertLGLVdKSOaaSL5TKZFiIt8bSBvzVXwhc/tE+Gv2d/GvwY8GeBdW8P/EHQrTX20nVpPsj6bdSm7MlqbWVpifNuIZS0YkjCo6MJCPl3fpSFxz3pCo9OKAPy6+Gvw/1zTv2iPhR450D4feMdN0DTNI1bStW1HxHfG+uze6jFBKkkyy3c7BEeFo5JYxtZ2XAKLuX1b4A6P488H6L40+BHiXwZqlnJe6x4pvbbXAsDaTLbapdS3dswkEhkDMswTaY+GVs8YJ+8NtG3PagD8lU0f42aj8DPgl8Ax8KNet9R8Ca34SXWdTkezWwhh0K9gMk8LC4MsySJGZF2plV+8FbivS7HQPHNl+0jpuvfCL4feJ/A0ep+Ibo+LnuZrT/hHNS0+OJlF+IVnlP2idgnlvEiS/LiXCAA/o/t70bcHpQA+iiigAooooAKKKKACiiigAooooAKKKKAP//W/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//Z" } }, "cell_type": "markdown", "id": "ebd40350", "metadata": {}, "source": [ "![Picture 2.jpg](attachment:f7ad545c-20f0-47d6-8f02-6473dce4f964.jpg)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a01b5609", "metadata": {}, "source": [ "If the ``input_domain`` equals “time”, the inputs $\\mathbf{y}$\n", " are first transformed to resource grids with the [OFDMDemodulator](https://nvlabs.github.io/sionna/phy/api/ofdm/sionna.phy.ofdm.OFDMDemodulator.html). Then channel estimation is performed, e.g., with the help of the [PUSCHLSChannelEstimator](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.PUSCHLSChannelEstimator.html). If ``channel_estimator`` is chosen to be “perfect”, this step is skipped and the input $\\mathbf{h}$ is used instead. Next, MIMO detection is carried out with an arbitrary [OFDMDetector](https://nvlabs.github.io/sionna/phy/api/ofdm/sionna.phy.ofdm.OFDMDetector.html). The resulting LLRs for each layer are then combined to transport blocks with the help of the [LayerDemapper](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.LayerDemapper.html). Finally, the transport blocks are decoded with the [TBDecoder](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.TBDecoder.html).\n", " \n", "If we instantiate a ``PUSCHReceiver`` as done in the next cell, default implementations of all blocks as described in the [API documentation](https://nvlabs.github.io/sionna/phy/api/nr/sionna.phy.nr.PUSCHReceiver.html) are used. \n" ] }, { "cell_type": "code", "execution_count": 32, "id": "0e2c8f36", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.706349Z", "iopub.status.busy": "2026-08-07T09:18:26.706232Z", "iopub.status.idle": "2026-08-07T09:18:26.779029Z", "shell.execute_reply": "2026-08-07T09:18:26.778399Z" } }, "outputs": [ { "data": { "text/plain": [ "LinearDetector(\n", " (_detector): LinearDetector(\n", " (_constellation): Constellation()\n", " (_demapper): Demapper(\n", " (_constellation): Constellation()\n", " (_logits2llrs): SymbolLogits2LLRs()\n", " )\n", " )\n", " (_resource_grid): ResourceGrid(\n", " (_pilot_pattern): PUSCHPilotPattern()\n", " (pilot_pattern): PUSCHPilotPattern()\n", " )\n", " (_removed_nulled_scs): RemoveNulledSubcarriers()\n", ")" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pusch_receiver = PUSCHReceiver(pusch_transmitter)\n", "pusch_receiver._mimo_detector" ] }, { "cell_type": "markdown", "id": "48501379", "metadata": {}, "source": [ "We can also provide custom implementations for each block by providing them as keyword arguments during initialization.\n", "In the folllwing code snippet, we first create an instance of the [KBestDetector](https://nvlabs.github.io/sionna/phy/api/ofdm/sionna.phy.ofdm.KBestDetector.html), which is then used as MIMO detector in the ``PUSCHReceiver``." ] }, { "cell_type": "code", "execution_count": 33, "id": "66c43c7a", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:26.780770Z", "iopub.status.busy": "2026-08-07T09:18:26.780653Z", "iopub.status.idle": "2026-08-07T09:18:27.002391Z", "shell.execute_reply": "2026-08-07T09:18:27.001614Z" } }, "outputs": [], "source": [ "# Create a new PUSCHTransmitter\n", "pusch_transmitter = PUSCHTransmitter([pusch_config, pusch_config_1])\n", "\n", "# Create a StreamManagement instance\n", "rx_tx_association = np.ones([1, pusch_transmitter.resource_grid.num_tx], bool)\n", "stream_management = StreamManagement(rx_tx_association,\n", " pusch_config.num_layers)\n", "\n", "# Get relevant parameters for the detector\n", "num_streams = pusch_transmitter.resource_grid.num_tx \\\n", " * pusch_transmitter.resource_grid.num_streams_per_tx\n", "\n", "k = 32 # Number of canditates for K-Best detection\n", "\n", "k_best = KBestDetector(\"bit\", num_streams, k,\n", " pusch_transmitter.resource_grid,\n", " stream_management,\n", " \"qam\", pusch_config.tb.num_bits_per_symbol)\n", "\n", "# Create a PUSCHReceiver using the KBest detector\n", "pusch_receiver = PUSCHReceiver(pusch_transmitter, mimo_detector=k_best)" ] }, { "cell_type": "markdown", "id": "5decf6b8", "metadata": {}, "source": [ "Next, we test if this receiver works over a simple Rayleigh block fading channel:" ] }, { "cell_type": "code", "execution_count": 34, "id": "0ec8ce0c", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:27.004110Z", "iopub.status.busy": "2026-08-07T09:18:27.003976Z", "iopub.status.idle": "2026-08-07T09:18:28.091765Z", "shell.execute_reply": "2026-08-07T09:18:28.091138Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "BER: 0.0\n" ] } ], "source": [ "num_rx_ant = 16\n", "rayleigh = RayleighBlockFading(num_rx=1,\n", " num_rx_ant=num_rx_ant,\n", " num_tx=pusch_transmitter.resource_grid.num_tx,\n", " num_tx_ant=pusch_config.num_antenna_ports)\n", "\n", "channel = OFDMChannel(rayleigh,\n", " pusch_transmitter.resource_grid,\n", " add_awgn=True,\n", " normalize_channel=True)\n", "\n", "x, b = pusch_transmitter(32)\n", "no = 0.1\n", "y = channel(x, no)\n", "b_hat = pusch_receiver(y, no)\n", "print(\"BER:\", compute_ber(b, b_hat).cpu().numpy())" ] }, { "cell_type": "markdown", "id": "86bebb7b", "metadata": {}, "source": [ "## End-to-end PUSCH Simulations\n", "\n", "We will now implement an end-to-end model that is capable of running PUSCH simulations for many different configurations.\n", "You can use it as a boilerplate template for your own experiments." ] }, { "cell_type": "code", "execution_count": 35, "id": "eb2425de", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:28.095601Z", "iopub.status.busy": "2026-08-07T09:18:28.095315Z", "iopub.status.idle": "2026-08-07T09:18:28.107870Z", "shell.execute_reply": "2026-08-07T09:18:28.107370Z" } }, "outputs": [], "source": [ "class Model(Block):\n", " \"\"\"Simulate PUSCH transmissions over a 3GPP 38.901 model\n", "\n", " This model runs BER simulations for a multiuser MIMO uplink channel\n", " compliant with the 5G NR PUSCH specifications.\n", " You can pick different scenarios, i.e., channel models, perfect or\n", " estimated CSI, as well as different MIMO detectors (LMMSE or KBest).\n", " You can chosse to run simulations in either time (\"time\") or frequency (\"freq\")\n", " domains and configure different user speeds.\n", "\n", " Parameters\n", " ----------\n", " scenario : str, one of [\"umi\", \"uma\", \"rma\"]\n", " 3GPP 38.901 channel model to be used\n", "\n", " perfect_csi : bool\n", " Determines if perfect CSI is assumed or if the CSI is estimated\n", "\n", " domain : str, one of [\"freq\", \"time\"]\n", " Domain in which the simulations are carried out.\n", " Time domain modelling is typically more complex but allows modelling\n", " of realistic effects such as inter-symbol interference of subcarrier\n", " interference due to very high speeds.\n", "\n", " detector : str, one of [\"lmmse\", \"kbest\"]\n", " MIMO detector to be used. Note that each detector has additional\n", " parameters that can be configured in the source code of the _init_ call.\n", "\n", " speed: float\n", " User speed (m/s)\n", "\n", " Input\n", " -----\n", " batch_size : int\n", " Number of simultaneously simulated slots\n", "\n", " ebno_db : float\n", " Signal-to-noise-ratio\n", "\n", " Output\n", " ------\n", " b : [batch_size, num_tx, tb_size], torch.float\n", " Transmitted information bits\n", "\n", " b_hat : [batch_size, num_tx, tb_size], torch.float\n", " Decoded information bits\n", " \"\"\"\n", " def __init__(self,\n", " scenario, # \"umi\", \"uma\", \"rma\"\n", " perfect_csi, # bool\n", " domain, # \"freq\", \"time\"\n", " detector, # \"lmmse\", \"kbest\"\n", " speed # float\n", " ):\n", " super().__init__()\n", " self._scenario = scenario\n", " self._perfect_csi = perfect_csi\n", " self._domain = domain\n", " self._speed = speed\n", "\n", " self._carrier_frequency = 3.5e9\n", " self._subcarrier_spacing = 30e3\n", " self._num_tx = 4\n", " self._num_tx_ant = 4\n", " self._num_layers = 2\n", " self._num_rx_ant = 16\n", " self._mcs_index = 14\n", " self._mcs_table = 1\n", " self._num_prb = 16\n", "\n", " # Create PUSCHConfigs\n", "\n", " # PUSCHConfig for the first transmitter\n", " pusch_config = PUSCHConfig()\n", " pusch_config.carrier.subcarrier_spacing = self._subcarrier_spacing/1000\n", " pusch_config.carrier.n_size_grid = self._num_prb\n", " pusch_config.num_antenna_ports = self._num_tx_ant\n", " pusch_config.num_layers = self._num_layers\n", " pusch_config.precoding = \"codebook\"\n", " pusch_config.tpmi = 1\n", " pusch_config.dmrs.dmrs_port_set = list(range(self._num_layers))\n", " pusch_config.dmrs.config_type = 2\n", " pusch_config.dmrs.length = 2\n", " pusch_config.dmrs.additional_position = 1\n", " pusch_config.dmrs.num_cdm_groups_without_data = 3\n", " pusch_config.tb.mcs_index = self._mcs_index\n", " pusch_config.tb.mcs_table = self._mcs_table\n", "\n", " # Create PUSCHConfigs for the other transmitters by cloning of the first PUSCHConfig\n", " # and modifying the used DMRS ports.\n", " pusch_configs = [pusch_config]\n", " for i in range(1, self._num_tx):\n", " pc = pusch_config.clone()\n", " pc.dmrs.dmrs_port_set = list(range(i*self._num_layers, (i+1)*self._num_layers))\n", " pusch_configs.append(pc)\n", "\n", " # Create PUSCHTransmitter\n", " self._pusch_transmitter = PUSCHTransmitter(pusch_configs, output_domain=self._domain)\n", "\n", " # Create PUSCHReceiver\n", " self._l_min, self._l_max = time_lag_discrete_time_channel(self._pusch_transmitter.resource_grid.bandwidth)\n", "\n", "\n", " rx_tx_association = np.ones([1, self._num_tx], bool)\n", " stream_management = StreamManagement(rx_tx_association,\n", " self._num_layers)\n", "\n", " assert detector in[\"lmmse\", \"kbest\"], \"Unsupported MIMO detector\"\n", " if detector==\"lmmse\":\n", " detector = LinearDetector(equalizer=\"lmmse\",\n", " output=\"bit\",\n", " demapping_method=\"maxlog\",\n", " resource_grid=self._pusch_transmitter.resource_grid,\n", " stream_management=stream_management,\n", " constellation_type=\"qam\",\n", " num_bits_per_symbol=pusch_config.tb.num_bits_per_symbol)\n", " elif detector==\"kbest\":\n", " detector = KBestDetector(output=\"bit\",\n", " num_streams=self._num_tx*self._num_layers,\n", " k=64,\n", " resource_grid=self._pusch_transmitter.resource_grid,\n", " stream_management=stream_management,\n", " constellation_type=\"qam\",\n", " num_bits_per_symbol=pusch_config.tb.num_bits_per_symbol)\n", "\n", " if self._perfect_csi:\n", " self._pusch_receiver = PUSCHReceiver(self._pusch_transmitter,\n", " mimo_detector=detector,\n", " input_domain=self._domain,\n", " channel_estimator=\"perfect\",\n", " l_min = self._l_min)\n", " else:\n", " self._pusch_receiver = PUSCHReceiver(self._pusch_transmitter,\n", " mimo_detector=detector,\n", " input_domain=self._domain,\n", " l_min = self._l_min)\n", "\n", " # Configure antenna arrays\n", " self._ut_array = AntennaArray(\n", " num_rows=1,\n", " num_cols=int(self._num_tx_ant/2),\n", " polarization=\"dual\",\n", " polarization_type=\"cross\",\n", " antenna_pattern=\"omni\",\n", " carrier_frequency=self._carrier_frequency)\n", "\n", " self._bs_array = AntennaArray(num_rows=1,\n", " num_cols=int(self._num_rx_ant/2),\n", " polarization=\"dual\",\n", " polarization_type=\"cross\",\n", " antenna_pattern=\"38.901\",\n", " carrier_frequency=self._carrier_frequency)\n", "\n", " # Configure the channel model\n", " if self._scenario == \"umi\":\n", " self._channel_model = UMi(carrier_frequency=self._carrier_frequency,\n", " o2i_model=\"low\",\n", " ut_array=self._ut_array,\n", " bs_array=self._bs_array,\n", " direction=\"uplink\",\n", " enable_pathloss=False,\n", " enable_shadow_fading=False)\n", " elif self._scenario == \"uma\":\n", " self._channel_model = UMa(carrier_frequency=self._carrier_frequency,\n", " o2i_model=\"low\",\n", " ut_array=self._ut_array,\n", " bs_array=self._bs_array,\n", " direction=\"uplink\",\n", " enable_pathloss=False,\n", " enable_shadow_fading=False)\n", " elif self._scenario == \"rma\":\n", " self._channel_model = RMa(carrier_frequency=self._carrier_frequency,\n", " ut_array=self._ut_array,\n", " bs_array=self._bs_array,\n", " direction=\"uplink\",\n", " enable_pathloss=False,\n", " enable_shadow_fading=False)\n", "\n", " # Configure the actual channel\n", " if domain==\"freq\":\n", " self._channel = OFDMChannel(\n", " self._channel_model,\n", " self._pusch_transmitter.resource_grid,\n", " normalize_channel=True,\n", " return_channel=True)\n", " else:\n", " self._channel = TimeChannel(\n", " self._channel_model,\n", " self._pusch_transmitter.resource_grid.bandwidth,\n", " self._pusch_transmitter.resource_grid.num_time_samples,\n", " l_min=self._l_min,\n", " l_max=self._l_max,\n", " normalize_channel=True,\n", " return_channel=True)\n", "\n", " def new_topology(self, batch_size):\n", " \"\"\"Set new topology\"\"\"\n", " topology = gen_topology(batch_size,\n", " self._num_tx,\n", " self._scenario,\n", " min_ut_velocity=self._speed,\n", " max_ut_velocity=self._speed)\n", "\n", " self._channel_model.set_topology(*topology)\n", "\n", " def call(self, batch_size, ebno_db):\n", " self.new_topology(batch_size)\n", " \n", " x, b = self._pusch_transmitter(batch_size)\n", "\n", " no = ebnodb2no(ebno_db,\n", " self._pusch_transmitter._num_bits_per_symbol,\n", " self._pusch_transmitter._target_coderate,\n", " self._pusch_transmitter.resource_grid)\n", " y, h = self._channel(x, no)\n", " if self._perfect_csi:\n", " b_hat = self._pusch_receiver(y, no, h)\n", " else:\n", " b_hat = self._pusch_receiver(y, no)\n", " return b, b_hat" ] }, { "cell_type": "markdown", "id": "d18f8840", "metadata": {}, "source": [ "We will now compare the PUSCH BLER performance over the 3GPP 38.901 UMi channel model with different detectors and either perfect or imperfect CSI.\n", "Note that these simulations might take some time depending or you available hardware. You can reduce the `batch_size` if the model does not fit into the memory of your GPU. Running the simulations in the time domain will significantly increase the complexity and you might need to decrease the `batch_size` further. The code will also run on CPU if not GPU is available. \n", "\n", "If you do not want to run the simulation yourself, you can skip the next cell and visualize the results in the next cell." ] }, { "cell_type": "code", "execution_count": 36, "id": "ddbb4e6b", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T09:18:28.109365Z", "iopub.status.busy": "2026-08-07T09:18:28.109101Z", "iopub.status.idle": "2026-08-07T10:31:58.281387Z", "shell.execute_reply": "2026-08-07T10:31:58.280348Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EbNo [dB] | BER | BLER | bit errors | num bits | block errors | num blocks | runtime [s] | status\n", "---------------------------------------------------------------------------------------------------------------------------------------\n", " -2.0 | 1.3461e-01 | 9.9609e-01 | 564597 | 4194304 | 510 | 512 | 169.3 |reached target block errors\n", " -1.0 | 9.2472e-02 | 9.1016e-01 | 387854 | 4194304 | 466 | 512 | 206.6 |reached target block errors\n", " 0.0 | 4.2871e-02 | 6.1523e-01 | 179815 | 4194304 | 315 | 512 | 0.6 |reached target block errors\n", " 1.0 | 1.2961e-02 | 2.2852e-01 | 108727 | 8388608 | 234 | 1024 | 1.2 |reached target block errors\n", " 2.0 | 3.2376e-03 | 5.9710e-02 | 95056 | 29360128 | 214 | 3584 | 4.2 |reached target block errors\n", " 3.0 | 9.6231e-04 | 1.6484e-02 | 100905 | 104857600 | 211 | 12800 | 15.0 |reached target block errors\n", " 4.0 | 3.6272e-04 | 5.0331e-03 | 118666 | 327155712 | 201 | 39936 | 47.1 |reached target block errors\n", " 5.0 | 1.2930e-04 | 1.6222e-03 | 131244 | 1015021568 | 201 | 123904 | 148.0 |reached target block errors\n", " 6.0 | 6.0956e-05 | 6.0959e-04 | 164650 | 2701131776 | 201 | 329728 | 395.1 |reached target block errors\n", " 7.0 | 2.3624e-05 | 2.2461e-04 | 99085 | 4194304000 | 115 | 512000 | 614.9 |reached max iterations\n", " 8.0 | 1.2739e-05 | 1.1328e-04 | 53431 | 4194304000 | 58 | 512000 | 615.9 |reached max iterations\n", " 9.0 | 5.3856e-06 | 4.4922e-05 | 22589 | 4194304000 | 23 | 512000 | 616.8 |reached max iterations\n", " 10.0 | 2.2540e-06 | 3.1250e-05 | 9454 | 4194304000 | 16 | 512000 | 616.8 |reached max iterations\n", "EbNo [dB] | BER | BLER | bit errors | num bits | block errors | num blocks | runtime [s] | status\n", "---------------------------------------------------------------------------------------------------------------------------------------\n", " -2.0 | 6.8793e-02 | 8.4570e-01 | 288537 | 4194304 | 433 | 512 | 27.0 |reached target block errors\n", " -1.0 | 3.8123e-02 | 5.3711e-01 | 159901 | 4194304 | 275 | 512 | 51.6 |reached target block errors\n", " 0.0 | 1.8316e-02 | 2.8223e-01 | 153646 | 8388608 | 289 | 1024 | 0.5 |reached target block errors\n", " 1.0 | 9.7353e-03 | 1.4974e-01 | 122499 | 12582912 | 230 | 1536 | 0.7 |reached target block errors\n", " 2.0 | 4.3534e-03 | 6.6732e-02 | 109556 | 25165824 | 205 | 3072 | 1.4 |reached target block errors\n", " 3.0 | 2.1581e-03 | 3.4180e-02 | 108620 | 50331648 | 210 | 6144 | 2.8 |reached target block errors\n", " 4.0 | 8.5905e-04 | 1.3216e-02 | 108093 | 125829120 | 203 | 15360 | 7.1 |reached target block errors\n", " 5.0 | 4.2917e-04 | 6.8194e-03 | 106203 | 247463936 | 206 | 30208 | 13.9 |reached target block errors\n", " 6.0 | 2.8392e-04 | 4.1530e-03 | 113130 | 398458880 | 202 | 48640 | 22.5 |reached target block errors\n", " 7.0 | 1.2117e-04 | 2.0559e-03 | 96560 | 796917760 | 200 | 97280 | 45.1 |reached target block errors\n", " 8.0 | 7.7676e-05 | 1.2056e-03 | 105558 | 1358954496 | 200 | 165888 | 78.3 |reached target block errors\n", " 9.0 | 5.3147e-05 | 6.9879e-04 | 124609 | 2344615936 | 200 | 286208 | 133.1 |reached target block errors\n", " 10.0 | 2.9710e-05 | 3.7109e-04 | 124614 | 4194304000 | 190 | 512000 | 239.3 |reached max iterations\n", "EbNo [dB] | BER | BLER | bit errors | num bits | block errors | num blocks | runtime [s] | status\n", "---------------------------------------------------------------------------------------------------------------------------------------\n", " -2.0 | 1.8271e-01 | 1.0000e+00 | 766353 | 4194304 | 512 | 512 | 44.5 |reached target block errors\n", " -1.0 | 1.5892e-01 | 9.9805e-01 | 666539 | 4194304 | 511 | 512 | 65.6 |reached target block errors\n", " 0.0 | 1.2974e-01 | 9.6094e-01 | 544165 | 4194304 | 492 | 512 | 0.6 |reached target block errors\n", " 1.0 | 9.1209e-02 | 8.9062e-01 | 382560 | 4194304 | 456 | 512 | 0.6 |reached target block errors\n", " 2.0 | 4.4062e-02 | 6.1133e-01 | 184808 | 4194304 | 313 | 512 | 0.6 |reached target block errors\n", " 3.0 | 2.1149e-02 | 2.7051e-01 | 177413 | 8388608 | 277 | 1024 | 1.2 |reached target block errors\n", " 4.0 | 7.9207e-03 | 1.0352e-01 | 132887 | 16777216 | 212 | 2048 | 2.5 |reached target block errors\n", " 5.0 | 5.4709e-03 | 5.1025e-02 | 183572 | 33554432 | 209 | 4096 | 4.9 |reached target block errors\n", " 6.0 | 2.4760e-03 | 2.2135e-02 | 186933 | 75497472 | 204 | 9216 | 11.1 |reached target block errors\n", " 7.0 | 2.0131e-03 | 1.5938e-02 | 211085 | 104857600 | 204 | 12800 | 15.5 |reached target block errors\n", " 8.0 | 1.6902e-03 | 1.2664e-02 | 219772 | 130023424 | 201 | 15872 | 19.2 |reached target block errors\n", " 9.0 | 1.7511e-03 | 1.1604e-02 | 249720 | 142606336 | 202 | 17408 | 21.3 |reached target block errors\n", " 10.0 | 1.5955e-03 | 1.1285e-02 | 240914 | 150994944 | 208 | 18432 | 22.6 |reached target block errors\n", "EbNo [dB] | BER | BLER | bit errors | num bits | block errors | num blocks | runtime [s] | status\n", "---------------------------------------------------------------------------------------------------------------------------------------\n", " -2.0 | 1.4062e-01 | 9.9805e-01 | 589800 | 4194304 | 511 | 512 | 35.0 |reached target block errors\n", " -1.0 | 1.0747e-01 | 9.3945e-01 | 450753 | 4194304 | 481 | 512 | 55.4 |reached target block errors\n", " 0.0 | 7.0386e-02 | 7.8125e-01 | 295219 | 4194304 | 400 | 512 | 0.2 |reached target block errors\n", " 1.0 | 4.1054e-02 | 5.3125e-01 | 172195 | 4194304 | 272 | 512 | 0.2 |reached target block errors\n", " 2.0 | 2.0401e-02 | 2.9492e-01 | 171133 | 8388608 | 302 | 1024 | 0.5 |reached target block errors\n", " 3.0 | 1.1092e-02 | 1.5885e-01 | 139570 | 12582912 | 244 | 1536 | 0.7 |reached target block errors\n", " 4.0 | 7.0736e-03 | 8.5938e-02 | 148345 | 20971520 | 220 | 2560 | 1.2 |reached target block errors\n", " 5.0 | 3.5917e-03 | 4.9072e-02 | 120519 | 33554432 | 201 | 4096 | 2.0 |reached target block errors\n", " 6.0 | 2.5404e-03 | 3.0198e-02 | 138520 | 54525952 | 201 | 6656 | 3.2 |reached target block errors\n", " 7.0 | 2.5406e-03 | 2.3552e-02 | 181152 | 71303168 | 205 | 8704 | 4.2 |reached target block errors\n", " 8.0 | 2.1734e-03 | 1.8601e-02 | 191436 | 88080384 | 200 | 10752 | 5.2 |reached target block errors\n", " 9.0 | 2.1332e-03 | 1.6357e-02 | 214739 | 100663296 | 201 | 12288 | 6.0 |reached target block errors\n", " 10.0 | 1.9118e-03 | 1.3941e-02 | 232542 | 121634816 | 207 | 14848 | 7.2 |reached target block errors\n" ] } ], "source": [ "PUSCH_SIMS = {\n", " \"scenario\" : [\"umi\"],\n", " \"domain\" : [\"freq\"],\n", " \"perfect_csi\" : [True, False],\n", " \"detector\" : [\"kbest\", \"lmmse\"],\n", " \"ebno_db\" : list(range(-2,11)),\n", " \"speed\" : 3.0,\n", " \"batch_size_freq\" : 128,\n", " \"batch_size_time\" : 28, # Reduced batch size from time-domain modeling\n", " \"bler\" : [],\n", " \"ber\" : []\n", " }\n", "\n", "start = time.time()\n", "\n", "for scenario in PUSCH_SIMS[\"scenario\"]:\n", " for domain in PUSCH_SIMS[\"domain\"]:\n", " for perfect_csi in PUSCH_SIMS[\"perfect_csi\"]:\n", " batch_size = PUSCH_SIMS[\"batch_size_freq\"] if domain==\"freq\" else PUSCH_SIMS[\"batch_size_time\"]\n", " for detector in PUSCH_SIMS[\"detector\"]:\n", " model = Model(scenario, perfect_csi, domain, detector, PUSCH_SIMS[\"speed\"])\n", " model._channel_model.allocate_topology_tensors(batch_size=batch_size, num_bs=1, num_ut=model._num_tx)\n", " ber, bler = sim_ber(model,\n", " PUSCH_SIMS[\"ebno_db\"],\n", " batch_size=batch_size,\n", " max_mc_iter=1000,\n", " num_target_block_errors=200,\n", " compile_mode=\"default\",\n", " verbose=True)\n", " PUSCH_SIMS[\"ber\"].append(list(ber.cpu().numpy()))\n", " PUSCH_SIMS[\"bler\"].append(list(bler.cpu().numpy()))\n", "\n", "PUSCH_SIMS[\"duration\"] = time.time() - start" ] }, { "cell_type": "code", "execution_count": 37, "id": "c247baed", "metadata": { "execution": { "iopub.execute_input": "2026-08-07T10:31:58.283771Z", "iopub.status.busy": "2026-08-07T10:31:58.283625Z", "iopub.status.idle": "2026-08-07T10:31:58.630290Z", "shell.execute_reply": "2026-08-07T10:31:58.629374Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Simulation duration: 1.23 [h]\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Uncomment to show precomputed results\n", "#PUSCH_SIMS = eval(\"{'scenario': ['umi'], 'domain': ['freq'], 'perfect_csi': [True, False], 'detector': ['kbest', 'lmmse'], 'ebno_db': [-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'speed': 3.0, 'batch_size_freq': 128, 'batch_size_time': 28, 'bler': [[0.865234375, 0.525390625, 0.236328125, 0.0703125, 0.022894965277777776, 0.0081787109375, 0.0031916920731707315, 0.0011800130208333333, 0.0007274208566108007, 0.000298828125, 0.000189453125, 0.000107421875, 4.6875e-05], [0.501953125, 0.2412109375, 0.13411458333333334, 0.06556919642857142, 0.037109375, 0.021073190789473683, 0.012251420454545454, 0.007244318181818182, 0.0038869121287128713, 0.0027646346830985913, 0.0015751008064516128, 0.0009838684538653367, 0.0007239105504587156], [0.994140625, 0.97265625, 0.849609375, 0.513671875, 0.234375, 0.115234375, 0.05126953125, 0.028878348214285716, 0.023092830882352942, 0.018694196428571428, 0.013671875, 0.012451171875, 0.013739224137931034], [0.919921875, 0.724609375, 0.533203125, 0.2802734375, 0.16536458333333334, 0.08984375, 0.056919642857142856, 0.043619791666666664, 0.035006009615384616, 0.02055921052631579, 0.017578125, 0.018465909090909092, 0.01532451923076923]], 'ber': [[0.08414149284362793, 0.03808903694152832, 0.013622879981994629, 0.00516200065612793, 0.0018940899107191297, 0.0006881306568781534, 0.0002859627328267912, 0.00012890001138051352, 9.374645169220823e-05, 3.3643484115600584e-05, 2.6883602142333983e-05, 1.2900114059448242e-05, 6.676435470581055e-06], [0.032366275787353516, 0.015960693359375, 0.009874105453491211, 0.004354306629725865, 0.00270201943137429, 0.0015692459909539473, 0.0008932893926447088, 0.0005442922765558416, 0.0002903820264457476, 0.00021878598441540356, 0.00013986518306116904, 7.878217911185171e-05, 6.43913898992976e-05], [0.15517663955688477, 0.12702298164367676, 0.08907222747802734, 0.036322832107543945, 0.015564680099487305, 0.008847415447235107, 0.005330264568328857, 0.003527675356183733, 0.0029088469112620633, 0.0025938579014369418, 0.002038750155218716, 0.0017822608351707458, 0.001927071604235419], [0.10343790054321289, 0.06611466407775879, 0.043680429458618164, 0.0217667818069458, 0.013199090957641602, 0.007306861877441406, 0.005208117621285575, 0.004094309277004666, 0.003994941711425781, 0.002383282310084293, 0.0023060985233472743, 0.002356225794011896, 0.002158962763272799]], 'duration': 4399.180883407593}\")\n", "print(\"Simulation duration: {:1.2f} [h]\".format(PUSCH_SIMS[\"duration\"]/3600))\n", "\n", "plt.figure()\n", "plt.title(\"5G NR PUSCH over UMi Channel Model (8x16)\")\n", "plt.xlabel(\"SNR (dB)\")\n", "plt.ylabel(\"BLER\")\n", "plt.grid(which=\"both\")\n", "plt.xlim([PUSCH_SIMS[\"ebno_db\"][0], PUSCH_SIMS[\"ebno_db\"][-1]])\n", "plt.ylim([1e-5, 1.0])\n", "\n", "i = 0\n", "legend = []\n", "for scenario in PUSCH_SIMS[\"scenario\"]:\n", " for domain in PUSCH_SIMS[\"domain\"]:\n", " for perfect_csi in PUSCH_SIMS[\"perfect_csi\"]:\n", " for detector in PUSCH_SIMS[\"detector\"]:\n", " plt.semilogy(PUSCH_SIMS[\"ebno_db\"], PUSCH_SIMS[\"bler\"][i])\n", " i += 1\n", " csi = \"Perf. CSI\" if perfect_csi else \"Imperf. CSI\"\n", " det = \"K-Best\" if detector==\"kbest\" else \"LMMSE\"\n", " legend.append(det + \" \" + csi)\n", "plt.legend(legend);" ] }, { "attachments": {}, "cell_type": "markdown", "id": "3ad298b2", "metadata": {}, "source": [ "Hopefully you have enjoyed this tutorial on Sionna's 5G NR PUSCH module!\n", "\n", "Please have a look at the [API documentation](https://nvlabs.github.io/sionna/phy/api/phy.html) of the various components or the other available [tutorials](https://nvlabs.github.io/sionna/phy/tutorials/index.html) to learn more." ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.12.12" } }, "nbformat": 4, "nbformat_minor": 5 }