As in LTE, the most important criteria on Power Measurement is around RSRP, RSRQ. The basic idea on RSRP/RSRQ in NR is also similar to LTE RSRP / RSRQ. However, there are some differences as well between LTE and NR in terms of power definition and measurement as below.
- In NR, SINR seems to be an important power criteria. Of course, SINR is not a new parameter in NR. It is measured in most of LTE chips and this is one of the parameters that I most frequently check when I am doing physical layer performance troubleshooting. However, in NR SINR has become a formal measurement parameter used in RRC message.
- In LTE, RSRP and RSRQ is based on Cell specific Reference Signal (CRS). However, in NR there is no CRS. So RSRP / RSRQ definition in NR is based on other physical signals as shown in the following table.
< Based on 38.215 - 5.1 UE measurement capabilities >
|
Category |
Physical Signal for Measurement |
|
RSRP |
SS reference signal received power (SS-RSRP) |
|
CSI reference signal received power (CSI-RSRP) |
|
|
SRS reference signal received power (SRS-RSRP) |
|
|
RSRQ |
SS reference signal received quality (SS-RSRQ) |
|
CSI reference signal received quality (CSI-RSRQ) |
|
|
SINR |
SS signal-to-noise and interference ratio (SS-SINR) |
|
CSI signal-to-noise and interference ratio (CSI-SINR) |
|
|
RSSI |
|
That table is a subset, and it has grown a great deal since it was drawn. 38.215 v19.3.0 keeps the six entries above at clauses 5.1.1 to 5.1.6. Clauses 5.1.7 and 5.1.8 are now Void, SRS-RSRP has moved to clause 5.1.19, and RSSI is defined at clause 5.1.21. Clause 5.1 now runs past 5.1.44.
The additions are mostly measurements the first release had no use for. Positioning brought GNSS timing and carrier phase quantities, cross link interference brought CLI-RSSI, and sidelink brought its own RSRP and RSSI. None of them changes the six that this page is about.
Measurement Items in RRC - MeasObjectNR
A measurement object says what to measure and where. One exists per frequency the UE is asked to watch. Every field below is one of three things: the reference signal to measure on, a threshold for consolidating several beams into one cell result, or an offset that biases one cell against another.
This listing has drifted further from the current specification than most on this site. It was written against an early Release 15 draft, and several of its field and type names no longer exist. The version below is the current text, and the table after it maps the old names onto the new ones.
Following is based on
MeasObjectNR ::= SEQUENCE {
ssbFrequency ARFCN-ValueNR OPTIONAL, -- Cond SSBorAssociatedSSB
ssbSubcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond SSBorAssociatedSSB
smtc1 SSB-MTC OPTIONAL, -- Cond SSBorAssociatedSSB
smtc2 SSB-MTC2 OPTIONAL, -- Cond IntraFreqConnected
refFreqCSI-RS ARFCN-ValueNR OPTIONAL, -- Cond CSI-RS
referenceSignalConfig ReferenceSignalConfig,
absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, -- Need R
absThreshCSI-RS-Consolidation ThresholdNR OPTIONAL, -- Need R
nrofSS-BlocksToAverage INTEGER (2..maxNrofSS-BlocksToAverage) OPTIONAL, -- Need R
nrofCSI-RS-ResourcesToAverage INTEGER (2..maxNrofCSI-RS-ResourcesToAverage) OPTIONAL, -- Need R
quantityConfigIndex INTEGER (1..maxNrofQuantityConfig),
offsetMO Q-OffsetRangeList,
cellsToRemoveList PCI-List OPTIONAL, -- Need N
cellsToAddModList CellsToAddModList OPTIONAL, -- Need N
excludedCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N
excludedCellsToAddModList SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement OPTIONAL, -- Need N
allowedCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N
allowedCellsToAddModList SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement OPTIONAL, -- Need N
...,
-- five extension groups follow, from r15 through r19 : freqBandIndicatorNR, measCycleSCell,
-- smtc3list-r16, rmtc-Config-r16, t312-r16, the r17 measurement gap associations, and measSequence-r18
}
ReferenceSignalConfig::= SEQUENCE {
ssb-ConfigMobility SSB-ConfigMobility OPTIONAL, -- Need M
csi-rs-ResourceConfigMobility SetupRelease { CSI-RS-ResourceConfigMobility } OPTIONAL -- Need M
}
SSB-MTC ::= SEQUENCE {
periodicityAndOffset CHOICE {
sf5 INTEGER (0..4),
sf10 INTEGER (0..9),
sf20 INTEGER (0..19),
sf40 INTEGER (0..39),
sf80 INTEGER (0..79),
sf160 INTEGER (0..159)
},
duration ENUMERATED { sf1, sf2, sf3, sf4, sf5 }
}
CSI-RS-ResourceConfigMobility ::= SEQUENCE {
subcarrierSpacing SubcarrierSpacing,
csi-RS-CellList-Mobility SEQUENCE (SIZE (1..maxNrofCSI-RS-CellsRRM)) OF CSI-RS-CellMobility,
...,
[[
refServCellIndex ServCellIndex OPTIONAL -- Need S
]]
}
CSI-RS-Index ::= INTEGER (0..maxNrofCSI-RS-ResourcesRRM-1)
Q-OffsetRangeList ::= SEQUENCE {
rsrpOffsetSSB Q-OffsetRange DEFAULT dB0,
rsrqOffsetSSB Q-OffsetRange DEFAULT dB0,
sinrOffsetSSB Q-OffsetRange DEFAULT dB0,
rsrpOffsetCSI-RS Q-OffsetRange DEFAULT dB0,
rsrqOffsetCSI-RS Q-OffsetRange DEFAULT dB0,
sinrOffsetCSI-RS Q-OffsetRange DEFAULT dB0
}
ThresholdNR ::= SEQUENCE{
thresholdRSRP RSRP-Range OPTIONAL, -- Need R
thresholdRSRQ RSRQ-Range OPTIONAL, -- Need R
thresholdSINR SINR-Range OPTIONAL -- Need R
}
CellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddMod
CellsToAddMod ::= SEQUENCE {
physCellId PhysCellId,
cellIndividualOffset Q-OffsetRangeList
}
PCI-RangeElement ::= SEQUENCE {
pci-RangeIndex PCI-RangeIndex,
pci-Range PCI-Range
}
Six names changed, and four information elements were deleted outright. The white and black cell lists were renamed when 3GPP moved away from that terminology. Their element type changed at the same time, from a bespoke structure to the general PCI-RangeElement, so the IEs that defined them are gone rather than renamed.
Name in the early Release 15 draft |
Name in 38.331 v19.3.0 |
What changed |
|---|---|---|
carrierFreq |
ssbFrequency |
Renamed, and now conditional on SSB being measured |
SSB-MeasurementTimingConfiguration |
SSB-MTC |
Renamed. SSB-MTC2 and SSB-MTC2-LP-r16 were added beside it |
CSI-RS-ResourceConfig-Mobility |
CSI-RS-ResourceConfigMobility |
Renamed, the hyphen before Mobility was dropped |
CSI-RS-ResourceId-RRM |
CSI-RS-Index |
Renamed, same range |
blackCellsToAddModList |
excludedCellsToAddModList |
Renamed, and the element type is now PCI-RangeElement |
whiteCellsToAddModList |
allowedCellsToAddModList |
Renamed, and the element type is now PCI-RangeElement |
BlackCellsToAddModList, BlackCellsToAddMod |
No longer defined |
Deleted. The list is now an inline SEQUENCE OF PCI-RangeElement |
WhiteCellsToAddModList, WhiteCellsToAddMod |
No longer defined |
Deleted, for the same reason |
Only three members are mandatory : referenceSignalConfig, quantityConfigIndex and offsetMO carry no OPTIONAL, so every other field can be absent.The consolidation thresholds are what turn beams into a cell : absThreshSS-BlocksConsolidation and its CSI-RS twin decide which beams are averaged, and nrofSS-BlocksToAverage caps how many.Offsets exist at two levels : offsetMO applies to the whole object, and cellIndividualOffset inside CellsToAddMod applies to one cell.Every offset defaults to dB0 : Q-OffsetRangeList carries DEFAULT dB0 on all six, so an absent offset is no offset rather than an undefined one.Excluded and allowed lists are PCI ranges, not single cells : PCI-RangeElement pairs an index with a range, so one entry can cover many physical cell identities.ThresholdNR carries all three quantities : RSRP, RSRQ and SINR, which is the same triple the results side reports.
Measurement Items in RRC - MeasResults
This is the reply to everything configured above. The same three quantities come back twice, once for the cell as a whole and once per beam. That is what lets the network see both the consolidated result and the individual SSB or CSI-RS behind it.
This listing has drifted even further than the measurement object. It carries an FFS marker and a TYPE_FFS placeholder, both signs of a draft that had not settled. The four result structures it defines have since been replaced by a single one.
Following is based on
MeasResults ::= SEQUENCE {
measId MeasId,
measResultServingMOList MeasResultServMOList,
measResultNeighCells CHOICE {
measResultListNR MeasResultListNR,
...,
measResultListEUTRA MeasResultListEUTRA,
measResultListUTRA-FDD-r16 MeasResultListUTRA-FDD-r16,
sl-MeasResultsCandRelay-r17 OCTET STRING -- Contains PC5 SL-MeasResultListRelay-r17
} OPTIONAL,
...,
-- six extension groups follow, from r15 through r19
}
MeasResultServMOList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServMO
MeasResultServMO ::= SEQUENCE {
servCellId ServCellIndex,
measResultServingCell MeasResultNR,
measResultBestNeighCell MeasResultNR OPTIONAL,
...
}
MeasResultListNR ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR
MeasResultNR ::= SEQUENCE {
physCellId PhysCellId OPTIONAL,
measResult SEQUENCE {
cellResults SEQUENCE{
resultsSSB-Cell MeasQuantityResults OPTIONAL,
resultsCSI-RS-Cell MeasQuantityResults OPTIONAL
},
rsIndexResults SEQUENCE{
resultsSSB-Indexes ResultsPerSSB-IndexList OPTIONAL,
resultsCSI-RS-Indexes ResultsPerCSI-RS-IndexList OPTIONAL
} OPTIONAL
},
...,
-- four extension groups follow : cgi-Info, the r17 conditional handover fields, entering-r18
-- and distanceFromReference2-r19
}
MeasQuantityResults ::= SEQUENCE {
rsrp RSRP-Range OPTIONAL,
rsrq RSRQ-Range OPTIONAL,
sinr SINR-Range OPTIONAL
}
ResultsPerSSB-IndexList ::= SEQUENCE (SIZE (1..maxNrofIndexesToReport)) OF ResultsPerSSB-Index
ResultsPerSSB-Index ::= SEQUENCE {
ssb-Index SSB-Index,
ssb-Results MeasQuantityResults OPTIONAL
}
ResultsPerCSI-RS-IndexList ::= SEQUENCE (SIZE (1..maxNrofIndexesToReport)) OF ResultsPerCSI-RS-Index
ResultsPerCSI-RS-Index ::= SEQUENCE {
csi-RS-Index CSI-RS-Index,
csi-RS-Results MeasQuantityResults OPTIONAL
}
The change worth understanding is the collapse of four types into one. The draft defined ResultsSSBCell, ResultsCSI-RSCell, ResultsPerSSBIndex and ResultsPerCSI-RSIndex, each with its own differently prefixed rsrp, rsrq and sinr fields. All four now use
Name in the early Release 15 draft |
Name in 38.331 v19.3.0 |
What changed |
|---|---|---|
measResultServingFreqList |
measResultServingMOList |
Renamed. Results are reported per measurement object, not per frequency |
MeasResultServFreqList, MeasResultServFreq |
MeasResultServMOList, MeasResultServMO |
Renamed, and servFreqId became servCellId |
ResultsSSBCell, ResultsCSI-RSCell |
MeasQuantityResults |
Both replaced by one type with plain rsrp, rsrq and sinr members |
ResultsPerSSBIndexList, ResultsPerSSBIndex |
ResultsPerSSB-IndexList, ResultsPerSSB-Index |
Renamed, and the three quantities moved into ssb-Results |
ResultsPerCSI-RSIndexList, ResultsPerCSI-RSIndex |
ResultsPerCSI-RS-IndexList, ResultsPerCSI-RS-Index |
Renamed, and the quantities moved into csi-RS-Results |
cgi-Info TYPE_FFS! |
cgi-Info CGI-InfoNR |
The placeholder was resolved, and the field moved into an extension group |
Every quantity is optional : MeasQuantityResults marks rsrp, rsrq and sinr all OPTIONAL, so a report carries only what the configuration asked for.Cell results and beam results are separate branches : cellResults holds the consolidated value and rsIndexResults holds the per beam list.One type now serves four places : MeasQuantityResults appears in both cell branches and inside both per index structures.The serving list is keyed by measurement object : MeasResultServMO pairs a serving cell identity with its own result and the best neighbour on the same object.The neighbour list is a CHOICE : NR, E-UTRA and UTRA FDD results are alternatives, so one report covers one radio access technology.
Reference
[1] 38.215 v19.3.0 : NR - Physical layer measurements. Clause 5.1 defines the UE measurement quantities, and the table above is drawn from it.
[2] 38.331 v19.3.0 : NR - Radio Resource Control (RRC) protocol specification. MeasObjectNR, MeasResults and every supporting definition above are quoted from it.