Positioning the Outdoor UEs using 5G Urban Micro cell sites based Uplink Time Difference of Arrival (UL-TDoA) method
Uplink Time Difference of Arrival (UL-TDoA) positioning in 5G networks is a technique used to determine the location of a user equipment (UE) by measuring the time difference of arrival of signals transmitted from multiple base stations (gNBs). Here’s an overview of UL-TDoA based positioning in 5G networks:
Principle: UL-TDoA positioning relies on the principle that signals transmitted from the UE reach multiple gNBs at slightly different times due to variations in signal propagation delays. By accurately measuring these time differences of arrival at the gNBs, the UE’s location can be determined using trilateration or multilateration techniques.
Reference Signals: To enable UL-TDoA positioning, the 5G network periodically transmits reference signals from gNBs with known timing and synchronization. These reference signals are received by the UE and used to accurately measure the time of arrival at each gNB.
Measurement Procedure: When the UE needs to determine its position, it measures the time of arrival of the reference signals from multiple neighboring gNBs. These time measurements are typically made using high-precision timing mechanisms, such as GPS or atomic clocks, to achieve sub-meter or even centimeter-level accuracy.
Time Difference Calculation: Once the time of arrival measurements are obtained from multiple gNBs, the UE calculates the time differences between pairs of gNBs. These time differences are then converted into distance differences using the known speed of light in the propagation medium.
Position Calculation: Using the distance differences obtained from the time differences of arrival, along with the known locations of the gNBs, the UE’s position can be calculated using trilateration or multilateration algorithms. These algorithms estimate the UE’s location by intersecting spheres or hyperboloids corresponding to the distance differences from each gNB.
Challenges and Considerations: UL-TDoA positioning in 5G networks faces challenges such as multipath propagation, non-line-of-sight (NLOS) conditions, synchronization errors, and signal interference. Advanced signal processing techniques and robust algorithms are employed to mitigate these challenges and improve the accuracy and reliability of positioning estimates.
Overall, UL-TDoA based positioning in 5G networks offers ultra-accurate location determination capabilities, making it suitable for applications requiring precise positioning, such as emergency services, asset tracking, and indoor navigation.
Table of Content
Import Libraries
Import Basic Python Libraries
[1]:
# from IPython.display import display, HTML
# display(HTML("<style>.container { width:90% !important; }</style>"))
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
# %matplotlib widget
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib as mpl
import numpy as np
import numpy.matlib
import scipy as sp
import scipy.io as spio
import scipy.constants
from scipy import interpolate
Import 5G Toolkit Libraries
[2]:
import sys
sys.path.append("../../../")
from toolkit5G.ChannelModels import AntennaArrays, SimulationLayout, ParameterGenerator, ChannelGenerator
from toolkit5G.ResourceMapping import ResourceMapperSRS
from toolkit5G.ReceiverAlgorithms import ChannelEstimationSRS
from toolkit5G.Positioning import ToAEstimation, PositionEstimation, LeastSquareTDoA, LeastSquareToA
from toolkit5G.ChannelProcessing import AddNoise
Simulation Parameters
Parameters |
Values |
---|---|
Positioning Method |
UL-TDoA |
Parameter Estimation Method |
ESPRIT |
Optimization Method |
Least Squares |
Carrier Frequency |
3.6 GHz |
Bandwidth |
100 MHz |
Subcarrier Spacing |
300 kHz |
Terrain |
Indoor-Factory (UMi) |
Channel State Information |
Zero Forcing + Spline Interpolation |
Reference Signal |
Sounding Reference Signal for Positioning (SRS-P) |
Simulation Type |
System Level Simulation |
[3]:
## Simulation Parameters
propTerrain = "UMi" # Propagation Scenario or Terrain for BS-UE links
carrierFrequency = 3.6*10**9 # Array of two carrier frequencies in GHz
scs = 30*10**3
Nfft = 4096
numOfBSs = 21 # number of BSs
nBSs = np.prod(numOfBSs)
nUEs = 128 # number of UEs
numRBs = 272
numSlots = 1
Generate Wireless Channels
[4]:
## Generate the Wireless Channel
# Antenna Array at UE side
# assuming antenna element type to be "OMNI"
# with 2 panel and 2 single polarized antenna element per panel.
ueAntArray = AntennaArrays(antennaType = "OMNI", centerFrequency = carrierFrequency, arrayStructure = np.array([1,1,2,2,1]))
ueAntArray()
# # Radiation Pattern of Rx antenna element
# ueAntArray.displayAntennaRadiationPattern()
# Antenna Array at BS side
# assuming antenna element type to be "3GPP_38.901", a parabolic antenna
# with 4 panel and 4 single polarized antenna element per panel.
bsAntArray = AntennaArrays(antennaType = "3GPP_38.901", centerFrequency = carrierFrequency, arrayStructure = np.array([1,1,8,4,1]))
bsAntArray()
# # Radiation Pattern of Tx antenna element
# bsAntArray[0].displayAntennaRadiationPattern()
# Layout Parameters
isd = 100 # inter site distance
minDist = 10 # min distance between each UE and BS
ueHt = 1.5 # UE height
bsHt = 10 # BS height
bslayoutType = "Hexagonal" # BS layout type
ueDropType = "Hexagonal" # UE drop type
htDist = "equal" # UE height distribution
ueDist = "random" # UE Distribution per site
nSectorsPerSite = 3 # number of sectors per site
maxNumFloors = 1 # Max number of floors in an indoor object
minNumFloors = 1 # Min number of floors in an indoor object
heightOfRoom = 5.1 # height of room or ceiling in meters
indoorUEfract = 0.5 # Fraction of UEs located indoor
lengthOfIndoorObject = 3 # length of indoor object typically having rectangular geometry
widthOfIndoorObject = 3 # width of indoor object
forceLOS = True # boolen flag if true forces every link to be in LOS state
# forceLOS = False # boolen flag if true forces every link to be in LOS state
# simulation layout object
simLayoutObj = SimulationLayout(numOfBS = numOfBSs,
numOfUE = nUEs,
heightOfBS = bsHt,
heightOfUE = ueHt,
ISD = isd,
layoutType = bslayoutType,
layoutWidth = 30,
layoutLength = 120,
ueDropMethod = ueDropType,
UEdistibution = ueDist,
UEheightDistribution = htDist,
numOfSectorsPerSite = nSectorsPerSite,
ueRoute = None)
simLayoutObj(terrain = propTerrain,
carrierFreq = carrierFrequency,
ueAntennaArray = ueAntArray,
bsAntennaArray = bsAntArray,
indoorUEfraction = indoorUEfract,
heightOfRoom = heightOfRoom,
lengthOfIndoorObject = lengthOfIndoorObject,
widthOfIndoorObject = widthOfIndoorObject,
forceLOS = forceLOS)
# displaying the topology of simulation layout
fig, ax = simLayoutObj.display2DTopology()
ax.set_xlabel("x-coordinates (m)")
ax.set_ylabel("y-coordinates (m)")
ax.set_title("Simulation Topology")
# ax.axhline(y=-0.5*isd*numOfBSs[1], xmin=10/140, xmax=130/140, color="k")
# ax.axhline(y= 0.5*isd*numOfBSs[1], xmin=10/140, xmax=130/140, color="k")
# ax.axvline(x=-0.5*isd*numOfBSs[0], ymin=10/140, ymax=130/140, color="k")
# ax.axvline(x= 0.5*isd*numOfBSs[0], ymin=10/140, ymax=130/140, color="k")
paramGen = simLayoutObj.getParameterGenerator()
print("Channel Parameters Generated!")
# paramGen.displayClusters((0,0,0), rayIndex = 0)
channel = paramGen.getChannel()
print("Channel Coefficient Generated!")
Hf = channel.ofdm(scs, Nfft)[0]
print("OFDM Channel Generated!")
Nt = bsAntArray.numAntennas # Number of BS Antennas
Nr = ueAntArray.numAntennas
[Warning]: Pathloss model for UMi is defined only for 2D distances 'd2D' between 10m and 5Km! Some distances are from outside this interval!
Ignoring for now but might result in unexpected behaviour!
Channel Parameters Generated!
Channel Coefficient Generated!
OFDM Channel Generated!
SRS Configurations
[5]:
## SRS Configurations
purpose = "positioning"
nrofSRS_Ports = 1
transmissionComb = 4
nrofSymbols = 12
startPosition = 2
repetitionFactor = 1
nrOfCyclicShift = 1
groupOrSequenceHopping = "neither"
sequenceId = np.arange(nUEs)
systemFrameNumber = 0
resourceType = "periodic"
subcarrierSpacing = scs
bSRS = 0
cSRS = 61
bHop = 0
freqScalingFactor = 1
startRBIndex = 0
enableStartRBHopping = False
freqDomainShift = 0
freqDomainPosition = 0
srsPeriodicityInSlots = 1
srsOffsetInSlots = 0
betaSRS = 1
resourceGridSizeinRBs = numRBs
Bandwidth = resourceGridSizeinRBs*12*scs
Slot by Slot Simulation
Schedule a certain UEs for SRS transmission in each slot.
Beamform the slot Grid.
Pass the beamformed Grid through the wireless channel.
Consider inter-user interference.
Extract the resource Grid.
Estimate the channel between the scheduled users and each BS.
Estimate the channel using LS estimator.
Interpolate the channel for un-scheduled REs in the slot Grid.
Estimate the time of arrival (ToA) for each UE-BS link.
[6]:
print("*********** Transmission Grid Beamformed *********** ")
numRepetition = 1
numSlotsPerFrame = np.int32(10*(15000/scs))
numUEsPerSlot = transmissionComb
numSlots = np.int32(np.ceil(nUEs*numRepetition/transmissionComb))
frameIndices = np.int32(np.floor(np.arange(numUEsPerSlot*numRepetition)/transmissionComb)%numSlotsPerFrame)
slotIndices = np.int32(np.floor(np.floor(np.arange(numUEsPerSlot*numRepetition)/transmissionComb)/numSlotsPerFrame))
combOffset = np.int32(np.arange(numUEsPerSlot))
ToAe = np.zeros((nBSs,nUEs))
for ns in range(numSlots):
## SRS Grid Generation
srsGrid = np.zeros((numUEsPerSlot, 14, numRBs*12), dtype=np.complex64)
srsObject = np.empty((numUEsPerSlot), dtype=object)
for nue in range(numUEsPerSlot):
srsObject[nue] = ResourceMapperSRS(nrofSRS_Ports, transmissionComb, nrofSymbols, startPosition,
repetitionFactor, nrOfCyclicShift, groupOrSequenceHopping,
sequenceId[nue], combOffset[nue], ns, frameIndices[nue],
resourceType, purpose, subcarrierSpacing)
srsGrid[nue] = srsObject[nue](bSRS, cSRS, bHop, freqScalingFactor, startRBIndex,
enableStartRBHopping, freqDomainShift, freqDomainPosition,
srsPeriodicityInSlots, srsOffsetInSlots, betaSRS,
resourceGridSizeinRBs)[0,0,0]
XGrid = np.zeros((numUEsPerSlot, 14, Nfft), dtype=np.complex64)
bwpOffset = np.random.randint(Nfft-resourceGridSizeinRBs*12)
print("*********** SRS Grid Generated *********** ")
## Load the resource grid to Transmission Grid
XGrid[...,bwpOffset:(bwpOffset+resourceGridSizeinRBs*12)] = srsGrid
print("*********** Transmission Grid Generated *********** ")
del srsGrid
## Beamforming
# Beamforming angles
# Inter-element spacing in vertical and horizontal
Pt_dBm= 23
Pt = 10**(0.1*(Pt_dBm-30))
lamda = 3*10**8/carrierFrequency
d = 0.5/lamda
theta = 0
# Wt = np.sqrt(Pt/Nt)*np.exp(1j*2*np.pi*d*np.cos(theta)/(lamda*Nt)*np.arange(0,Nt))
# Xf = Wt.reshape(-1,1,1)*XGrid1
Xf = (transmissionComb*Pt/Nr)*XGrid[..., np.newaxis].repeat(Nr, axis = -1)
del XGrid
ueIndices = np.arange(ns*numUEsPerSlot, (ns+1)*numUEsPerSlot)
## Pass through channel
Yf = (Hf[:,:,ueIndices].transpose(1,2,0,3,5,4)@Xf[np.newaxis,...,np.newaxis]).sum(1)
print("*********** ["+str(ns)+"]-Passed Through Channel *********** ")
## Add Noise
BoltzmanConst = 1.380649*(10**(-23))
temperature = 300
noisePower = BoltzmanConst*temperature*scs
# noisePower = 0
kppm = 0
fCFO = kppm*(np.random.rand()-0.5)*carrierFrequency*(10**(-6)); # fCFO = CFO*subcarrierSpacing
CFO = (fCFO/scs)/Nfft
##Yf = AddNoise(True)(Y, noisePower, CFO)
# Yf = AddNoise(False)(Y, noisePower, 0) #Added
Yf = np.complex64(Yf + np.sqrt(0.5*noisePower)*(np.random.standard_normal(Yf.shape) + 1j*np.random.standard_normal(Yf.shape)))
print("*********** ["+str(ns)+"]-Noise Added *********** ")
## Extract Resource Grid
rxGrid = Yf[...,bwpOffset:(bwpOffset+resourceGridSizeinRBs*12),:,0].transpose(0,3,1,2)
print("*********** ["+str(ns)+"]-Resource Grid Extracted *********** ")
## Channel Estimation and Interpolation
Hfest = np.zeros((nBSs, numUEsPerSlot, Nt, 14, rxGrid.shape[-1]), dtype = np.complex64)
chEST = ChannelEstimationSRS()
chGrid = rxGrid.reshape(nBSs*Nt,14,-1)[:,np.newaxis,np.newaxis,np.newaxis]
interpolatorType = "Linear" # "Spline", "Linear", "Cubic"
for nue in range(numUEsPerSlot):
print("UE-Index: "+str(ueIndices[nue])+" | slot-Index: "+str(ns))
Hfest[:,nue] = chEST(chGrid, srsObject[nue], interpolatorType)[:,0,0,0].reshape(nBSs,Nt,14,-1)
Hest = Hfest.sum(-2)/14
print("*********** ["+str(ns)+"]-Channel Estimated *********** ")
## ToA Estimation
toaEstimation = ToAEstimation("ESPRIT", Hest[0, 0].T.shape)
Lpath = 2
for nbs in range(nBSs):
for nue in range(numUEsPerSlot):
print("(nbs, nue): ("+str(nbs)+", "+str(ueIndices[nue])+")")
delayEstimates = np.sort(toaEstimation(Hest[nbs, nue].T,
Lpath,
subCarrierSpacing = scs))
delayEstimates = delayEstimates[delayEstimates > 0]
K = Lpath
while((delayEstimates.size==0) or (delayEstimates[0]<=0 and K < 12)):
K = K + 1
delayEstimates = np.sort(toaEstimation(Hest[nbs, nue].T,
numberOfPath = K,
subCarrierSpacing = scs))
delayEstimates = delayEstimates[delayEstimates > 0]
if(delayEstimates.size == 0):
ToAe[nbs, ueIndices[nue]] = 10**-9
else:
ToAe[nbs, ueIndices[nue]] = delayEstimates[0]
print("*********** ["+str(ns)+"]-ToA Estimated *********** ")
*********** Transmission Grid Beamformed ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [0]-Passed Through Channel ***********
*********** [0]-Noise Added ***********
*********** [0]-Resource Grid Extracted ***********
UE-Index: 0 | slot-Index: 0
UE-Index: 1 | slot-Index: 0
UE-Index: 2 | slot-Index: 0
UE-Index: 3 | slot-Index: 0
*********** [0]-Channel Estimated ***********
(nbs, nue): (0, 0)
(nbs, nue): (0, 1)
(nbs, nue): (0, 2)
(nbs, nue): (0, 3)
(nbs, nue): (1, 0)
(nbs, nue): (1, 1)
(nbs, nue): (1, 2)
(nbs, nue): (1, 3)
(nbs, nue): (2, 0)
(nbs, nue): (2, 1)
(nbs, nue): (2, 2)
(nbs, nue): (2, 3)
(nbs, nue): (3, 0)
(nbs, nue): (3, 1)
(nbs, nue): (3, 2)
(nbs, nue): (3, 3)
(nbs, nue): (4, 0)
(nbs, nue): (4, 1)
(nbs, nue): (4, 2)
(nbs, nue): (4, 3)
(nbs, nue): (5, 0)
(nbs, nue): (5, 1)
(nbs, nue): (5, 2)
(nbs, nue): (5, 3)
(nbs, nue): (6, 0)
(nbs, nue): (6, 1)
(nbs, nue): (6, 2)
(nbs, nue): (6, 3)
(nbs, nue): (7, 0)
(nbs, nue): (7, 1)
(nbs, nue): (7, 2)
(nbs, nue): (7, 3)
(nbs, nue): (8, 0)
(nbs, nue): (8, 1)
(nbs, nue): (8, 2)
(nbs, nue): (8, 3)
(nbs, nue): (9, 0)
(nbs, nue): (9, 1)
(nbs, nue): (9, 2)
(nbs, nue): (9, 3)
(nbs, nue): (10, 0)
(nbs, nue): (10, 1)
(nbs, nue): (10, 2)
(nbs, nue): (10, 3)
(nbs, nue): (11, 0)
(nbs, nue): (11, 1)
(nbs, nue): (11, 2)
(nbs, nue): (11, 3)
(nbs, nue): (12, 0)
(nbs, nue): (12, 1)
(nbs, nue): (12, 2)
(nbs, nue): (12, 3)
(nbs, nue): (13, 0)
(nbs, nue): (13, 1)
(nbs, nue): (13, 2)
(nbs, nue): (13, 3)
(nbs, nue): (14, 0)
(nbs, nue): (14, 1)
(nbs, nue): (14, 2)
(nbs, nue): (14, 3)
(nbs, nue): (15, 0)
(nbs, nue): (15, 1)
(nbs, nue): (15, 2)
(nbs, nue): (15, 3)
(nbs, nue): (16, 0)
(nbs, nue): (16, 1)
(nbs, nue): (16, 2)
(nbs, nue): (16, 3)
(nbs, nue): (17, 0)
(nbs, nue): (17, 1)
(nbs, nue): (17, 2)
(nbs, nue): (17, 3)
(nbs, nue): (18, 0)
(nbs, nue): (18, 1)
(nbs, nue): (18, 2)
(nbs, nue): (18, 3)
(nbs, nue): (19, 0)
(nbs, nue): (19, 1)
(nbs, nue): (19, 2)
(nbs, nue): (19, 3)
(nbs, nue): (20, 0)
(nbs, nue): (20, 1)
(nbs, nue): (20, 2)
(nbs, nue): (20, 3)
*********** [0]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [1]-Passed Through Channel ***********
*********** [1]-Noise Added ***********
*********** [1]-Resource Grid Extracted ***********
UE-Index: 4 | slot-Index: 1
UE-Index: 5 | slot-Index: 1
UE-Index: 6 | slot-Index: 1
UE-Index: 7 | slot-Index: 1
*********** [1]-Channel Estimated ***********
(nbs, nue): (0, 4)
(nbs, nue): (0, 5)
(nbs, nue): (0, 6)
(nbs, nue): (0, 7)
(nbs, nue): (1, 4)
(nbs, nue): (1, 5)
(nbs, nue): (1, 6)
(nbs, nue): (1, 7)
(nbs, nue): (2, 4)
(nbs, nue): (2, 5)
(nbs, nue): (2, 6)
(nbs, nue): (2, 7)
(nbs, nue): (3, 4)
(nbs, nue): (3, 5)
(nbs, nue): (3, 6)
(nbs, nue): (3, 7)
(nbs, nue): (4, 4)
(nbs, nue): (4, 5)
(nbs, nue): (4, 6)
(nbs, nue): (4, 7)
(nbs, nue): (5, 4)
(nbs, nue): (5, 5)
(nbs, nue): (5, 6)
(nbs, nue): (5, 7)
(nbs, nue): (6, 4)
(nbs, nue): (6, 5)
(nbs, nue): (6, 6)
(nbs, nue): (6, 7)
(nbs, nue): (7, 4)
(nbs, nue): (7, 5)
(nbs, nue): (7, 6)
(nbs, nue): (7, 7)
(nbs, nue): (8, 4)
(nbs, nue): (8, 5)
(nbs, nue): (8, 6)
(nbs, nue): (8, 7)
(nbs, nue): (9, 4)
(nbs, nue): (9, 5)
(nbs, nue): (9, 6)
(nbs, nue): (9, 7)
(nbs, nue): (10, 4)
(nbs, nue): (10, 5)
(nbs, nue): (10, 6)
(nbs, nue): (10, 7)
(nbs, nue): (11, 4)
(nbs, nue): (11, 5)
(nbs, nue): (11, 6)
(nbs, nue): (11, 7)
(nbs, nue): (12, 4)
(nbs, nue): (12, 5)
(nbs, nue): (12, 6)
(nbs, nue): (12, 7)
(nbs, nue): (13, 4)
(nbs, nue): (13, 5)
(nbs, nue): (13, 6)
(nbs, nue): (13, 7)
(nbs, nue): (14, 4)
(nbs, nue): (14, 5)
(nbs, nue): (14, 6)
(nbs, nue): (14, 7)
(nbs, nue): (15, 4)
(nbs, nue): (15, 5)
(nbs, nue): (15, 6)
(nbs, nue): (15, 7)
(nbs, nue): (16, 4)
(nbs, nue): (16, 5)
(nbs, nue): (16, 6)
(nbs, nue): (16, 7)
(nbs, nue): (17, 4)
(nbs, nue): (17, 5)
(nbs, nue): (17, 6)
(nbs, nue): (17, 7)
(nbs, nue): (18, 4)
(nbs, nue): (18, 5)
(nbs, nue): (18, 6)
(nbs, nue): (18, 7)
(nbs, nue): (19, 4)
(nbs, nue): (19, 5)
(nbs, nue): (19, 6)
(nbs, nue): (19, 7)
(nbs, nue): (20, 4)
(nbs, nue): (20, 5)
(nbs, nue): (20, 6)
(nbs, nue): (20, 7)
*********** [1]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [2]-Passed Through Channel ***********
*********** [2]-Noise Added ***********
*********** [2]-Resource Grid Extracted ***********
UE-Index: 8 | slot-Index: 2
UE-Index: 9 | slot-Index: 2
UE-Index: 10 | slot-Index: 2
UE-Index: 11 | slot-Index: 2
*********** [2]-Channel Estimated ***********
(nbs, nue): (0, 8)
(nbs, nue): (0, 9)
(nbs, nue): (0, 10)
(nbs, nue): (0, 11)
(nbs, nue): (1, 8)
(nbs, nue): (1, 9)
(nbs, nue): (1, 10)
(nbs, nue): (1, 11)
(nbs, nue): (2, 8)
(nbs, nue): (2, 9)
(nbs, nue): (2, 10)
(nbs, nue): (2, 11)
(nbs, nue): (3, 8)
(nbs, nue): (3, 9)
(nbs, nue): (3, 10)
(nbs, nue): (3, 11)
(nbs, nue): (4, 8)
(nbs, nue): (4, 9)
(nbs, nue): (4, 10)
(nbs, nue): (4, 11)
(nbs, nue): (5, 8)
(nbs, nue): (5, 9)
(nbs, nue): (5, 10)
(nbs, nue): (5, 11)
(nbs, nue): (6, 8)
(nbs, nue): (6, 9)
(nbs, nue): (6, 10)
(nbs, nue): (6, 11)
(nbs, nue): (7, 8)
(nbs, nue): (7, 9)
(nbs, nue): (7, 10)
(nbs, nue): (7, 11)
(nbs, nue): (8, 8)
(nbs, nue): (8, 9)
(nbs, nue): (8, 10)
(nbs, nue): (8, 11)
(nbs, nue): (9, 8)
(nbs, nue): (9, 9)
(nbs, nue): (9, 10)
(nbs, nue): (9, 11)
(nbs, nue): (10, 8)
(nbs, nue): (10, 9)
(nbs, nue): (10, 10)
(nbs, nue): (10, 11)
(nbs, nue): (11, 8)
(nbs, nue): (11, 9)
(nbs, nue): (11, 10)
(nbs, nue): (11, 11)
(nbs, nue): (12, 8)
(nbs, nue): (12, 9)
(nbs, nue): (12, 10)
(nbs, nue): (12, 11)
(nbs, nue): (13, 8)
(nbs, nue): (13, 9)
(nbs, nue): (13, 10)
(nbs, nue): (13, 11)
(nbs, nue): (14, 8)
(nbs, nue): (14, 9)
(nbs, nue): (14, 10)
(nbs, nue): (14, 11)
(nbs, nue): (15, 8)
(nbs, nue): (15, 9)
(nbs, nue): (15, 10)
(nbs, nue): (15, 11)
(nbs, nue): (16, 8)
(nbs, nue): (16, 9)
(nbs, nue): (16, 10)
(nbs, nue): (16, 11)
(nbs, nue): (17, 8)
(nbs, nue): (17, 9)
(nbs, nue): (17, 10)
(nbs, nue): (17, 11)
(nbs, nue): (18, 8)
(nbs, nue): (18, 9)
(nbs, nue): (18, 10)
(nbs, nue): (18, 11)
(nbs, nue): (19, 8)
(nbs, nue): (19, 9)
(nbs, nue): (19, 10)
(nbs, nue): (19, 11)
(nbs, nue): (20, 8)
(nbs, nue): (20, 9)
(nbs, nue): (20, 10)
(nbs, nue): (20, 11)
*********** [2]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [3]-Passed Through Channel ***********
*********** [3]-Noise Added ***********
*********** [3]-Resource Grid Extracted ***********
UE-Index: 12 | slot-Index: 3
UE-Index: 13 | slot-Index: 3
UE-Index: 14 | slot-Index: 3
UE-Index: 15 | slot-Index: 3
*********** [3]-Channel Estimated ***********
(nbs, nue): (0, 12)
(nbs, nue): (0, 13)
(nbs, nue): (0, 14)
(nbs, nue): (0, 15)
(nbs, nue): (1, 12)
(nbs, nue): (1, 13)
(nbs, nue): (1, 14)
(nbs, nue): (1, 15)
(nbs, nue): (2, 12)
(nbs, nue): (2, 13)
(nbs, nue): (2, 14)
(nbs, nue): (2, 15)
(nbs, nue): (3, 12)
(nbs, nue): (3, 13)
(nbs, nue): (3, 14)
(nbs, nue): (3, 15)
(nbs, nue): (4, 12)
(nbs, nue): (4, 13)
(nbs, nue): (4, 14)
(nbs, nue): (4, 15)
(nbs, nue): (5, 12)
(nbs, nue): (5, 13)
(nbs, nue): (5, 14)
(nbs, nue): (5, 15)
(nbs, nue): (6, 12)
(nbs, nue): (6, 13)
(nbs, nue): (6, 14)
(nbs, nue): (6, 15)
(nbs, nue): (7, 12)
(nbs, nue): (7, 13)
(nbs, nue): (7, 14)
(nbs, nue): (7, 15)
(nbs, nue): (8, 12)
(nbs, nue): (8, 13)
(nbs, nue): (8, 14)
(nbs, nue): (8, 15)
(nbs, nue): (9, 12)
(nbs, nue): (9, 13)
(nbs, nue): (9, 14)
(nbs, nue): (9, 15)
(nbs, nue): (10, 12)
(nbs, nue): (10, 13)
(nbs, nue): (10, 14)
(nbs, nue): (10, 15)
(nbs, nue): (11, 12)
(nbs, nue): (11, 13)
(nbs, nue): (11, 14)
(nbs, nue): (11, 15)
(nbs, nue): (12, 12)
(nbs, nue): (12, 13)
(nbs, nue): (12, 14)
(nbs, nue): (12, 15)
(nbs, nue): (13, 12)
(nbs, nue): (13, 13)
(nbs, nue): (13, 14)
(nbs, nue): (13, 15)
(nbs, nue): (14, 12)
(nbs, nue): (14, 13)
(nbs, nue): (14, 14)
(nbs, nue): (14, 15)
(nbs, nue): (15, 12)
(nbs, nue): (15, 13)
(nbs, nue): (15, 14)
(nbs, nue): (15, 15)
(nbs, nue): (16, 12)
(nbs, nue): (16, 13)
(nbs, nue): (16, 14)
(nbs, nue): (16, 15)
(nbs, nue): (17, 12)
(nbs, nue): (17, 13)
(nbs, nue): (17, 14)
(nbs, nue): (17, 15)
(nbs, nue): (18, 12)
(nbs, nue): (18, 13)
(nbs, nue): (18, 14)
(nbs, nue): (18, 15)
(nbs, nue): (19, 12)
(nbs, nue): (19, 13)
(nbs, nue): (19, 14)
(nbs, nue): (19, 15)
(nbs, nue): (20, 12)
(nbs, nue): (20, 13)
(nbs, nue): (20, 14)
(nbs, nue): (20, 15)
*********** [3]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [4]-Passed Through Channel ***********
*********** [4]-Noise Added ***********
*********** [4]-Resource Grid Extracted ***********
UE-Index: 16 | slot-Index: 4
UE-Index: 17 | slot-Index: 4
UE-Index: 18 | slot-Index: 4
UE-Index: 19 | slot-Index: 4
*********** [4]-Channel Estimated ***********
(nbs, nue): (0, 16)
(nbs, nue): (0, 17)
(nbs, nue): (0, 18)
(nbs, nue): (0, 19)
(nbs, nue): (1, 16)
(nbs, nue): (1, 17)
(nbs, nue): (1, 18)
(nbs, nue): (1, 19)
(nbs, nue): (2, 16)
(nbs, nue): (2, 17)
(nbs, nue): (2, 18)
(nbs, nue): (2, 19)
(nbs, nue): (3, 16)
(nbs, nue): (3, 17)
(nbs, nue): (3, 18)
(nbs, nue): (3, 19)
(nbs, nue): (4, 16)
(nbs, nue): (4, 17)
(nbs, nue): (4, 18)
(nbs, nue): (4, 19)
(nbs, nue): (5, 16)
(nbs, nue): (5, 17)
(nbs, nue): (5, 18)
(nbs, nue): (5, 19)
(nbs, nue): (6, 16)
(nbs, nue): (6, 17)
(nbs, nue): (6, 18)
(nbs, nue): (6, 19)
(nbs, nue): (7, 16)
(nbs, nue): (7, 17)
(nbs, nue): (7, 18)
(nbs, nue): (7, 19)
(nbs, nue): (8, 16)
(nbs, nue): (8, 17)
(nbs, nue): (8, 18)
(nbs, nue): (8, 19)
(nbs, nue): (9, 16)
(nbs, nue): (9, 17)
(nbs, nue): (9, 18)
(nbs, nue): (9, 19)
(nbs, nue): (10, 16)
(nbs, nue): (10, 17)
(nbs, nue): (10, 18)
(nbs, nue): (10, 19)
(nbs, nue): (11, 16)
(nbs, nue): (11, 17)
(nbs, nue): (11, 18)
(nbs, nue): (11, 19)
(nbs, nue): (12, 16)
(nbs, nue): (12, 17)
(nbs, nue): (12, 18)
(nbs, nue): (12, 19)
(nbs, nue): (13, 16)
(nbs, nue): (13, 17)
(nbs, nue): (13, 18)
(nbs, nue): (13, 19)
(nbs, nue): (14, 16)
(nbs, nue): (14, 17)
(nbs, nue): (14, 18)
(nbs, nue): (14, 19)
(nbs, nue): (15, 16)
(nbs, nue): (15, 17)
(nbs, nue): (15, 18)
(nbs, nue): (15, 19)
(nbs, nue): (16, 16)
(nbs, nue): (16, 17)
(nbs, nue): (16, 18)
(nbs, nue): (16, 19)
(nbs, nue): (17, 16)
(nbs, nue): (17, 17)
(nbs, nue): (17, 18)
(nbs, nue): (17, 19)
(nbs, nue): (18, 16)
(nbs, nue): (18, 17)
(nbs, nue): (18, 18)
(nbs, nue): (18, 19)
(nbs, nue): (19, 16)
(nbs, nue): (19, 17)
(nbs, nue): (19, 18)
(nbs, nue): (19, 19)
(nbs, nue): (20, 16)
(nbs, nue): (20, 17)
(nbs, nue): (20, 18)
(nbs, nue): (20, 19)
*********** [4]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [5]-Passed Through Channel ***********
*********** [5]-Noise Added ***********
*********** [5]-Resource Grid Extracted ***********
UE-Index: 20 | slot-Index: 5
UE-Index: 21 | slot-Index: 5
UE-Index: 22 | slot-Index: 5
UE-Index: 23 | slot-Index: 5
*********** [5]-Channel Estimated ***********
(nbs, nue): (0, 20)
(nbs, nue): (0, 21)
(nbs, nue): (0, 22)
(nbs, nue): (0, 23)
(nbs, nue): (1, 20)
(nbs, nue): (1, 21)
(nbs, nue): (1, 22)
(nbs, nue): (1, 23)
(nbs, nue): (2, 20)
(nbs, nue): (2, 21)
(nbs, nue): (2, 22)
(nbs, nue): (2, 23)
(nbs, nue): (3, 20)
(nbs, nue): (3, 21)
(nbs, nue): (3, 22)
(nbs, nue): (3, 23)
(nbs, nue): (4, 20)
(nbs, nue): (4, 21)
(nbs, nue): (4, 22)
(nbs, nue): (4, 23)
(nbs, nue): (5, 20)
(nbs, nue): (5, 21)
(nbs, nue): (5, 22)
(nbs, nue): (5, 23)
(nbs, nue): (6, 20)
(nbs, nue): (6, 21)
(nbs, nue): (6, 22)
(nbs, nue): (6, 23)
(nbs, nue): (7, 20)
(nbs, nue): (7, 21)
(nbs, nue): (7, 22)
(nbs, nue): (7, 23)
(nbs, nue): (8, 20)
(nbs, nue): (8, 21)
(nbs, nue): (8, 22)
(nbs, nue): (8, 23)
(nbs, nue): (9, 20)
(nbs, nue): (9, 21)
(nbs, nue): (9, 22)
(nbs, nue): (9, 23)
(nbs, nue): (10, 20)
(nbs, nue): (10, 21)
(nbs, nue): (10, 22)
(nbs, nue): (10, 23)
(nbs, nue): (11, 20)
(nbs, nue): (11, 21)
(nbs, nue): (11, 22)
(nbs, nue): (11, 23)
(nbs, nue): (12, 20)
(nbs, nue): (12, 21)
(nbs, nue): (12, 22)
(nbs, nue): (12, 23)
(nbs, nue): (13, 20)
(nbs, nue): (13, 21)
(nbs, nue): (13, 22)
(nbs, nue): (13, 23)
(nbs, nue): (14, 20)
(nbs, nue): (14, 21)
(nbs, nue): (14, 22)
(nbs, nue): (14, 23)
(nbs, nue): (15, 20)
(nbs, nue): (15, 21)
(nbs, nue): (15, 22)
(nbs, nue): (15, 23)
(nbs, nue): (16, 20)
(nbs, nue): (16, 21)
(nbs, nue): (16, 22)
(nbs, nue): (16, 23)
(nbs, nue): (17, 20)
(nbs, nue): (17, 21)
(nbs, nue): (17, 22)
(nbs, nue): (17, 23)
(nbs, nue): (18, 20)
(nbs, nue): (18, 21)
(nbs, nue): (18, 22)
(nbs, nue): (18, 23)
(nbs, nue): (19, 20)
(nbs, nue): (19, 21)
(nbs, nue): (19, 22)
(nbs, nue): (19, 23)
(nbs, nue): (20, 20)
(nbs, nue): (20, 21)
(nbs, nue): (20, 22)
(nbs, nue): (20, 23)
*********** [5]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [6]-Passed Through Channel ***********
*********** [6]-Noise Added ***********
*********** [6]-Resource Grid Extracted ***********
UE-Index: 24 | slot-Index: 6
UE-Index: 25 | slot-Index: 6
UE-Index: 26 | slot-Index: 6
UE-Index: 27 | slot-Index: 6
*********** [6]-Channel Estimated ***********
(nbs, nue): (0, 24)
(nbs, nue): (0, 25)
(nbs, nue): (0, 26)
(nbs, nue): (0, 27)
(nbs, nue): (1, 24)
(nbs, nue): (1, 25)
(nbs, nue): (1, 26)
(nbs, nue): (1, 27)
(nbs, nue): (2, 24)
(nbs, nue): (2, 25)
(nbs, nue): (2, 26)
(nbs, nue): (2, 27)
(nbs, nue): (3, 24)
(nbs, nue): (3, 25)
(nbs, nue): (3, 26)
(nbs, nue): (3, 27)
(nbs, nue): (4, 24)
(nbs, nue): (4, 25)
(nbs, nue): (4, 26)
(nbs, nue): (4, 27)
(nbs, nue): (5, 24)
(nbs, nue): (5, 25)
(nbs, nue): (5, 26)
(nbs, nue): (5, 27)
(nbs, nue): (6, 24)
(nbs, nue): (6, 25)
(nbs, nue): (6, 26)
(nbs, nue): (6, 27)
(nbs, nue): (7, 24)
(nbs, nue): (7, 25)
(nbs, nue): (7, 26)
(nbs, nue): (7, 27)
(nbs, nue): (8, 24)
(nbs, nue): (8, 25)
(nbs, nue): (8, 26)
(nbs, nue): (8, 27)
(nbs, nue): (9, 24)
(nbs, nue): (9, 25)
(nbs, nue): (9, 26)
(nbs, nue): (9, 27)
(nbs, nue): (10, 24)
(nbs, nue): (10, 25)
(nbs, nue): (10, 26)
(nbs, nue): (10, 27)
(nbs, nue): (11, 24)
(nbs, nue): (11, 25)
(nbs, nue): (11, 26)
(nbs, nue): (11, 27)
(nbs, nue): (12, 24)
(nbs, nue): (12, 25)
(nbs, nue): (12, 26)
(nbs, nue): (12, 27)
(nbs, nue): (13, 24)
(nbs, nue): (13, 25)
(nbs, nue): (13, 26)
(nbs, nue): (13, 27)
(nbs, nue): (14, 24)
(nbs, nue): (14, 25)
(nbs, nue): (14, 26)
(nbs, nue): (14, 27)
(nbs, nue): (15, 24)
(nbs, nue): (15, 25)
(nbs, nue): (15, 26)
(nbs, nue): (15, 27)
(nbs, nue): (16, 24)
(nbs, nue): (16, 25)
(nbs, nue): (16, 26)
(nbs, nue): (16, 27)
(nbs, nue): (17, 24)
(nbs, nue): (17, 25)
(nbs, nue): (17, 26)
(nbs, nue): (17, 27)
(nbs, nue): (18, 24)
(nbs, nue): (18, 25)
(nbs, nue): (18, 26)
(nbs, nue): (18, 27)
(nbs, nue): (19, 24)
(nbs, nue): (19, 25)
(nbs, nue): (19, 26)
(nbs, nue): (19, 27)
(nbs, nue): (20, 24)
(nbs, nue): (20, 25)
(nbs, nue): (20, 26)
(nbs, nue): (20, 27)
*********** [6]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [7]-Passed Through Channel ***********
*********** [7]-Noise Added ***********
*********** [7]-Resource Grid Extracted ***********
UE-Index: 28 | slot-Index: 7
UE-Index: 29 | slot-Index: 7
UE-Index: 30 | slot-Index: 7
UE-Index: 31 | slot-Index: 7
*********** [7]-Channel Estimated ***********
(nbs, nue): (0, 28)
(nbs, nue): (0, 29)
(nbs, nue): (0, 30)
(nbs, nue): (0, 31)
(nbs, nue): (1, 28)
(nbs, nue): (1, 29)
(nbs, nue): (1, 30)
(nbs, nue): (1, 31)
(nbs, nue): (2, 28)
(nbs, nue): (2, 29)
(nbs, nue): (2, 30)
(nbs, nue): (2, 31)
(nbs, nue): (3, 28)
(nbs, nue): (3, 29)
(nbs, nue): (3, 30)
(nbs, nue): (3, 31)
(nbs, nue): (4, 28)
(nbs, nue): (4, 29)
(nbs, nue): (4, 30)
(nbs, nue): (4, 31)
(nbs, nue): (5, 28)
(nbs, nue): (5, 29)
(nbs, nue): (5, 30)
(nbs, nue): (5, 31)
(nbs, nue): (6, 28)
(nbs, nue): (6, 29)
(nbs, nue): (6, 30)
(nbs, nue): (6, 31)
(nbs, nue): (7, 28)
(nbs, nue): (7, 29)
(nbs, nue): (7, 30)
(nbs, nue): (7, 31)
(nbs, nue): (8, 28)
(nbs, nue): (8, 29)
(nbs, nue): (8, 30)
(nbs, nue): (8, 31)
(nbs, nue): (9, 28)
(nbs, nue): (9, 29)
(nbs, nue): (9, 30)
(nbs, nue): (9, 31)
(nbs, nue): (10, 28)
(nbs, nue): (10, 29)
(nbs, nue): (10, 30)
(nbs, nue): (10, 31)
(nbs, nue): (11, 28)
(nbs, nue): (11, 29)
(nbs, nue): (11, 30)
(nbs, nue): (11, 31)
(nbs, nue): (12, 28)
(nbs, nue): (12, 29)
(nbs, nue): (12, 30)
(nbs, nue): (12, 31)
(nbs, nue): (13, 28)
(nbs, nue): (13, 29)
(nbs, nue): (13, 30)
(nbs, nue): (13, 31)
(nbs, nue): (14, 28)
(nbs, nue): (14, 29)
(nbs, nue): (14, 30)
(nbs, nue): (14, 31)
(nbs, nue): (15, 28)
(nbs, nue): (15, 29)
(nbs, nue): (15, 30)
(nbs, nue): (15, 31)
(nbs, nue): (16, 28)
(nbs, nue): (16, 29)
(nbs, nue): (16, 30)
(nbs, nue): (16, 31)
(nbs, nue): (17, 28)
(nbs, nue): (17, 29)
(nbs, nue): (17, 30)
(nbs, nue): (17, 31)
(nbs, nue): (18, 28)
(nbs, nue): (18, 29)
(nbs, nue): (18, 30)
(nbs, nue): (18, 31)
(nbs, nue): (19, 28)
(nbs, nue): (19, 29)
(nbs, nue): (19, 30)
(nbs, nue): (19, 31)
(nbs, nue): (20, 28)
(nbs, nue): (20, 29)
(nbs, nue): (20, 30)
(nbs, nue): (20, 31)
*********** [7]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [8]-Passed Through Channel ***********
*********** [8]-Noise Added ***********
*********** [8]-Resource Grid Extracted ***********
UE-Index: 32 | slot-Index: 8
UE-Index: 33 | slot-Index: 8
UE-Index: 34 | slot-Index: 8
UE-Index: 35 | slot-Index: 8
*********** [8]-Channel Estimated ***********
(nbs, nue): (0, 32)
(nbs, nue): (0, 33)
(nbs, nue): (0, 34)
(nbs, nue): (0, 35)
(nbs, nue): (1, 32)
(nbs, nue): (1, 33)
(nbs, nue): (1, 34)
(nbs, nue): (1, 35)
(nbs, nue): (2, 32)
(nbs, nue): (2, 33)
(nbs, nue): (2, 34)
(nbs, nue): (2, 35)
(nbs, nue): (3, 32)
(nbs, nue): (3, 33)
(nbs, nue): (3, 34)
(nbs, nue): (3, 35)
(nbs, nue): (4, 32)
(nbs, nue): (4, 33)
(nbs, nue): (4, 34)
(nbs, nue): (4, 35)
(nbs, nue): (5, 32)
(nbs, nue): (5, 33)
(nbs, nue): (5, 34)
(nbs, nue): (5, 35)
(nbs, nue): (6, 32)
(nbs, nue): (6, 33)
(nbs, nue): (6, 34)
(nbs, nue): (6, 35)
(nbs, nue): (7, 32)
(nbs, nue): (7, 33)
(nbs, nue): (7, 34)
(nbs, nue): (7, 35)
(nbs, nue): (8, 32)
(nbs, nue): (8, 33)
(nbs, nue): (8, 34)
(nbs, nue): (8, 35)
(nbs, nue): (9, 32)
(nbs, nue): (9, 33)
(nbs, nue): (9, 34)
(nbs, nue): (9, 35)
(nbs, nue): (10, 32)
(nbs, nue): (10, 33)
(nbs, nue): (10, 34)
(nbs, nue): (10, 35)
(nbs, nue): (11, 32)
(nbs, nue): (11, 33)
(nbs, nue): (11, 34)
(nbs, nue): (11, 35)
(nbs, nue): (12, 32)
(nbs, nue): (12, 33)
(nbs, nue): (12, 34)
(nbs, nue): (12, 35)
(nbs, nue): (13, 32)
(nbs, nue): (13, 33)
(nbs, nue): (13, 34)
(nbs, nue): (13, 35)
(nbs, nue): (14, 32)
(nbs, nue): (14, 33)
(nbs, nue): (14, 34)
(nbs, nue): (14, 35)
(nbs, nue): (15, 32)
(nbs, nue): (15, 33)
(nbs, nue): (15, 34)
(nbs, nue): (15, 35)
(nbs, nue): (16, 32)
(nbs, nue): (16, 33)
(nbs, nue): (16, 34)
(nbs, nue): (16, 35)
(nbs, nue): (17, 32)
(nbs, nue): (17, 33)
(nbs, nue): (17, 34)
(nbs, nue): (17, 35)
(nbs, nue): (18, 32)
(nbs, nue): (18, 33)
(nbs, nue): (18, 34)
(nbs, nue): (18, 35)
(nbs, nue): (19, 32)
(nbs, nue): (19, 33)
(nbs, nue): (19, 34)
(nbs, nue): (19, 35)
(nbs, nue): (20, 32)
(nbs, nue): (20, 33)
(nbs, nue): (20, 34)
(nbs, nue): (20, 35)
*********** [8]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [9]-Passed Through Channel ***********
*********** [9]-Noise Added ***********
*********** [9]-Resource Grid Extracted ***********
UE-Index: 36 | slot-Index: 9
UE-Index: 37 | slot-Index: 9
UE-Index: 38 | slot-Index: 9
UE-Index: 39 | slot-Index: 9
*********** [9]-Channel Estimated ***********
(nbs, nue): (0, 36)
(nbs, nue): (0, 37)
(nbs, nue): (0, 38)
(nbs, nue): (0, 39)
(nbs, nue): (1, 36)
(nbs, nue): (1, 37)
(nbs, nue): (1, 38)
(nbs, nue): (1, 39)
(nbs, nue): (2, 36)
(nbs, nue): (2, 37)
(nbs, nue): (2, 38)
(nbs, nue): (2, 39)
(nbs, nue): (3, 36)
(nbs, nue): (3, 37)
(nbs, nue): (3, 38)
(nbs, nue): (3, 39)
(nbs, nue): (4, 36)
(nbs, nue): (4, 37)
(nbs, nue): (4, 38)
(nbs, nue): (4, 39)
(nbs, nue): (5, 36)
(nbs, nue): (5, 37)
(nbs, nue): (5, 38)
(nbs, nue): (5, 39)
(nbs, nue): (6, 36)
(nbs, nue): (6, 37)
(nbs, nue): (6, 38)
(nbs, nue): (6, 39)
(nbs, nue): (7, 36)
(nbs, nue): (7, 37)
(nbs, nue): (7, 38)
(nbs, nue): (7, 39)
(nbs, nue): (8, 36)
(nbs, nue): (8, 37)
(nbs, nue): (8, 38)
(nbs, nue): (8, 39)
(nbs, nue): (9, 36)
(nbs, nue): (9, 37)
(nbs, nue): (9, 38)
(nbs, nue): (9, 39)
(nbs, nue): (10, 36)
(nbs, nue): (10, 37)
(nbs, nue): (10, 38)
(nbs, nue): (10, 39)
(nbs, nue): (11, 36)
(nbs, nue): (11, 37)
(nbs, nue): (11, 38)
(nbs, nue): (11, 39)
(nbs, nue): (12, 36)
(nbs, nue): (12, 37)
(nbs, nue): (12, 38)
(nbs, nue): (12, 39)
(nbs, nue): (13, 36)
(nbs, nue): (13, 37)
(nbs, nue): (13, 38)
(nbs, nue): (13, 39)
(nbs, nue): (14, 36)
(nbs, nue): (14, 37)
(nbs, nue): (14, 38)
(nbs, nue): (14, 39)
(nbs, nue): (15, 36)
(nbs, nue): (15, 37)
(nbs, nue): (15, 38)
(nbs, nue): (15, 39)
(nbs, nue): (16, 36)
(nbs, nue): (16, 37)
(nbs, nue): (16, 38)
(nbs, nue): (16, 39)
(nbs, nue): (17, 36)
(nbs, nue): (17, 37)
(nbs, nue): (17, 38)
(nbs, nue): (17, 39)
(nbs, nue): (18, 36)
(nbs, nue): (18, 37)
(nbs, nue): (18, 38)
(nbs, nue): (18, 39)
(nbs, nue): (19, 36)
(nbs, nue): (19, 37)
(nbs, nue): (19, 38)
(nbs, nue): (19, 39)
(nbs, nue): (20, 36)
(nbs, nue): (20, 37)
(nbs, nue): (20, 38)
(nbs, nue): (20, 39)
*********** [9]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [10]-Passed Through Channel ***********
*********** [10]-Noise Added ***********
*********** [10]-Resource Grid Extracted ***********
UE-Index: 40 | slot-Index: 10
UE-Index: 41 | slot-Index: 10
UE-Index: 42 | slot-Index: 10
UE-Index: 43 | slot-Index: 10
*********** [10]-Channel Estimated ***********
(nbs, nue): (0, 40)
(nbs, nue): (0, 41)
(nbs, nue): (0, 42)
(nbs, nue): (0, 43)
(nbs, nue): (1, 40)
(nbs, nue): (1, 41)
(nbs, nue): (1, 42)
(nbs, nue): (1, 43)
(nbs, nue): (2, 40)
(nbs, nue): (2, 41)
(nbs, nue): (2, 42)
(nbs, nue): (2, 43)
(nbs, nue): (3, 40)
(nbs, nue): (3, 41)
(nbs, nue): (3, 42)
(nbs, nue): (3, 43)
(nbs, nue): (4, 40)
(nbs, nue): (4, 41)
(nbs, nue): (4, 42)
(nbs, nue): (4, 43)
(nbs, nue): (5, 40)
(nbs, nue): (5, 41)
(nbs, nue): (5, 42)
(nbs, nue): (5, 43)
(nbs, nue): (6, 40)
(nbs, nue): (6, 41)
(nbs, nue): (6, 42)
(nbs, nue): (6, 43)
(nbs, nue): (7, 40)
(nbs, nue): (7, 41)
(nbs, nue): (7, 42)
(nbs, nue): (7, 43)
(nbs, nue): (8, 40)
(nbs, nue): (8, 41)
(nbs, nue): (8, 42)
(nbs, nue): (8, 43)
(nbs, nue): (9, 40)
(nbs, nue): (9, 41)
(nbs, nue): (9, 42)
(nbs, nue): (9, 43)
(nbs, nue): (10, 40)
(nbs, nue): (10, 41)
(nbs, nue): (10, 42)
(nbs, nue): (10, 43)
(nbs, nue): (11, 40)
(nbs, nue): (11, 41)
(nbs, nue): (11, 42)
(nbs, nue): (11, 43)
(nbs, nue): (12, 40)
(nbs, nue): (12, 41)
(nbs, nue): (12, 42)
(nbs, nue): (12, 43)
(nbs, nue): (13, 40)
(nbs, nue): (13, 41)
(nbs, nue): (13, 42)
(nbs, nue): (13, 43)
(nbs, nue): (14, 40)
(nbs, nue): (14, 41)
(nbs, nue): (14, 42)
(nbs, nue): (14, 43)
(nbs, nue): (15, 40)
(nbs, nue): (15, 41)
(nbs, nue): (15, 42)
(nbs, nue): (15, 43)
(nbs, nue): (16, 40)
(nbs, nue): (16, 41)
(nbs, nue): (16, 42)
(nbs, nue): (16, 43)
(nbs, nue): (17, 40)
(nbs, nue): (17, 41)
(nbs, nue): (17, 42)
(nbs, nue): (17, 43)
(nbs, nue): (18, 40)
(nbs, nue): (18, 41)
(nbs, nue): (18, 42)
(nbs, nue): (18, 43)
(nbs, nue): (19, 40)
(nbs, nue): (19, 41)
(nbs, nue): (19, 42)
(nbs, nue): (19, 43)
(nbs, nue): (20, 40)
(nbs, nue): (20, 41)
(nbs, nue): (20, 42)
(nbs, nue): (20, 43)
*********** [10]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [11]-Passed Through Channel ***********
*********** [11]-Noise Added ***********
*********** [11]-Resource Grid Extracted ***********
UE-Index: 44 | slot-Index: 11
UE-Index: 45 | slot-Index: 11
UE-Index: 46 | slot-Index: 11
UE-Index: 47 | slot-Index: 11
*********** [11]-Channel Estimated ***********
(nbs, nue): (0, 44)
(nbs, nue): (0, 45)
(nbs, nue): (0, 46)
(nbs, nue): (0, 47)
(nbs, nue): (1, 44)
(nbs, nue): (1, 45)
(nbs, nue): (1, 46)
(nbs, nue): (1, 47)
(nbs, nue): (2, 44)
(nbs, nue): (2, 45)
(nbs, nue): (2, 46)
(nbs, nue): (2, 47)
(nbs, nue): (3, 44)
(nbs, nue): (3, 45)
(nbs, nue): (3, 46)
(nbs, nue): (3, 47)
(nbs, nue): (4, 44)
(nbs, nue): (4, 45)
(nbs, nue): (4, 46)
(nbs, nue): (4, 47)
(nbs, nue): (5, 44)
(nbs, nue): (5, 45)
(nbs, nue): (5, 46)
(nbs, nue): (5, 47)
(nbs, nue): (6, 44)
(nbs, nue): (6, 45)
(nbs, nue): (6, 46)
(nbs, nue): (6, 47)
(nbs, nue): (7, 44)
(nbs, nue): (7, 45)
(nbs, nue): (7, 46)
(nbs, nue): (7, 47)
(nbs, nue): (8, 44)
(nbs, nue): (8, 45)
(nbs, nue): (8, 46)
(nbs, nue): (8, 47)
(nbs, nue): (9, 44)
(nbs, nue): (9, 45)
(nbs, nue): (9, 46)
(nbs, nue): (9, 47)
(nbs, nue): (10, 44)
(nbs, nue): (10, 45)
(nbs, nue): (10, 46)
(nbs, nue): (10, 47)
(nbs, nue): (11, 44)
(nbs, nue): (11, 45)
(nbs, nue): (11, 46)
(nbs, nue): (11, 47)
(nbs, nue): (12, 44)
(nbs, nue): (12, 45)
(nbs, nue): (12, 46)
(nbs, nue): (12, 47)
(nbs, nue): (13, 44)
(nbs, nue): (13, 45)
(nbs, nue): (13, 46)
(nbs, nue): (13, 47)
(nbs, nue): (14, 44)
(nbs, nue): (14, 45)
(nbs, nue): (14, 46)
(nbs, nue): (14, 47)
(nbs, nue): (15, 44)
(nbs, nue): (15, 45)
(nbs, nue): (15, 46)
(nbs, nue): (15, 47)
(nbs, nue): (16, 44)
(nbs, nue): (16, 45)
(nbs, nue): (16, 46)
(nbs, nue): (16, 47)
(nbs, nue): (17, 44)
(nbs, nue): (17, 45)
(nbs, nue): (17, 46)
(nbs, nue): (17, 47)
(nbs, nue): (18, 44)
(nbs, nue): (18, 45)
(nbs, nue): (18, 46)
(nbs, nue): (18, 47)
(nbs, nue): (19, 44)
(nbs, nue): (19, 45)
(nbs, nue): (19, 46)
(nbs, nue): (19, 47)
(nbs, nue): (20, 44)
(nbs, nue): (20, 45)
(nbs, nue): (20, 46)
(nbs, nue): (20, 47)
*********** [11]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [12]-Passed Through Channel ***********
*********** [12]-Noise Added ***********
*********** [12]-Resource Grid Extracted ***********
UE-Index: 48 | slot-Index: 12
UE-Index: 49 | slot-Index: 12
UE-Index: 50 | slot-Index: 12
UE-Index: 51 | slot-Index: 12
*********** [12]-Channel Estimated ***********
(nbs, nue): (0, 48)
(nbs, nue): (0, 49)
(nbs, nue): (0, 50)
(nbs, nue): (0, 51)
(nbs, nue): (1, 48)
(nbs, nue): (1, 49)
(nbs, nue): (1, 50)
(nbs, nue): (1, 51)
(nbs, nue): (2, 48)
(nbs, nue): (2, 49)
(nbs, nue): (2, 50)
(nbs, nue): (2, 51)
(nbs, nue): (3, 48)
(nbs, nue): (3, 49)
(nbs, nue): (3, 50)
(nbs, nue): (3, 51)
(nbs, nue): (4, 48)
(nbs, nue): (4, 49)
(nbs, nue): (4, 50)
(nbs, nue): (4, 51)
(nbs, nue): (5, 48)
(nbs, nue): (5, 49)
(nbs, nue): (5, 50)
(nbs, nue): (5, 51)
(nbs, nue): (6, 48)
(nbs, nue): (6, 49)
(nbs, nue): (6, 50)
(nbs, nue): (6, 51)
(nbs, nue): (7, 48)
(nbs, nue): (7, 49)
(nbs, nue): (7, 50)
(nbs, nue): (7, 51)
(nbs, nue): (8, 48)
(nbs, nue): (8, 49)
(nbs, nue): (8, 50)
(nbs, nue): (8, 51)
(nbs, nue): (9, 48)
(nbs, nue): (9, 49)
(nbs, nue): (9, 50)
(nbs, nue): (9, 51)
(nbs, nue): (10, 48)
(nbs, nue): (10, 49)
(nbs, nue): (10, 50)
(nbs, nue): (10, 51)
(nbs, nue): (11, 48)
(nbs, nue): (11, 49)
(nbs, nue): (11, 50)
(nbs, nue): (11, 51)
(nbs, nue): (12, 48)
(nbs, nue): (12, 49)
(nbs, nue): (12, 50)
(nbs, nue): (12, 51)
(nbs, nue): (13, 48)
(nbs, nue): (13, 49)
(nbs, nue): (13, 50)
(nbs, nue): (13, 51)
(nbs, nue): (14, 48)
(nbs, nue): (14, 49)
(nbs, nue): (14, 50)
(nbs, nue): (14, 51)
(nbs, nue): (15, 48)
(nbs, nue): (15, 49)
(nbs, nue): (15, 50)
(nbs, nue): (15, 51)
(nbs, nue): (16, 48)
(nbs, nue): (16, 49)
(nbs, nue): (16, 50)
(nbs, nue): (16, 51)
(nbs, nue): (17, 48)
(nbs, nue): (17, 49)
(nbs, nue): (17, 50)
(nbs, nue): (17, 51)
(nbs, nue): (18, 48)
(nbs, nue): (18, 49)
(nbs, nue): (18, 50)
(nbs, nue): (18, 51)
(nbs, nue): (19, 48)
(nbs, nue): (19, 49)
(nbs, nue): (19, 50)
(nbs, nue): (19, 51)
(nbs, nue): (20, 48)
(nbs, nue): (20, 49)
(nbs, nue): (20, 50)
(nbs, nue): (20, 51)
*********** [12]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [13]-Passed Through Channel ***********
*********** [13]-Noise Added ***********
*********** [13]-Resource Grid Extracted ***********
UE-Index: 52 | slot-Index: 13
UE-Index: 53 | slot-Index: 13
UE-Index: 54 | slot-Index: 13
UE-Index: 55 | slot-Index: 13
*********** [13]-Channel Estimated ***********
(nbs, nue): (0, 52)
(nbs, nue): (0, 53)
(nbs, nue): (0, 54)
(nbs, nue): (0, 55)
(nbs, nue): (1, 52)
(nbs, nue): (1, 53)
(nbs, nue): (1, 54)
(nbs, nue): (1, 55)
(nbs, nue): (2, 52)
(nbs, nue): (2, 53)
(nbs, nue): (2, 54)
(nbs, nue): (2, 55)
(nbs, nue): (3, 52)
(nbs, nue): (3, 53)
(nbs, nue): (3, 54)
(nbs, nue): (3, 55)
(nbs, nue): (4, 52)
(nbs, nue): (4, 53)
(nbs, nue): (4, 54)
(nbs, nue): (4, 55)
(nbs, nue): (5, 52)
(nbs, nue): (5, 53)
(nbs, nue): (5, 54)
(nbs, nue): (5, 55)
(nbs, nue): (6, 52)
(nbs, nue): (6, 53)
(nbs, nue): (6, 54)
(nbs, nue): (6, 55)
(nbs, nue): (7, 52)
(nbs, nue): (7, 53)
(nbs, nue): (7, 54)
(nbs, nue): (7, 55)
(nbs, nue): (8, 52)
(nbs, nue): (8, 53)
(nbs, nue): (8, 54)
(nbs, nue): (8, 55)
(nbs, nue): (9, 52)
(nbs, nue): (9, 53)
(nbs, nue): (9, 54)
(nbs, nue): (9, 55)
(nbs, nue): (10, 52)
(nbs, nue): (10, 53)
(nbs, nue): (10, 54)
(nbs, nue): (10, 55)
(nbs, nue): (11, 52)
(nbs, nue): (11, 53)
(nbs, nue): (11, 54)
(nbs, nue): (11, 55)
(nbs, nue): (12, 52)
(nbs, nue): (12, 53)
(nbs, nue): (12, 54)
(nbs, nue): (12, 55)
(nbs, nue): (13, 52)
(nbs, nue): (13, 53)
(nbs, nue): (13, 54)
(nbs, nue): (13, 55)
(nbs, nue): (14, 52)
(nbs, nue): (14, 53)
(nbs, nue): (14, 54)
(nbs, nue): (14, 55)
(nbs, nue): (15, 52)
(nbs, nue): (15, 53)
(nbs, nue): (15, 54)
(nbs, nue): (15, 55)
(nbs, nue): (16, 52)
(nbs, nue): (16, 53)
(nbs, nue): (16, 54)
(nbs, nue): (16, 55)
(nbs, nue): (17, 52)
(nbs, nue): (17, 53)
(nbs, nue): (17, 54)
(nbs, nue): (17, 55)
(nbs, nue): (18, 52)
(nbs, nue): (18, 53)
(nbs, nue): (18, 54)
(nbs, nue): (18, 55)
(nbs, nue): (19, 52)
(nbs, nue): (19, 53)
(nbs, nue): (19, 54)
(nbs, nue): (19, 55)
(nbs, nue): (20, 52)
(nbs, nue): (20, 53)
(nbs, nue): (20, 54)
(nbs, nue): (20, 55)
*********** [13]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [14]-Passed Through Channel ***********
*********** [14]-Noise Added ***********
*********** [14]-Resource Grid Extracted ***********
UE-Index: 56 | slot-Index: 14
UE-Index: 57 | slot-Index: 14
UE-Index: 58 | slot-Index: 14
UE-Index: 59 | slot-Index: 14
*********** [14]-Channel Estimated ***********
(nbs, nue): (0, 56)
(nbs, nue): (0, 57)
(nbs, nue): (0, 58)
(nbs, nue): (0, 59)
(nbs, nue): (1, 56)
(nbs, nue): (1, 57)
(nbs, nue): (1, 58)
(nbs, nue): (1, 59)
(nbs, nue): (2, 56)
(nbs, nue): (2, 57)
(nbs, nue): (2, 58)
(nbs, nue): (2, 59)
(nbs, nue): (3, 56)
(nbs, nue): (3, 57)
(nbs, nue): (3, 58)
(nbs, nue): (3, 59)
(nbs, nue): (4, 56)
(nbs, nue): (4, 57)
(nbs, nue): (4, 58)
(nbs, nue): (4, 59)
(nbs, nue): (5, 56)
(nbs, nue): (5, 57)
(nbs, nue): (5, 58)
(nbs, nue): (5, 59)
(nbs, nue): (6, 56)
(nbs, nue): (6, 57)
(nbs, nue): (6, 58)
(nbs, nue): (6, 59)
(nbs, nue): (7, 56)
(nbs, nue): (7, 57)
(nbs, nue): (7, 58)
(nbs, nue): (7, 59)
(nbs, nue): (8, 56)
(nbs, nue): (8, 57)
(nbs, nue): (8, 58)
(nbs, nue): (8, 59)
(nbs, nue): (9, 56)
(nbs, nue): (9, 57)
(nbs, nue): (9, 58)
(nbs, nue): (9, 59)
(nbs, nue): (10, 56)
(nbs, nue): (10, 57)
(nbs, nue): (10, 58)
(nbs, nue): (10, 59)
(nbs, nue): (11, 56)
(nbs, nue): (11, 57)
(nbs, nue): (11, 58)
(nbs, nue): (11, 59)
(nbs, nue): (12, 56)
(nbs, nue): (12, 57)
(nbs, nue): (12, 58)
(nbs, nue): (12, 59)
(nbs, nue): (13, 56)
(nbs, nue): (13, 57)
(nbs, nue): (13, 58)
(nbs, nue): (13, 59)
(nbs, nue): (14, 56)
(nbs, nue): (14, 57)
(nbs, nue): (14, 58)
(nbs, nue): (14, 59)
(nbs, nue): (15, 56)
(nbs, nue): (15, 57)
(nbs, nue): (15, 58)
(nbs, nue): (15, 59)
(nbs, nue): (16, 56)
(nbs, nue): (16, 57)
(nbs, nue): (16, 58)
(nbs, nue): (16, 59)
(nbs, nue): (17, 56)
(nbs, nue): (17, 57)
(nbs, nue): (17, 58)
(nbs, nue): (17, 59)
(nbs, nue): (18, 56)
(nbs, nue): (18, 57)
(nbs, nue): (18, 58)
(nbs, nue): (18, 59)
(nbs, nue): (19, 56)
(nbs, nue): (19, 57)
(nbs, nue): (19, 58)
(nbs, nue): (19, 59)
(nbs, nue): (20, 56)
(nbs, nue): (20, 57)
(nbs, nue): (20, 58)
(nbs, nue): (20, 59)
*********** [14]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [15]-Passed Through Channel ***********
*********** [15]-Noise Added ***********
*********** [15]-Resource Grid Extracted ***********
UE-Index: 60 | slot-Index: 15
UE-Index: 61 | slot-Index: 15
UE-Index: 62 | slot-Index: 15
UE-Index: 63 | slot-Index: 15
*********** [15]-Channel Estimated ***********
(nbs, nue): (0, 60)
(nbs, nue): (0, 61)
(nbs, nue): (0, 62)
(nbs, nue): (0, 63)
(nbs, nue): (1, 60)
(nbs, nue): (1, 61)
(nbs, nue): (1, 62)
(nbs, nue): (1, 63)
(nbs, nue): (2, 60)
(nbs, nue): (2, 61)
(nbs, nue): (2, 62)
(nbs, nue): (2, 63)
(nbs, nue): (3, 60)
(nbs, nue): (3, 61)
(nbs, nue): (3, 62)
(nbs, nue): (3, 63)
(nbs, nue): (4, 60)
(nbs, nue): (4, 61)
(nbs, nue): (4, 62)
(nbs, nue): (4, 63)
(nbs, nue): (5, 60)
(nbs, nue): (5, 61)
(nbs, nue): (5, 62)
(nbs, nue): (5, 63)
(nbs, nue): (6, 60)
(nbs, nue): (6, 61)
(nbs, nue): (6, 62)
(nbs, nue): (6, 63)
(nbs, nue): (7, 60)
(nbs, nue): (7, 61)
(nbs, nue): (7, 62)
(nbs, nue): (7, 63)
(nbs, nue): (8, 60)
(nbs, nue): (8, 61)
(nbs, nue): (8, 62)
(nbs, nue): (8, 63)
(nbs, nue): (9, 60)
(nbs, nue): (9, 61)
(nbs, nue): (9, 62)
(nbs, nue): (9, 63)
(nbs, nue): (10, 60)
(nbs, nue): (10, 61)
(nbs, nue): (10, 62)
(nbs, nue): (10, 63)
(nbs, nue): (11, 60)
(nbs, nue): (11, 61)
(nbs, nue): (11, 62)
(nbs, nue): (11, 63)
(nbs, nue): (12, 60)
(nbs, nue): (12, 61)
(nbs, nue): (12, 62)
(nbs, nue): (12, 63)
(nbs, nue): (13, 60)
(nbs, nue): (13, 61)
(nbs, nue): (13, 62)
(nbs, nue): (13, 63)
(nbs, nue): (14, 60)
(nbs, nue): (14, 61)
(nbs, nue): (14, 62)
(nbs, nue): (14, 63)
(nbs, nue): (15, 60)
(nbs, nue): (15, 61)
(nbs, nue): (15, 62)
(nbs, nue): (15, 63)
(nbs, nue): (16, 60)
(nbs, nue): (16, 61)
(nbs, nue): (16, 62)
(nbs, nue): (16, 63)
(nbs, nue): (17, 60)
(nbs, nue): (17, 61)
(nbs, nue): (17, 62)
(nbs, nue): (17, 63)
(nbs, nue): (18, 60)
(nbs, nue): (18, 61)
(nbs, nue): (18, 62)
(nbs, nue): (18, 63)
(nbs, nue): (19, 60)
(nbs, nue): (19, 61)
(nbs, nue): (19, 62)
(nbs, nue): (19, 63)
(nbs, nue): (20, 60)
(nbs, nue): (20, 61)
(nbs, nue): (20, 62)
(nbs, nue): (20, 63)
*********** [15]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [16]-Passed Through Channel ***********
*********** [16]-Noise Added ***********
*********** [16]-Resource Grid Extracted ***********
UE-Index: 64 | slot-Index: 16
UE-Index: 65 | slot-Index: 16
UE-Index: 66 | slot-Index: 16
UE-Index: 67 | slot-Index: 16
*********** [16]-Channel Estimated ***********
(nbs, nue): (0, 64)
(nbs, nue): (0, 65)
(nbs, nue): (0, 66)
(nbs, nue): (0, 67)
(nbs, nue): (1, 64)
(nbs, nue): (1, 65)
(nbs, nue): (1, 66)
(nbs, nue): (1, 67)
(nbs, nue): (2, 64)
(nbs, nue): (2, 65)
(nbs, nue): (2, 66)
(nbs, nue): (2, 67)
(nbs, nue): (3, 64)
(nbs, nue): (3, 65)
(nbs, nue): (3, 66)
(nbs, nue): (3, 67)
(nbs, nue): (4, 64)
(nbs, nue): (4, 65)
(nbs, nue): (4, 66)
(nbs, nue): (4, 67)
(nbs, nue): (5, 64)
(nbs, nue): (5, 65)
(nbs, nue): (5, 66)
(nbs, nue): (5, 67)
(nbs, nue): (6, 64)
(nbs, nue): (6, 65)
(nbs, nue): (6, 66)
(nbs, nue): (6, 67)
(nbs, nue): (7, 64)
(nbs, nue): (7, 65)
(nbs, nue): (7, 66)
(nbs, nue): (7, 67)
(nbs, nue): (8, 64)
(nbs, nue): (8, 65)
(nbs, nue): (8, 66)
(nbs, nue): (8, 67)
(nbs, nue): (9, 64)
(nbs, nue): (9, 65)
(nbs, nue): (9, 66)
(nbs, nue): (9, 67)
(nbs, nue): (10, 64)
(nbs, nue): (10, 65)
(nbs, nue): (10, 66)
(nbs, nue): (10, 67)
(nbs, nue): (11, 64)
(nbs, nue): (11, 65)
(nbs, nue): (11, 66)
(nbs, nue): (11, 67)
(nbs, nue): (12, 64)
(nbs, nue): (12, 65)
(nbs, nue): (12, 66)
(nbs, nue): (12, 67)
(nbs, nue): (13, 64)
(nbs, nue): (13, 65)
(nbs, nue): (13, 66)
(nbs, nue): (13, 67)
(nbs, nue): (14, 64)
(nbs, nue): (14, 65)
(nbs, nue): (14, 66)
(nbs, nue): (14, 67)
(nbs, nue): (15, 64)
(nbs, nue): (15, 65)
(nbs, nue): (15, 66)
(nbs, nue): (15, 67)
(nbs, nue): (16, 64)
(nbs, nue): (16, 65)
(nbs, nue): (16, 66)
(nbs, nue): (16, 67)
(nbs, nue): (17, 64)
(nbs, nue): (17, 65)
(nbs, nue): (17, 66)
(nbs, nue): (17, 67)
(nbs, nue): (18, 64)
(nbs, nue): (18, 65)
(nbs, nue): (18, 66)
(nbs, nue): (18, 67)
(nbs, nue): (19, 64)
(nbs, nue): (19, 65)
(nbs, nue): (19, 66)
(nbs, nue): (19, 67)
(nbs, nue): (20, 64)
(nbs, nue): (20, 65)
(nbs, nue): (20, 66)
(nbs, nue): (20, 67)
*********** [16]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [17]-Passed Through Channel ***********
*********** [17]-Noise Added ***********
*********** [17]-Resource Grid Extracted ***********
UE-Index: 68 | slot-Index: 17
UE-Index: 69 | slot-Index: 17
UE-Index: 70 | slot-Index: 17
UE-Index: 71 | slot-Index: 17
*********** [17]-Channel Estimated ***********
(nbs, nue): (0, 68)
(nbs, nue): (0, 69)
(nbs, nue): (0, 70)
(nbs, nue): (0, 71)
(nbs, nue): (1, 68)
(nbs, nue): (1, 69)
(nbs, nue): (1, 70)
(nbs, nue): (1, 71)
(nbs, nue): (2, 68)
(nbs, nue): (2, 69)
(nbs, nue): (2, 70)
(nbs, nue): (2, 71)
(nbs, nue): (3, 68)
(nbs, nue): (3, 69)
(nbs, nue): (3, 70)
(nbs, nue): (3, 71)
(nbs, nue): (4, 68)
(nbs, nue): (4, 69)
(nbs, nue): (4, 70)
(nbs, nue): (4, 71)
(nbs, nue): (5, 68)
(nbs, nue): (5, 69)
(nbs, nue): (5, 70)
(nbs, nue): (5, 71)
(nbs, nue): (6, 68)
(nbs, nue): (6, 69)
(nbs, nue): (6, 70)
(nbs, nue): (6, 71)
(nbs, nue): (7, 68)
(nbs, nue): (7, 69)
(nbs, nue): (7, 70)
(nbs, nue): (7, 71)
(nbs, nue): (8, 68)
(nbs, nue): (8, 69)
(nbs, nue): (8, 70)
(nbs, nue): (8, 71)
(nbs, nue): (9, 68)
(nbs, nue): (9, 69)
(nbs, nue): (9, 70)
(nbs, nue): (9, 71)
(nbs, nue): (10, 68)
(nbs, nue): (10, 69)
(nbs, nue): (10, 70)
(nbs, nue): (10, 71)
(nbs, nue): (11, 68)
(nbs, nue): (11, 69)
(nbs, nue): (11, 70)
(nbs, nue): (11, 71)
(nbs, nue): (12, 68)
(nbs, nue): (12, 69)
(nbs, nue): (12, 70)
(nbs, nue): (12, 71)
(nbs, nue): (13, 68)
(nbs, nue): (13, 69)
(nbs, nue): (13, 70)
(nbs, nue): (13, 71)
(nbs, nue): (14, 68)
(nbs, nue): (14, 69)
(nbs, nue): (14, 70)
(nbs, nue): (14, 71)
(nbs, nue): (15, 68)
(nbs, nue): (15, 69)
(nbs, nue): (15, 70)
(nbs, nue): (15, 71)
(nbs, nue): (16, 68)
(nbs, nue): (16, 69)
(nbs, nue): (16, 70)
(nbs, nue): (16, 71)
(nbs, nue): (17, 68)
(nbs, nue): (17, 69)
(nbs, nue): (17, 70)
(nbs, nue): (17, 71)
(nbs, nue): (18, 68)
(nbs, nue): (18, 69)
(nbs, nue): (18, 70)
(nbs, nue): (18, 71)
(nbs, nue): (19, 68)
(nbs, nue): (19, 69)
(nbs, nue): (19, 70)
(nbs, nue): (19, 71)
(nbs, nue): (20, 68)
(nbs, nue): (20, 69)
(nbs, nue): (20, 70)
(nbs, nue): (20, 71)
*********** [17]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [18]-Passed Through Channel ***********
*********** [18]-Noise Added ***********
*********** [18]-Resource Grid Extracted ***********
UE-Index: 72 | slot-Index: 18
UE-Index: 73 | slot-Index: 18
UE-Index: 74 | slot-Index: 18
UE-Index: 75 | slot-Index: 18
*********** [18]-Channel Estimated ***********
(nbs, nue): (0, 72)
(nbs, nue): (0, 73)
(nbs, nue): (0, 74)
(nbs, nue): (0, 75)
(nbs, nue): (1, 72)
(nbs, nue): (1, 73)
(nbs, nue): (1, 74)
(nbs, nue): (1, 75)
(nbs, nue): (2, 72)
(nbs, nue): (2, 73)
(nbs, nue): (2, 74)
(nbs, nue): (2, 75)
(nbs, nue): (3, 72)
(nbs, nue): (3, 73)
(nbs, nue): (3, 74)
(nbs, nue): (3, 75)
(nbs, nue): (4, 72)
(nbs, nue): (4, 73)
(nbs, nue): (4, 74)
(nbs, nue): (4, 75)
(nbs, nue): (5, 72)
(nbs, nue): (5, 73)
(nbs, nue): (5, 74)
(nbs, nue): (5, 75)
(nbs, nue): (6, 72)
(nbs, nue): (6, 73)
(nbs, nue): (6, 74)
(nbs, nue): (6, 75)
(nbs, nue): (7, 72)
(nbs, nue): (7, 73)
(nbs, nue): (7, 74)
(nbs, nue): (7, 75)
(nbs, nue): (8, 72)
(nbs, nue): (8, 73)
(nbs, nue): (8, 74)
(nbs, nue): (8, 75)
(nbs, nue): (9, 72)
(nbs, nue): (9, 73)
(nbs, nue): (9, 74)
(nbs, nue): (9, 75)
(nbs, nue): (10, 72)
(nbs, nue): (10, 73)
(nbs, nue): (10, 74)
(nbs, nue): (10, 75)
(nbs, nue): (11, 72)
(nbs, nue): (11, 73)
(nbs, nue): (11, 74)
(nbs, nue): (11, 75)
(nbs, nue): (12, 72)
(nbs, nue): (12, 73)
(nbs, nue): (12, 74)
(nbs, nue): (12, 75)
(nbs, nue): (13, 72)
(nbs, nue): (13, 73)
(nbs, nue): (13, 74)
(nbs, nue): (13, 75)
(nbs, nue): (14, 72)
(nbs, nue): (14, 73)
(nbs, nue): (14, 74)
(nbs, nue): (14, 75)
(nbs, nue): (15, 72)
(nbs, nue): (15, 73)
(nbs, nue): (15, 74)
(nbs, nue): (15, 75)
(nbs, nue): (16, 72)
(nbs, nue): (16, 73)
(nbs, nue): (16, 74)
(nbs, nue): (16, 75)
(nbs, nue): (17, 72)
(nbs, nue): (17, 73)
(nbs, nue): (17, 74)
(nbs, nue): (17, 75)
(nbs, nue): (18, 72)
(nbs, nue): (18, 73)
(nbs, nue): (18, 74)
(nbs, nue): (18, 75)
(nbs, nue): (19, 72)
(nbs, nue): (19, 73)
(nbs, nue): (19, 74)
(nbs, nue): (19, 75)
(nbs, nue): (20, 72)
(nbs, nue): (20, 73)
(nbs, nue): (20, 74)
(nbs, nue): (20, 75)
*********** [18]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [19]-Passed Through Channel ***********
*********** [19]-Noise Added ***********
*********** [19]-Resource Grid Extracted ***********
UE-Index: 76 | slot-Index: 19
UE-Index: 77 | slot-Index: 19
UE-Index: 78 | slot-Index: 19
UE-Index: 79 | slot-Index: 19
*********** [19]-Channel Estimated ***********
(nbs, nue): (0, 76)
(nbs, nue): (0, 77)
(nbs, nue): (0, 78)
(nbs, nue): (0, 79)
(nbs, nue): (1, 76)
(nbs, nue): (1, 77)
(nbs, nue): (1, 78)
(nbs, nue): (1, 79)
(nbs, nue): (2, 76)
(nbs, nue): (2, 77)
(nbs, nue): (2, 78)
(nbs, nue): (2, 79)
(nbs, nue): (3, 76)
(nbs, nue): (3, 77)
(nbs, nue): (3, 78)
(nbs, nue): (3, 79)
(nbs, nue): (4, 76)
(nbs, nue): (4, 77)
(nbs, nue): (4, 78)
(nbs, nue): (4, 79)
(nbs, nue): (5, 76)
(nbs, nue): (5, 77)
(nbs, nue): (5, 78)
(nbs, nue): (5, 79)
(nbs, nue): (6, 76)
(nbs, nue): (6, 77)
(nbs, nue): (6, 78)
(nbs, nue): (6, 79)
(nbs, nue): (7, 76)
(nbs, nue): (7, 77)
(nbs, nue): (7, 78)
(nbs, nue): (7, 79)
(nbs, nue): (8, 76)
(nbs, nue): (8, 77)
(nbs, nue): (8, 78)
(nbs, nue): (8, 79)
(nbs, nue): (9, 76)
(nbs, nue): (9, 77)
(nbs, nue): (9, 78)
(nbs, nue): (9, 79)
(nbs, nue): (10, 76)
(nbs, nue): (10, 77)
(nbs, nue): (10, 78)
(nbs, nue): (10, 79)
(nbs, nue): (11, 76)
(nbs, nue): (11, 77)
(nbs, nue): (11, 78)
(nbs, nue): (11, 79)
(nbs, nue): (12, 76)
(nbs, nue): (12, 77)
(nbs, nue): (12, 78)
(nbs, nue): (12, 79)
(nbs, nue): (13, 76)
(nbs, nue): (13, 77)
(nbs, nue): (13, 78)
(nbs, nue): (13, 79)
(nbs, nue): (14, 76)
(nbs, nue): (14, 77)
(nbs, nue): (14, 78)
(nbs, nue): (14, 79)
(nbs, nue): (15, 76)
(nbs, nue): (15, 77)
(nbs, nue): (15, 78)
(nbs, nue): (15, 79)
(nbs, nue): (16, 76)
(nbs, nue): (16, 77)
(nbs, nue): (16, 78)
(nbs, nue): (16, 79)
(nbs, nue): (17, 76)
(nbs, nue): (17, 77)
(nbs, nue): (17, 78)
(nbs, nue): (17, 79)
(nbs, nue): (18, 76)
(nbs, nue): (18, 77)
(nbs, nue): (18, 78)
(nbs, nue): (18, 79)
(nbs, nue): (19, 76)
(nbs, nue): (19, 77)
(nbs, nue): (19, 78)
(nbs, nue): (19, 79)
(nbs, nue): (20, 76)
(nbs, nue): (20, 77)
(nbs, nue): (20, 78)
(nbs, nue): (20, 79)
*********** [19]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [20]-Passed Through Channel ***********
*********** [20]-Noise Added ***********
*********** [20]-Resource Grid Extracted ***********
UE-Index: 80 | slot-Index: 20
UE-Index: 81 | slot-Index: 20
UE-Index: 82 | slot-Index: 20
UE-Index: 83 | slot-Index: 20
*********** [20]-Channel Estimated ***********
(nbs, nue): (0, 80)
(nbs, nue): (0, 81)
(nbs, nue): (0, 82)
(nbs, nue): (0, 83)
(nbs, nue): (1, 80)
(nbs, nue): (1, 81)
(nbs, nue): (1, 82)
(nbs, nue): (1, 83)
(nbs, nue): (2, 80)
(nbs, nue): (2, 81)
(nbs, nue): (2, 82)
(nbs, nue): (2, 83)
(nbs, nue): (3, 80)
(nbs, nue): (3, 81)
(nbs, nue): (3, 82)
(nbs, nue): (3, 83)
(nbs, nue): (4, 80)
(nbs, nue): (4, 81)
(nbs, nue): (4, 82)
(nbs, nue): (4, 83)
(nbs, nue): (5, 80)
(nbs, nue): (5, 81)
(nbs, nue): (5, 82)
(nbs, nue): (5, 83)
(nbs, nue): (6, 80)
(nbs, nue): (6, 81)
(nbs, nue): (6, 82)
(nbs, nue): (6, 83)
(nbs, nue): (7, 80)
(nbs, nue): (7, 81)
(nbs, nue): (7, 82)
(nbs, nue): (7, 83)
(nbs, nue): (8, 80)
(nbs, nue): (8, 81)
(nbs, nue): (8, 82)
(nbs, nue): (8, 83)
(nbs, nue): (9, 80)
(nbs, nue): (9, 81)
(nbs, nue): (9, 82)
(nbs, nue): (9, 83)
(nbs, nue): (10, 80)
(nbs, nue): (10, 81)
(nbs, nue): (10, 82)
(nbs, nue): (10, 83)
(nbs, nue): (11, 80)
(nbs, nue): (11, 81)
(nbs, nue): (11, 82)
(nbs, nue): (11, 83)
(nbs, nue): (12, 80)
(nbs, nue): (12, 81)
(nbs, nue): (12, 82)
(nbs, nue): (12, 83)
(nbs, nue): (13, 80)
(nbs, nue): (13, 81)
(nbs, nue): (13, 82)
(nbs, nue): (13, 83)
(nbs, nue): (14, 80)
(nbs, nue): (14, 81)
(nbs, nue): (14, 82)
(nbs, nue): (14, 83)
(nbs, nue): (15, 80)
(nbs, nue): (15, 81)
(nbs, nue): (15, 82)
(nbs, nue): (15, 83)
(nbs, nue): (16, 80)
(nbs, nue): (16, 81)
(nbs, nue): (16, 82)
(nbs, nue): (16, 83)
(nbs, nue): (17, 80)
(nbs, nue): (17, 81)
(nbs, nue): (17, 82)
(nbs, nue): (17, 83)
(nbs, nue): (18, 80)
(nbs, nue): (18, 81)
(nbs, nue): (18, 82)
(nbs, nue): (18, 83)
(nbs, nue): (19, 80)
(nbs, nue): (19, 81)
(nbs, nue): (19, 82)
(nbs, nue): (19, 83)
(nbs, nue): (20, 80)
(nbs, nue): (20, 81)
(nbs, nue): (20, 82)
(nbs, nue): (20, 83)
*********** [20]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [21]-Passed Through Channel ***********
*********** [21]-Noise Added ***********
*********** [21]-Resource Grid Extracted ***********
UE-Index: 84 | slot-Index: 21
UE-Index: 85 | slot-Index: 21
UE-Index: 86 | slot-Index: 21
UE-Index: 87 | slot-Index: 21
*********** [21]-Channel Estimated ***********
(nbs, nue): (0, 84)
(nbs, nue): (0, 85)
(nbs, nue): (0, 86)
(nbs, nue): (0, 87)
(nbs, nue): (1, 84)
(nbs, nue): (1, 85)
(nbs, nue): (1, 86)
(nbs, nue): (1, 87)
(nbs, nue): (2, 84)
(nbs, nue): (2, 85)
(nbs, nue): (2, 86)
(nbs, nue): (2, 87)
(nbs, nue): (3, 84)
(nbs, nue): (3, 85)
(nbs, nue): (3, 86)
(nbs, nue): (3, 87)
(nbs, nue): (4, 84)
(nbs, nue): (4, 85)
(nbs, nue): (4, 86)
(nbs, nue): (4, 87)
(nbs, nue): (5, 84)
(nbs, nue): (5, 85)
(nbs, nue): (5, 86)
(nbs, nue): (5, 87)
(nbs, nue): (6, 84)
(nbs, nue): (6, 85)
(nbs, nue): (6, 86)
(nbs, nue): (6, 87)
(nbs, nue): (7, 84)
(nbs, nue): (7, 85)
(nbs, nue): (7, 86)
(nbs, nue): (7, 87)
(nbs, nue): (8, 84)
(nbs, nue): (8, 85)
(nbs, nue): (8, 86)
(nbs, nue): (8, 87)
(nbs, nue): (9, 84)
(nbs, nue): (9, 85)
(nbs, nue): (9, 86)
(nbs, nue): (9, 87)
(nbs, nue): (10, 84)
(nbs, nue): (10, 85)
(nbs, nue): (10, 86)
(nbs, nue): (10, 87)
(nbs, nue): (11, 84)
(nbs, nue): (11, 85)
(nbs, nue): (11, 86)
(nbs, nue): (11, 87)
(nbs, nue): (12, 84)
(nbs, nue): (12, 85)
(nbs, nue): (12, 86)
(nbs, nue): (12, 87)
(nbs, nue): (13, 84)
(nbs, nue): (13, 85)
(nbs, nue): (13, 86)
(nbs, nue): (13, 87)
(nbs, nue): (14, 84)
(nbs, nue): (14, 85)
(nbs, nue): (14, 86)
(nbs, nue): (14, 87)
(nbs, nue): (15, 84)
(nbs, nue): (15, 85)
(nbs, nue): (15, 86)
(nbs, nue): (15, 87)
(nbs, nue): (16, 84)
(nbs, nue): (16, 85)
(nbs, nue): (16, 86)
(nbs, nue): (16, 87)
(nbs, nue): (17, 84)
(nbs, nue): (17, 85)
(nbs, nue): (17, 86)
(nbs, nue): (17, 87)
(nbs, nue): (18, 84)
(nbs, nue): (18, 85)
(nbs, nue): (18, 86)
(nbs, nue): (18, 87)
(nbs, nue): (19, 84)
(nbs, nue): (19, 85)
(nbs, nue): (19, 86)
(nbs, nue): (19, 87)
(nbs, nue): (20, 84)
(nbs, nue): (20, 85)
(nbs, nue): (20, 86)
(nbs, nue): (20, 87)
*********** [21]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [22]-Passed Through Channel ***********
*********** [22]-Noise Added ***********
*********** [22]-Resource Grid Extracted ***********
UE-Index: 88 | slot-Index: 22
UE-Index: 89 | slot-Index: 22
UE-Index: 90 | slot-Index: 22
UE-Index: 91 | slot-Index: 22
*********** [22]-Channel Estimated ***********
(nbs, nue): (0, 88)
(nbs, nue): (0, 89)
(nbs, nue): (0, 90)
(nbs, nue): (0, 91)
(nbs, nue): (1, 88)
(nbs, nue): (1, 89)
(nbs, nue): (1, 90)
(nbs, nue): (1, 91)
(nbs, nue): (2, 88)
(nbs, nue): (2, 89)
(nbs, nue): (2, 90)
(nbs, nue): (2, 91)
(nbs, nue): (3, 88)
(nbs, nue): (3, 89)
(nbs, nue): (3, 90)
(nbs, nue): (3, 91)
(nbs, nue): (4, 88)
(nbs, nue): (4, 89)
(nbs, nue): (4, 90)
(nbs, nue): (4, 91)
(nbs, nue): (5, 88)
(nbs, nue): (5, 89)
(nbs, nue): (5, 90)
(nbs, nue): (5, 91)
(nbs, nue): (6, 88)
(nbs, nue): (6, 89)
(nbs, nue): (6, 90)
(nbs, nue): (6, 91)
(nbs, nue): (7, 88)
(nbs, nue): (7, 89)
(nbs, nue): (7, 90)
(nbs, nue): (7, 91)
(nbs, nue): (8, 88)
(nbs, nue): (8, 89)
(nbs, nue): (8, 90)
(nbs, nue): (8, 91)
(nbs, nue): (9, 88)
(nbs, nue): (9, 89)
(nbs, nue): (9, 90)
(nbs, nue): (9, 91)
(nbs, nue): (10, 88)
(nbs, nue): (10, 89)
(nbs, nue): (10, 90)
(nbs, nue): (10, 91)
(nbs, nue): (11, 88)
(nbs, nue): (11, 89)
(nbs, nue): (11, 90)
(nbs, nue): (11, 91)
(nbs, nue): (12, 88)
(nbs, nue): (12, 89)
(nbs, nue): (12, 90)
(nbs, nue): (12, 91)
(nbs, nue): (13, 88)
(nbs, nue): (13, 89)
(nbs, nue): (13, 90)
(nbs, nue): (13, 91)
(nbs, nue): (14, 88)
(nbs, nue): (14, 89)
(nbs, nue): (14, 90)
(nbs, nue): (14, 91)
(nbs, nue): (15, 88)
(nbs, nue): (15, 89)
(nbs, nue): (15, 90)
(nbs, nue): (15, 91)
(nbs, nue): (16, 88)
(nbs, nue): (16, 89)
(nbs, nue): (16, 90)
(nbs, nue): (16, 91)
(nbs, nue): (17, 88)
(nbs, nue): (17, 89)
(nbs, nue): (17, 90)
(nbs, nue): (17, 91)
(nbs, nue): (18, 88)
(nbs, nue): (18, 89)
(nbs, nue): (18, 90)
(nbs, nue): (18, 91)
(nbs, nue): (19, 88)
(nbs, nue): (19, 89)
(nbs, nue): (19, 90)
(nbs, nue): (19, 91)
(nbs, nue): (20, 88)
(nbs, nue): (20, 89)
(nbs, nue): (20, 90)
(nbs, nue): (20, 91)
*********** [22]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [23]-Passed Through Channel ***********
*********** [23]-Noise Added ***********
*********** [23]-Resource Grid Extracted ***********
UE-Index: 92 | slot-Index: 23
UE-Index: 93 | slot-Index: 23
UE-Index: 94 | slot-Index: 23
UE-Index: 95 | slot-Index: 23
*********** [23]-Channel Estimated ***********
(nbs, nue): (0, 92)
(nbs, nue): (0, 93)
(nbs, nue): (0, 94)
(nbs, nue): (0, 95)
(nbs, nue): (1, 92)
(nbs, nue): (1, 93)
(nbs, nue): (1, 94)
(nbs, nue): (1, 95)
(nbs, nue): (2, 92)
(nbs, nue): (2, 93)
(nbs, nue): (2, 94)
(nbs, nue): (2, 95)
(nbs, nue): (3, 92)
(nbs, nue): (3, 93)
(nbs, nue): (3, 94)
(nbs, nue): (3, 95)
(nbs, nue): (4, 92)
(nbs, nue): (4, 93)
(nbs, nue): (4, 94)
(nbs, nue): (4, 95)
(nbs, nue): (5, 92)
(nbs, nue): (5, 93)
(nbs, nue): (5, 94)
(nbs, nue): (5, 95)
(nbs, nue): (6, 92)
(nbs, nue): (6, 93)
(nbs, nue): (6, 94)
(nbs, nue): (6, 95)
(nbs, nue): (7, 92)
(nbs, nue): (7, 93)
(nbs, nue): (7, 94)
(nbs, nue): (7, 95)
(nbs, nue): (8, 92)
(nbs, nue): (8, 93)
(nbs, nue): (8, 94)
(nbs, nue): (8, 95)
(nbs, nue): (9, 92)
(nbs, nue): (9, 93)
(nbs, nue): (9, 94)
(nbs, nue): (9, 95)
(nbs, nue): (10, 92)
(nbs, nue): (10, 93)
(nbs, nue): (10, 94)
(nbs, nue): (10, 95)
(nbs, nue): (11, 92)
(nbs, nue): (11, 93)
(nbs, nue): (11, 94)
(nbs, nue): (11, 95)
(nbs, nue): (12, 92)
(nbs, nue): (12, 93)
(nbs, nue): (12, 94)
(nbs, nue): (12, 95)
(nbs, nue): (13, 92)
(nbs, nue): (13, 93)
(nbs, nue): (13, 94)
(nbs, nue): (13, 95)
(nbs, nue): (14, 92)
(nbs, nue): (14, 93)
(nbs, nue): (14, 94)
(nbs, nue): (14, 95)
(nbs, nue): (15, 92)
(nbs, nue): (15, 93)
(nbs, nue): (15, 94)
(nbs, nue): (15, 95)
(nbs, nue): (16, 92)
(nbs, nue): (16, 93)
(nbs, nue): (16, 94)
(nbs, nue): (16, 95)
(nbs, nue): (17, 92)
(nbs, nue): (17, 93)
(nbs, nue): (17, 94)
(nbs, nue): (17, 95)
(nbs, nue): (18, 92)
(nbs, nue): (18, 93)
(nbs, nue): (18, 94)
(nbs, nue): (18, 95)
(nbs, nue): (19, 92)
(nbs, nue): (19, 93)
(nbs, nue): (19, 94)
(nbs, nue): (19, 95)
(nbs, nue): (20, 92)
(nbs, nue): (20, 93)
(nbs, nue): (20, 94)
(nbs, nue): (20, 95)
*********** [23]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [24]-Passed Through Channel ***********
*********** [24]-Noise Added ***********
*********** [24]-Resource Grid Extracted ***********
UE-Index: 96 | slot-Index: 24
UE-Index: 97 | slot-Index: 24
UE-Index: 98 | slot-Index: 24
UE-Index: 99 | slot-Index: 24
*********** [24]-Channel Estimated ***********
(nbs, nue): (0, 96)
(nbs, nue): (0, 97)
(nbs, nue): (0, 98)
(nbs, nue): (0, 99)
(nbs, nue): (1, 96)
(nbs, nue): (1, 97)
(nbs, nue): (1, 98)
(nbs, nue): (1, 99)
(nbs, nue): (2, 96)
(nbs, nue): (2, 97)
(nbs, nue): (2, 98)
(nbs, nue): (2, 99)
(nbs, nue): (3, 96)
(nbs, nue): (3, 97)
(nbs, nue): (3, 98)
(nbs, nue): (3, 99)
(nbs, nue): (4, 96)
(nbs, nue): (4, 97)
(nbs, nue): (4, 98)
(nbs, nue): (4, 99)
(nbs, nue): (5, 96)
(nbs, nue): (5, 97)
(nbs, nue): (5, 98)
(nbs, nue): (5, 99)
(nbs, nue): (6, 96)
(nbs, nue): (6, 97)
(nbs, nue): (6, 98)
(nbs, nue): (6, 99)
(nbs, nue): (7, 96)
(nbs, nue): (7, 97)
(nbs, nue): (7, 98)
(nbs, nue): (7, 99)
(nbs, nue): (8, 96)
(nbs, nue): (8, 97)
(nbs, nue): (8, 98)
(nbs, nue): (8, 99)
(nbs, nue): (9, 96)
(nbs, nue): (9, 97)
(nbs, nue): (9, 98)
(nbs, nue): (9, 99)
(nbs, nue): (10, 96)
(nbs, nue): (10, 97)
(nbs, nue): (10, 98)
(nbs, nue): (10, 99)
(nbs, nue): (11, 96)
(nbs, nue): (11, 97)
(nbs, nue): (11, 98)
(nbs, nue): (11, 99)
(nbs, nue): (12, 96)
(nbs, nue): (12, 97)
(nbs, nue): (12, 98)
(nbs, nue): (12, 99)
(nbs, nue): (13, 96)
(nbs, nue): (13, 97)
(nbs, nue): (13, 98)
(nbs, nue): (13, 99)
(nbs, nue): (14, 96)
(nbs, nue): (14, 97)
(nbs, nue): (14, 98)
(nbs, nue): (14, 99)
(nbs, nue): (15, 96)
(nbs, nue): (15, 97)
(nbs, nue): (15, 98)
(nbs, nue): (15, 99)
(nbs, nue): (16, 96)
(nbs, nue): (16, 97)
(nbs, nue): (16, 98)
(nbs, nue): (16, 99)
(nbs, nue): (17, 96)
(nbs, nue): (17, 97)
(nbs, nue): (17, 98)
(nbs, nue): (17, 99)
(nbs, nue): (18, 96)
(nbs, nue): (18, 97)
(nbs, nue): (18, 98)
(nbs, nue): (18, 99)
(nbs, nue): (19, 96)
(nbs, nue): (19, 97)
(nbs, nue): (19, 98)
(nbs, nue): (19, 99)
(nbs, nue): (20, 96)
(nbs, nue): (20, 97)
(nbs, nue): (20, 98)
(nbs, nue): (20, 99)
*********** [24]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [25]-Passed Through Channel ***********
*********** [25]-Noise Added ***********
*********** [25]-Resource Grid Extracted ***********
UE-Index: 100 | slot-Index: 25
UE-Index: 101 | slot-Index: 25
UE-Index: 102 | slot-Index: 25
UE-Index: 103 | slot-Index: 25
*********** [25]-Channel Estimated ***********
(nbs, nue): (0, 100)
(nbs, nue): (0, 101)
(nbs, nue): (0, 102)
(nbs, nue): (0, 103)
(nbs, nue): (1, 100)
(nbs, nue): (1, 101)
(nbs, nue): (1, 102)
(nbs, nue): (1, 103)
(nbs, nue): (2, 100)
(nbs, nue): (2, 101)
(nbs, nue): (2, 102)
(nbs, nue): (2, 103)
(nbs, nue): (3, 100)
(nbs, nue): (3, 101)
(nbs, nue): (3, 102)
(nbs, nue): (3, 103)
(nbs, nue): (4, 100)
(nbs, nue): (4, 101)
(nbs, nue): (4, 102)
(nbs, nue): (4, 103)
(nbs, nue): (5, 100)
(nbs, nue): (5, 101)
(nbs, nue): (5, 102)
(nbs, nue): (5, 103)
(nbs, nue): (6, 100)
(nbs, nue): (6, 101)
(nbs, nue): (6, 102)
(nbs, nue): (6, 103)
(nbs, nue): (7, 100)
(nbs, nue): (7, 101)
(nbs, nue): (7, 102)
(nbs, nue): (7, 103)
(nbs, nue): (8, 100)
(nbs, nue): (8, 101)
(nbs, nue): (8, 102)
(nbs, nue): (8, 103)
(nbs, nue): (9, 100)
(nbs, nue): (9, 101)
(nbs, nue): (9, 102)
(nbs, nue): (9, 103)
(nbs, nue): (10, 100)
(nbs, nue): (10, 101)
(nbs, nue): (10, 102)
(nbs, nue): (10, 103)
(nbs, nue): (11, 100)
(nbs, nue): (11, 101)
(nbs, nue): (11, 102)
(nbs, nue): (11, 103)
(nbs, nue): (12, 100)
(nbs, nue): (12, 101)
(nbs, nue): (12, 102)
(nbs, nue): (12, 103)
(nbs, nue): (13, 100)
(nbs, nue): (13, 101)
(nbs, nue): (13, 102)
(nbs, nue): (13, 103)
(nbs, nue): (14, 100)
(nbs, nue): (14, 101)
(nbs, nue): (14, 102)
(nbs, nue): (14, 103)
(nbs, nue): (15, 100)
(nbs, nue): (15, 101)
(nbs, nue): (15, 102)
(nbs, nue): (15, 103)
(nbs, nue): (16, 100)
(nbs, nue): (16, 101)
(nbs, nue): (16, 102)
(nbs, nue): (16, 103)
(nbs, nue): (17, 100)
(nbs, nue): (17, 101)
(nbs, nue): (17, 102)
(nbs, nue): (17, 103)
(nbs, nue): (18, 100)
(nbs, nue): (18, 101)
(nbs, nue): (18, 102)
(nbs, nue): (18, 103)
(nbs, nue): (19, 100)
(nbs, nue): (19, 101)
(nbs, nue): (19, 102)
(nbs, nue): (19, 103)
(nbs, nue): (20, 100)
(nbs, nue): (20, 101)
(nbs, nue): (20, 102)
(nbs, nue): (20, 103)
*********** [25]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [26]-Passed Through Channel ***********
*********** [26]-Noise Added ***********
*********** [26]-Resource Grid Extracted ***********
UE-Index: 104 | slot-Index: 26
UE-Index: 105 | slot-Index: 26
UE-Index: 106 | slot-Index: 26
UE-Index: 107 | slot-Index: 26
*********** [26]-Channel Estimated ***********
(nbs, nue): (0, 104)
(nbs, nue): (0, 105)
(nbs, nue): (0, 106)
(nbs, nue): (0, 107)
(nbs, nue): (1, 104)
(nbs, nue): (1, 105)
(nbs, nue): (1, 106)
(nbs, nue): (1, 107)
(nbs, nue): (2, 104)
(nbs, nue): (2, 105)
(nbs, nue): (2, 106)
(nbs, nue): (2, 107)
(nbs, nue): (3, 104)
(nbs, nue): (3, 105)
(nbs, nue): (3, 106)
(nbs, nue): (3, 107)
(nbs, nue): (4, 104)
(nbs, nue): (4, 105)
(nbs, nue): (4, 106)
(nbs, nue): (4, 107)
(nbs, nue): (5, 104)
(nbs, nue): (5, 105)
(nbs, nue): (5, 106)
(nbs, nue): (5, 107)
(nbs, nue): (6, 104)
(nbs, nue): (6, 105)
(nbs, nue): (6, 106)
(nbs, nue): (6, 107)
(nbs, nue): (7, 104)
(nbs, nue): (7, 105)
(nbs, nue): (7, 106)
(nbs, nue): (7, 107)
(nbs, nue): (8, 104)
(nbs, nue): (8, 105)
(nbs, nue): (8, 106)
(nbs, nue): (8, 107)
(nbs, nue): (9, 104)
(nbs, nue): (9, 105)
(nbs, nue): (9, 106)
(nbs, nue): (9, 107)
(nbs, nue): (10, 104)
(nbs, nue): (10, 105)
(nbs, nue): (10, 106)
(nbs, nue): (10, 107)
(nbs, nue): (11, 104)
(nbs, nue): (11, 105)
(nbs, nue): (11, 106)
(nbs, nue): (11, 107)
(nbs, nue): (12, 104)
(nbs, nue): (12, 105)
(nbs, nue): (12, 106)
(nbs, nue): (12, 107)
(nbs, nue): (13, 104)
(nbs, nue): (13, 105)
(nbs, nue): (13, 106)
(nbs, nue): (13, 107)
(nbs, nue): (14, 104)
(nbs, nue): (14, 105)
(nbs, nue): (14, 106)
(nbs, nue): (14, 107)
(nbs, nue): (15, 104)
(nbs, nue): (15, 105)
(nbs, nue): (15, 106)
(nbs, nue): (15, 107)
(nbs, nue): (16, 104)
(nbs, nue): (16, 105)
(nbs, nue): (16, 106)
(nbs, nue): (16, 107)
(nbs, nue): (17, 104)
(nbs, nue): (17, 105)
(nbs, nue): (17, 106)
(nbs, nue): (17, 107)
(nbs, nue): (18, 104)
(nbs, nue): (18, 105)
(nbs, nue): (18, 106)
(nbs, nue): (18, 107)
(nbs, nue): (19, 104)
(nbs, nue): (19, 105)
(nbs, nue): (19, 106)
(nbs, nue): (19, 107)
(nbs, nue): (20, 104)
(nbs, nue): (20, 105)
(nbs, nue): (20, 106)
(nbs, nue): (20, 107)
*********** [26]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [27]-Passed Through Channel ***********
*********** [27]-Noise Added ***********
*********** [27]-Resource Grid Extracted ***********
UE-Index: 108 | slot-Index: 27
UE-Index: 109 | slot-Index: 27
UE-Index: 110 | slot-Index: 27
UE-Index: 111 | slot-Index: 27
*********** [27]-Channel Estimated ***********
(nbs, nue): (0, 108)
(nbs, nue): (0, 109)
(nbs, nue): (0, 110)
(nbs, nue): (0, 111)
(nbs, nue): (1, 108)
(nbs, nue): (1, 109)
(nbs, nue): (1, 110)
(nbs, nue): (1, 111)
(nbs, nue): (2, 108)
(nbs, nue): (2, 109)
(nbs, nue): (2, 110)
(nbs, nue): (2, 111)
(nbs, nue): (3, 108)
(nbs, nue): (3, 109)
(nbs, nue): (3, 110)
(nbs, nue): (3, 111)
(nbs, nue): (4, 108)
(nbs, nue): (4, 109)
(nbs, nue): (4, 110)
(nbs, nue): (4, 111)
(nbs, nue): (5, 108)
(nbs, nue): (5, 109)
(nbs, nue): (5, 110)
(nbs, nue): (5, 111)
(nbs, nue): (6, 108)
(nbs, nue): (6, 109)
(nbs, nue): (6, 110)
(nbs, nue): (6, 111)
(nbs, nue): (7, 108)
(nbs, nue): (7, 109)
(nbs, nue): (7, 110)
(nbs, nue): (7, 111)
(nbs, nue): (8, 108)
(nbs, nue): (8, 109)
(nbs, nue): (8, 110)
(nbs, nue): (8, 111)
(nbs, nue): (9, 108)
(nbs, nue): (9, 109)
(nbs, nue): (9, 110)
(nbs, nue): (9, 111)
(nbs, nue): (10, 108)
(nbs, nue): (10, 109)
(nbs, nue): (10, 110)
(nbs, nue): (10, 111)
(nbs, nue): (11, 108)
(nbs, nue): (11, 109)
(nbs, nue): (11, 110)
(nbs, nue): (11, 111)
(nbs, nue): (12, 108)
(nbs, nue): (12, 109)
(nbs, nue): (12, 110)
(nbs, nue): (12, 111)
(nbs, nue): (13, 108)
(nbs, nue): (13, 109)
(nbs, nue): (13, 110)
(nbs, nue): (13, 111)
(nbs, nue): (14, 108)
(nbs, nue): (14, 109)
(nbs, nue): (14, 110)
(nbs, nue): (14, 111)
(nbs, nue): (15, 108)
(nbs, nue): (15, 109)
(nbs, nue): (15, 110)
(nbs, nue): (15, 111)
(nbs, nue): (16, 108)
(nbs, nue): (16, 109)
(nbs, nue): (16, 110)
(nbs, nue): (16, 111)
(nbs, nue): (17, 108)
(nbs, nue): (17, 109)
(nbs, nue): (17, 110)
(nbs, nue): (17, 111)
(nbs, nue): (18, 108)
(nbs, nue): (18, 109)
(nbs, nue): (18, 110)
(nbs, nue): (18, 111)
(nbs, nue): (19, 108)
(nbs, nue): (19, 109)
(nbs, nue): (19, 110)
(nbs, nue): (19, 111)
(nbs, nue): (20, 108)
(nbs, nue): (20, 109)
(nbs, nue): (20, 110)
(nbs, nue): (20, 111)
*********** [27]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [28]-Passed Through Channel ***********
*********** [28]-Noise Added ***********
*********** [28]-Resource Grid Extracted ***********
UE-Index: 112 | slot-Index: 28
UE-Index: 113 | slot-Index: 28
UE-Index: 114 | slot-Index: 28
UE-Index: 115 | slot-Index: 28
*********** [28]-Channel Estimated ***********
(nbs, nue): (0, 112)
(nbs, nue): (0, 113)
(nbs, nue): (0, 114)
(nbs, nue): (0, 115)
(nbs, nue): (1, 112)
(nbs, nue): (1, 113)
(nbs, nue): (1, 114)
(nbs, nue): (1, 115)
(nbs, nue): (2, 112)
(nbs, nue): (2, 113)
(nbs, nue): (2, 114)
(nbs, nue): (2, 115)
(nbs, nue): (3, 112)
(nbs, nue): (3, 113)
(nbs, nue): (3, 114)
(nbs, nue): (3, 115)
(nbs, nue): (4, 112)
(nbs, nue): (4, 113)
(nbs, nue): (4, 114)
(nbs, nue): (4, 115)
(nbs, nue): (5, 112)
(nbs, nue): (5, 113)
(nbs, nue): (5, 114)
(nbs, nue): (5, 115)
(nbs, nue): (6, 112)
(nbs, nue): (6, 113)
(nbs, nue): (6, 114)
(nbs, nue): (6, 115)
(nbs, nue): (7, 112)
(nbs, nue): (7, 113)
(nbs, nue): (7, 114)
(nbs, nue): (7, 115)
(nbs, nue): (8, 112)
(nbs, nue): (8, 113)
(nbs, nue): (8, 114)
(nbs, nue): (8, 115)
(nbs, nue): (9, 112)
(nbs, nue): (9, 113)
(nbs, nue): (9, 114)
(nbs, nue): (9, 115)
(nbs, nue): (10, 112)
(nbs, nue): (10, 113)
(nbs, nue): (10, 114)
(nbs, nue): (10, 115)
(nbs, nue): (11, 112)
(nbs, nue): (11, 113)
(nbs, nue): (11, 114)
(nbs, nue): (11, 115)
(nbs, nue): (12, 112)
(nbs, nue): (12, 113)
(nbs, nue): (12, 114)
(nbs, nue): (12, 115)
(nbs, nue): (13, 112)
(nbs, nue): (13, 113)
(nbs, nue): (13, 114)
(nbs, nue): (13, 115)
(nbs, nue): (14, 112)
(nbs, nue): (14, 113)
(nbs, nue): (14, 114)
(nbs, nue): (14, 115)
(nbs, nue): (15, 112)
(nbs, nue): (15, 113)
(nbs, nue): (15, 114)
(nbs, nue): (15, 115)
(nbs, nue): (16, 112)
(nbs, nue): (16, 113)
(nbs, nue): (16, 114)
(nbs, nue): (16, 115)
(nbs, nue): (17, 112)
(nbs, nue): (17, 113)
(nbs, nue): (17, 114)
(nbs, nue): (17, 115)
(nbs, nue): (18, 112)
(nbs, nue): (18, 113)
(nbs, nue): (18, 114)
(nbs, nue): (18, 115)
(nbs, nue): (19, 112)
(nbs, nue): (19, 113)
(nbs, nue): (19, 114)
(nbs, nue): (19, 115)
(nbs, nue): (20, 112)
(nbs, nue): (20, 113)
(nbs, nue): (20, 114)
(nbs, nue): (20, 115)
*********** [28]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [29]-Passed Through Channel ***********
*********** [29]-Noise Added ***********
*********** [29]-Resource Grid Extracted ***********
UE-Index: 116 | slot-Index: 29
UE-Index: 117 | slot-Index: 29
UE-Index: 118 | slot-Index: 29
UE-Index: 119 | slot-Index: 29
*********** [29]-Channel Estimated ***********
(nbs, nue): (0, 116)
(nbs, nue): (0, 117)
(nbs, nue): (0, 118)
(nbs, nue): (0, 119)
(nbs, nue): (1, 116)
(nbs, nue): (1, 117)
(nbs, nue): (1, 118)
(nbs, nue): (1, 119)
(nbs, nue): (2, 116)
(nbs, nue): (2, 117)
(nbs, nue): (2, 118)
(nbs, nue): (2, 119)
(nbs, nue): (3, 116)
(nbs, nue): (3, 117)
(nbs, nue): (3, 118)
(nbs, nue): (3, 119)
(nbs, nue): (4, 116)
(nbs, nue): (4, 117)
(nbs, nue): (4, 118)
(nbs, nue): (4, 119)
(nbs, nue): (5, 116)
(nbs, nue): (5, 117)
(nbs, nue): (5, 118)
(nbs, nue): (5, 119)
(nbs, nue): (6, 116)
(nbs, nue): (6, 117)
(nbs, nue): (6, 118)
(nbs, nue): (6, 119)
(nbs, nue): (7, 116)
(nbs, nue): (7, 117)
(nbs, nue): (7, 118)
(nbs, nue): (7, 119)
(nbs, nue): (8, 116)
(nbs, nue): (8, 117)
(nbs, nue): (8, 118)
(nbs, nue): (8, 119)
(nbs, nue): (9, 116)
(nbs, nue): (9, 117)
(nbs, nue): (9, 118)
(nbs, nue): (9, 119)
(nbs, nue): (10, 116)
(nbs, nue): (10, 117)
(nbs, nue): (10, 118)
(nbs, nue): (10, 119)
(nbs, nue): (11, 116)
(nbs, nue): (11, 117)
(nbs, nue): (11, 118)
(nbs, nue): (11, 119)
(nbs, nue): (12, 116)
(nbs, nue): (12, 117)
(nbs, nue): (12, 118)
(nbs, nue): (12, 119)
(nbs, nue): (13, 116)
(nbs, nue): (13, 117)
(nbs, nue): (13, 118)
(nbs, nue): (13, 119)
(nbs, nue): (14, 116)
(nbs, nue): (14, 117)
(nbs, nue): (14, 118)
(nbs, nue): (14, 119)
(nbs, nue): (15, 116)
(nbs, nue): (15, 117)
(nbs, nue): (15, 118)
(nbs, nue): (15, 119)
(nbs, nue): (16, 116)
(nbs, nue): (16, 117)
(nbs, nue): (16, 118)
(nbs, nue): (16, 119)
(nbs, nue): (17, 116)
(nbs, nue): (17, 117)
(nbs, nue): (17, 118)
(nbs, nue): (17, 119)
(nbs, nue): (18, 116)
(nbs, nue): (18, 117)
(nbs, nue): (18, 118)
(nbs, nue): (18, 119)
(nbs, nue): (19, 116)
(nbs, nue): (19, 117)
(nbs, nue): (19, 118)
(nbs, nue): (19, 119)
(nbs, nue): (20, 116)
(nbs, nue): (20, 117)
(nbs, nue): (20, 118)
(nbs, nue): (20, 119)
*********** [29]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [30]-Passed Through Channel ***********
*********** [30]-Noise Added ***********
*********** [30]-Resource Grid Extracted ***********
UE-Index: 120 | slot-Index: 30
UE-Index: 121 | slot-Index: 30
UE-Index: 122 | slot-Index: 30
UE-Index: 123 | slot-Index: 30
*********** [30]-Channel Estimated ***********
(nbs, nue): (0, 120)
(nbs, nue): (0, 121)
(nbs, nue): (0, 122)
(nbs, nue): (0, 123)
(nbs, nue): (1, 120)
(nbs, nue): (1, 121)
(nbs, nue): (1, 122)
(nbs, nue): (1, 123)
(nbs, nue): (2, 120)
(nbs, nue): (2, 121)
(nbs, nue): (2, 122)
(nbs, nue): (2, 123)
(nbs, nue): (3, 120)
(nbs, nue): (3, 121)
(nbs, nue): (3, 122)
(nbs, nue): (3, 123)
(nbs, nue): (4, 120)
(nbs, nue): (4, 121)
(nbs, nue): (4, 122)
(nbs, nue): (4, 123)
(nbs, nue): (5, 120)
(nbs, nue): (5, 121)
(nbs, nue): (5, 122)
(nbs, nue): (5, 123)
(nbs, nue): (6, 120)
(nbs, nue): (6, 121)
(nbs, nue): (6, 122)
(nbs, nue): (6, 123)
(nbs, nue): (7, 120)
(nbs, nue): (7, 121)
(nbs, nue): (7, 122)
(nbs, nue): (7, 123)
(nbs, nue): (8, 120)
(nbs, nue): (8, 121)
(nbs, nue): (8, 122)
(nbs, nue): (8, 123)
(nbs, nue): (9, 120)
(nbs, nue): (9, 121)
(nbs, nue): (9, 122)
(nbs, nue): (9, 123)
(nbs, nue): (10, 120)
(nbs, nue): (10, 121)
(nbs, nue): (10, 122)
(nbs, nue): (10, 123)
(nbs, nue): (11, 120)
(nbs, nue): (11, 121)
(nbs, nue): (11, 122)
(nbs, nue): (11, 123)
(nbs, nue): (12, 120)
(nbs, nue): (12, 121)
(nbs, nue): (12, 122)
(nbs, nue): (12, 123)
(nbs, nue): (13, 120)
(nbs, nue): (13, 121)
(nbs, nue): (13, 122)
(nbs, nue): (13, 123)
(nbs, nue): (14, 120)
(nbs, nue): (14, 121)
(nbs, nue): (14, 122)
(nbs, nue): (14, 123)
(nbs, nue): (15, 120)
(nbs, nue): (15, 121)
(nbs, nue): (15, 122)
(nbs, nue): (15, 123)
(nbs, nue): (16, 120)
(nbs, nue): (16, 121)
(nbs, nue): (16, 122)
(nbs, nue): (16, 123)
(nbs, nue): (17, 120)
(nbs, nue): (17, 121)
(nbs, nue): (17, 122)
(nbs, nue): (17, 123)
(nbs, nue): (18, 120)
(nbs, nue): (18, 121)
(nbs, nue): (18, 122)
(nbs, nue): (18, 123)
(nbs, nue): (19, 120)
(nbs, nue): (19, 121)
(nbs, nue): (19, 122)
(nbs, nue): (19, 123)
(nbs, nue): (20, 120)
(nbs, nue): (20, 121)
(nbs, nue): (20, 122)
(nbs, nue): (20, 123)
*********** [30]-ToA Estimated ***********
*********** SRS Grid Generated ***********
*********** Transmission Grid Generated ***********
*********** [31]-Passed Through Channel ***********
*********** [31]-Noise Added ***********
*********** [31]-Resource Grid Extracted ***********
UE-Index: 124 | slot-Index: 31
UE-Index: 125 | slot-Index: 31
UE-Index: 126 | slot-Index: 31
UE-Index: 127 | slot-Index: 31
*********** [31]-Channel Estimated ***********
(nbs, nue): (0, 124)
(nbs, nue): (0, 125)
(nbs, nue): (0, 126)
(nbs, nue): (0, 127)
(nbs, nue): (1, 124)
(nbs, nue): (1, 125)
(nbs, nue): (1, 126)
(nbs, nue): (1, 127)
(nbs, nue): (2, 124)
(nbs, nue): (2, 125)
(nbs, nue): (2, 126)
(nbs, nue): (2, 127)
(nbs, nue): (3, 124)
(nbs, nue): (3, 125)
(nbs, nue): (3, 126)
(nbs, nue): (3, 127)
(nbs, nue): (4, 124)
(nbs, nue): (4, 125)
(nbs, nue): (4, 126)
(nbs, nue): (4, 127)
(nbs, nue): (5, 124)
(nbs, nue): (5, 125)
(nbs, nue): (5, 126)
(nbs, nue): (5, 127)
(nbs, nue): (6, 124)
(nbs, nue): (6, 125)
(nbs, nue): (6, 126)
(nbs, nue): (6, 127)
(nbs, nue): (7, 124)
(nbs, nue): (7, 125)
(nbs, nue): (7, 126)
(nbs, nue): (7, 127)
(nbs, nue): (8, 124)
(nbs, nue): (8, 125)
(nbs, nue): (8, 126)
(nbs, nue): (8, 127)
(nbs, nue): (9, 124)
(nbs, nue): (9, 125)
(nbs, nue): (9, 126)
(nbs, nue): (9, 127)
(nbs, nue): (10, 124)
(nbs, nue): (10, 125)
(nbs, nue): (10, 126)
(nbs, nue): (10, 127)
(nbs, nue): (11, 124)
(nbs, nue): (11, 125)
(nbs, nue): (11, 126)
(nbs, nue): (11, 127)
(nbs, nue): (12, 124)
(nbs, nue): (12, 125)
(nbs, nue): (12, 126)
(nbs, nue): (12, 127)
(nbs, nue): (13, 124)
(nbs, nue): (13, 125)
(nbs, nue): (13, 126)
(nbs, nue): (13, 127)
(nbs, nue): (14, 124)
(nbs, nue): (14, 125)
(nbs, nue): (14, 126)
(nbs, nue): (14, 127)
(nbs, nue): (15, 124)
(nbs, nue): (15, 125)
(nbs, nue): (15, 126)
(nbs, nue): (15, 127)
(nbs, nue): (16, 124)
(nbs, nue): (16, 125)
(nbs, nue): (16, 126)
(nbs, nue): (16, 127)
(nbs, nue): (17, 124)
(nbs, nue): (17, 125)
(nbs, nue): (17, 126)
(nbs, nue): (17, 127)
(nbs, nue): (18, 124)
(nbs, nue): (18, 125)
(nbs, nue): (18, 126)
(nbs, nue): (18, 127)
(nbs, nue): (19, 124)
(nbs, nue): (19, 125)
(nbs, nue): (19, 126)
(nbs, nue): (19, 127)
(nbs, nue): (20, 124)
(nbs, nue): (20, 125)
(nbs, nue): (20, 126)
(nbs, nue): (20, 127)
*********** [31]-ToA Estimated ***********
Position Estimation: Based on UL-ToA
[7]:
## Position Estimation
rxPosition = simLayoutObj.UELocations
txPosition = simLayoutObj.BSLocations
# Selection of k Most Accurate Measurements
#################################################################
k = 4 # Select k-best measurements
error = (np.abs(ToAe-channel.delays[0,0,...,0])/channel.delays[0,0,...,0]) # Compute the ToA error in each measurement
positionEstimate = LeastSquareTDoA()
# positionEstimate = LeastSquareToA()
# Position Estimation Object:
# Positioning based on: ToA
# Optimization Method: Least Square
rxPositionEstimate = np.zeros((nUEs,2,3))
rxStdEstimate = np.zeros((nUEs))
kBestIndices = np.zeros((nUEs, k), dtype = np.int8)
for nue in range(nUEs):
bsIndices = np.argmin(error[..., nue].reshape(-1, 3), axis = -1)
siteIndices = np.argsort(np.min(error[..., nue].reshape(-1, 3), -1))[0:k]
kBestIndices[nue] = siteIndices*nSectorsPerSite + bsIndices[siteIndices]
toa = ToAe[kBestIndices[nue],nue]
tdoa = toa[1::] - toa[0]
rxPositionEstimate[nue], rxStdEstimate[nue] = positionEstimate(txPosition[kBestIndices[nue]], tdoa=tdoa)
Visualization of Estimated Position
[8]:
#################################################################
rxPosition = simLayoutObj.UELocations
txPosition = simLayoutObj.BSLocations
rangeEst_2D = np.sqrt(np.abs((ToAe*(3*10**8))**2 - (rxPosition[:,2].reshape(1,-1)-txPosition[:,2].reshape(-1,1))**2))
# fig, ax = plt.subplots()
fig, ax = simLayoutObj.display2DTopology(isEqualAspectRatio = True)
colors = ["k","m","r","b","g","y","crimson"]
linestyle_tuple = ['solid', 'dotted', 'dashed', 'dashdot',
(0, (5, 10)), # 'loosely dashed'
(0, (1, 10)), # 'loosely dotted'
(5, (10, 3)), # 'long dash with offset'
(0, (5, 1)), # 'densely dashed'
(0, (3, 10, 1, 10)), # 'loosely dashdotted'
(0, (3, 5, 1, 5)), # 'dashdotted'
(0, (3, 1, 1, 1)), # 'densely dashdotted'
(0, (3, 5, 1, 5, 1, 5)), # 'dashdotdotted'
(0, (3, 10, 1, 10, 1, 10)), # 'loosely dashdotdotted'
(0, (3, 1, 1, 1, 1, 1))] # 'densely dashdotdotted'
for nbs in range(k):
for nue in range(nUEs):
circle1 = plt.Circle((txPosition[kBestIndices[nue, nbs], 0], txPosition[kBestIndices[nue, nbs], 1]), rangeEst_2D[kBestIndices[nue, nbs], nue],
color = colors[nue%7], lw = 0.35, ls = linestyle_tuple[nue%7], fill = False, zorder = 0)
ax.add_artist(circle1)
ax.scatter(txPosition[:,0], txPosition[:,1], marker="P", color="b", edgecolors='white',
s = 125, label="Tx-Locations", zorder = 3)
ax.scatter(rxPositionEstimate[:,0,0], rxPositionEstimate[:,0,1], marker="o", color="g",
s = 75, label="Estimated Rx-Locations", zorder = 1)
ax.scatter(rxPosition[:,0], rxPosition[:,1], marker=".", color="r", edgecolors='white',
s = 100, label="True Rx-Locations", zorder = 2)
ax.legend()
ax.set_xlabel("x-coordinates (m)")
ax.set_ylabel("y-coordinates (m)")
ax.set_title("Transmitter's Locations and Estimation Accuracy (True UE Location vs Estimated UE Locations)")
ax.set_xlim([-200, 200])
ax.set_ylim([-200, 200])
ax.grid(True)
Performance Analysis of Positioning Error for ToA based method
[9]:
nbins = nUEs
xlimit = 5
ylimit = 1
posError3D = np.linalg.norm(rxPositionEstimate[:,0]-rxPosition, axis=1)
posError3D = np.where(np.isnan(posError3D), 0, posError3D)
posError2D = np.linalg.norm(rxPositionEstimate[:, 0,0:2]-rxPosition[:, 0:2], axis=1)
# Horizontal Error
count, bins_count = np.histogram(posError2D, bins = nbins, range = [0, xlimit])
pdf = count/nUEs
cdf = np.cumsum(pdf)
fig, ax = plt.subplots()
ax.plot(bins_count[1:], cdf, label = "2D Positioning Error")
# Vertical Error
count, bins_count = np.histogram(posError3D, bins = nbins, range = [0, xlimit])
pdf = count/nUEs
cdf = np.cumsum(pdf)
ax.plot(bins_count[1:], cdf, label = "Vertical Positioning Error")
ax.set_xticks(np.linspace(0, xlimit, 11))
ax.set_xticks(np.linspace(0, xlimit, 21), minor=True)
ax.set_yticks(np.linspace(0, ylimit, 11))
ax.set_yticks(np.linspace(0, ylimit, 21), minor=True)
ax.set_xlabel("Positioning Error (m)")
ax.set_ylabel("CDF of Positioning Error")
ax.set_title("CDF of Positioning Error")
ax.axhline(y = 0.2, lw = 2, alpha = 1, linestyle = ':', color = "crimson", label = "50%ile Positioning Error line")
ax.axhline(y = 2/3, lw = 2, alpha = 1, linestyle = ':', color = "magenta", label = "66.6%ile Positioning Error line")
ax.axhline(y = 0.9, lw = 2, alpha = 1, linestyle = ':', color = "royalblue", label = "90%ile Positioning Error line")
ax.axvline(x = 0.4, lw = 2, alpha = 1, linestyle = '-', color = "midnightblue", label = "50 cm Positioning Accuracy line")
# Specify different settings for major and minor grids
ax.grid(which = 'minor', alpha = 0.25, linestyle = '--')
ax.grid(which = 'major', alpha = 1)
ax.set_xlim([0,xlimit])
ax.set_ylim([0,ylimit])
ax.legend()
plt.show()
# # Code to save the Database
# idx = 0
# flag = True
# while(flag):
# filename = "Databases/ULTDoA-"+str([idx])+".npz"
# if(os.path.exists(filename)):
# idx = idx + 1
# else:
# np.savez(filename, posError3D = posError3D, posError2D = posError2D,
# rxPositionEstimate = rxPositionEstimate, rxPosition = rxPosition,
# ToAe = ToAe, txPosition = txPosition, propTerrain = propTerrain,
# carrierFrequency = carrierFrequency, scs = scs, Nfft = Nfft,
# nBSs = nBSs, nUEs = nUEs, numRBs = numRBs,
# bsArrayStructure = np.array([1,1,2,2,1]),
# ueArrayStructure = np.array([1,1,8,4,1]))
# flag = False
Performance Analysis: For 2000 UEs
[14]:
# filename = "Databases/ULTDoA-"+str([0])+".npz"
# ds = np.load(filename)
# posError3Da = ds["posError3D"]
# posError2Da = ds["posError2D"]
# for i in range(1,idx+1):
# filename = "Databases/ULTDoA-"+str([i])+".npz"
# ds = np.load(filename)
# posError3Da = np.concatenate([posError3Da, ds["posError3D"]])
# posError2Da = np.concatenate([posError2Da, ds["posError2D"]])
ds = np.load("Databases/ULTDoA.npz")
posError3Da = ds["posError3D"]
posError2Da = ds["posError2D"]
nbins = posError2Da.size
xlimit = 5
ylimit = 1
# Horizontal Error
count, bins_count = np.histogram(posError2Da, bins = nbins, range = [0, xlimit])
pdf = count/nbins
cdf = np.cumsum(pdf)
fig, ax = plt.subplots()
ax.plot(bins_count[1:], cdf, label = "2D Positioning Error")
# Vertical Error
count, bins_count = np.histogram(posError3Da, bins = nbins, range = [0, xlimit])
pdf = count/nbins
cdf = np.cumsum(pdf)
ax.plot(bins_count[1:], cdf, label = "Vertical Positioning Error")
ax.set_xticks(np.linspace(0, xlimit, 11))
ax.set_xticks(np.linspace(0, xlimit, 21), minor=True)
ax.set_yticks(np.linspace(0, ylimit, 11))
ax.set_yticks(np.linspace(0, ylimit, 21), minor=True)
ax.set_xlabel("Positioning Error (m)")
ax.set_ylabel("CDF of Positioning Error")
ax.set_title("CDF of Positioning Error")
ax.axhline(y = 0.2, lw = 2, alpha = 1, linestyle = ':', color = "crimson", label = "50%ile Positioning Error line")
ax.axhline(y = 2/3, lw = 2, alpha = 1, linestyle = ':', color = "magenta", label = "66.6%ile Positioning Error line")
ax.axhline(y = 0.9, lw = 2, alpha = 1, linestyle = ':', color = "royalblue", label = "90%ile Positioning Error line")
ax.axvline(x = 1.5, lw = 2, alpha = 1, linestyle = '-', color = "midnightblue", label = "1.5 m Positioning Accuracy line")
# Specify different settings for major and minor grids
ax.grid(which = 'minor', alpha = 0.25, linestyle = '--')
ax.grid(which = 'major', alpha = 1)
ax.set_xlim([0,xlimit])
ax.set_ylim([0,ylimit])
ax.legend()
plt.show()
[ ]: