Main Content

nrPUCCH4

Generate PUCCH format 4 modulation symbols

Description

example

sym = nrPUCCH4(uciCW,mod,nid,rnti,sf,occi) returns the physical uplink control channel (PUCCH) format 4 modulation symbols for encoded uplink control information (UCI) codeword uciCW. The function implements TS 38.211 Section 6.3.2.6 [1]. The encoding consists of:

  • Scrambling using scrambling identity nid.

  • Symbol modulation using modulation scheme mod.

  • Block-wise spreading using spreading factor sf and orthogonal cover code index occi.

  • Transform precoding by considering 12 subcarriers associated with the PUCCH format 4 transmission.

rnti is the radio network temporary identifier (RNTI) of the user equipment (UE).

example

sym = nrPUCCH4(___,'OutputDataType',datatype) specifies the PUCCH symbol data type in addition to the input arguments in the previous syntax.

Examples

collapse all

Create a random sequence of binary values corresponding to a UCI codeword of 96 bits.

uciCW = randi([0 1],96,1);

Using QPSK modulation, generate PUCCH format 4 modulation symbols for the specified scrambling identity, RNTI, spreading factor, and orthogonal cover code index.

modulation = 'QPSK';
nid = 148;
rnti = 160;
sf = 2;
occi = 1;
sym = nrPUCCH4(uciCW,modulation,nid,rnti,sf,occi)
sym = 96×1 complex

   0.0000 + 0.0000i
  -0.8165 + 0.8165i
   0.0000 + 0.0000i
   0.0000 + 0.0000i
   0.0000 + 0.0000i
  -0.8165 + 0.8165i
   0.0000 + 0.0000i
  -1.4142 + 1.4142i
   0.0000 + 0.0000i
  -0.8165 + 0.8165i
      ⋮

Create a random sequence of binary values corresponding to a UCI codeword of 192 bits.

uciCW = randi([0 1],192,1);

Using pi/2-BPSK modulation, generate PUCCH format 4 modulation symbols of single data type for the specified scrambling identity, RNTI, spreading factor, and orthogonal cover code index.

modulation = 'pi/2-BPSK';
nid = 285;
rnti = 897;
sf = 4;
occi = 3;
sym = nrPUCCH4(uciCW,modulation,nid,rnti,sf,occi,'OutputDataType','single')
sym = 768x1 single column vector

   0.0000 + 0.0000i
  -1.6330 - 1.6330i
   0.0000 + 0.0000i
   0.0000 + 0.0000i
   0.0000 + 0.0000i
  -1.6330 - 1.6330i
   0.0000 + 0.0000i
   0.0000 + 0.0000i
   0.0000 + 0.0000i
   0.8165 + 0.8165i
      ⋮

Input Arguments

collapse all

Encoded UCI codeword, specified as a logical column vector. For pi/2-BPSK modulation, the length of uciCW must be a multiple of 12. For QPSK modulation, the length of uciCW must be a multiple of 24. For more information, see TS 38.212 Section 6.3.1 [2].

Data Types: int8 | double | logical

Modulation scheme, specified as 'pi/2-BPSK' or 'QPSK'. The modulation scheme determines the modulation type performed on the input codeword and the number of bits used per modulation symbol.

Modulation SchemeNumber of Bits Per Symbol

'pi/2-BPSK'

1
'QPSK'2

Data Types: char | string

Scrambling identity, specified as an integer from 0 to 1023. nid is higher layer parameter dataScramblingIdentityPUSCH, ranging from 0 to 1023, if the higher layer parameter is configured. Otherwise, nid is the physical layer cell identity number NCellID, ranging from 0 to 1007.

For more information, see TS 38.211 Section 6.3.2.6.1.

Data Types: double

RNTI of the UE, specified as an integer from 0 to 65,535.

Data Types: double

Spreading factor for PUCCH format 4, specified as 2 or 4.

Data Types: double

Orthogonal cover code index, specified as a nonnegative integer. occi must be less than the spreading factor sf.

Data Types: double

Data type of the output symbols, specified as 'double' or 'single'.

Data Types: char | string

Output Arguments

collapse all

PUCCH format 4 modulation symbols, returned as a complex column vector.

Data Types: single | double
Complex Number Support: Yes

References

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

[2] 3GPP TS 38.213. “NR; Physical layer procedures for control.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

Extended Capabilities

Introduced in R2019a