|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PUCCH / UCI in DetailPUCCH is an uplink physical channel that carries UCI (Uplink Control Information). As DCI (Downlink Control Information) is carried by PDCCH, UCI is carried by PUCCH. A big difference between DCI and UCI is that UCI can be carried either by PUCCH or PUSCH depending on situation whereas DCI can be carried only by PDCCH (not by PDSCH in any case).
UCIThe main purpose of PUCCH is to carry UCI (Uplink Control Information). Even though UCI can be taken as a part of PUCCH, I wrote a separate page here for UCI since it is a huge topics on its own (PUCCH is not the only channel that carries UCI, depending on cofiguration PUSCH also carries UCI. So it is reasonable to write a separate page for UCI) Summary of PUCCH FormatsThere are multiple PUCCH formats (0, 1, 2, 3, 4), each optimized for different amounts of UCI bits and different time–frequency resources. These formats differ mainly in:
There are 5 different formats of PUCCH and which one of them is used is determined by how many bits of information should be carried and how many symbols are assigned, as summarized in the following table. < Based on 38.211 - Table 6.3.2.1-1: PUCCH formats.>
I think the description from 38.300 - 5.3.3 would give you another aspects of the description as below. The short PUCCH format of up to two UCI bits is based on sequence selection, while the short PUCCH format of more than two UCI bits frequency multiplexes UCI and DMRS. The long PUCCH formats time-multiplex the UCI and DMRS. Frequency hopping is supported for long PUCCH formats and for short PUCCH formats of duration of 2 symbols. Long PUCCH formats can be repeated over multiple slots. Following is the summary of PUCCH formats with more detailed parameter. For the overview of PUCCH parameters, I think this table would be enough but if you want to know of the detailed meaning of each of these parameters, you would need to go through the whole page.
Some background of adopting this kind of design is briefly described in V-B of this paper as follows Unlike LTE PUCCH that is located at the edges of the carrier bandwidth and is designed with fixed duration and timing, Which format to use ?
How to Determine PUCCH location ?Following is the illustration for the description on 38.213 - 9.2.1 PUCCH Resource Sets. As you see in the following illustration, some parameters applies to all PUCCH format but some parameters applies to only specific formats as below.
How to define PUCCH baseband signal ?As in LTE PUCCH(format 1,1a,1b, format 2,2a,2b and format 3), the baseband generation process for NR PUCCH is also very complicated. As you know, all the purpose of PUCCH is just to send a few bits to gNB. I've been thinking on why we need this kind of complicated way just to send a few bits. Actually PUCCH is not the only one that is designed in such a complicated way. Every channel processing in cellular technology is complicated. Main reason behind this complexity is for reliability of the delivery of the contents and for some channels we put some additional complication for handling multiple users with very limited physical resources. Anyway, I don't think I can explain fully about the design concept of PUCCH baseband generation in plain words and I don't want to pretend that I myself knows about the full detail. Full understanding on this process will be required only for a few physical layer development engineer and those engineer would not need this type of notes since they've already had bettern knowledge than I just by reading 3GPP documents. The main purpose of writing this note is to make a cheat sheet for overall PUCCH baseband process and figure out the link between RRC parameter and baseband process. Even if I don't completely understand the process, at least I can say 'Hmm... this RRC parameter seems to be related to this part of the baseband process'. PUCCH baseband process is made up of roughly three steps : This three steps applies to all PUCCH formats (Format 0,1,2,3,4) but depending on PUCCH format a little different parameters(see here) are used during this process and some format would require some extra steps in addition to this common part. PUCCH Base Sequence GenerationPUCCH Baseband Sequence Generation refers to how the physical uplink control channel (PUCCH) waveform is formed in baseband before being transmitted over the air. It covers
In PUCCH formats 0, 1, 3, and 4, the waveform is built around a Zadoff–Chu-like complex sequence ru,v(α,δ)(n). Here:
The sequence ru,v(α,δ)(n) can be generated or hopped using pseudo-random initializations that depend on the cell identity (NIDcell) or a higher-layer configured ID. This approach helps ensure good autocorrelation and cross-correlation properties among different UEs and different PUCCH transmissions. Group and sequence hoppingHopping in the PUCCH (Physical Uplink Control Channel) context refers to the mechanism of dynamically altering parameters to improve performance and mitigate interference in the uplink. The hopping mechanism consists of two main components: group hopping and sequence hopping. Group hopping modifies the frequency group used by the uplink signal, reducing interference and ensuring more robust communication. The value of the hopping group, denoted as fgh, depends on the configuration parameters set by the network, such as the hoppingId or the cell identity NcellID. If group hopping is disabled, fgh is set to zero. Sequence hopping involves altering the base sequence of the uplink signal to ensure diversity and enhance resilience against fading. The sequence hopping component, represented by fss, is derived from the network configuration. The hopping sequence depends on whether group hopping is enabled, disabled, or set to neither. The hopping behavior is summarized by the formula: u = (fgh + fss) mod 30 In this equation, the effective hopping parameter u combines the group hopping and sequence hopping values to determine the uplink resource allocation dynamically. This ensures efficient utilization of the available spectrum while minimizing interference. Additionally, a frequency hopping index, nhop, plays a role in determining intra-slot hopping behavior. When frequency hopping is disabled, nhop is set to zero. When enabled, nhop alternates between zero for the first hop and one for the second hop within a slot. The formula for determining the hopping value is: u = (fgh + fss) mod 30 Here, the behavior depends on the value of pucch-GroupHopping, which can be set to 'neither', 'enable', or 'disable'. The following describes each scenario:
When pucch-GroupHopping is set to 'neither', it indicates that no group hopping or sequence hopping is enabled. In this configuration: This configuration effectively disables both group and sequence hopping, resulting in static behavior where no dynamic hopping is applied. The values of the parameters are derived from either the RRC configuration or the cell identity, ensuring deterministic operation in the absence of hopping.
Following is the high level description of the parameter setting for this condition
When pucch-GroupHopping is set to 'enable', the configuration activates group hopping in PUCCH (Physical Uplink Control Channel). The configuration for PUCCH (Physical Uplink Control Channel) Group Hopping when set to 'enable' introduces frequency hopping, allowing sequences to span multiple frequency groups. This improves diversity and robustness against interference. When pucch-GroupHopping is set to 'enable', it ensures that the uplink signal spans different frequency groups to enhance interference resilience and provide diversity in transmission. The formula for fgh incorporates multiple variables, including hopping-related parameters and a summation over predefined ranges, making it flexible and adaptive to the system's configuration. fss and cinit are derived from system identifiers, ensuring unique and non-colliding sequence configurations for different cells.
The parameters for this configuration are as follows:
This calculation involves: Summation over 8 terms: Each term is weighted by 2m, where m ranges from 0 to 7. c(x): Represents a pseudo-random sequence generator function, which depends on: 8 · (2nsfμ + nhop) + m, where: The result is taken modulo 30 to ensure the parameter fits within the range for group hopping.
When pucch-GroupHopping is set to 'disable', the hopping mechanism is simplified.
Following is the descriptions about each parameter settings
Cyclic ShiftCyclic Shift in PUCCH is a critical parameter used in 5G NR to enable multiple User Equipments (UEs) to transmit over the same resources without causing interference. It applies a phase rotation to the base sequence, enabling efficient resource multiplexing. The cyclic shift ensures orthogonality and supports multiple UEs on the same PUCCH resource. It avoids conflicts by applying dynamic phase rotations using the parameters defined above. Below is a detailed explanation: The formula for cyclic shift (αl) is: αl = (2π/NRBSC) · ((m0 + mcs + ncs(nμs,f, l, l')) mod NRBSC) Where:
Followings are specific parameters for each PUCCH formats
The tables presented correspond to the cyclic shift parameters for HARQ-ACK values in PUCCH (Physical Uplink Control Channel) configurations. These tables are essential for determining how sequence cyclic shifts are applied to PUCCH resources in 5G systems. The selection of the cyclic shift depends on the HARQ-ACK values, ensuring the integrity and proper alignment of control information during uplink communication. The shifts (m<sub>CS</sub>) effectively modulate the uplink signal to manage multiple users and configurations efficiently. < 38.213-Table 9.2.3-3 Mapping of values for one HARQ-ACK information bit to sequences for PUCCH format 0>
< 38.213-Table 9.2.3-4 Mapping of values for two HARQ-ACK information bits to sequences for PUCCH format 0>
This table provides the cyclic shift indices (m0) for different orthogonal sequence indices (n) in the context of PUCCH format 4 < 38.211-Table 6.4.1.3.3.1-1: Cyclic shift index for PUCCH format 4 >
Orthogonal Sequence Index (n):
Cyclic Shift Index (m0): PUCCH Format 0 Baseband SequenceThe formula represents the PUCCH Format 0 Baseband Sequence, used in LTE for transmitting control information such as acknowledgments, scheduling requests, or channel quality indicators. The sequence is represented as: x(l ⋅ NscRB + n) = ru,v(α, δ)(n) Here, the index l determines the OFDM symbol index, while n is the subcarrier index within a resource block.
PUCCH Format 1 Baseband SequencePUCCH Format 1 introduces unique features compared to other PUCCH formats, particularly in the sequence generation process: Unlike most other PUCCH formats that directly use the Zadoff-Chu sequence for sequence generation, PUCCH Format 1 applies an orthogonal spreading code (wi(m)) on top of the Zadoff-Chu sequence (r(α,δ)u,v(n)). In orther words, while most other formats rely solely on the Zadoff-Chu sequence for their properties (e.g., constant amplitude, low cross-correlation), PUCCH Format 1 goes a step further by introducing spreading codes and frequency hopping for added robustness and user multiplexing. This makes it particularly suitable for scenarios requiring higher UCI bit capacity and interference mitigation.
< 38.211 - Table 6.3.2.4.1-1: Number of PUCCH symbols and the corresponding >
< 38.211 - Table 6.3.2.4.1-2: Orthogonal sequences for PUCCH format 1 > The modulated sequence is calculated as: y(n) = d(0) · r(α,δ)u,v(n) , where
The spreaded sequence is calculated as:
z(m' · NRBsc/NPUCCH,1SF,m' + m · NRBsc + n) = wi(m) · y(n) , where
< 38.211 - Table 6.3.2.4.1-1: Number of PUCCH symbols and the corresponding > This table maps the number of PUCCH symbols (NPUCCH,1symb) to the corresponding values of NPUCCH,1SF,m', considering intra-slot hopping:
The parameter NPUCCH,1SF,m' has a specific practical meaning in the context of PUCCH Format 1 and relates to the number of subcarriers and their allocation for physical uplink control channel transmission. Its practical meaning can be described as follows:
Subcarrier Allocation for Spreading: Dependence on Hopping Mode: PUCCH Length and Symbol Structure: Orthogonal Spreading and Multiplexing: Diversity and Robustness: Practical Use: In scenarios where multiple UEs are transmitting uplink control information simultaneously, the parameter NPUCCH,1SF,m' determines how many subcarriers and spreading sequences are available. It directly affects:
This parameter is therefore crucial in the configuration and optimization of PUCCH Format 1 transmissions in real-world LTE/NR deployments. Example : meaning of NPUCCH,1SF,m', = 4
Key Points:
Summary :
< 38.211 - Table 6.3.2.4.1-2: Orthogonal sequences for PUCCH format 1 > Orthogonal spreading codes in the table from 3GPP 38.211 are used for PUCCH format 1 to enable multiple users to share the same physical resource block (PRB) efficiently while minimizing interference. Structure of the Table:
Purpose of Orthogonal Codes:
Example:
Cyclic Permutations:
By employing this mechanism, the network achieves efficient resource utilization while preserving the integrity of individual user signals. Example : This sequence,
This sequence ensures efficient utilization of spectrum resources while minimizing signal interference in a multi-user uplink scenario. PUCCH Format 2 Baseband Sequence
PUCCH Format 3 Baseband Sequence
PUCCH Format 4 Baseband Sequence
Baseband Parameters for PUCCH Format
Frequeny HoppingIt is possible to enable or disable PUCCH using RRC Parameter PUCCH-frequency-hopping. It is configured by following Rrc parameters.
PUCCH-Resource ::= SEQUENCE { pucch-ResourceId PUCCH-ResourceId, startingPRB PRB-Id, intraSlotFrequencyHopping ENUMERATED { enabled } OPTIONAL, -- Need R secondHopPRB PRB-Id OPTIONAL, -- Need R .... }
Followings are some of the examples of frequency hopping. For more diverse and accurate examples, refer to this note with Matlab 5G Toolbox. ModulationQPSK or BPSK is used depending on cases as below.
Channel CodingVarious types of Channel coding is applied to UCI(Uplink Control Information) depending on the number of bits to be carried.
UCI / PUSCH MultiplexingIs it allowed to transmit UCI and PUSCH at the same time ? This (transmition of UCI and PUSCH at the same time) is called Multiplexing and the UCI/PUSCH multiplexing is supported. This multiplexing happens in the way described as follows (38.300 - 5.3.3)
What is PUCCH Resource and what constitues it ?As described above, there are various parameters to define a specific PUCCH. The set of parameters for defining a specific PUCCH is called 'PUCCH Resource'. The list of parameters that are used to define a PUCCH Resource are as follows.
Not every PUCCH format uses all of these parameters. Depending on PUCCH format, a PUCCH uses different set of parameters. Following table shows which parameter is used for which PUCCH format.
How does UE figure out which resource to apply ?In previous section, we learned a lot of parameters are involved in defining a specific PUCCH. Then how the gNB transfer those information to UE ? In other words, how UE can figure out what kind of pucch format and parameters should be used for at the specific moment of PUCCH transmission ? How the PUCCH Resource allocation is determined ?There are two different ways of defining PUCCH Resource List(Table). One is to use the table predefined in 3GPP specification and the other one is to arbitrarily defined table using RRC message. you may get a brief but nicely described big picture of PUCCH resource allocation from V-B of this paper as follows :
For UCI transmission including HARQ-ACK bits, a UE may be configured with up to 4 PUCCH resource sets based on the UCI size. A UE determines the set based on the UCI size, and further indicates a PUCCH resource in the set based on a 3-bit field in DCI (complemented with an implicit rule for the first set with more than 8 resources)
This case is used in a specific case as stated below (38.213-9.2.1). It means that this table is used when there is no PUCCHResourceSet defined in PUCCH-Config in RRC. There are two RRC messages that would carry PUCCH-Config. One is RRCSetup and the other one is RRCReconfiguration in case of SA or RRCConnectionReconfiguration in case of NSA. So if PUCCH-Config is configured in RRCSetup, this table is used for only a few steps before RRCSetup message. If PUCCH-Config is not configured in RRCSetup, this table is used for pretty long time until the rrc procedure reaches RRCReconfiguration. If a UE does not have dedicated PUCCH resource configuration, provided by higher layer parameter PUCCHResourceSet in PUCCH-Config, a PUCCH resource set is provided by higher layer parameter pucch-ResourceCommon in SystemInformationBlockType1 through an index to a row of Table 9.2.1-1 for transmission of HARQ-ACK information on PUCCH in an initial active UL BWP of N_size_BWP PRBs provided by SystemInformationBlockType1
<38.213 v15.3 - Table 9.2.1-1: PUCCH resource sets before dedicated PUCCH resource configuration >
When this table is used, only one of these items (resource) can be used for a specific cell and the specific resource to be used for the cell is configured by PUCCH-ConfigCommon.pucch-ResourceCommon in SIB1 as shown below.
PUCCH-ConfigCommon ::= SEQUENCE { pucch-ResourceCommon INTEGER (0..15) OPTIONAL, -- Need R pucch-GroupHopping ENUMERATED { neither, enable, disable }, hoppingId INTEGER (0..1023) OPTIONAL, -- Need R p0-nominal INTEGER (-202..24) OPTIONAL, -- Need R ... }
As you see, pucch-ResourceCommon can specify a number between 0 and 15 which indicate the table Index in 38.213 Table 9.2.1-1. For example, if pucch-ResourceCommon = 1. Following PUCCH configuration (resource) is used PUCCH Format = Format 0 FirstSymbol = 12 Number of Symbols = 2 PRB Offset = 0 Set of Initial CS Indexes = {0,4,8}
You may notice that 38.213 Table 9.2.1-1 defines the pucch format and time domain resource allocation but it does not specify the exact frequency domain resource allocation. The frequency domain resource allocation is determined by a little bit complicated algorithm as illustrated below based on 38.213-9.2.1. Simply put, the frequency domain resource is determined by DCI and PDCCH CCE location.
PUCCH Resource table is defined in RRC message(e.g, RRCSetup(NR), RRCReconfiguration(NR), RRCConnectionReconfiguration(LTE for NR Addition). One example of creating the PUCCH resource allocation table is shown below. Basically it has a structure and steps as follows. Step i) : Define all the possible PUCCH Format resource a gNB would use in the IE resourceToAddModList Step ii) : Define one or multipe Set of resources by combining the elements of resourceSetToAddModList From the resource allocation table constructed as above, how a specific resource is picked up for UCI transmission at a specific moment. It can be determined by the two step procedure as below. Step 1 : Select a PUCCH Resource Set from ResourceSetToAddModList based on UCI bit length Step 2 : Select a specific resource from the resourceList within the selected resource set based on DCI Following is an illustration showing the Step 1 (PUCCH Resource Set Selection) Following is an illustration showing the Step 2 (PUCCH Resource Selection) ExamplesThese examples are from Amarisoft Network Simulator.
pucch_Config setup resourceSetToAddModList pucch-ResourceSetID = 0 resourceList { 0, // these are the pucch-ResourceId defined in resourceToAddModList. 1, // you can make any combination of the list here 2, // example : {0,1,2,3,4,5,6,7} 3, // example : {0,1,2,3,0,1,2,3} 4, // example : {0,0,0,0,0,0,0,0} 5, 6, 7 } maxPayloadMinus1 resourceToAddModList { pucch-ResourceId = 0 startingPRB = 0 intraSlotFrequencyHopping = Omitted secondHopPRB = 0 format = format0 format 0 { initialCyclicShift = 0 nrofSymbols = 1 startingSymbolIndex = 13 } } { pucch-ResourceId = 1 startingPRB = 0 intraSlotFrequencyHopping = Omitted secondHopPRB = 0 format = format0 format 0 { initialCyclicShift = 1 nrofSymbols = 1 startingSymbolIndex = 13 } } { pucch-ResourceId = 2 startingPRB = 0 intraSlotFrequencyHopping = Omitted secondHopPRB = 0 format = format0 format 0 { initialCyclicShift = 3 nrofSymbols = 1 startingSymbolIndex = 13 } } { pucch-ResourceId = 3 startingPRB = 0 intraSlotFrequencyHopping = Omitted secondHopPRB = 0 format = format0 format 0 { initialCyclicShift = 7 nrofSymbols = 1 startingSymbolIndex = 13 } } { pucch-ResourceId = 4 startingPRB = 0 intraSlotFrequencyHopping = Omitted secondHopPRB = 0 format = format0 format 0 { initialCyclicShift = 0 nrofSymbols = 1 startingSymbolIndex = 13 } } { pucch-ResourceId = 5 startingPRB = 0 intraSlotFrequencyHopping = Omitted secondHopPRB = 0 format = format0 format 0 { initialCyclicShift = 1 nrofSymbols = 1 startingSymbolIndex = 13 } } { pucch-ResourceId = 6 startingPRB = 0 intraSlotFrequencyHopping = Omitted secondHopPRB = 0 format = format0 format 0 { initialCyclicShift = 3 nrofSymbols = 1 startingSymbolIndex = 13 } } { pucch-ResourceId = 7 startingPRB = 0 intraSlotFrequencyHopping = Omitted secondHopPRB = 0 format = format0 format 0 { initialCyclicShift = 7 nrofSymbols = 1 startingSymbolIndex = 13 } } ........
uplinkConfig { initialUplinkBWP { pucch-Config setup: { resourceSetToAddModList { { pucch-ResourceSetId 0, resourceList { 0, 1, 2, 3, 4, 5, 6, 7 } }, { pucch-ResourceSetId 1, resourceList { 8, 9, 10, 11, 12, 13, 14, 15 } } }, resourceToAddModList { { pucch-ResourceId 0, startingPRB 0, intraSlotFrequencyHopping enabled, secondHopPRB 50, format format1: { initialCyclicShift 0, nrofSymbols 14, startingSymbolIndex 0, timeDomainOCC 0 } }, { pucch-ResourceId 1, startingPRB 0, intraSlotFrequencyHopping enabled, secondHopPRB 50, format format1: { initialCyclicShift 4, nrofSymbols 14, startingSymbolIndex 0, timeDomainOCC 0 } }, { pucch-ResourceId 2, startingPRB 0, intraSlotFrequencyHopping enabled, secondHopPRB 50, format format1: { initialCyclicShift 8, nrofSymbols 14, startingSymbolIndex 0, timeDomainOCC 0 } }, { pucch-ResourceId 3, startingPRB 0, intraSlotFrequencyHopping enabled, secondHopPRB 50, format format1: { initialCyclicShift 0, nrofSymbols 14, startingSymbolIndex 0, timeDomainOCC 1 } }, { pucch-ResourceId 4, startingPRB 0, intraSlotFrequencyHopping enabled, secondHopPRB 50, format format1: { initialCyclicShift 4, nrofSymbols 14, startingSymbolIndex 0, timeDomainOCC 1 } }, { pucch-ResourceId 5, startingPRB 0, intraSlotFrequencyHopping enabled, secondHopPRB 50, format format1: { initialCyclicShift 8, nrofSymbols 14, startingSymbolIndex 0, timeDomainOCC 1 } }, { pucch-ResourceId 6, startingPRB 0, intraSlotFrequencyHopping enabled, secondHopPRB 50, format format1: { initialCyclicShift 0, nrofSymbols 14, startingSymbolIndex 0, timeDomainOCC 2 } }, { pucch-ResourceId 7, startingPRB 0, intraSlotFrequencyHopping enabled, secondHopPRB 50, format format1: { initialCyclicShift 4, nrofSymbols 14, startingSymbolIndex 0, timeDomainOCC 2 } }, { pucch-ResourceId 8, startingPRB 50, intraSlotFrequencyHopping enabled, secondHopPRB 0, format format4: { nrofSymbols 14, occ-Length n4, occ-Index n0, startingSymbolIndex 0 } }, { pucch-ResourceId 9, startingPRB 50, intraSlotFrequencyHopping enabled, secondHopPRB 0, format format4: { nrofSymbols 14, occ-Length n4, occ-Index n1, startingSymbolIndex 0 } }, { pucch-ResourceId 10, startingPRB 50, intraSlotFrequencyHopping enabled, secondHopPRB 0, format format4: { nrofSymbols 14, occ-Length n4, occ-Index n2, startingSymbolIndex 0 } }, { pucch-ResourceId 11, startingPRB 50, intraSlotFrequencyHopping enabled, secondHopPRB 0, format format4: { nrofSymbols 14, occ-Length n4, occ-Index n3, startingSymbolIndex 0 } }, { pucch-ResourceId 12, startingPRB 1, intraSlotFrequencyHopping enabled, secondHopPRB 49, format format4: { nrofSymbols 14, occ-Length n4, occ-Index n0, startingSymbolIndex 0 } }, { pucch-ResourceId 13, startingPRB 1, intraSlotFrequencyHopping enabled, secondHopPRB 49, format format4: { nrofSymbols 14, occ-Length n4, occ-Index n1, startingSymbolIndex 0 } }, { pucch-ResourceId 14, startingPRB 1, intraSlotFrequencyHopping enabled, secondHopPRB 49, format format4: { nrofSymbols 14, occ-Length n4, occ-Index n2, startingSymbolIndex 0 } }, { pucch-ResourceId 15, startingPRB 1, intraSlotFrequencyHopping enabled, secondHopPRB 49, format format4: { nrofSymbols 14, occ-Length n4, occ-Index n3, startingSymbolIndex 0 } }, { pucch-ResourceId 16, startingPRB 49, intraSlotFrequencyHopping enabled, secondHopPRB 1, format format1: { initialCyclicShift 8, nrofSymbols 14, startingSymbolIndex 0, timeDomainOCC 0 } } }, format1 setup: { }, format4 setup: { maxCodeRate zeroDot25 }, RRC ParametersBased on 38.331 v15.3
PUCCH-Config ::= SEQUENCE { resourceSetToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSet OPTIONAL, -- Need N resourceSetToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSetId OPTIONAL, -- Need N resourceToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-Resource OPTIONAL, -- Need N resourceToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-ResourceId OPTIONAL, -- Need N format1 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M format2 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M format3 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M format4 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M schedulingRequestResourceToAddModList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceConfig OPTIONAL, -- Need M schedulingRequestResourceToReleaseList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceId OPTIONAL, -- Need M
multi-CSI-PUCCH-ResourceList SEQUENCE (SIZE (1..2)) OF PUCCH-ResourceId OPTIONAL,-- Need M dl-DataToUL-ACK SEQUENCE (SIZE (8)) OF INTEGER (0..15) OPTIONAL, -- Need M spatialRelationInfoToAddModList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfo OPTIONAL, -- Need N spatialRelationInfoToReleaseList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfoId OPTIONAL, -- Need N
pucch-PowerControl PUCCH-PowerControl OPTIONAL, -- Need M ... } PUCCH-FormatConfig ::= SEQUENCE { interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, -- Need R additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R maxCodeRate PUCCH-MaxCodeRate OPTIONAL, -- Need R nrofSlots ENUMERATED {n2,n4,n8} OPTIONAL, -- Need S pi2PBSK ENUMERATED {enabled} OPTIONAL, -- Need R simultaneousHARQ-ACK-CSI ENUMERATED {true} OPTIONAL -- Need R }
PUCCH-MaxCodeRate ::= ENUMERATED {zeroDot08, zeroDot15, zeroDot25, zeroDot35, zeroDot45, zeroDot60, zeroDot80}
PUCCH-SpatialRelationInfo ::= SEQUENCE { pucch-SpatialRelationInfoId PUCCH-SpatialRelationInfoId, referenceSignal CHOICE { ssb-Index SSB-Index, csi-RS-Index NZP-CSI-RS-ResourceId, srs SRS-ResourceId }, pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id, p0-PUCCH-Id P0-PUCCH-Id, closedLoopIndex ENUMERATED { i0, i1 } }
PUCCH-SpatialRelationInfoId ::= INTEGER (1..maxNrofSpatialRelationInfos)
PUCCH-ResourceSet ::= SEQUENCE { pucch-ResourceSetId PUCCH-ResourceSetId, resourceList SEQUENCE (SIZE (8..maxNrofPUCCH-ResourcesPerSet)) OF PUCCH-ResourceId, maxPayloadMinus1 INTEGER (4..256) OPTIONAL -- Need R }
maxNrofPUCCH-ResourcesPerSet ::= 4 PUCCH-ResourceSetId ::= INTEGER (0..maxNrofPUCCH-ResourceSets-1)
PUCCH-Resource ::= SEQUENCE { pucch-ResourceId PUCCH-ResourceId, startingPRB PRB-Id, intraSlotFrequencyHopping ENUMERATED { enabled } OPTIONAL, -- Need R secondHopPRB PRB-Id OPTIONAL, -- Need R
format CHOICE { format0 PUCCH-format0, - Cond InFirstSetOnly format1 PUCCH-format1, - Cond InFirstSetOnly format2 PUCCH-format2, - Cond NotInFirstSet format3 PUCCH-format3, - Cond NotInFirstSet format4 PUCCH-format4 - Cond NotInFirstSet } }
PUCCH-ResourceId ::= INTEGER (0..maxNrofPUCCH-Resources-1)
PUCCH-format0 ::= SEQUENCE { initialCyclicShift INTEGER(0..11), nrofSymbols INTEGER (1..2), startingSymbolIndex INTEGER(0..13) }
PUCCH-format1 ::= SEQUENCE { initialCyclicShift INTEGER(0..11), nrofSymbols INTEGER (4..14), startingSymbolIndex INTEGER(0..10), timeDomainOCC INTEGER(0..6) }
PUCCH-format2 ::= SEQUENCE { nrofPRBs INTEGER (1..16), nrofSymbols INTEGER (1..2), startingSymbolIndex INTEGER(0..13) }
PUCCH-format3 ::= SEQUENCE { nrofPRBs INTEGER (1..16), nrofSymbols INTEGER (4..14), startingSymbolIndex INTEGER(0..10) }
PUCCH-format4 ::= SEQUENCE { nrofSymbols INTEGER (4..14), occ-Length ENUMERATED {n2,n4}, occ-Index ENUMERATED {n0,n1,n2,n3}, startingSymbolIndex INTEGER(0..10) }
SchedulingRequestResourceConfig ::= SEQUENCE { schedulingRequestResourceId SchedulingRequestResourceId, schedulingRequestID SchedulingRequestId, periodicityAndOffset CHOICE { sym2 NULL, sym6or7 NULL, sl1 NULL, -- Recurs in every slot sl2 INTEGER (0..1), sl4 INTEGER (0..3), sl5 INTEGER (0..4), sl8 INTEGER (0..7), sl10 INTEGER (0..9), sl16 INTEGER (0..15), sl20 INTEGER (0..19), sl40 INTEGER (0..39), sl80 INTEGER (0..79), sl160 INTEGER (0..159), sl320 INTEGER (0..319), sl640 INTEGER (0..639) } OPTIONAL, -- Need M resource PUCCH-ResourceId OPTIONAL -- Need M }
PUCCH-PowerControl ::= SEQUENCE { deltaF-PUCCH-f0 INTEGER (-16..15) OPTIONAL, -- Need R deltaF-PUCCH-f1 INTEGER (-16..15) OPTIONAL, -- Need R deltaF-PUCCH-f2 INTEGER (-16..15) OPTIONAL, -- Need R deltaF-PUCCH-f3 INTEGER (-16..15) OPTIONAL, -- Need R deltaF-PUCCH-f4 INTEGER (-16..15) OPTIONAL, -- Need R p0-Set SEQUENCE (SIZE (1..maxNrofPUCCH-P0-PerSet)) OF P0-PUCCH OPTIONAL, -- Need M pathlossReferenceRSs SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSs)) OF PUCCH-PathlossReferenceRS OPTIONAL, -- Need M twoPUCCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need R ... }
P0-PUCCH ::= SEQUENCE { p0-PUCCH-Id P0-PUCCH-Id, p0-PUCCH-Value INTEGER (-16..15) }
P0-PUCCH-Id ::= INTEGER (1..8)
PUCCH-PathlossReferenceRS ::= SEQUENCE { pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id, referenceSignal CHOICE { ssb-Index SSB-Index, csi-RS-Index NZP-CSI-RS-ResourceId } }
PUCCH-PathlossReferenceRS-Id ::= INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1)
PUCCH-ConfigCommon ::= SEQUENCE { pucch-ResourceCommon INTEGER (0..15) OPTIONAL, -- Need R pucch-GroupHopping ENUMERATED { neither, enable, disable }, hoppingId INTEGER (0..1023) OPTIONAL, -- Need R p0-nominal INTEGER (-202..24) OPTIONAL, -- Need R ... }
Reference[1] Physical Uplink Control Channel Design for 5G New Radio [2] 5G NR UCI | Uplink Control Information (UCI) in 5G NR [3] Physical Uplink Control Channel Design for 5G NewvRadio YouTube (Korean)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||