Uplink power control is used both on the PUSCH and on the PUCCH channels.

In both cases, a parameterized open loop combined with a closed loop mechanism is used.

Roughly explained, the open loop part is used to set a point of operation, around which the closed loop component operates. Different parameters (targets and ‘partial compensation factors’) for user and control plane are used.

PUSCH Power Control

For the PUSCH the UE sets the output power PUSCH according to the formula:

Power PUSCH = min {Pmax, 10logM + P0_PUSCH + αPL + f( i )+MCS} [dBm](1)


  • Pmax is the maximum UE power,
  • M is the number of scheduled resource blocks,
  • PL is the estimated pathloss,
  • P0_PUSCH and
  • α (enabling fractional pathloss compensation) are parameters controlling the target received power,
  • i is a UE specific offset or ‘closed loop correction’ (the function f may can represent either absolute or accumulative offsets), and MCS is a Modulation and Coding Scheme (MCS) specific offset.

The closed loop correction i is sent in UL grants on the PDCCH, or in special TPC_PUSCH messages on the PDCCH. For all other parameters, cell specific values are broadcast in SIB 2. For a subset of the parameters (e.g. P0), it is possible to send UE specific values via RRC.

PUCCH Power Control

For PUCCH, the UE sets the power according to the formula

Power PUCCH = min {Pmax, P0_PUCCH + PL + f( j ) } [dBm] (2)

Note that for PUCCH, full pathloss compensation is always used, and the resource allocation is always one resource block. Further, the function f for the PUCCH always represents accumulation. The closed loop correction j is sent in DL assignments on the PDCCH, or in special TPC _PUCCH messages on the PDCCH. The latter may be configured to be the same as the TPC_PDCCH_PUSCH.

For extensive details about Uplink power control. You can take a look here.