NYU COMPARISON TO 3GPP
Week 3
Section 2: Large-scale parameter comparison
3GPP uses equations defined by Table 7.4.2-1 [1]
Function of distance and sometimes height of tx and rx
NYUSIM
“The NYUSIM LOS probability model has a similar form to the 3GPP one, but with the entire formula (i.e., the second equation in Table 7.4.2-1 in [1]) squared and the parameter values updated based on statistical modeling from a high resolution ray-tracing approach now described.”
Section 2: Large-scale parameter comparison
NYUSIM - ray-tracing approach
“(..) The ratio of the number of LOS positions to the total number of positions along the circle provided the LOS probability. (..)”
NOTE: 10 m < R < 200 m; (+1 m); For 4 tx locations
Tx
Ue height = 1.5 m
Section 2: Large-scale parameter comparison
Scenarios comparison
At larger distance, more number of buildings appear between the Tx and the Rx node, which will decrease the number of nodes in LOS
In other hand, NYUSIM predicts more LOS above 160 meters in comparison to 3GPP
Section 2: Large-scale parameter comparison
Path loss model
Close-in (CI) and three-parameter alpha-beta-gamma approach: omnidirectional paths
Free space path loss in dB at a 1 m 3D T-R separation distance at the carrier frequency fc in GHz.
Path loss exponent (PLE), c is the speed of light
Zero-mean Gaussian random variable with a standard deviation σ in dB
Section 2: Large-scale parameter comparison
Path loss model
Close-in (CI) and three-parameter alpha-beta-gamma approach (ABG): omnidirectional paths
α and γ are coefficients embodying the dependence of path loss on distance and frequency
Path loss exponent (PLE), c is the speed of light
zero-mean Gaussian random variable with a standard deviation σ in dB describing shadow fading (SF) over large-scale distances.
Section 2: Large-scale parameter comparison
Path loss model - 3GPP x NYUSIM
3GPP (UMi and UMa) | NYUSIM (UMi and UMa) |
CI path loss model is utilized for d3D smaller than the breakpoint distance d'BP(not specified) | In both UMi and UMa scenarios, the CI model is employed in NYUSIM. |
New term involving the BS and UE heights is added to the CI model | The 1-m CI model used in NYUSIM (same mathematical of ABG model) but has fewer parameters and offers much easier analysis (..) |
In the UMi NLOS scenario, the ABG path loss model is adopted, while the CI model is listed as an optional path loss model. | Different path loss models in 3GPP and NYUSIM generate difference between the two channel models varies depending upon the underlying scenario. |
Section 2: Large-scale parameter comparison
Also, 3GPP uses an unrealistic number of clusters (12 ~19) to evaluate the channel calculation, which is not according to measurements made by the NYC.
Cluster definition - 3GPP x NYUSIM
Time cluster (TC): Composed of multipath components (different directions)
Spatial lobes (SL): Primary direction of departure and arrival
3GPP uses the same number of clusters and rays per cluster in a given scenario. On the other hand, NYUSIM works with non-fixed values of TCs, subpaths per TC, and the number of SLs, which can vary for each channel calculation.
Section 3: small-scale parameter comparison
Milestones
Week 3
Milestone 1:
Doubts
Milestone 2:
Doubts and practical part (code view)
Milestone 2:
Different user selection approach for distinct channel models
Enum that defines the scenario and the channel model
A new enum just for the type of channel model
Milestone 2:
Different user selection approach
In case we choose use another enum for the channel models
Create the component carrier with the specified channel model
In CreateOperationBandContiguousCc
Milestone 2:
Initialize operation band ~ Steps
Include two-ray-spectrum class
include NYU with conditional build
Step 1: Include headers
Milestone 2:
Initialize operation band ~ Steps
Step 2: Create new variables in header (nr-helper.h)
Map that holds the TypeId of the given channel model
Vector to hold:
Milestone 2:
Initialize operation band ~ Steps
Step 3: Initialize the map in constructor
Initialize all the channel models TypeId: NYU (with conditional build), Two-Ray and 3GPP
Milestone 2:
Initialize operation band ~ Steps
Step 4: Add a new NYU Init functions to grab the correct propagation and channel condition TypeId.
To a given ${scenario}, set the actual TypeId to the ObjectFactorys. Do it with a build condition.
Milestone 2:
Initialize operation band ~ Steps
Step 5: Redefine the LookUpTable from unordered_map to map to use std:pair<> as a key
Just one LookUpTable that uses a combination (pair) of both the channel model and the scenario
Because Two-ray uses the same prop and channel condition of 3GPP we will not add a pair with BandwidthPartInfo::TwoRay
Milestone 2:
NOTE: Maybe this modification decreases the configuration performance
Milestone 2:
Initialize operation band ~ Steps
Step 6: Add the new NYU Init functions
We have only one map that holds all the Init functions. NYU part has to be built conditional too.
Milestone 2:
Initialize operation band ~ Steps
Step 7: Iteration over all the CCs - Set TypeIds
Set the spectrum TypeId based on the current cc-bwp channel model
Abort the simulation if the user selects the NYU but it is not enabled.
As mentioned previously, we use the same prop and conditional for two-ray
Milestone 2:
Initialize operation band ~ Steps
Step 8: Iteration over all the CCs: Set propagation loss
Because NYU and 3GPP has the same base class (PropagationLossModel), we can simply use it to create.
We set the TypeId of the pathloss object factory previously and it can be either:
Nyu${scenario}PropagationLoss ThreeGpp${scenario}PropagationLoss
Both of them have the same attribute (Frequency and ChannelConditionModel)
Milestone 2:
Initialize operation band ~ Steps
Step 9: Iteration over all the CCs: Set spectrum loss (BAD IMPLEMENTATION)
IF-ELSE conditions (or switch-case) are not good for this approach
Milestone 2:
Initialize operation band ~ Steps
Step 9: Iteration over all the CCs: Set spectrum loss
[9.1] Grab the current class that we want to configure: Spectrum / MatrixBased
Create the phased array spectrum model:
- NyuSpectrumPropagationLossModel
- ThreeGppSpectrumPropagationLossModel
- TwoRaySpectrumPropagationLossModel
The spectrum can be a matrix based channel model for channel matrix calculation or not.
If it has a matrix based class, grab it.
Milestone 2:
Initialize operation band ~ Steps
Step 9: Iteration over all the CCs: Set spectrum loss
[9.2] Set the necessary attributes.
Could be matrix based or spectrum class (e.g., Threegppspectrum/threegppchannelmodel)
Milestone 2:
Initialize operation band ~ Steps
NOTE: Why do this??
We can’t set the attributes that we want direct to ThreeGppSpectrumClass, we need to use the SetChannelModelAttribute.
The problem appears when we have classes that has no channel model class and not have SetChannelModelAttribute (e.g., Two-ray). In this case, we need to use SetAttribute().
To bypass this, we can use the Ternary (operator conditional)
Milestone 2:
Initialize operation band ~ Steps
Step 9: Iteration over all the CCs: Set spectrum loss
[9.2] Set the necessary attributes.
Could be matrix based or spectrum class (e.g., Threegppspectrum/threegppchannelmodel)
use SetAttribute() to configure
Milestone 2:
Initialize operation band ~ Steps
Step 9: Iteration over all the CCs: Set spectrum loss
[9.3] Finally, assign the channel to the cc:bwp.
Milestone 2:
CREATE:
Initialize operation band ~ Steps
Step 10: Allow user to configure features for any initialized band, using the band ID.
- SetPathLossAttribute
- SetPhasedArraySpectrumPropagationLossModelAttribute
- SetChannelConditionModelAttribute
- SetChannelModelAttribute
Now, we need the band ID to configure:
Previously, stored:
Milestone 2:
Initialize operation band ~ Steps
Example: Allow user to configure features for any initialized band, using the band ID.
Get the specific spectrum using the band ID
Assert that this band is already initialized
Milestone 2:
Initialize operation band ~ Steps
Step 11: Things to consider
In channel condition attribute
Some channel conditions does not have attributes:
${scenario}_los
${scenario}_nlos
<AlwaysLosChannelCondition>
<NeverLosChannelCondition>
Milestone 2:
Initialize operation band ~ Steps
Step 11: Things to consider
In channel model attribute
Assert that the band has a channel model that contains a channel (matrix) model class
Milestone 2:
Initialize operation band ~ Steps
Doubts?
For a more detailed approach, see: https://docs.google.com/document/d/14K0tnTJRO1qb2mDguGr4FrFCDMu8VBJ6BZpPow2au2M/edit