Main Content

nrPUCCHHoppingInfo

Get PUCCH hopping information

Since R2019a

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

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

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

Cyclic shifts of all 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.
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

See Also

Functions