Main Content

nrPUCCH0

Generate PUCCH format 0 modulation symbols

Description

example

sym = nrPUCCH0(ack,sr,symAllocation,cp,nslot,nid,groupHopping,initialCS,freqHopping) returns the physical uplink control channel (PUCCH) format 0 modulation symbols, as defined in TS 38.211 Section 6.3.2.3 [1], based on these input arguments:

  • Hybrid automatic repeat-request acknowledgment (HARQ-ACK) ack

  • Scheduling request (SR) sr

  • PUCCH symbol allocation symAllocation

  • Cyclic prefix cp

  • Radio frame slot number nslot

  • Scrambling identity nid

  • Group hopping configuration groupHopping

  • Initial cyclic shift initialCS

  • Intra-slot frequency hopping configuration freqHopping

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

Examples

collapse all

Specify a transmission without HARQ-ACK and a positive SR.

ack = [];
sr = 1;

Specify the first symbol index in the PUCCH transmission slot as 11, the number of allocated PUCCH symbols as 2, and the slot number as 63.

symAllocation = [11 2];
nslot = 63;

Set the scrambling identity to 512 and the initial cyclic shift to 5.

nid = 512;
initialCS = 5;

Generate the symbols with normal cyclic prefix, intra-slot frequency hopping disabled, and group hopping enabled.

cp = 'normal';
freqHopping = 'disabled';
groupHopping = 'enable';
sym = nrPUCCH0(ack,sr,symAllocation,cp,nslot,nid,groupHopping,initialCS,freqHopping)
sym = 24×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
      ⋮

Specify two-bit HARQ-ACK transmission and a negative SR.

ack = [1;1];
sr = 0;

Specify the first symbol index in the PUCCH transmission slot as 10, the number of allocated PUCCH symbols as 2, and the slot number as 3.

symAllocation = [10 2];
nslot = 3;

Set the scrambling identity to 12 and the initial cyclic shift to 5.

nid = 12;
initialCS = 5;

Generate the symbols with extended cyclic prefix, intra-slot frequency hopping disabled, and group hopping enabled.

nid = 12;
initialCS = 5;
cp = 'extended';
freqHopping = 'disabled';
groupHopping = 'enable';
sym = nrPUCCH0(ack,sr,symAllocation,cp,nslot,nid,groupHopping,initialCS,freqHopping)
sym = 24×1 complex

  -0.7071 - 0.7071i
  -0.9659 - 0.2588i
  -0.9659 + 0.2588i
  -0.7071 - 0.7071i
   0.2588 - 0.9659i
  -0.2588 - 0.9659i
  -0.7071 + 0.7071i
   0.9659 + 0.2588i
   0.2588 + 0.9659i
  -0.7071 - 0.7071i
      ⋮

Input Arguments

collapse all

HARQ-ACK bits, specified as an empty vector or a binary column vector with one or two rows. An empty vector indicates PUCCH transmission without HARQ-ACK. If specifying a binary column vector, the number of rows corresponds to the number of codewords. Vector element 1 denotes positive acknowledgement (ACK), and vector element 0 denotes negative acknowledgement (NACK).

Data Types: double

SR bits, specified as an empty vector, 1, or 0. An empty vector indicates PUCCH transmission without SR. 1 denotes positive SR. 0 denotes negative SR. For negative SR without HARQ-ACK, the output sym is empty.

Data Types: double

PUCCH symbol allocation, specified as a two-element numeric vector of the form [S L], where S and L are nonnegative integers.

  • S is the first OFDM symbol index in the PUCCH transmission slot.

  • L is the number of OFDM symbols allocated for PUCCH transmission. For PUCCH format 0, L is either 1 or 2.

Note

S and L must satisfy these conditions.

  • For extended control prefix, S + L ≤ 12.

  • For normal cyclic prefix, S + L ≤ 14.

Data Types: double

Cyclic prefix length, specified as one of these options:

  • 'normal' — Use this value to specify normal cyclic prefix. This option corresponds to 14 OFDM symbols in a slot.

  • 'extended' — Use this value to specify extended cyclic prefix. This option corresponds to 12 OFDM symbols in a slot. For the numerologies specified in TS 38.211 Section 4.2, extended cyclic prefix length only applies for 60 kHz subcarrier spacing.

Data Types: char | string

Radio frame slot number, specified as an integer from 0 to 159. For normal cyclic prefix of different numerologies, specify an integer from 0 to 159. For extended cyclic prefix, specify an integer from 0 to 39. For more details, see TS 38.211 Section 4.3.2.

Data Types: double

Scrambling identity, specified as an integer from 0 to 1023. nid is higher layer parameter hoppingId, 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 on these values, see TS 38.211 Section 6.3.2.2.1.

Data Types: double

Group hopping configuration, specified as 'neither', 'enable', or 'disable'. The groupHopping argument is higher layer parameter pucch-GroupHopping.

Note

When groupHopping is set to 'disable', the function enables sequence hopping. In this case, the selected sequence number might not be appropriate for short base sequences.

Data Types: char | string

Initial cyclic shift, m_0, specified as an integer from 0 to 11. initialCS is higher layer parameter initialCyclicShift.

For more information, see TS 38.213 Section 9.2.1 [2].

Data Types: double

Intra-slot frequency hopping configuration, specified as 'enabled' or 'disabled'. The freqHopping argument is higher layer parameter intraSlotFrequencyHopping.

Data Types: char | string

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

Data Types: char | string

Output Arguments

collapse all

PUCCH format 0 modulation symbols, returned as an empty vector or a complex column vector. sym is of length 12×L, where L is the PUCCH symbol allocation length, specified by symAllocation. For negative SR without HARQ-ACK, sym is always empty.

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