5G NR PUSCH - Physical Uplink Shared Channel
The 5G NR PUSCH, or Physical Uplink Shared Channel, is the main scheduled uplink data channel in NR. It carries UL-SCH from the UE to the network on uplink time-frequency resources selected by the scheduling process.
Read PUSCH as the point where uplink scheduling turns into an actual UE transmission on the OFDM grid. Grant mode, frequency allocation, time allocation, MCS, layer count, DMRS, optional PTRS, waveform selection, power behavior, and HARQ all shape whether the gNB can decode the transport block efficiently.
| Technology | 5G NR |
|---|---|
| Full name | Physical Uplink Shared Channel |
| Transport channel | UL-SCH |
| Main specs | 3GPP TS 38.211, 38.212, 38.213, 38.214 |
| Release | Release 18 |
| Main concepts | Uplink grant, configured grant, transform precoding, MCS, layers, DMRS, PTRS, power behavior, HARQ |
| Why it matters | PUSCH is the main uplink data channel, so it directly affects uplink throughput, coverage, BLER, latency, and gNB decode reliability |
Contents
Overview
PUSCH is the main physical uplink data channel in NR. In many uplink transmissions, the UE receives an uplink grant on PDCCH and then transmits the transport block on PUSCH inside the active BWP. In configured-grant operation, the transmission follows prearranged uplink resources instead of waiting for a fresh grant every time.
- PUSCH carries UL-SCH on physical uplink resources.
- Its time and frequency position come from grant-based or configured-grant scheduling.
- Its usable payload depends on MCS, layers, waveform choice, and overhead such as DMRS and PTRS.
- PUSCH behavior is central to uplink throughput, coverage, BLER, latency, and power-limited performance.
Quick interpretation
| Role | Main scheduled uplink data channel |
|---|---|
| Carries | UL-SCH transport blocks |
| Scheduled by | PDCCH uplink grant or configured-grant operation inside the active BWP |
| Main allocation fields | Frequency-domain allocation, time-domain allocation, MCS, HARQ process, redundancy version, transform-precoding context, and layer information |
| Main overhead | DMRS, optional PTRS, reserved resources, and waveform-related constraints |
| Main impact | Uplink throughput, decode reliability, latency, retransmission load, and power-limited coverage behavior |
How the PUSCH model works
Read PUSCH as an uplink delivery chain. The grant mode tells the UE when to transmit, the allocation defines the resources, the coding chain prepares the transport block, waveform and reference-signal settings define how the transmission is sent, and the gNB decode outcome determines whether HARQ continues the same story.
Grant-based and configured-grant operation
Grant-based PUSCH starts from a valid uplink grant on PDCCH. Configured-grant PUSCH uses prearranged resources and timing, which changes how regular the uplink pattern looks and how you interpret missing or delayed transmissions in traces.
Frequency-domain allocation
Frequency allocation determines which physical resource blocks are used for the uplink transmission. Read the allocation inside the active BWP, because the same field value can mean something different after a BWP change.
Time-domain allocation
Time allocation determines which OFDM symbols carry the PUSCH transmission. The actual timing must be read in the context of the current frame structure and numerology.
Transport block, coding, and rate matching
The transport block passes through the shared-data coding chain, including code-block handling and rate matching. Payload size depends on scheduled resources together with the selected modulation and coding scheme. Use Transport Block Size and Resource Allocation when checking those assumptions.
Waveform and transform precoding
PUSCH may use CP-OFDM or transform-precoded transmission depending on configuration and transmission mode. Transform precoding changes the uplink waveform behavior and is one of the most important differences between uplink and downlink shared-channel reading. Open Transform Precoding for the dedicated reference page.
Layer mapping and transmission scheme
PUSCH may use one or more layers depending on UE capability, spatial transmission mode, and radio conditions. Codebook-based and non-codebook transmission behave differently in practical reading because the spatial assumptions and uplink signaling context are not identical.
DMRS and PTRS
PUSCH decoding depends on DMRS so the gNB can estimate the uplink channel correctly. PTRS may also be present when phase tracking support is needed. Both improve decode robustness but reduce the resource elements left for pure payload.
Power behavior and decode outcome
Uplink success depends not only on allocation but also on what the UE can actually transmit. Power limitation, coverage conditions, interference, and path loss can turn an apparently valid PUSCH assignment into a weak or unstable gNB decode result. Read PUSCH together with Power Control and Power Headroom Report when uplink coverage is tight.
| Element | Meaning in PUSCH reading |
|---|---|
| Grant mode | Whether the UE transmits after a fresh uplink grant or from a configured-grant resource pattern |
| Frequency-domain allocation | Which PRBs in the active BWP are used for the transmission |
| Time-domain allocation | Which OFDM symbols carry the PUSCH transmission |
| MCS | The modulation and coding efficiency chosen for the transport block |
| Waveform choice | Whether the uplink transmission uses CP-OFDM or transform precoding |
| Layers | The number of spatial streams used by the uplink transmission |
| DMRS / PTRS | Reference-signal overhead and decode support inside the allocation |
| HARQ process and RV | Retransmission context and combining behavior for repeated delivery |
| Power limitation | Whether the UE can actually sustain the requested uplink transmission cleanly |
Operational variants
PUSCH does not use numbered channel formats like PUCCH. The main practical variants are the uplink operating patterns below.
| Variant | Reading notes |
|---|---|
| Grant-based PUSCH | The common scheduled uplink case where a fresh grant arrives before the UE transmits |
| Configured-grant PUSCH | Prearranged uplink transmission pattern that changes grant timing expectations and scheduling regularity |
| CP-OFDM PUSCH | Uplink transmission without transform precoding in the configured waveform mode |
| Transform-precoded PUSCH | DFT-s-OFDM style uplink transmission with different waveform behavior and practical power characteristics |
| Single-layer transmission | Simpler uplink operation with lower spatial complexity |
| Multi-layer transmission | Higher uplink capacity mode when UE support and radio conditions allow more than one layer |
| Codebook-based transmission | Spatial uplink behavior tied to more explicit transmission assumptions and signaling context |
| Non-codebook transmission | Spatial uplink behavior read with a different transmission-assumption model |
Where PUSCH appears in real procedures
Regular uplink data delivery
PDCCH uplink grant -> PUSCH transmission -> gNB decode -> HARQ handling This is the core PUSCH path for grant-based operation. The UE receives the grant, transmits the transport block on PUSCH, and the gNB decode result determines whether HARQ ends the transaction or continues it.
Configured-grant uplink transmission
Configured resources -> UE transmission opportunity -> PUSCH decode -> continuation or retry This path matters when uplink traffic appears more periodic or more regular than classic grant-based behavior. In those cases, missing transmissions must be read against configured-grant assumptions instead of only asking whether a fresh PDCCH grant was present.
Coverage-limited uplink behavior
Near the uplink edge, a PUSCH problem may be driven less by nominal resource availability and more by power headroom, path loss, interference, and gNB decode robustness. That is why a healthy downlink does not always imply a healthy uplink.
Troubleshooting
Start with the grant mode, then move through the actual allocation and decode outcome. Many apparent PUSCH failures are really control, BWP, timing, or power-limitation problems.
- Check whether the expected uplink grant was present, or whether configured-grant operation was active.
- Check PRB allocation, symbol allocation, and uplink scheduling cadence rather than carrier width alone.
- Check MCS, code-rate trend, and layer usage against observed uplink conditions.
- Check DMRS, optional PTRS, and waveform assumptions.
- Check HARQ retransmission patterns, redundancy version behavior, and uplink BLER.
- Check the active BWP, current timing interpretation, and UE power limitation.
| Symptom | What to inspect first |
|---|---|
| Low uplink throughput | Grant mode, PRB count, symbol count, MCS, scheduling cadence, and retransmission rate |
| High uplink BLER | Radio quality, DMRS support, waveform assumptions, power limitation, and HARQ combining behavior |
| No expected uplink traffic | Whether a valid grant appeared, whether configured grant applies, and whether the UE used the right BWP and timing window |
| Good downlink but weak uplink | Power headroom, uplink coverage margin, interference, and gNB decode stability |
| Allocation looks correct but payload is still small | TBS assumptions, MCS choice, DMRS or PTRS overhead, and transform-precoding context |
Common mistakes
- assuming uplink behaves like a mirror image of downlink
- ignoring UE power limits and uplink coverage constraints
- reading PRB count without also checking symbols, overhead, and waveform assumptions
- jumping to the data channel before checking the preceding grant or configured-grant context
- ignoring active BWP when decoding uplink allocations
References
- 3GPP TS 38.211 Release 18 - physical channels, modulation, waveform options, and PUSCH resource mapping
- 3GPP TS 38.212 Release 18 - channel coding, code-block processing, and rate matching for shared data
- 3GPP TS 38.213 Release 18 - control procedures related to uplink transmission timing, grant handling, and power behavior
- 3GPP TS 38.214 Release 18 - physical-layer procedures for data including PUSCH time-domain and frequency-domain allocation context
FAQ
What does PUSCH do in 5G NR?
PUSCH carries the main scheduled uplink data delivered through UL-SCH from the UE to the network.
How is PUSCH related to PDCCH?
In grant-based operation, PDCCH carries the uplink grant that tells the UE where and when to transmit on PUSCH.
Can PUSCH work without a fresh uplink grant every time?
Yes. Configured-grant operation allows the UE to use prearranged uplink resources, so not every transmission needs a new grant right before it.
Why is PUSCH important for uplink throughput?
Because it is the main uplink data-bearing channel. Throughput depends on how much PUSCH resource is really available and how well the gNB can decode the transmission.
Why is uplink troubleshooting often harder than downlink troubleshooting?
Because uplink depends strongly on UE transmit power, coverage margin, interference, and gNB-side decode quality, not only on scheduler choices.
How does BWP affect PUSCH?
PUSCH allocations are interpreted inside the active uplink BWP, so the same carrier can show different practical resource meaning after a BWP change.