5G NR PHY Initial Power Control
Random Access to RRC_CONNECTED — Complete Stack Reference
logsA (gNB) ↔ logsB (UE) · TS 38.211 / 38.213 / 38.321 / 38.331 / 38.101-1
TS 38.321
| Parameter | Value | Source (RRC IE) | Spec Ref |
|---|---|---|---|
P_CMAX |
23 dBm | Power Class 3, FR1 (handheld UE) | TS 38.101-1 §6.2.2 |
p0-NominalWithGrant |
−76 dBm (typical) | PUSCH-ConfigCommon in SIB1 | TS 38.331 |
preambleReceivedTargetPower |
−100 dBm (typical) | RACH-ConfigGeneric in SIB1 | TS 38.213 §6.3.3.2 |
powerRampingStep |
4 dB | RACH-ConfigGeneric in SIB1 | TS 38.213 §6.3.3.2 |
| \(T_c\) | 0.509 ns | Basic NR time unit: \(T_c = 1/(480\,000 \times 4096)\) s | TS 38.211 §4.1 |
pre.rrc-block syntax highlighting
mirroring ASN.1 IE names verbatim so you can map each symbol directly to the
SIB1 / RRCSetup message field.
1.1 Maximum Output Power PCMAX TS 38.101-1 §6.2.2 TS 38.101-2 §6.2.2
The maximum UE transmit power \(P_{\text{CMAX},f,c}(i)\) is defined per operating band and power class. It acts as the hard ceiling in every uplink power formula. For FR1 the dominant deployment class is PC3 (23 dBm), covering most handheld UE form factors.
| Power Class | PCMAX (dBm) | Frequency Range | Typical Use Case |
|---|---|---|---|
| PC1 | 26 dBm | FR1 | Enhanced coverage (IoT, deep indoor) |
| PC2 | 26 dBm | FR1 | Fixed wireless access (CPE) |
| PC3 | 23 dBm most common | FR1 | Handheld UE (smartphone) |
| PC4 | 20 dBm | FR1 | Reduced-power / wearable |
| PC1 (FR2) | 23 dBm | FR2 (mmWave) | mmWave handheld with beam gain compensation |
Note: configured \(P_{\text{CMAX},f,c}(i)\) also accounts for MPR (maximum power reduction) and A-MPR terms per TS 38.101-1 §6.2.3–§6.2.5, and may be further limited by UE implementation-specific PEMAX from SIB1.
1.2 Power Control Loop Structure
NR uplink power control is organised into four distinct loops, each active during a different phase of the UE lifecycle:
| # | Loop Type | Channel | Phase | Key Formula / Spec |
|---|---|---|---|---|
| 1 | Open-loop (initial) | PRACH | Random Access (MSG1) | \(P_{\text{PRACH}} = \min(P_{\text{CMAX}},\, p_r + PL + \Delta + (N-1)\delta)\) TS 38.213 §6.3.3.2 |
| 2 | Open-loop (RAR grant) | PUSCH (MSG3) | MSG3 transmission | \(P_{\text{PUSCH}} = \min(P_{\text{CMAX}},\, P_O + \alpha\cdot PL + \Delta_{MCS} + f)\) TS 38.213 §7.1.1 |
| 3 | Closed-loop (TPC) | PUSCH (dedicated) | RRC_CONNECTED data | Accumulate TPC commands from PDCCH DCI TS 38.213 §7.1.1 |
| 4 | Closed-loop (TPC) | PUCCH / SR | RRC_CONNECTED control | Separate \(P_O\), \(\delta_{F}\) per format TS 38.213 §7.2.1 |
The key insight is that all four loops share the same path-loss estimate \(PL_{b,f,c}(q_d)\) derived from SSB measurements (§2). This common reference ensures consistent link budget assumptions across MSG1 through dedicated data transmission.
2.1 Path Loss Formula TS 38.213 §7.1.1
The UE estimates the downlink path loss \(PL_{b,f,c}(q_d)\) as the difference between the nominal SSB transmit power signalled by logsA (gNB) and the L1-filtered received SS-RSRP:
Here \(q_d\) identifies the specific DL reference signal resource (SSB index or
CSI-RS index) used for path-loss derivation, configured via
pathlossReferenceRS in PUSCH-PowerControl /
PUCCH-PowerControl (TS 38.331).
2.2 referenceSignalPower — ss-PBCH-BlockPower TS 38.331
ss-PBCH-BlockPower is the average EPRE (Energy Per Resource Element)
of the SS/PBCH block, in dBm, broadcast in
ServingCellConfigCommonSIB :: ss-PBCH-BlockPower within SIB1.
Typical range: −60 dBm to +50 dBm (integer, step 1 dB per TS 38.331 ASN.1).
A deployment using 200 W total BS power with 64 TxRU and 240 SSB subcarriers
yields roughly +13 dBm EPRE at the antenna connector.
-- ServingCellConfigCommonSIB (SIB1 broadcast) ServingCellConfigCommonSIB ::= SEQUENCE { downlinkConfigCommon DownlinkConfigCommonSIB, uplinkConfigCommon UplinkConfigCommonSIB -- OPTIONAL ss-PBCH-BlockPower INTEGER (-60..50), -- dBm EPRE ... }
2.3 SS-RSRP Measurement TS 38.133 Table 10.1.6.1-1
L1 SS-RSRP is the linear average power of the resource elements carrying SSS (Secondary Synchronisation Signal) within the measurement bandwidth. The UE reports an integer index per TS 38.133 Table 10.1.6.1-1:
| RSRP (dBm) range | RSRP index (reported) | Interpretation |
|---|---|---|
| ≥ −31 dBm | 127 | Very strong (indoor, near antenna) |
| −85 to −100 dBm | ~46–61 typical urban | Normal serving-cell range |
| −100 to −110 dBm | 36–56 cell edge | Path loss ≈ 100–120 dB |
| ≤ −156 dBm | 0 | Below detection threshold |
2.4 L3 RSRP Filtering TS 38.133 §5.5.3.2
Before reporting, the UE applies an L3 exponential moving-average filter (IIR, coefficient \(\alpha\)) to smooth measurement noise:
The coefficient \(\alpha = 0.5^{k/4}\) where \(k\) is derived from
filterCoefficient (default 4 → \(\alpha = 0.5\)).
The measurement period \(T_{\text{meas}}\) is
\(T_{\text{meas}} = \text{smtc1-periodicity}\) (ms), configured in
SSB-MTC within MeasObjectNR.
2.5 S-Criterion for Cell Selection TS 38.304 §5.2.3.2
Before initiating RACH, the UE must satisfy the S-criterion on the selected cell. Both conditions must hold simultaneously:
Where \(P_{compensation} = \max(P_{\text{EMAX}} - P_{\text{PowerClass}},\, 0)\) [dB]
accounts for the case where the UE maximum power is lower than the nominal
power class (e.g., PC4 at 20 dBm using a PC3 cell configured for 23 dBm).
\(Q_{rxlevmin}\) and \(Q_{qualmin}\) are broadcast in SIB1 via
q-RxLevMin and q-QualMin IE fields.
2.6 Path Loss by Deployment Scenario
Typical path loss ranges inform the operator choice of
preambleReceivedTargetPower and
p0-NominalWithGrant:
| Scenario | Typical PL (dB) | SS-RSRP at UE (dBm) | Note |
|---|---|---|---|
| Indoor (picocell) | 50–80 dB | −30 to −65 dBm | Very strong; P_CMAX may cap MSG1 |
| Dense urban (macro) | 90–120 dB | −75 to −105 dBm | Most common deployment |
| Suburban | 110–140 dB | −95 to −125 dBm | Ramping needed; 2–3 attempts typical |
| Rural / extended | 130–165 dB | −115 to −150 dBm | Cell edge; max ramping, may fail |
3.1 PRACH Transmit Power Formula TS 38.213 §6.3.3.2 Eq.(6.3.3.2-1)
The UE determines the transmit power for the \(i\)-th PRACH occasion as:
| Symbol | Name | RRC source IE | Typical value | Spec |
|---|---|---|---|---|
| \(p_r\) | preambleReceivedTargetPower |
RACH-ConfigGeneric in SIB1 | −100 dBm | TS 38.213 §6.3.3.2 |
| \(PL_{b,f,c}(q_d)\) | DL path loss estimate | Derived from ss-PBCH-BlockPower − SS-RSRP | 100–130 dB | TS 38.213 §7.1.1 |
| \(\Delta_{\text{preamble}}\) | Preamble format power offset | Implicit per format (Table 7.4-1) | 0–3 dB | TS 38.213 Table 7.4-1 |
| \(N_{\text{attempt}}\) | PREAMBLE_TRANSMISSION_COUNTER | Starts at 1, increments on no RAR | 1 (first attempt) | TS 38.321 §5.1.2 |
| \(\delta_{\text{ramp}}\) | powerRampingStep |
RACH-ConfigGeneric in SIB1 | 4 dB; ∈{0,2,4,6} dB | TS 38.213 §6.3.3.2 |
3.2 Preamble Format Power Offset Δpreamble TS 38.213 Table 7.4-1
Different PRACH formats occupy different time–frequency resources and therefore carry different amounts of energy. Short formats use fewer symbols and require a power boost to maintain equivalent detection SNR at the logsA (gNB) receiver. The offset \(\Delta_{\text{preamble}}\) compensates exactly for this energy difference relative to the long Format 0 (LRA=839, 2 OFDM symbols equivalent):
| Preamble Format | LRA | Subcarrier Spacing | Duration | Δpreamble (dB) | Notes |
|---|---|---|---|---|---|
| Format 0 | 839 | 1.25 kHz | ~1 ms | 0 | Wide coverage, TDD/FDD FR1 |
| Format 1 | 839 | 1.25 kHz | ~3 ms | 0 | Extended CP, larger delay spread |
| Format 2 | 839 | 1.25 kHz | ~4 ms | 0 | Long sequence option |
| Format 3 | 839 | 5 kHz | ~1 ms | 0 | High-speed rail scenario |
| A1 | 139 | 15/30 kHz | 2 symbols | 0 | Short sequence, indoor/urban |
| A2 | 139 | 15/30 kHz | 4 symbols | 3 | |
| A3 | 139 | 15/30 kHz | 6 symbols | 3 | |
| B1 | 139 | 15/30 kHz | 2 symbols | 3 | Mixed format (different CP) |
| B2 | 139 | 15/30 kHz | 4 symbols | 3 | |
| B3 | 139 | 15/30 kHz | 6 symbols | 3 | |
| B4 | 139 | 15/30 kHz | 12 symbols | 3 | Longest short format |
| C0 | 139 | 15/30 kHz | 1 symbol | 0 | Shortest short format |
| C2 | 139 | 15/30 kHz | 4 symbols | 3 | Mixed CP structure |
Source: TS 38.213 Table 7.4-1. The offset is applied uniformly regardless of subcarrier spacing. For FR2 (mmWave), formats A1/A2/A3/B1/B2/B3/B4 with 60/120 kHz SCS are used; offsets are identical.
3.3 Preamble ZC Sequence Generation TS 38.211 §6.3.3.1
NR PRACH preambles are constructed from Zadoff–Chu (ZC) sequences of length \(L_{RA} \in \{139, 839\}\). Each root sequence \(u\) generates one base sequence:
Multiple orthogonal preambles per root are obtained by cyclic shifting. The \(v\)-th cyclic shift of root \(u\) is:
The cyclic shift step \(N_{CS}\) is determined by
zeroCorrelationZoneConfig from SIB1
(TS 38.211 Tables 6.3.3.1-5 through 6.3.3.1-7),
with larger values providing wider zero-correlation zones to handle
larger cell radii (longer round-trip delay). The number of orthogonal
preambles from a single root is \(\lfloor L_{RA}/N_{CS} \rfloor\)
(when \(N_{CS} > 0\)).
| zeroCorrelationZoneConfig | NCS (LRA=839, unrestricted) | Preambles/root | Max delay spread (km) |
|---|---|---|---|
| 0 | 0 (no shift) | 1 | unlimited (single-root only) |
| 1 | 13 | 64 | ~1.7 km |
| 5 | 38 | 22 | ~5.0 km |
| 10 | 93 | 9 | ~12.3 km |
| 15 | 238 | 3 | ~31.5 km |
3.4 Power Ramping — Interactive Chart
ra-ResponseWindow slots, the counter \(N_{\text{attempt}}\)
increments by 1, adding \(\delta_{\text{ramp}}\) dB. The ramp continues until
either (a) a RAR is received, or (b)
PREAMBLE_TRANSMISSION_COUNTER exceeds
preambleTransMax (configured in RACH-ConfigGeneric),
at which point the UE declares random access failure and notifies the RRC
sublayer, which may trigger a cell re-selection or connection re-establishment.
-
A UE with PC3 (\(P_{\text{CMAX}} = 23\) dBm) measures SS-RSRP = −110 dBm
on a cell broadcasting
ss-PBCH-BlockPower= +13 dBm. GivenpreambleReceivedTargetPower= −96 dBm,powerRampingStep= 2 dB, and Format A1 (\(\Delta_{\text{preamble}}\) = 0 dB, per TS 38.213 Table 7.4-1), what is the minimum attempt number at which the UE transmit power reaches \(P_{\text{CMAX}}\)? At that point, what is the received preamble power at logsA (gNB)? (Hint: PL = 13 − (−110) = 123 dB; P_PRACH(1) = min(23, −96+123+0+0) = 23 dBm, so P_CMAX is reached on attempt 1. Received power = 23 − 123 = −100 dBm.) -
Explain why
zeroCorrelationZoneConfig= 0 (no cyclic shift, \(N_{CS} = 0\)) requires only one ZC root per cell but can still support up to 64 preambles. What is the fundamental trade-off with non-zero \(N_{CS}\) configurations in terms of cell radius and simultaneous RACH access capacity?
8.1 Group A vs. Group B — Overview TS 38.213 §8.1
NR defines two preamble groups within the set of contention-based preambles. The groups are differentiated by intended payload size and link budget:
| Group | Intended for | MSG3 size | Link budget | Power offset |
|---|---|---|---|---|
| Group A | Default; all UEs that don't qualify for Group B | Any (no restriction) | Any path loss | None (0 dB extra) |
| Group B | Large MSG3 payload AND good link budget | > ra-Msg3SizeGroupA | PL below threshold | +messagePowerOffsetGroupB dB in MSG3 |
When logsA (gNB) sees a preamble from the Group B index range, it infers that the UE has both a large payload and a favourable path loss, and may pre-allocate a larger resource grant in the RAR (MSG2) for MSG3 accordingly. This reduces the probability of segmentation and retransmissions for bulky RRCSetupRequest extensions.
8.2 Selection Criteria TS 38.213 §8.1
The UE selects Group B if and only if all three of the following conditions hold simultaneously:
Condition 1 — MSG3 payload size:
Condition 2 — Path loss below RSRP threshold:
(rsrp-ThresholdSSB configured in groupBconfigured IE, TS 38.331).
This threshold-based check ensures the UE has sufficient link quality to
transmit MSG3 with the additional Group B power offset applied on top of
the normal open-loop power.
Condition 3 — Group B is configured:
If the operator sets messagePowerOffsetGroupB = minusinfinity,
Group B is disabled regardless of payload or path loss. In this case all
UEs use Group A preambles.
If any condition fails, the UE selects Group A.
8.3 Preamble Index Ranges TS 38.331 RACH-ConfigCommon
The 64 contention-based preamble indices (0–63 by default) are partitioned:
| Group | Index range | Count | RRC IE |
|---|---|---|---|
| Group A | \([0,\; N_A - 1]\) | \(N_A\) = numberOfRA-PreamblesGroupA |
RACH-ConfigCommon in SIB1 |
| Group B | \([N_A,\; N_A + N_B - 1]\) | \(N_B\) = total − \(N_A\) | Derived (not explicit IE) |
| Contention-free | Signalled explicitly by gNB | 1–64 (dedicated assignment) | PDCCH order / HO command |
The total number of available contention-based preambles is
totalNumberOfRA-Preambles (default 64 for a standard cell).
Contention-free preambles (used in handover or PDCCH-ordered RACH) are
assigned by logsA (gNB) outside the Group A/B partition.
8.4 Contention-Free vs. Contention-Based RACH TS 38.321 §5.1
Two RACH procedures differ in how the preamble is chosen:
| Type | Preamble selection | Collision risk | Triggered by | Contention resolution needed? |
|---|---|---|---|---|
| Contention-Free | logsA (gNB) assigns specific index via PDCCH order or handover | None (dedicated) | Handover, PDCCH order, RRC re-establishment | No |
| Contention-Based | logsB (UE) randomly selects from Group A or B range | Multiple UEs may choose same preamble | Initial access, RLF recovery, Scheduling Request failure | Yes (MSG4 TC-RNTI match) |
8.5 messagePowerOffsetGroupB Values TS 38.331 RACH-ConfigCommon
The RRC IE messagePowerOffsetGroupB is an enumerated value in
RACH-ConfigCommon:
| ASN.1 Enum Value | dB Offset | Effect |
|---|---|---|
minusinfinity |
−∞ | Group B disabled; all UEs use Group A |
dB0 |
0 dB | Group B active, no additional power offset for MSG3 |
dB5 |
5 dB | Moderate boost; slightly favours large-payload UEs |
dB8 |
8 dB | |
dB10 |
10 dB | common default |
dB12 |
12 dB | |
dB15 |
15 dB | Large offset; restricts Group B to very strong-signal UEs |
dB18 |
18 dB | Maximum; effectively near-indoor-only Group B selection |
The value −∞ (encoded as minusInfinity) effectively disables Group B. All finite values are ≥ 0 dB per the ASN.1 enumeration.
-- RACH-ConfigCommon in SIB1 (simplified) RACH-ConfigCommon ::= SEQUENCE { rach-ConfigGeneric RACH-ConfigGeneric, totalNumberOfRA-Preambles INTEGER (1..63) OPTIONAL, -- default 64 ssb-perRACH-OccasionAndCB-PreamblesPerSSB CHOICE { oneEighth INTEGER(4..8), oneFourth INTEGER(2..8), oneHalf INTEGER(2..8), one INTEGER(1..8), -- 1 SSB per RACH occasion two INTEGER(1..4), four INTEGER(1..2), eight INTEGER(1..1), sixteen INTEGER(1..1) }, groupBconfigured SEQUENCE { ra-Msg3SizeGroupA ENUMERATED {b56,...,b4096}, messagePowerOffsetGroupB ENUMERATED {minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18}, numberOfRA-PreamblesGroupA INTEGER (1..64), rsrp-ThresholdSSB RSRP-Range -- used in Group B Condition 2 (TS 38.321 §5.1.2) } OPTIONAL, ra-ContentionResolutionTimer ENUMERATED {sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64}, ... }
ra-Msg3SizeGroupA
and messagePowerOffsetGroupB significantly reduces MSG3 HARQ
retransmission rates.
-
A UE has MSG3 payload = 100 bytes, PL = 95 dB,
\(P_{\text{CMAX}}\) = 23 dBm, \(p_r\) = −98 dBm,
\(\Delta_{\text{preamble}}\) = 0 dB,
ra-Msg3SizeGroupA= 56 bytes,messagePowerOffsetGroupB= dB10. Evaluate all three Group B conditions. Does this UE select Group A or Group B? Show your working for Condition 2 numerically. -
In a scenario where
numberOfRA-PreamblesGroupA= 52 andtotalNumberOfRA-Preambles= 64, how many preambles are available for Group B? If 8 UEs simultaneously transmit Group B preambles, what is the probability that at least two UEs choose the same preamble index (assuming uniform random selection)?
4.1 RAR MAC PDU Structure
The Random Access Response (RAR) MAC PDU carries the network's initial response to the UE PRACH transmission. The RAR body is 56 bits (7 bytes) structured as follows TS 38.321 §6.1.5:
| Field | Bits | Description |
|---|---|---|
| Reserved (R) | 1 | Set to 0; reserved for future use |
| Timing Advance Command | 12 | TA_RAR absolute value, range 0..3846; used to synchronise UL transmission |
| UL Grant | 27 | Compact scheduling grant for MSG3 PUSCH; see sub-table below |
| Temporary C-RNTI (TC-RNTI) | 16 | Assigned by logsA; used until contention resolution completes (MSG4) |
| Total: 56 bits (7 bytes) | Preceded by a 1-byte RAR MAC subheader carrying the RAPID field (6 bits) | |
The 27-bit UL Grant field is defined in TS 38.213 §8.2 Table 8.2-1:
| Field | Bits | Values / Notes |
|---|---|---|
| Frequency hopping flag | 1 | 0 = no hopping; 1 = intra-slot frequency hopping |
| PUSCH frequency resource allocation | 14 | RIV-encoded Type 2 allocation within the active UL BWP |
| PUSCH time domain resource allocation | 4 | Row index into RA time-domain resource assignment table (TS 38.214 Table 6.1.2.1.1-2) |
| MCS | 4 | Initial MSG3 MCS from MCS table (TS 38.214 Table 5.1.3.1-1); typically low MCS for robustness |
| TPC command | 3 | Power offset applied to MSG3 PUSCH; see Table 8.2-2 below |
| CSI request | 1 | 0 or 1; triggers aperiodic CSI on MSG3 if set |
TPC command mapping for MSG3 TS 38.213 Table 8.2-2:
| TPC code (binary) | TPC code (decimal) | Power offset (dB) |
|---|---|---|
| 000 | 0 | −6 |
| 001 | 1 | −4 |
| 010 | 2 | −2 |
| 011 | 3 | 0 |
| 100 | 4 | +2 |
| 101 | 5 | +4 |
| 110 | 6 | +6 |
| 111 | 7 | +8 |
4.2 RA-RNTI Formula
The RA-RNTI identifies the PRACH occasion in time–frequency space and is used by the UE to monitor the PDCCH for the RAR during ra-ResponseWindow. Valid range: 1..65518.
| Parameter | Range | Description |
|---|---|---|
| \(s_{id}\) | 0..13 | Starting OFDM symbol index of the PRACH occasion within the slot |
| \(t_{id}\) | 0..79 | Slot index of the PRACH occasion within a 10 ms radio frame (for μ=1: 20 slots/subframe × 4 subframes = 80 slots, indices 0..79) |
| \(f_{id}\) | 0..7 | Frequency-domain PRACH occasion index within the slot |
| \(\text{ul\_carrier\_id}\) | 0 or 1 | 0 = NUL (normal UL) carrier; 1 = SUL (supplementary UL) carrier |
Worked example — \(s_{id}=0\), \(t_{id}=8\), \(f_{id}=0\), \(\text{ul\_carrier\_id}=0\):
4.3 Timing Advance
CRITICAL: NR defines two distinct TA mechanisms. Confusing them is one of the most common errors in RACH log analysis.
4.3.1 RAR Timing Advance — Absolute Initial UL Synchronisation
TS 38.321 §5.1 TS 38.213 §4.2
The 12-bit TA_RAR field (range 0..3846) carries an absolute timing advance value. The UE converts it to a sample offset using:
Where \(T_c = \dfrac{1}{480{,}000 \times 4096} \approx 0.509\,\text{ns}\) is the NR basic time unit TS 38.211 §4.1.
Worked example — TA_RAR = 64:
The total applied timing advance includes an offset term \(N_{TA,\text{offset}}\):
where \(N_{TA,\text{offset}} = 0\) for FDD and \(N_{TA,\text{offset}} = 13792\) for TDD TS 38.213 §4.2.
4.3.2 MAC CE Timing Advance Update — Relative Ongoing Correction
TS 38.321 §6.3.2 TS 38.213 §4.2
After initial synchronisation, the network sends relative corrections via a 7-bit TA MAC CE (range 0..63, centred at 31 = no change):
Example: TA_MAC = 33 → \(N_{TA,\text{new}} = N_{TA,\text{old}} + (33-31)\times16 = N_{TA,\text{old}} + 32\) — a small positive correction advancing the UL transmission by approximately \(32 \times 0.509\,\text{ns} \approx 16.3\,\text{ns}\).
- The RAR TA field is absolute (12-bit, 0..3846): \(N_{TA} = \text{TA}_{RAR} \times 16\)
- The MAC CE TA field is relative (7-bit, centred at 31): \(\Delta N_{TA} = (\text{TA}_{MAC}-31)\times16\)
-
For TA_RAR = 64:
Correct: \(N_{TA} = 64 \times 16 = 1024\)
Incorrect (MAC CE formula applied to RAR): \((64-31)\times16 = 528\) — wrong by 496 samples
4.3.3 TA Timing Limit and Maximum Cell Radius
The corresponding theoretical maximum one-way propagation delay is \(31.3\,\mu\text{s} / 2 \approx 15.65\,\mu\text{s}\), giving a cell radius of approximately \(3\times10^8 \times 15.65\times10^{-6} \approx 4{,}695\,\text{km}\). In practice, cell radii are limited to far smaller values by link budget, PRACH preamble cyclic prefix length, and guard period design.
5.1 PUSCH Power Control Formula
The general PUSCH transmit power is defined in TS 38.213 §7.1.1 Eq. 7.1.1-1:
| Parameter | RRC Source | Spec | Description |
|---|---|---|---|
| \(P_{O,\text{PUSCH},b,f,c}(j) = P_{0,\text{nominal}} + P_{0,\text{UE}}\) | SIB1 or RRCSetup | TS 38.213 §7.1.1 | Nominal PUSCH power target for power control resource set index \(j\) |
| \(P_{0,\text{nominal}}\) | PUSCH-ConfigCommon.p0-NominalWithGrant |
TS 38.331 | Cell-specific nominal power; range −202 to +24 dBm in 2 dB steps |
| \(P_{0,\text{UE}}\) | PUSCH-Config.p0-AlphaSets[j].p0 |
TS 38.331 | UE-specific power offset; 0 dB if not configured |
| \(M_{RB}^{\text{PUSCH}}\) | RAR UL grant (MSG3) or DCI field | TS 38.213 §7.1.1 | Number of scheduled RBs in the PUSCH allocation |
| \(\mu\) | UL BWP numerology | TS 38.211 §4.2 | Numerology index: 0=15 kHz, 1=30 kHz, 2=60 kHz, 3=120 kHz |
| \(\alpha_{b,f,c}(j)\) | msg3-Alpha or p0-AlphaSets[j].alpha |
TS 38.331 | Fractional path loss compensation factor; 0..1 |
| \(\Delta_{TF,b,f,c}(i)\) | — | TS 38.213 §7.1.1 | MCS-dependent power offset; 0 dB if deltaMCS not enabled (typical for MSG3) |
| \(f_{b,f,c}(i,l)\) | Accumulated TPC commands from PDCCH | TS 38.213 §7.1.1 | Closed-loop correction; for MSG3 replaced by \(\Delta_{\text{msg3}}\) (see §5.2) |
5.2 MSG3-Specific Power
TS 38.213 §8.3
For MSG3, the closed-loop accumulation term \(f_{b,f,c}(i,l)\) is replaced by the open-loop offset \(\Delta_{\text{msg3}}\), which combines a configured delta and the RAR TPC command:
| Component | Source | Range |
|---|---|---|
| \(\delta_{\text{msg3-DeltaPreamble}}\) | PUSCH-ConfigCommon.msg3-DeltaPreamble (SIB1) |
−1..6 dB (integer) |
| \(\delta_{TPC,\text{RAR}}\) | 3-bit TPC field in RAR UL grant (see §4.1 Table 8.2-2) | −6, −4, −2, 0, +2, +4, +6, +8 dB |
5.3 \(\Delta_{TF}\) — MCS-Dependent Offset
TS 38.213 §7.1.1
When deltaMCS is enabled in PUSCH-Config:
Where:
- \(BPRE = \dfrac{Q_m \times R \times N_L \times M_{RB} \times N_{RE}}{M_{RE}}\) — bits per resource element
- \(K_S = 1.25\) when transform precoding is disabled (OFDM); \(K_S = 1\) when enabled (DFT-s-OFDM)
- \(\beta_{\text{offset}}^{\text{PUSCH}}\) — HARQ-ACK/CSI beta offset (linear)
deltaMCS is not configured: \(\Delta_{TF} = 0\,\text{dB}\).
This is the common case for MSG3 and initial connection, where the simplified open-loop formula applies.
5.4 Fractional Path Loss Compensation Factor \(\alpha\)
\(\alpha\) controls what fraction of the estimated path loss is compensated by the UE's transmit power. Values \(\alpha < 1\) intentionally allow cell-edge UEs to transmit below the interference target, reducing inter-cell interference at the cost of reduced UL SINR for those UEs.
| \(\alpha\) value | RRC encoding | Effect on power control |
|---|---|---|
| 0 | alpha0 | No PL compensation — fixed power regardless of path loss |
| 0.4 | alpha04 | 40% PL compensation |
| 0.5 | alpha05 | 50% PL compensation |
| 0.6 | alpha06 | 60% PL compensation |
| 0.7 | alpha07 | 70% PL compensation |
| 0.8 | alpha08 | 80% PL compensation |
| 0.9 | alpha09 | 90% PL compensation |
| 1.0 | alpha1 | Full PL compensation — default for MSG3; maintains constant received power at gNB |
5.5 Interactive Chart: MSG3 PUSCH Power vs Allocated RBs
The chart below shows the MSG3 PUSCH transmit power as a function of the number of scheduled RBs for representative \(\alpha\) and \(\mu\) values. Assumptions: \(P_{0,\text{PUSCH}} = -76\,\text{dBm}\), \(PL = 108\,\text{dB}\), \(\Delta_{TF} = 0\), \(\Delta_{\text{msg3}} = +6\,\text{dB}\) (TPC code 6), \(P_{\text{CMAX}} = 23\,\text{dBm}\).
5.6 Power Headroom Report (PHR)
TS 38.321 §6.1.3.8
| PHR value | Interpretation | Action |
|---|---|---|
| \(PH > 0\) | Power headroom available | gNB may increase MCS, RBs, or use higher power offset |
| \(PH = 0\) | Exactly at \(P_{\text{CMAX}}\) boundary | No margin; any increase in demand will cause power limiting |
| \(PH < 0\) | UE is power-limited | Scheduling demand exceeds UE capability; gNB should reduce allocated RBs or adjust \(P_0\) |
MSG3 worked example: With the parameters above (\(P_0=-76\), \(PL=108\), \(\Delta_{\text{msg3}}=+6\), \(\mu=1\), \(M_{RB}=10\), \(\alpha=0.8\)): \[ P_{\text{PUSCH}} = \min\!\{23,\; -76 + 10\log_{10}(20) + 0.8\times108 + 0 + 6\} = \min\!\{23,\; -76 + 13.01 + 86.4 + 6\} = \min\!\{23,\; 29.4\} = 23\,\text{dBm} \] \[ PH = 23 - 23 = 0\,\text{dB} \quad \text{(at }P_{\text{CMAX}}\text{ boundary, no headroom)} \]
6.1 PUCCH Power Control Formula
TS 38.213 §7.2.1 Eq. 7.2.1-1
| Parameter | RRC Source | Spec | Description |
|---|---|---|---|
| \(P_{O,\text{PUCCH},b,f,c}(q_u)\) | PUCCH-ConfigCommon.p0-nominal or PUCCH-Config power control resource set |
TS 38.331 | Nominal PUCCH power; \(q_u\) is the index into the PUCCH power control resource set |
| \(M_{RB}^{\text{PUCCH}}(i)\) | PUCCH resource configuration | TS 38.213 §7.2.1 | 1 RB for Format 0/1; up to 16 RBs for Format 2/3/4 |
| \(\mu\) | UL BWP numerology | TS 38.211 §4.2 | Same numerology as PUSCH BWP |
| \(\Delta_{F,\text{PUCCH}}(F)\) | PUCCH-Config.format-specific delta config |
TS 38.213 Table 7.2.1-1 | Format-specific delta offset; configurable per-format by higher layers |
| \(\Delta_{TF,b,f,c}(i)\) | UCI payload size \(O_{UCI}\) | TS 38.213 §7.2.1 | UCI-size-dependent offset; 0 for Format 0/1, non-zero for larger payloads |
| \(g_{b,f,c}(i,l)\) | Accumulated TPC (closed-loop \(g\)) | TS 38.213 §7.2.1 | Per-slot limited accumulation from PDCCH TPC commands (DCI 0_1/1_1/2_2) |
6.2 \(\Delta_{F,\text{PUCCH}}\) Format-Specific Offsets
TS 38.213 Table 7.2.1-1
| PUCCH Format | UCI Content | Baseline \(\Delta_{F,\text{PUCCH}}\) (dB) | RRC Config IE |
|---|---|---|---|
| Format 0 (1–2 symbols) | HARQ-ACK 1/2 bits, SR | 0 | deltaTxD-PUCCH-f0 |
| Format 1 (4–14 symbols) | HARQ-ACK 1/2 bits, SR | 0 | deltaTxD-PUCCH-f1 |
| Format 2 (1–2 symbols) | CSI, HARQ-ACK >2 bits | 0 | deltaTxD-PUCCH-f2 |
| Format 3 (4–14 symbols) | HARQ-ACK + CSI >2 bits | 0 | deltaTxD-PUCCH-f3 |
| Format 4 (4–14 symbols) | HARQ-ACK + CSI w/ OCC | 0 | deltaTxD-PUCCH-f4 |
The baseline value for all formats is 0 dB (Table 7.2.1-1). The network can shift these values via RRC configuration to account for format-specific power differences. For example, Format 2 (shorter duration, wider bandwidth) may need a positive offset to match performance of Format 1.
6.3 \(\Delta_{TF}\) for PUCCH — UCI Payload Compensation
TS 38.213 §7.2.1
Unlike LTE's \(h(n_{\text{CQI}})\) function, NR's \(\Delta_{TF}\) is defined as follows:
- For Formats 0 and 1 (binary signalling — SR or 1/2-bit HARQ-ACK): \(\Delta_{TF} = 0\)
- For Formats 2, 3, and 4 when \(O_{UCI} > 2\) bits:
Where \(O_{UCI}\) is the number of UCI information bits (CQI + HARQ-ACK payload) and
\(\beta_{\text{offset}}^{\text{PUCCH}}\) is the PUCCH beta offset configured via
PUCCH-Config.uci-OnPUSCH.betaOffsets.
6.4 Worked Example: SR on PUCCH Format 0
Parameters: \(P_{0,\text{PUCCH}} = -90\,\text{dBm}\), \(M_{RB}^{\text{PUCCH}} = 1\), \(\mu = 1\) (30 kHz), \(PL = 108\,\text{dB}\), \(\Delta_F = 0\), \(\Delta_{TF} = 0\), \(g(i) = 0\):
The UE transmits the SR at 21 dBm, which is 2 dB below \(P_{\text{CMAX}}\), leaving 2 dB headroom. If \(g(i)\) accumulates to +2 dB from TPC commands, the UE reaches \(P_{\text{CMAX}}\).
6.5 PUCCH Format Summary
| Format | Symbols per slot | RBs | Max bits/slot | UCI types | Spreading method |
|---|---|---|---|---|---|
| 0 | 1–2 | 1 | 0–2 | SR, HARQ-ACK 1/2 bits | Cyclic sequence (CS); no DM-RS |
| 1 | 4–14 | 1 | 0–2 | SR, HARQ-ACK 1/2 bits | CS + OCC (orthogonal cover code) |
| 2 | 1–2 | 1–16 | >2 (up to ~11 b) | CSI, HARQ-ACK >2 bits | DM-RS multiplexed in same RBs |
| 3 | 4–14 | 1–16 | >2 (large) | HARQ-ACK + CSI combined | DM-RS + spread (no OCC) |
| 4 | 4–14 | 1 | >2 (up to 4 UEs) | HARQ-ACK + CSI w/ multi-UE sharing | DM-RS + OCC (length-4) |
6.6 SR Transmission, Counting, and Failure Recovery
TS 38.321 §5.4.4
The SR state machine at the MAC layer operates as follows:
| Step | Action | Parameter |
|---|---|---|
| 1. Trigger | Higher layer (RLC or PDCP) requires UL data; MAC triggers SR on configured PUCCH resource | — |
| 2. Transmit SR | UE transmits SR on next PUCCH occasion; increments SR_COUNTER |
SR_COUNTER starts at 1 |
| 3. Grant received | gNB responds with UL grant in DCI; SR procedure ends | — |
| 4. No grant — retry | If no grant after SR occasion, wait for next SR occasion and retransmit | SR_COUNTER++ |
| 5. SR failure | If SR_COUNTER ≥ sr-TransMax: declare SR failure; cancel pending SR; trigger RACH procedure |
sr-TransMax ∈ {4, 8, 16, 32, 64} |
The RACH triggered by SR failure uses the same PRACH/MSG3 procedure described in §4–5.
Typical sr-TransMax deployment values:
4 for latency-sensitive configurations (e.g., low-latency slices),
8–16 for standard eMBB, 32–64 for coverage-limited scenarios.
-
A UE with \(P_{\text{CMAX}} = 23\,\text{dBm}\) is configured with
\(P_{0,\text{PUCCH}} = -95\,\text{dBm}\), \(\mu = 1\), Format 1 (M_RB=1),
and the gNB estimates \(PL = 115\,\text{dB}\). After 3 TPC commands of +1 dB
each (\(g = +3\,\text{dB}\)) and \(\Delta_F = 0\), \(\Delta_{TF} = 0\):
what is \(P_{\text{PUCCH}}\) and is the UE power-limited?
Hint: apply Eq. 6.1-1 with the \(10\log_{10}(2^1\times1) = 3.01\,\text{dB}\) term. -
During initial SR transmission (before any TPC commands, \(g=0\)),
a UE sends SR on PUCCH Format 2 with \(O_{UCI} = 8\,\text{bits}\),
\(\beta_{\text{offset}}^{\text{PUCCH}} = 2.0\) (linear), \(M_{RB} = 2\), \(\mu = 1\),
\(P_0 = -88\,\text{dBm}\), \(PL = 100\,\text{dB}\), \(\Delta_F = 0\):
compute \(\Delta_{TF}\) and the final \(P_{\text{PUCCH}}\).
Hint: use Eq. 6.3-1 for \(\Delta_{TF}\), then Eq. 6.1-1. Note \(10\log_{10}(2^1\times2)\).
Once the UE transitions to RRC_CONNECTED via RRCSetup or RRCReconfiguration, the uplink power control
regime shifts from the common RACH parameters to the dedicated configuration provided in
PUSCH-PowerControl. The key mechanism is the p0-AlphaSets structure, which allows
the network to define up to 30 independent (P₀, α) pairs — each indexed by a set identifier j.
TS 38.213 §7.1.1
7.1 Power Control Equation
Variable definitions:
| Symbol | Description | Notes |
|---|---|---|
| \(i\) | PUSCH transmission occasion index | Per-slot scheduling index |
| \(j\) | p0-AlphaSet index | j=0 reserved for common/msg3; j=1..30 dedicated |
| \(q_d\) | Downlink pathloss reference signal index | Indexes SSB or CSI-RS used for PL estimation |
| \(l\) | Closed-loop process index | Selects TPC accumulator (i0 or i1) |
| \(2^\mu \cdot M_{RB}^{\text{PUSCH}}(i)\) | Bandwidth scaling | μ = numerology (0=15kHz, 1=30kHz, 2=60kHz, 3=120kHz) |
| \(P_{O,\text{PUSCH},b,f,c}(j)\) | Nominal power from set j | Sum of p0-NominalWithGrant + p0 offset from set j |
| \(\alpha_{b,f,c}(j)\) | Path-loss compensation factor from set j | Typically 0.8 for dedicated; 1.0 at MSG3 |
| \(PL_{b,f,c}(q_d)\) | Estimated downlink path loss | \(PL = P_{\text{SSB}} - \text{RSRP}_{\text{L3}}\) |
| \(\Delta_{TF,b,f,c}(i)\) | MCS-dependent transport format delta | 0 for BPSK/QPSK; positive for higher-order MCS |
| \(f_{b,f,c}(i,l)\) | Closed-loop TPC accumulator | Additively accumulates DCI TPC commands: f(n+1) = f(n) + δ_TPC,n; reset to 0 at reconfiguration |
TPC Command Mapping TS 38.213 Table 7.1.1-2
| DCI TPC Field Value | Accumulated δ (dB) | Absolute δ (dB) |
|---|---|---|
| 0 | −1 | −4 |
| 1 | 0 | −1 |
| 2 | +1 | +1 |
| 3 | +3 | +4 |
In accumulated mode (default), f grows by the δ value each subframe. In absolute mode (tpc-Accumulation = disabled), f is set to the absolute δ value directly.
7.2 p0-AlphaSets RRC Configuration
| Field | Range | Description |
|---|---|---|
p0-PUSCH-AlphaSetId |
0..30 | Index j; set 0 maps to common (msg3) parameters |
p0 |
−16..15 dB | Signed offset from p0-NominalWithGrant; OPTIONAL (absent = 0 dB) |
alpha |
0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0 | Path-loss compensation factor; absent/nulltype = 1.0 |
closedLoopIndex |
i0, i1 | Selects TPC accumulator l; two independent processes supported |
7.3 MSG3 (Common) vs Dedicated PUSCH — Parameter Comparison
| Parameter | MSG3 (Common) | Dedicated PUSCH |
|---|---|---|
| P₀ source | msg3-ScheduledResourceConfig |
p0-AlphaSets (j=1..30) |
| α typical | 1.0 (full compensation) | 0.8 (partial compensation) |
| Closed-loop TPC | Absent (open-loop only) | DCI TPC field, accumulates via \(f_{b,f,c}(i,l)\) |
| Power budget | Fixed per RACH attempt | Adaptive per scheduled PUSCH slot |
| Bandwidth term | \(10\log_{10}(2^\mu \cdot M_{RB}^{\text{MSG3}})\) | \(10\log_{10}(2^\mu \cdot M_{RB}^{\text{PUSCH}}(i))\) — varies per grant |
| ΔTF (MCS delta) | Typically 0 (QPSK only) | Non-zero for MCS ≥ 20 with 64QAM |
7.4 Power Evolution Through the RACH Procedure
PUSCH-PowerControl. If the accumulator
retains a residual value from a prior connection or beam state, the computed \(P_{\text{PUSCH}}\) will be
offset from the intended target. Set tpc-Accumulation = disabled during initial configuration
to enforce open-loop-only operation until steady-state conditions are confirmed.
7.6 RRC IE — PUSCH-PowerControl
PUSCH-PowerControl ::= SEQUENCE { tpc-Accumulation ENUMERATED {disabled} OPTIONAL, -- disable closed-loop msg3-Alpha Alpha OPTIONAL, -- common PUSCH α for MSG3 p0-NominalWithoutGrant P0-PUSCH-AlphaSet OPTIONAL, -- SRS/CG baseline p0-AlphaSets SEQUENCE (SIZE(1..30)) OF P0-PUSCH-AlphaSet OPTIONAL, -- dedicated sets pathlossReferenceRSToAddModList ... -- PL RS config } P0-PUSCH-AlphaSet ::= SEQUENCE { p0-PUSCH-AlphaSetId P0-PUSCH-AlphaSetId, -- set index j (0..30) p0 INTEGER (-16..15) OPTIONAL, -- dB offset from p0-Nominal alpha Alpha OPTIONAL -- absent → 1.0 (full comp) } -- Alpha ::= ENUMERATED {0dot4, 0dot5, 0dot6, 0dot7, 0dot8, 0dot9, 1} -- closedLoopIndex: i0 = process 0, i1 = process 1 (independent accumulators)
This section walks through a complete 12-phase RACH-to-RRC_CONNECTED procedure with all numerical calculations. Every equation maps directly to the 3GPP specification formulas covered in earlier sections. All values are traceable to RRC configuration parameters or UE measurements. TS 38.213 §6.3.3.2 TS 38.213 §7.1.1 TS 38.213 §7.2.1
9.1 System Setup Parameters
| Parameter | Value | Source |
|---|---|---|
ss-PBCH-BlockPower |
23 dBm | RRC SIB1 / ServingCellConfigCommon |
| Measured SS-RSRP | −85 dBm | UE L3 filtered measurement |
| Path Loss PL | 108 dB | Derived: 23 − (−85) = 108 |
| μ (numerology) | 1 (30 kHz SCS) | SIB1 / uplinkConfigCommon |
| Preamble format | A1 | TS 38.213 Table 6.3.3.1-1 |
preambleReceivedTargetPower |
−104 dBm | RRC rach-ConfigCommon |
powerRampingStep |
4 dB | RRC rach-ConfigCommon |
| Δ_PREAMBLE (format A1) | 0 dB | TS 38.213 Table 7.4-1 |
p0-NominalWithGrant |
−76 dBm | RRC ul-PowerControl |
| p0-AlphaSet j=1: p0 | 0 dB (offset) → effective −76 dBm | PUSCH-PowerControl |
| p0-AlphaSet j=1: α | 0.8 | PUSCH-PowerControl |
pucchF0-F1-0 (Δ_F,PUCCH,f) |
0 dB | RRC PUCCH-Config |
| P_O,PUCCH | −90 dBm | RRC PUCCH-PowerControl |
| P_CMAX | 23 dBm | UE capability (Power Class 3) |
| M_RB (MSG3) | 10 PRBs | Scheduled by RAR UL grant |
| M_RB (PUCCH) | 1 PRB | PUCCH resource config |
9.2 Step-by-Step Numerical Walkthrough
-
Path Loss Estimation
TS 38.213 §7.1.1
The UE estimates downlink path loss using the broadcast SSB power and its L3-filtered RSRP measurement:
\[ PL = P_{\text{SSB}} - \text{RSRP}_{\text{L3}} = 23 - (-85) = \mathbf{108\text{ dB}} \]This single value governs all subsequent open-loop power calculations throughout the procedure.
-
MSG1 Attempt 1 — PRACH Preamble Transmission
TS 38.213 §6.3.3.2
\[
P_{\text{PRACH}}(0) = P_{\text{preamble\_target}} + PL + \Delta_{\text{PREAMBLE}}
= -104 + 108 + 0 = \mathbf{4\text{ dBm}}
\]
PRACH counter PREAMBLE_TRANSMISSION_COUNTER = 1. No RAR received within ra-ResponseWindow (power too low for reliable detection at logsA). Preamble counter increments.
-
MSG1 Attempt 2 — First Power Ramp
TS 38.213 §6.3.3.2
\[
P_{\text{PRACH}}(1) = P_{\text{PRACH}}(0) + \Delta_{\text{RAMP}} \cdot 1 = 4 + 4 = \mathbf{8\text{ dBm}}
\]
RAR received successfully. logsA (base station) detects the preamble and responds with: Random Access Response (RAR) MAC CE containing TA command TA_RAR = 64, temporary C-RNTI, and UL grant for MSG3 scheduling.
-
Timing Advance Computation from RAR
TS 38.213 §4.2
\[
N_{TA} = \text{TA}_{\text{RAR}} \times 16 = 64 \times 16 = 1024 \; T_c \text{ samples}
\]
\[
T_{TA} = N_{TA} \times T_c = 1024 \times 0.509\text{ ns} \approx 521\text{ ns}
\]
\[
d \approx \frac{c \cdot T_{TA}}{2} = \frac{3\times10^8 \times 521\times10^{-9}}{2} \approx \mathbf{78\text{ m}}
\]
Where \(T_c = 1/(480\times10^3 \times 4096) \approx 0.509\text{ ns}\) is the basic time unit. The UE advances its uplink transmission by \(N_{TA}\) samples to align with the base station receive window.
-
RA-RNTI Computation
TS 38.213 §8.2
\[
\text{RA-RNTI} = 1 + s_{\text{id}} + 14 \cdot t_{\text{id}} + 14 \cdot 80 \cdot f_{\text{id}}
+ 14 \cdot 80 \cdot 8 \cdot \text{ul\_carrier\_id}
\]
For PRACH occasion: \(s_{\text{id}}=0,\; t_{\text{id}}=0,\; f_{\text{id}}=0,\; \text{ul\_carrier\_id}=0\):
\[ \text{RA-RNTI} = 1 + 0 + 0 + 0 + 0 = \mathbf{1} \]The UE uses RA-RNTI = 1 to monitor PDCCH for the RAR DCI (format 1_0 with CRC scrambled by RA-RNTI).
-
MSG3 PUSCH Power Calculation
TS 38.213 §7.1.1
Bandwidth term with μ=1, M_RB=10:
\[ 10\log_{10}(2^\mu \cdot M_{RB}) = 10\log_{10}(2^1 \times 10) = 10\log_{10}(20) = 13.0\text{ dB} \]Full power control equation (j=0 common, α=1.0, f=0, Δ_TF=0):
\[ P_{\text{MSG3}} = \min\bigl\{23,\; 13.0 + (-76) + 1.0 \times 108 + 0 + 0\bigr\} = \min\{23,\; 45.0\} = \mathbf{23\text{ dBm}} \]P_CMAX LimitedMSG3 hits the UE maximum transmit power ceiling. This is expected at PL = 108 dB with α = 1.0.
-
MSG4 Reception and RRCSetup
logsA processes the MSG3 RRCSetupRequest and responds with MSG4 containing RRCSetup (via PDSCH addressed to Temporary C-RNTI). The UE decodes RRCSetup, configures SRB1, and transitions to RRC_CONNECTED. The dedicated power control parameters in
PUSCH-PowerControlbecome active. TPC accumulator \(f_{b,f,c}(i,l)\) is initialized to 0. -
RRCSetupComplete (MSG5) — Uplink on SRB1
UE sends RRCSetupComplete on SRB1 via PUSCH. At this point, dedicated power control applies (p0-AlphaSet j=1) if configured; otherwise common p0-NominalWithGrant is used with no closed-loop component yet (f=0).
-
PUCCH SR Power Calculation (after RRCSetup)
TS 38.213 §7.2.1
PUCCH SR uses format 0/1 with 1 PRB. Bandwidth term with μ=1, M_RB=1:
\[ 10\log_{10}(2^1 \times 1) = 10\log_{10}(2) \approx 3.0\text{ dB} \] \[ P_{\text{PUCCH}} = \min\bigl\{23,\; 3 + (-90) + 108 + 0 + 0\bigr\} = \min\{23,\; 21\} = \mathbf{21\text{ dBm}} \]3 dB headroomPUCCH operates 2 dB below P_CMAX — healthy headroom exists for TPC-driven power increase.
-
Dedicated PUSCH Power (j=1, α=0.8)
TS 38.213 §7.1.1
Bandwidth term same as MSG3 (10 PRBs, μ=1): 13.0 dB. Dedicated set j=1: p0=−76 dBm, α=0.8, f=0:
\[ P_{\text{PUSCH}} = \min\bigl\{23,\; 13.0 + (-76) + 0.8 \times 108 + 0 + 0\bigr\} = \min\{23,\; 13 - 76 + 86.4\} = \min\{23,\; 23.4\} = \mathbf{23\text{ dBm}} \]Near P_CMAX -
Dedicated PUSCH with TPC +3 dB
logsA issues a DCI 0_1 TPC command (accumulated correction +3 dB). New accumulator: f=+3 dB.
\[ P_{\text{PUSCH}} = \min\bigl\{23,\; 23.4 + 3\bigr\} = \min\{23,\; 26.4\} = \mathbf{23\text{ dBm}} \]UE is already at P_CMAX; TPC command has no further effect. The UE reports this saturation via Power Headroom Report (PHR = 0 dB). logsA should reduce MCS or allocated PRBs to improve link margin.
-
PHR (Power Headroom Report)
TS 38.321 §6.1.3.8
\[
PH = P_{\text{CMAX}} - P_{\text{PUSCH,computed}} = 23 - 26.4 = -3.4\text{ dB}
\]
Encoded in the 6-bit PHR field (range -23..+40 dB, TS 38.321 §6.1.3.8) as level 19 (≈ −4 dB, nearest 1-dB step; encoding: 0 = -23 dB, 63 = +40 dB, so level 19 maps to -23 + 19 = -4 dB). A negative PHR indicates the UE is power-limited — the logsA scheduler should reduce M_RB or MCS to bring the UE back within its power budget.
9.3 Procedure Summary
| Phase | Formula | Result |
|---|---|---|
| Path loss estimation | \(PL = 23 - (-85)\) | 108 dB |
| MSG1 attempt 1 | \(P_{\text{PRACH}} = -104 + 108 + 0\) | 4 dBm — FAIL (no RAR) |
| MSG1 attempt 2 | \(P_{\text{PRACH}} = 4 + 4\) | 8 dBm — SUCCESS |
| TA from RAR | \(64 \times 16 \times T_c \to 521\text{ ns}\) | ~78 m propagation distance |
| RA-RNTI | \(1 + 0 + 0 + 0 + 0\) | = 1 |
| MSG3 PUSCH | \(\min\{23,\; 13+108-76\}\) | 23 dBm (P_CMAX capped) |
| PUCCH SR | \(\min\{23,\; 3+108-90\}\) | 21 dBm (2 dB headroom) |
| Dedicated PUSCH (α=0.8) | \(\min\{23,\; 13+86.4-76\}\) | 23 dBm (P_CMAX capped) |
| Dedicated PUSCH (TPC+3) | \(\min\{23,\; 23.4+3\}\) | 23 dBm (PHR = 0 dB) |
ss-PBCH-BlockPower from 23 to 20 dBm, which lowers the PL estimate
by 3 dB; (2) reducing preambleReceivedTargetPower from −104 to −110 dBm, giving the UE
6 dB more open-loop headroom at MSG1. These two adjustments together would bring MSG3 power from
23 dBm to approximately 17 dBm — well below P_CMAX — while improving uplink interference conditions
across the dense cell grid.
This section provides a systematic troubleshooting guide for common power control failure modes observed during integration and field testing, followed by an RRC parameter optimization matrix for common deployment scenarios. References are to logsA (base station / network) and logsB (UE / terminal).
10.1 Common Failure Modes
| Symptom | Root Cause | Diagnostic | Fix |
|---|---|---|---|
| MSG1 timeout after max ramps | PL too high; preambleReceivedTargetPower set too low for cell edge |
Compare logsB PL estimate vs logsA RACH statistics; check preambleTransMax counter exhaustion events |
Increase powerRampingStep to 4–6 dB; increase preambleReceivedTargetPower by 4–8 dB; add SSB beamforming gain |
| MSG3 rejected / HARQ failure | \(2^\mu\) factor omitted in power calculation; bandwidth term computed without numerology scaling | Compare logsB Tx power log vs expected target from Eq 7.1.1-1; check if \(10\log_{10}(M_{RB})\) used instead of \(10\log_{10}(2^\mu \cdot M_{RB})\) | Verify μ value in SCS configuration; ensure \(10\log_{10}(2^\mu \times M_{RB}^{\text{PUSCH}})\) is computed correctly in logsB power stack |
| RA-RNTI mismatch (no RAR decoded) | Wrong \(s_{\text{id}}\) or \(t_{\text{id}}\) PRACH occasion index | Decode RAR PDCCH and compare RA-RNTI; cross-check PRACH occasion mapping against prach-ConfigurationIndex |
Use spec formula exactly: \(1+s_{\text{id}}+14t_{\text{id}}+14 \cdot 80 \cdot f_{\text{id}}+14 \cdot 80 \cdot 8 \cdot \text{ul\_carrier\_id}\); verify PRACH slot/symbol grid |
| PUCCH underpower — persistent SR failures | Missing \(10\log_{10}(2^\mu \cdot M_{RB})\) term in PUCCH power equation; or \(P_{O,\text{PUCCH}}\) misconfigured | Measure PUCCH SINR at logsA; compare against expected SNR for SR format; check logsB PUCCH power log | Add bandwidth term \(10\log_{10}(2^\mu \times M_{RB}^{\text{PUCCH}})\) to \(P_{O,\text{PUCCH}}\) formula; re-check TS 38.213 §7.2.1 implementation |
| High UL interference after handover | TPC accumulator \(f_{b,f,c}(i,l)\) not reset at RRCReconfiguration; residual positive f causes over-power | Check logsB f-value log immediately after handover; compare Tx power vs open-loop target; look for PHR = 0 events immediately post-HO | Force \(f = 0\) at every RRCReconfiguration and RRCSetup; set tpc-Accumulation = disabled for initial subframes post-handover; re-enable once link stabilizes |
10.2 RRC Parameter Optimization Matrix by Deployment Scenario
| Deployment | ss-PBCH-BlockPower |
preambleReceivedTargetPower |
p0-NominalWithGrant |
α (dedicated) |
|---|---|---|---|---|
| Dense Urban ISD ≤ 200 m |
20 dBm | −110 dBm | −80 dBm | 0.8 |
| Urban ISD ~500 m |
23 dBm | −104 dBm | −76 dBm | 0.8 |
| Suburban ISD ~1 km |
26 dBm | −100 dBm | −72 dBm | 0.9 |
| Rural / Wide Area ISD ≥ 5 km |
30 dBm | −94 dBm | −68 dBm | 1.0 |
| Indoor Femto ISD < 50 m |
15 dBm | −114 dBm | −84 dBm | 0.7 |
10.3 PRACH Cumulative Success Rate vs Ramping Step
10.4 Power Headroom Report (PHR) Analysis
TS 38.321 §6.1.3.8
The Power Headroom Report (PHR) MAC CE communicates the difference between the UE's maximum transmit power and the power computed by the uplink power control equation. It provides the logsA MAC scheduler with information to make grant size and MCS decisions.
| PHR Type | Channel | Description | Trigger |
|---|---|---|---|
| Type 1 | PUSCH (PCell or PSCell) | Real PHR: actual scheduled PUSCH present in current subframe; uses real M_RB and MCS | Periodic (phr-PeriodicTimer) or event-triggered (phr-Tx-PowerFactor change) |
| Type 1 (virtual) | PUSCH (PCell or PSCell) | Virtual PHR: no PUSCH scheduled; uses \(V_{\text{PUSCH}}\) virtual power (reference PRBs) | When PUCCH is scheduled but PUSCH is not |
| Type 2 | PUCCH (PCell) | Simultaneous PUSCH+PUCCH power split; indicates remaining headroom for PUCCH | Same trigger as Type 1; requires simultaneousPUCCH-PUSCH capability |
| Extended PHR | SCell (CA) | PHR for secondary cell component carriers in Carrier Aggregation; uses per-CC P_CMAX | Requires extended PHR MAC CE format; logsA must configure CA with phr-Config |
preambleReceivedTargetPower
or deploying additional coverage (relay, small cell, or beamforming).
This appendix provides a complete reference for all acronyms and 3GPP-defined parameters used in this notebook. Parameter ranges and references are taken directly from the 5G NR specifications.
A.1 Acronym Reference
| Acronym | Expansion | Acronym | Expansion |
|---|---|---|---|
| PRACH | Physical Random Access Channel | PUSCH | Physical Uplink Shared Channel |
| PUCCH | Physical Uplink Control Channel | PDSCH | Physical Downlink Shared Channel |
| PDCCH | Physical Downlink Control Channel | RACH | Random Access Channel |
| RAR | Random Access Response | RA-RNTI | Random Access Radio Network Temporary Identifier |
| TA | Timing Advance | MSG1 | RACH Message 1 — PRACH preamble |
| MSG2 | RACH Message 2 — RAR (Random Access Response) | MSG3 | RACH Message 3 — RRCSetupRequest / connection request |
| MSG4 | RACH Message 4 — Contention Resolution / RRCSetup | PL | Path Loss (downlink, estimated by UE) |
| RSRP | Reference Signal Received Power | RSRQ | Reference Signal Received Quality |
| P_CMAX | UE Maximum Transmit Power (per CC) | P0 | Nominal power offset parameter (P₀) |
| TPC | Transmit Power Control | TF | Transport Format (MCS-related power delta) |
| MCS | Modulation and Coding Scheme | SCS | Subcarrier Spacing |
| BWP | Bandwidth Part | SIB | System Information Block |
| RRC | Radio Resource Control | RRCSetup | RRC message establishing SRB1 and RRC_CONNECTED |
| RRCReconfiguration | RRC message modifying UE configuration in RRC_CONNECTED | DCI | Downlink Control Information (in PDCCH) |
| CP | Cyclic Prefix | ISD | Inter-Site Distance |
| SINR | Signal-to-Interference-plus-Noise Ratio | PHR | Power Headroom Report |
| AWGN | Additive White Gaussian Noise | ZC | Zadoff-Chu (sequence family used for PRACH preambles) |
| SSB | SS/PBCH Block (Synchronization Signal Block) | PCI | Physical Cell Identity |
| CBR | Channel Busy Ratio (used in sidelink/NR-V2X) | logsA | Base station / network-side entity (masked identifier) |
| logsB | UE / terminal device (masked identifier) | NR | New Radio (5G access technology, 3GPP Rel-15+) |
A.2 Key Parameter Glossary
All parameters below are defined in the 3GPP 5G NR specifications and are configurable via RRC signaling unless otherwise noted. Ranges are as specified in the ASN.1 definitions.
| RRC / L1 Parameter | 3GPP Symbol | Spec Reference | Range / Values |
|---|---|---|---|
preambleReceivedTargetPower |
\(P_0^{\text{PRACH}}\) | TS 38.213 §6.3.3.2 | −202..−60 dBm (2 dB steps) |
powerRampingStep |
\(\Delta P_{\text{RAMP}}\) | TS 38.213 §6.3.3.2 | \(\{0, 2, 4, 6\}\) dB |
| Δ_PREAMBLE (format-dependent) | \(\Delta_{\text{PREAMBLE}}\) | TS 38.213 Table 7.4-1 | Long formats (0,1,2,3): 0 dB; Short formats A1/A2/A3: 0/3/3 dB; B1–B4: 3 dB; C0: 0 dB; C2: 3 dB (TS 38.213 Table 7.4-1) |
msg3-DeltaPreamble |
\(\Delta_{\text{msg3}}\) | TS 38.213 §7.1.1 | −1..6 dB; signed offset applied at MSG3 open-loop power |
p0-NominalWithGrant |
\(P_{O,\text{PUSCH}}\) | TS 38.213 §7.1.1 | −202..24 dBm; nominal PUSCH target at logsA |
alpha (p0-AlphaSet) |
\(\alpha\) | TS 38.213 §7.1.1 | \(\{0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0\}\); absent = 1.0 |
p0-NominalWithoutGrant |
\(P_{O,\text{PUCCH}}\) | TS 38.213 §7.2.1 | −202..24 dBm; nominal PUCCH target at logsA |
deltaTxD-thres |
\(\Delta_{TF}\) threshold | TS 38.213 §7.1.1 | 0..49; MCS index above which ΔTF becomes non-zero |
ss-PBCH-BlockPower |
\(P_{\text{SSB}}\) | TS 38.213 §7.1.1 | −60..50 dBm; broadcast in SIB1; used for PL estimation |
messagePowerOffsetGroupB |
\(\Delta_{PB}\) | TS 38.213 §8.1 | \(\{-\infty, 0, 5, 8, 10, 12, 15, 18\}\) dB; Group B preamble offset |
| TA_RAR (Timing Advance in RAR) | — | TS 38.213 §4.2 | 0..3846; \(N_{TA} = \text{TA}_{\text{RAR}} \times 16\) sample units of \(T_c\) |
TA_command (MAC CE) |
— | TS 38.321 §6.1.3.5 | 0..63 (6-bit field); centred at 31 (no TA change). Relative: ΔN_TA = (TA_command − 31) × 16 T_c |
closedLoopIndex |
— | TS 38.213 §7.1.1 | \(\{i0, i1\}\); selects one of two independent TPC accumulator processes |
preambleTransMax |
\(N_{\text{maxRach}}\) | TS 38.321 §5.1.2 | \(\{3, 4, 5, 6, 7, 8, 10, 20, 50, 100, 200\}\); max PRACH attempts |
ra-ResponseWindow |
— | TS 38.321 §5.1.4 | \(\{sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80\}\) slots |
phr-PeriodicTimer |
— | TS 38.321 §6.1.3.8 | \(\{sf10, sf20, sf50, sf100, sf200, sf500, sf1000, infinity\}\) subframes |
tpc-Accumulation |
— | TS 38.213 §7.1.1 | ENUMERATED \(\{\text{disabled}\}\) OPTIONAL; absent = accumulation enabled |
| Numerology μ | μ | TS 38.211 §4.2 | \(\{0, 1, 2, 3, 4\}\) → SCS \(\{15, 30, 60, 120, 240\}\) kHz |
phr-PeriodicTimer expires.
The MAC scheduler at logsA uses received PHR values to bound uplink grant sizes — ensuring the UE
never receives a grant it cannot power, which would result in in-band emission violations and
degraded link performance.