Decode PDCCH modulation symbols



dcicw = nrPDCCHDecode(sym,nid,nrnti) returns the soft bits resulting from the inverse operation of the physical downlink control channel (PDCCH) processing specified in TS 38.211 Section 7.3.2 [1]. The decoding consists of the QPSK demodulation of sym, and descrambling with the scrambling identity nid. The argument nrnti specifies the user equipment (UE).

dcicw = nrPDCCHDecode(sym,nid,nrnti,nVar) specifies the noise variance scaling factor of the soft bits in the PDCCH demodulation.


collapse all

Specify a random sequence of binary values corresponding to a DCI codeword of 560 bits. Generate PDCCH modulation symbols by scrambling with the PDCCH demodulation reference signal (DMRS) scrambling identity. Specify the user equipment by using the cell radio network temporary identifier.

dcicw = randi([0 1],560,1);     
nid = 2^11;                   % pdcch-DMRS-ScramblingID
nrnti = 123;                  % C-RNTI
sym = nrPDCCH(dcicw,nid,nrnti)
sym = 280×1 complex

   0.7071 + 0.7071i
   0.7071 + 0.7071i
  -0.7071 + 0.7071i
   0.7071 + 0.7071i
   0.7071 + 0.7071i
   0.7071 - 0.7071i
  -0.7071 + 0.7071i
  -0.7071 + 0.7071i
  -0.7071 + 0.7071i
  -0.7071 - 0.7071i

Demodulate and compare the soft bits with the input codeword.

nVar = 0;
rxdcicw = nrPDCCHDecode(sym,nid,nrnti,nVar); 
ans = logical

Input Arguments

collapse all

Received PDCCH modulation symbols, specified as a complex column vector.

Data Types: single | double
Complex Number Support: Yes

Scrambling identity, specified as an integer from 0 to 65,535. Specify with nid the physical layer cell identity number, ranging from 0 to 1007, or higher layer parameter pdcch-DMRS-ScramblingID, ranging from 0 to 65,535. For more information on these values, see TS 38.211 Section and

Data Types: double

UE identifier, specified as an integer from 0 to 65,519.

  • If nid is the PDCCH DMRS scrambling identity, nrnti is the cell radio network temporary identifier (C-RNTI) in a UE-specific search space.

  • If nid is the physical layer cell identity, nrnti is 0.

For more information, TS 38.211 Section and

Data Types: double

Noise variance, specified as a nonnegative numeric scalar. The soft bits are scaled with the variance of additive white Gaussian noise (AWGN). The default value corresponds to an SNR of 100 dB, assuming unit signal power.


The default value assumes the decoder and coder are connected back-to-back, where the noise variance is zero. To avoid -Inf or +Inf values in the output, the function uses 1e-10 as the default value for noise variance. To get appropriate results when the signal is transmitted through a noisy channel, adjust the noise variance accordingly.

Data Types: double

Output Arguments

collapse all

Approximate log-likelihood ratio (LLR) soft bits, returned as a column vector of real numbers. dcicw inherits the data type of sym.

Data Types: double | single

Compatibility Considerations

expand all

Behavior changed in R2020b


[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced in R2018b