**3.9 Uplink transmission modes**

5G NR supports uplink PUSCH precoding up to 4 layers. However, in the case of DFT-based transform precoding, only single-layer transmission is supported. The transmitted symbols are layer mapped and then precoded at the UEs.

If gNB instructs UE on PDCCH regarding the choice of precoding matrix selected from a codebook: codebook based (**Figure 19a**). Otherwise, UE measure DL CS-RS signal to determine precoding weights (not constrained to a codebook): Non-codebook based (**Figure 19b**).
