Main Content

nrPUCCHHoppingInfo

Get PUCCH hopping information

Description

example

info = nrPUCCHHoppingInfo(cp,nslot,nid,groupHopping,initialCS,seqCS) returns PUCCH sequence and cyclic shift hopping information. The function assumes intra-slot frequency hopping is enabled. The input arguments are:

  • Cyclic prefix cp

  • Radio frame slot number nslot

  • Scrambling identity nid

  • Group hopping configuration groupHopping

  • Initial cyclic shift initialCS

  • Sequence cyclic shift seqCS

info = nrPUCCHHoppingInfo(___,nirb) specifies the resource block (RB) indices in the interlace in addition to the input arguments in the previous syntax. (since R2023b)

Examples

collapse all

Get PUCCH hopping information for the specified input arguments.

cp = 'normal';
nslot = 3;
nid = 512;
groupHopping = 'enable';
initialCS = 5;
seqCS = 0;
info = nrPUCCHHoppingInfo(cp,nslot,nid,groupHopping,initialCS,seqCS) 
info = struct with fields:
          U: [13 22]
          V: [0 0]
      Alpha: [2.0944 2.0944 0 5.7596 2.6180 3.6652 4.1888 5.7596 1.5708 5.2360 5.2360 3.1416 0.5236 5.2360]
        FGH: [11 20]
        FSS: 2
    Hopping: 'groupHopping'
        NCS: [239 107 223 6 24 2 3 66 238 125 209 145 44 233]

The output field Alpha provides cyclic shifts corresponding to all the symbols in a slot. Since symbol indices are zero-based, to obtain the cyclic shift value corresponding to a symbol index, you must increase the index value.

symInd = 0;
alpha = info.Alpha(symInd+1)
alpha = 2.0944

Get PUCCH hopping information for the specified input arguments.

cp = 'extended';
nslot = 7;
nid = 12;
groupHopping = 'enable';
initialCS = 9;
seqCS = 0;
info = nrPUCCHHoppingInfo(cp,nslot,nid,groupHopping,initialCS,seqCS)
info = struct with fields:
          U: [20 4]
          V: [0 0]
      Alpha: [1.0472 0 1.0472 0 5.7596 3.1416 5.2360 4.1888 1.5708 4.7124 0 1.5708]
        FGH: [8 22]
        FSS: 12
    Hopping: 'groupHopping'
        NCS: [149 255 173 255 146 141 25 167 198 12 63 78]

To obtain the base sequence group number and base sequence number when intra-slot frequency hopping is disabled, consider only the first elements of U and V.

u = info.U(1)
u = 20
v = info.V(1)
v = 0

Input Arguments

collapse all

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, the valid range is from 0 to 159. For extended cyclic prefix, the valid range is from 0 to 39. For more details, see TS 38.211 Section 4.3.2 [1].

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.

Data Types: char | string

Initial cyclic shift, referred to as m_0 in TS 38.211 Section 6.3.2.2.2, specified as an integer from 0 to 11. For PUCCH formats 0 and 1, initialCS is higher layer parameter initialCyclicShift. For PUCCH format 3 demodulation reference signals (DMRS), initialCS must be 0. For PUCCH format 4 DMRS, initialCS must be 0, 3, 6, or 9. For more information, see TS 38.213 Section 9.2.1 [2].

Data Types: double

Sequence cyclic shift, referred to as m_cs in TS 38.211 Section 6.3.2.2.2, specified as an integer from 0 to 11. For PUCCH formats 1, 2, 3, and 4, seqCS must be 0.

Data Types: double

RB indices in the interlace, as defined in TS 38.211 Section 4.4.4.6 [1], specified as a vector of nonnegative integers.

Data Types: double

Output Arguments

collapse all

Sequence and cyclic shift hopping information, returned as a structure that contains these fields:

Parameter FieldValuesDescription
U

1-by-2 integer vector

Base sequence group numbers, returned as a 1-by-2 integer vector with element values from 0 to 29. The first vector element corresponds to the first hop in a slot. The second vector element corresponds to the second hop in a slot.

V

1-by-2 logical vector

Base sequence numbers, returned a 1-by-2 logical vector. The first vector element corresponds to the first hop in a slot. The second vector element corresponds to the second hop in a slot.
Alpha

1-by-14 integer vector,

1-by-12 integer vector,

N-by-14 integer vector,

N-by-12 integer vector

Cyclic shifts of all OFDM symbols in a slot, returned as a 1-by-14 integer vector (for normal cyclic prefix) or 1-by-12 integer vector (for extended cyclic prefix). The first vector element corresponds to the first hop in a slot. The second vector element corresponds to the second hop in a slot.

When you specify the nirb input, this field is returned as an N-by-14 or N-by-12 integer vector. N is the number of vector elements in the nirb input. Each row contains the cyclic shifts for each RB in the interlace.

FGH

1-by-2 integer vector

Sequence-group hopping pattern, returned as 1-by-2 integer vector with values from 0 to 29. The first vector element corresponds to the first hop in a slot. The second vector element corresponds to the second hop in a slot.
FSS

nonnegative integer

Sequence-group shift offset, returned as a nonnegative integer from 0 to 29.

Hopping

'neither',

'groupHopping',

'sequenceHopping'

Hopping configuration, returned as 'neither', 'groupHopping', or 'sequenceHopping'. The hopping configuration is based on the input argument groupHopping.
NCS

1-by-14 integer vector,

1-by-12 integer vector

Hopping identity of cyclic shifts, referred to as n_cs in TS 38.211 Section 6.3.2.2.2, returned as a 1-by-14 integer vector (for normal cyclic prefix) or 1-by-12 integer vector (for extended cyclic prefix). A vector element at position i corresponds to the hopping identity of cyclic shift at symbol position i in a slot.

Data Types: struct

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

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

Version History

Introduced in R2019a

expand all

See Also

Functions