4G/LTE - PHY Channel

 

 

 

PUCCH Format 1

 

As you see in PUCCH Format page, the function of PUCCH Format 1,1a,1b is just to deliver 1 or 2 or 4 bits data to eNodeB. But there are pretty complicated process and factors as described below.

PUCCH Format 1,1a,1b Location

There are many topics in LTE (especially on PHY layer) which cannot be cleary explained without going through each parameters and equations shown in the specification. Physical resource allocation is one of these topics.

Physical resource allocation for PUCCH format 1, 1a, 1b is determined by the following process. Don't get panic, equation itself is all within high school math. Only our patience and persistance is required.

First get some outstanding big picture and try to figure out how the big picture is implemented by the following math process.

    i) PUCCH is located around the extreme end of the system bandwidth in frequency domain. (Normally PUCCH Format 1 is located at a little less extreme edge, comparing with PUCCH format 2)

    ii) The location of a PUCCH alternates between the two edges when slot number changes.

    iii) Comparing to PUCCH format 2,2a,2b, Format 1 is using more variables to determine its location and most of these variables are set by higher layer message (SIB2,RRC Connection Setup, RRC Connection Reconfiguration etc)

I put the Excel spreadsheet to calculate the location here. (I haven't extensively tested my calculation. Let me know if you find any problem). Following equation is from 36.211 5.4.3 Mapping to physical resources.

 

< PUCCH Format 1 - PRB Mapping >

PUCCH format 1 PRB mapping formula with a 5 MHz resource grid example

  • The grid on the left is a 5 MHz example with 25 resource blocks, 0 to 24. In every subframe the PUCCH sits at resource block 0 in one slot and at resource block 24 in the other slot.
  • nPRB is floor(m/2) when (m + ns mod 2) mod 2 = 0, and NRBUL - 1 - floor(m/2) otherwise. So m decides the distance from the band edge, and the slot number decides which edge.
  • c is 3 for normal cyclic prefix and 2 for extended cyclic prefix.
  • NRBUL depends only on the system bandwidth: 6, 15, 25, 50, 75 and 100 for 1.4, 3, 5, 10, 15 and 20 MHz.

 

Most of the variables are specified by RRC message as shown below. Refer to following specs for the details.

  • 36.211 5.4.3 Mapping to physical resources
  • 36.213 10.1.2.1 FDD HARQ-ACK procedure for one configured serving cell
  • 36.331 PUCCH-Config

 

< PUCCH Configuration - RRC Parameters >

PUCCH-ConfigCommon and PUCCH-ConfigDedicated parameters mapped onto the PUCCH format 1 m formula

  • PUCCH-ConfigCommon supplies four variables of the formula: deltaPUCCH-Shift for ΔshiftPUCCH, nRB-CQI for NRB(2), nCS-AN for Ncs(1) and n1PUCCH-AN for NPUCCH(1).
  • For a dynamic HARQ-ACK, nPUCCH(1) = nCCE + NPUCCH(1). This is how the position of the PDCCH enters the PUCCH location.
  • NscRB is always 12, as the note in the image says.
  • The listing in the image is the Release 8 form. In 36.331 v19.3.0, PUCCH-ConfigCommon and PUCCH-ConfigDedicated still carry these fields. Later releases add their fields in separate IEs, from PUCCH-ConfigDedicated-v1020 up to PUCCH-ConfigDedicated-v1530 and PUCCH-ConfigDedicated-r13.

 

 

If you see a UL frame carrying a PUCCH (single PUCCH) only in frequency domain, it would look as follows.

 

< PUCCH Format 1 - Frequency Spectrum >

 

Frequency spectrum of an uplink frame carrying a single PUCCH at both band edges

The spectrum covers the 5 MHz channel from about -2.5 MHz to +2.5 MHz. The two peaks near both edges are the one PUCCH in its two slots, and no PUSCH fills the middle of the band. So the frequency hopping between slots is visible even without a time axis.

Let's run the formula once with the 5 MHz example, where NRBUL is 25. Take normal cyclic prefix, so c is 3, and deltaPUCCH-Shift ds1, so ΔshiftPUCCH is 1. Take nRB-CQI 0, nCS-AN 0 and n1PUCCH-AN 0, and let the PDCCH start at CCE 0. Then nPUCCH(1) is 0. The threshold c x Ncs(1) / ΔshiftPUCCH is also 0, so the second branch of the formula applies, and m is 0. In the even slot nPRB is floor(0/2) = 0, and in the odd slot nPRB is 25 - 1 - 0 = 24. This is the pattern in the 5 MHz grid of the PRB Mapping image.

Now change one parameter at a time. With n1PUCCH-AN 36, nPUCCH(1) is 36 and m becomes floor(36/36) = 1. An odd m swaps the two edges, so the PUCCH sits at resource block 24 in the even slot and at resource block 0 in the odd slot. With nRB-CQI 2 instead, m becomes 2. The PUCCH then moves one resource block toward the centre, to resource blocks 1 and 23.

One more rule in 36.211 clause 5.4.3 changes the time domain, not the location. When the UE sends SRS and PUCCH format 1, 1a or 1b together with one serving cell, it uses the shortened PUCCH format. The last SC-FDMA symbol of the second slot is then left empty for the SRS.

  • m is the only link between the parameters and the RB : every RRC parameter changes the location only through m.
  • An even m and an odd m use opposite edges : the slot number and m together decide which edge comes first.
  • Each step of 2 in m moves one RB inward : m = 0 and m = 1 share the outermost RBs, and m = 2 and m = 3 share the next pair.
  • The PDCCH position matters : for a dynamic HARQ-ACK, nCCE is part of nPUCCH(1).

Effects of Parameters on PUCCH Format 1 location

Actually this is already explained in previous section in detail, but it may look too complicated and confusing. It is confusing to me as well. I need to spend quite a  lot of time and energy everytime I look into this. So I tried to simplify the previous section in a little bit intuitive way as below.

My intuition can be summarized as three diagrams shown below.  I don't think any further verbal explanation is necessary. I think (hope) the illustration itself is self explanatory.

 

PUCCH PRB position in slot 0 and slot 1 as a function of m

 

 

< 36.211 - Figure 5.4.3-1: Mapping to physical resource blocks for PUCCH formats 1 – 3 for non-BL/CE UEs. >

36.211 Figure 5.4.3-1 mapping of m to PUCCH resource blocks

 

 

PUCCH-ConfigCommon parameters that increase or decrease m

 

NOTE : Regarding how each of these format are utilized and configured in signaling, check out this tutorial of Amarisoft TechAcademy.

Let's read the three diagrams by what each one draws. The diagram with the two slots side by side shows the position itself. In slot 0 the PUCCH is at nPRB(i) = m'(j)/2, counted from the bottom edge. In slot 1 it is at NRBUL - 1 - floor(m'(j)/2), the same distance below the top edge. Its two notes state the whole rule: a larger m moves the PUCCH toward the centre, and a smaller m moves it outwards.

36.211 Figure 5.4.3-1, the small diagram under its title, numbers the RB pairs from the edges. m = 0 and m = 1 occupy the outermost RBs in opposite slots, and m = 2 and m = 3 take the next pair inward. The diagram with the PUCCH-ConfigCommon listings connects this to the RRC parameters. The parameters n1PUCCH-AN, nRB-CQI and deltaPUCCH-Shift increase m as their values increase. The parameter nCS-AN decreases m as its value increases.

One caution applies to nCS-AN. The formula adds the term ceil(Ncs(1) / 8), which is 0 when nCS-AN is 0 and 1 for any other value. That extra 1 is the resource block where format 1 and format 2 are mixed. So the rule that nCS-AN decreases m holds between non-zero values only. Going from 0 to a non-zero value can move the PUCCH inward by one m.

  • A larger m moves the PUCCH toward the centre : and a smaller m moves it to the band edge.
  • Three parameters push m up : n1PUCCH-AN, nRB-CQI and deltaPUCCH-Shift.
  • nCS-AN pushes m down : except when it changes from 0, where the mixed resource block adds one to m.

Signal Generation of PUCCH Format 1

PUCCH format 1 carries at most 2 bits, but the UE spreads them over a whole resource block and seven SC-FDMA symbols in each slot. That spreading is what lets many UEs share one resource block. The three steps below follow 36.211 clause 5.4.1 from one complex symbol to the resource elements.

Step 1 : Generation of y(n). By this process, single complex number d(0) get converted to 12 complex numbers.

 

< PUCCH Format 1 Signal Generation - y(n) >

 

PUCCH format 1 generation of y n from d 0 and the cyclically shifted sequence

 

Step 2 : Generation of z(i). By this process and assuming N_SF = 4, 12 complex number y(n) get spreaded into 48 complex numbers.

 

< PUCCH Format 1 Signal Generation - y(n) >

PUCCH format 1 block spreading of y n into z with orthogonal sequences

 

Step 3 : Mapping the data to each resource element

If we assume s(n_s) = 1, n_s = 1 (the first slot). The data (complex number) generated in previous step is allocated to each resouce elements in the PUCCH RB as follows.

 

< PUCCH Format 1 Signal Generation - RE Mapping >

PUCCH format 1 resource element mapping around the three DMRS symbols

Let's go through the three steps with the tables in the images. In Step 1, d(0) comes from 36.211 Table 5.4.1-1. For format 1a, bit 0 gives 1 and bit 1 gives -1. For format 1b, 00 gives 1, 01 gives -j, 10 gives j and 11 gives -1. Format 1 carries no bits, so 36.211 assumes d(0) = 1 for it. The UE multiplies d(0) by a base sequence of length 12 from Table 5.5.1.2-1, cyclically shifted by α. The cyclic shift comes from deltaPUCCH-Shift and the resource index, so two UEs in the same RB can use different shifts.

In Step 2, the orthogonal sequence w comes from 36.211 Table 5.4.1-2. With normal cyclic prefix there are three sequences of length 4: [+1 +1 +1 +1], [+1 -1 +1 -1] and [+1 -1 -1 +1]. S(ns) is 1 or ejπ/2, depending on n'(ns). The label above the Step 2 image repeats y(n), but the image shows the generation of z from y(n).

In Step 3, the four spread copies of y(n) go to SC-FDMA symbols 0, 1, 5 and 6 of the slot. Symbols 2, 3 and 4 carry the DMRS. This is the normal PUCCH format with normal cyclic prefix, where the spreading factor is 4 in both slots. In the shortened format the spreading factor is 4 in the first slot and 3 in the second slot, because the last symbol is left for SRS.

  • One complex symbol carries all the information : d(0) holds 1 or 2 bits, and format 1 uses d(0) = 1.
  • The cyclic shift separates UEs in frequency : 12 shifts of one base sequence stay orthogonal.
  • The orthogonal sequence separates UEs in time : 3 sequences of length 4 with normal cyclic prefix.
  • Three of seven symbols carry DMRS : only four symbols per slot carry the spread data.

How are the location of multiple PUCCHs from Multiple UE determined ?

The first question would be "Is it possible for multiple UEs to send PUCCH at the same subframe ?". Putting in another ways, "Is it possible for a eNB to receive multiple PUCCHs at the same subframe ?"

The answer is "It should be possible". (It should be possible since eNB can send multiple PDSCHs in the same subframe for multiple UEs).

Then the next question would be "Would the multiple PUCCHs from the multiple UE be multiplexed onto the same location (same PRB) or mapped to differenet/separate location ?"

We can think of roughly two mechanism for this. One is to multiplex multiple PUCCHs in the same location with using different orthogonal sequences. This mechanism allows the multiple PUCCH from multiple UE can occupy the same location.

On the contrary, there is a method that let PUCCH from different UEs be allocated in different location based on following logic.

 

< 36.213 10.1.2.1 FDD HARQ-ACK procedure for one configured serving cell >

36.213 10.1.2.1 PUCCH resource for HARQ-ACK derived from n_CCE and N1_PUCCH

 

As you see the PRB calculation formula shown in the first section, the location of PUCCH format 1 changes by the parameter n1_PUCCH(marked in pink). and the n1_PUCCH is determined by n_CCE and N1_PUCCH. n_CCE here means the n_CCE for a specific PDCCH for a specific PDSCH.

Then the question would be "Which one of n_CCE and N1_PUCCH can be UE specific ?"

You can easily notice that N1_PUCCH cannot be a UE specific, since it is a common parameter (in SIB2) which implies that all the UE communicating to that specific eNB uses the same value.

Then n_CCE can be a UE specific ? There is no explcit answer to this, but you may be able to realize implcitely that this can be a UE specific. n_CCE here can indicate the location of a specific PDCCH for a specific PDSCH i.e UE specific PDSCH. (See CCE Index page). Therefore, you can say n1_PUCCH can be a UE specific and as a result PRB of PUCCH Format 1 (Location of PUCCH Format 1) can be a UE specific.

The two mechanisms above are not alternatives. The UE applies both at the same time, and nPUCCH(1) drives both of them. The index nPUCCH(1) selects the resource block through m. Inside that resource block, the same index selects the orthogonal sequence index noc and the cyclic shift. With normal cyclic prefix, one resource block holds 36 / ΔshiftPUCCH format 1 resources, because 12 cyclic shifts combine with 3 orthogonal sequences. When those resources run out, the next value of m opens the next resource block.

This is why the scheme needs no extra signalling. Here nCCE is the first CCE, the lowest CCE index of the PDCCH, as the 36.213 text in the image states. Two PDCCHs in one subframe never share a CCE, so their first CCEs differ. So the HARQ-ACK resources of two UEs scheduled in the same subframe differ too. For transmission on two antenna ports, the resource for port p1 is nCCE + 1 + NPUCCH(1).

A scheduling request does not follow this rule. It has no PDCCH to point to, so the UE takes its format 1 resource from sr-PUCCH-ResourceIndex in SchedulingRequestConfig. That index is UE specific by configuration rather than by the PDCCH position.

  • One index picks both the RB and the code : nPUCCH(1) gives m, noc and the cyclic shift.
  • Many UEs share one RB : up to 36 / ΔshiftPUCCH with normal cyclic prefix.
  • CCE allocation keeps HARQ-ACK resources apart : two PDCCHs never start at the same CCE in one subframe.
  • SR uses a configured index : sr-PUCCH-ResourceIndex replaces nCCE for a scheduling request.

Reference

  • 3GPP TS 36.211 v19.3.0 - 5.4.1 PUCCH formats 1, 1a and 1b, 5.4.3 Mapping to physical resources, Tables 5.4.1-1, 5.4.1-1a and 5.4.1-2
  • 3GPP TS 36.213 v19.4.0 - 10.1.2.1 FDD HARQ-ACK procedure for one configured serving cell
  • 3GPP TS 36.331 v19.3.0 - PUCCH-ConfigCommon, PUCCH-ConfigDedicated, SchedulingRequestConfig