Transmit power of PUSCH
in subframe i is defined by
PPUSCH (i) = min{PMAX,10 log10 (MPUSCH (i)) + PO_PUSCH ( j) +α ( j) ⋅ PL + ΔTF (i) + f (i)} [dBm]

Pmax: max. allowed power,
MPUSCH: number of scheduled RBs,
PL: pathless [dB].
ΔTF (i) = 10 log 10 (2MPR Ks– 1) for Ks = 1.25 else 0,
MPR = TBS/NRE, NRE : number of Res,
UE specific, Ks defined by deltaMCS-Enabled,

PO_PUSCH(j) = PO_NOMINAL_PUSCH(j) + PO_UE_PUSCH(j).
semi-persistant / dynamic grant; j=0 / j=1:
PO_NOMINAL_PUSCH(j): cell specific
PO_UE_PUSCH(j): UE specific
α (0,1) = 0.0, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

Random access grant; j=2:
PO_UE_PUSCH(2) = 0
PO_NOMINAL_PUSCH(2) = PO_PRE + ΔPreamble_Msg3
α (2) = 1

The closed loop part is given by:
f(i) = f(i-1) + δPUSCH (i – KPUSCH)
or
f(i) = δPUSCH (i – KPUSCH)
where δPUSCH is the signaled TPC.

wheter the recursive or absolute method is to be applied -> given by the parameter
Accumulation-enabled

Power headroom:
( ) {10log ( ( )) ( ) ( ) ( )} MAX 10 PUSCH O_PUSCH TF PH i = P − M i + P j +α ⋅ PL + Δ i + f i [dB]

Transmit power of PUCCH
is determined in a similar manner. However the open loop part is always fully applied.