The downlink and the uplink are not symmetric problems for a receiver. On the downlink every UE in the cell decodes the same signal from one transmitter. On the uplink the eNB has to separate signals from many UEs at once. Each one arrives at a different distance, a different power and a different delay. Uplink reference signals are how it does that.
So the parameters on this page are not decoration. If one of them is wrong in the UE or in a network simulator, the eNB never detects the reference signal. The PUSCH behind it is then lost, even though the UE transmitted it correctly.
- Decoding Uplink Signal
- Why does everything depend on DMRS detection ?
- What do these SIB2 parameters actually contain ?
- Reference
Decoding Uplink Signal
Uplink decoding at the eNB runs in a fixed order, and the order matters more than it looks. The eNB cannot demodulate anything until it has estimated the channel, and it estimates the channel from the reference signal rather than from the data. So reference signal detection comes first, and everything after it depends on that step succeeding.
'Decoding Uplink Singal' means 'decoding PUCCH and PUSCH'. Overall Procedure is as follows :
i) UE transmit PUSCH (or PUCCH) to eNodeB
ii) eNodeB detect DMRS (DeModulation Reference Signal : PUSCH DMRS , PUCCH DMRS)
iii) if DMRS detection is successful, eNodeB decode PUSCH (PUCCH) data. UL CRC Check happens at this stage.
Overall logic is simple, but eNodeB normally get Uplink signal from multiple UEs and each of the UE may be in different distance and under different channel condition. So docoding uplink channel would not be easy. To help eNodeB decode these uplink channel, UE transmit a reference signal.
There are a few different uplink signal as listed below.
i) DMRS (DeModulation Reference Signal) for PUCCH
Item iii) would not be a mandatory component, but UE must send item i) and ii). Otherwise, eNodeB fail to decode PUCCH or PUSCH even though UE transmit it in proper format.
Detailed implementation of UL reference signal is described in TS 36.211 section 5.5 and TS 36.213. You will notice a lot of parameters are involved in UL reference signal generation and the following is brief list of these parameters. See Physical Channel : PUSCH DMRS and Physical Channel : PUCCH DMRS page if you are interested in how these parameters are used in PUSCH/PUCCH DMRS signal generation.
- n_1_pucch : N(1)PUCCH described in 3GPP TS36.213
- GroupHopping : 5.5.1.3 in TS36.211
- Cell ID :
- Pucch format : 5.5 in TS36.211
- N_1_CS :
- N_2_RB :
- delta Pucch shift :
- RNTI :
- UL CP Configuration :
- systemBW :
- u_even : sequence-group number even slot (TS36.211 5.5.1.3)
- u_odd : sequence-group number odd slot (TS36.211 5.5.1.3)
- n_cs_even#0~#6 : Cyclic Shift for even slot in a subframe (TS36.211 5.4.1, 5.5.2.2.1)
- n_cs_odd#0~#6 : Cyclic Shift for odd slot in a subframe (TS36.211 5.4.1, 5.5.2.2.1)
- n_oc_bar_even : orthogonal sequence for even slot in a subframe (TS36.211 5.5.2.2.1)
- n_oc_bar_odd : orthogonal sequence for odd slot in a subframe (TS36.211 5.5.2.2.1)
- n_oc_even : orthogonal sequence for even slot in a subframe (TS36.211 5.4.1)
- n_oc_odd : orthogonal sequence for odd slot in a subframe (TS36.211 5.4.1)
- n_PRB_even : Physical resource block number for even slot in a subframe (TS36.211 5.4.3)
- n_PRB_odd : Physical resource block number for odd slot in a subframe (TS36.211 5.4.3)
As you notice, quite a lot of parameters are involved and it is not easy to understand all of these in detail, but at the initial phase of chipset development or when you try to duplicate live network environment with network simulator you have to make it sure that all of these parameters are properly setup not only in UE but also in network simulator.
Can UE set these parameters arbitrarily whatever it likes to do ? No.. in that case eNode B would not know how to detect the reference signal and in result eNode B would not be able to decode PUCCH/PUSCH. Then how UE can know which value it has to use for Uplink Reference Signal Creation ?
The most critical information on UL Reference Signal is tranmitted by SIB2 message and there are different parameters that are involved in PUCCH reference signal detection and PUSCH reference signal detection :
Following is the list of IEs related to PUCCH reference signal detection.
- radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift
- radioResourceConfigCommon.pucch_ConfigCommon.nRB_CQI
- radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN
- radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN
Following is the list of IEs related to PUSCH reference signal detection.
- radioResourceConfigCommon.pusch-ConfigCommon.ul-ReferenceSignalsPUSCH.groupHoppingEnabled
- radioResourceConfigCommon.pusch-ConfigCommon.ul-ReferenceSignalsPUSCH.groupAssignmentPUSCH
- radioResourceConfigCommon.pusch-ConfigCommon.ul-ReferenceSignalsPUSCH.sequenceHoppingEnabled
- radioResourceConfigCommon.pusch-ConfigCommon.ul-ReferenceSignalsPUSCH.cyclicShift
The reference signal is detected before the data is decoded : DMRS detection is what gives the eNB its channel estimate. So a DMRS failure loses the PUSCH whatever the data looked like.SRS is optional and DMRS is not : a UE can run without Sounding Reference Signal, but PUCCH and PUSCH cannot be decoded without their DMRS.The parameters have to match on both sides : the UE and the eNB build the same sequence independently. A mismatch in any one of them produces a detection failure rather than a warning.
Why does everything depend on DMRS detection ?
Step iii) above carries a condition: if DMRS detection is successful. It is worth asking what the eNB actually does in that step, and why a failure there cannot be repaired later. The answer also explains why the parameter list on this page is as long as it is.
The eNB receives a sum rather than a signal. Several UEs may transmit in the same subframe, and the radio channel has changed the amplitude and phase of each one on the way in. The eNB needs to know what the channel did before it can demodulate any of them. It cannot learn that from the data, because it does not know what the data was.
DMRS solves that by being known in advance. Both sides build the same sequence from the same parameters. So the eNB compares what arrived against what it expected, and reads the channel from the difference. It then applies that estimate to the data symbols beside it.
This is also how the eNB keeps UEs apart. Two UEs can use the same resource blocks in the same subframe, as long as their reference sequences differ. The parameters arrange that in three ways. A different cyclic shift rotates the same base sequence, so the two stay orthogonal. A different sequence group gives a different base sequence. Group hopping and sequence hopping then vary the choice from slot to slot, so a collision between two cells does not persist.
So a DMRS failure is not one bad symbol. The eNB has no channel estimate for that transmission, which leaves it nothing to apply to the data symbols. The UL CRC check in step iii) then has nothing valid to check. The result looks the same as a UE that transmitted nothing at all.
DMRS is known to both sides before it is sent : that is the only reason it can measure the channel. It is also why every generation parameter has to agree.Cyclic shift and sequence group are what separate UEs : the same resource blocks can carry two UEs when their reference sequences differ.A DMRS failure and a silent UE look the same : neither produces a decoded PUSCH. So check the reference signal configuration before you assume the UE did not transmit.
What do these SIB2 parameters actually contain ?
The IE paths above give the names but not the shapes. Both structures are small, and reading them takes less time than reading the list of names does. The value ranges are the useful part, because they say what the eNB is allowed to expect.
Following is based on
PUCCH-ConfigCommon ::= SEQUENCE {
deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3},
nRB-CQI INTEGER (0..98),
nCS-AN INTEGER (0..7),
n1PUCCH-AN INTEGER (0..2047)
}
deltaPUCCH-Shift : ds1, ds2 and ds3 mean 1, 2 and 3. It sets how far apart the cyclic shifts of neighbouring PUCCH resources sit inside one resource block. A smaller value packs more UEs into the block, and a larger value leaves more room between them.nRB-CQI : the number of resource blocks per slot reserved for PUCCH format 2, which carries CQI. Those blocks sit at the band edges, and everything counted here is unavailable to PUSCH.nCS-AN : the number of cyclic shifts used for formats 1, 1a and 1b in the one resource block that mixes them with format 2.n1PUCCH-AN : the resource index where the ACK/NACK region begins. Its range runs to 2047, which is the largest number in either structure.
Following is based on
UL-ReferenceSignalsPUSCH ::= SEQUENCE {
groupHoppingEnabled BOOLEAN,
groupAssignmentPUSCH INTEGER (0..29),
sequenceHoppingEnabled BOOLEAN,
cyclicShift INTEGER (0..7)
}
groupHoppingEnabled and sequenceHoppingEnabled : the two hopping switches. Hopping varies the sequence from slot to slot. So one collision between two cells does not repeat.groupAssignmentPUSCH : runs 0 to 29, which is the number of sequence groups. Neighbouring cells are given different values so that their base sequences differ.cyclicShift : runs 0 to 7 and supplies the cell part of the PUSCH DMRS cyclic shift. The UE adds a second part, which DCI format 0 carries with each grant. That is how two UEs on the same resource blocks use different shifts.
Eight values in total, and the cell broadcasts every one of them. A UE that reads SIB2 correctly has everything it needs. A network simulator may set one of them differently from the UE under test. The result is a DMRS detection failure, and nothing in the log will say more than that.
Eight broadcast values cover both channels : four in PUCCH-ConfigCommon and four in UL-ReferenceSignalsPUSCH, and SIB2 carries all of them.The ranges are small and worth remembering : 0 to 7 for nCS-AN and for cyclicShift, 0 to 29 for groupAssignmentPUSCH, and 0 to 2047 for n1PUCCH-AN.The cyclic shift has two parts : SIB2 gives the cell part and DCI format 0 gives the per grant part. So SIB2 on its own does not tell you the shift a transmission used.
Reference
- LTE Physical Layer Overview - Keysight
- TS 36.331 v19.3.0 (Release 19) - E-UTRA Radio Resource Control (RRC) Protocol Specification. PUCCH-ConfigCommon and UL-ReferenceSignalsPUSCH definitions.