|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There are roughly three different types of UL transmission scheme : not-configured, codebook based and non-codebook based. This scheme is determined by a RRC paramter txConfig.
Parameters for Transmission Mode DeterminationFollowings are the major factors (configuration) to determine the PUSCH Transmission Mode and Precoding Matrix. Depending on the combinations (permutations) of these parameters, a specific transmission mode/precoding matrix is determined, but the detailed procedure is pretty complicated (confusing to me). Basically most of this page is all about how a specific transmission mode/precoding matrix is determined by combination of these three parameters. Good thing would be that the precoding matrix is always 1 or Identity Matrix when the number of layer is 1. I think (hope) the number of UL layer would ramain as 1 for a long time -:). Determination of W matrixBasically PUSCH transmission mode is a parameter that determines Precoding matrix during the PUSCH channel processing(See here for the Precoding step in the whole PUSCH transport process) and the transmission mode is determined by several factors in RRC as shown below. Simply put, this is all about determining W matrix in following equation. According to 38.211 - 6.3.1.5, we can determine W matrix as follows. Case 1 : txConfig in RRC = Non-codebookW = Identity Matrix
Case 2 : txConfig in RRC = codebookWhen number of layer = 1, number of antenna port = 1 W = 1 When number of layer >= 2 and number of antenna port >=2 (See Codebook based transmission for details) The Precoding matrix is determined by the number of layers and physical antenna, and Transform Precoding as summarized below.
Case 3 : txConfig in RRC : Not configuredW = 1 NonCodebook based TransmissionNon-codebook based UL transmission in mobile communication refers to a method where the UE determines its transmission strategy without relying on a predefined codebook. The precoder is determined directly from measurements by the UE rather than from an indicated codebook/TPMI index. In this mode, UE calculate Precoder matrix as follows (based on 38.214-6.1.1.2)
i) figure out "SRS Resource Indicator" in DCI_0_0, DCI 0_1 and semistatically ( srs-ResourceIndicator in RRC if configured) ii) figure out wideband SRI based on step i) iii) figure out transmission rank and PUSCH Precoder Codebook based TransmissionCodebook-based UL transmission in mobile communications involves a method where the UE determines its transmission strategy using a predefined set of precoding vectors, known as a codebook. Codebook based UL transmission relies on an indicated SRS resource to determine the codebook, and TPMI values to indicate which precoder to use from that codebook for the transmission. The number of layers is also indicated. In this mode, the precoding matrix is determined as follows (based on 38.214-6.1.1.1).
i) figure out "SRS Resource Indicator(SRI)" and "Precoding information(TMPI) and number of layers" in DCI 0_1 ii) figure out following settings iii) Select a specific TPMI table using all the information from step i) and ii), and the mapping tables summarized as below. iv) Figure out TPMI from the selected table (Further details are as follows) Codebook vs Non-Codebook based TransmissionFollowing is a comparative table between Codebook vs Non-Codebook based UL Transmission
UE capability report vs applicable codebookSubsetDepending on UE capability, there are restrictions on the type of applicable codebookSubset as specified in 38.214-6.1.1.1.
Number of configurable SRSThe number of SRS that can be configured is described as follows in 38.214-6.1.1.1 and 6.1.1.2 For codebook based (38.214-6.1.1.1)
For non-codebook based (38.214-6.1.1.2)
txConfig and DCI typeAccording to 38.214-6.1.1, there is some relationship between applicable DCI 0_x type and txConfig as summarized below.
RRC Parameters
38.331 15.3 (2018-10)
PUSCH-Config ::= SEQUENCE { dataScramblingIdentityPUSCH INTEGER (0..1023) OPTIONAL, dmrs-UplinkForPUSCH-MappingTypeA SetupRelease { DMRS-UplinkConfig } dmrs-UplinkForPUSCH-MappingTypeB SetupRelease { DMRS-UplinkConfig } pusch-PowerControl PUSCH-PowerControl frequencyHopping ENUMERATED {intraSlot, interSlot} frequencyHoppingOffsetLists SEQUENCE (SIZE (1..4)) OF INTEGER (1.. maxNrofPhysicalResourceBlocks-1) resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch}, pusch-TimeDomainAllocationList SetupRelease { PUSCH-TimeDomainResourceAllocationList } pusch-AggregationFactor ENUMERATED { n2, n4, n8 } mcs-Table ENUMERATED {qam256, qam64LowSE} mcs-TableTransformPrecoder ENUMERATED {qam256, qam64LowSE} transformPrecoder ENUMERATED {enabled, disabled} maxRank INTEGER (1..4) rbg-Size ENUMERATED { config2} uci-OnPUSCH SetupRelease { UCI-OnPUSCH } tp-pi2BPSK ENUMERATED {enabled} ... }
UCI-OnPUSCH ::= SEQUENCE { betaOffsets CHOICE { dynamic SEQUENCE (SIZE (4)) OF BetaOffsets, semiStatic BetaOffsets } OPTIONAL, -- Need M scaling ENUMERATED { f0p5, f0p65, f0p8, f1 } }
SRS-Config ::= SEQUENCE { srs-ResourceSetToReleaseList SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId OPTIONAL, -- Need N srs-ResourceSetToAddModList SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSet OPTIONAL, -- Need N srs-ResourceToReleaseList SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-ResourceId OPTIONAL, -- Need N srs-ResourceToAddModList SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-Resource OPTIONAL, -- Need N tpc-Accumulation ENUMERATED {disabled} OPTIONAL, -- Need S ... }
SRS-ResourceSet ::= SEQUENCE { srs-ResourceSetId SRS-ResourceSetId, srs-ResourceIdList SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-ResourceId OPTIONAL, -- Cond Setup resourceType CHOICE { aperiodic SEQUENCE { aperiodicSRS-ResourceTrigger INTEGER (1..maxNrofSRS-TriggerStates-1), csi-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook slotOffset INTEGER (1..32) OPTIONAL, -- Need S ..., [[ aperiodicSRS-ResourceTriggerList-v1530 SEQUENCE (SIZE(1..maxNrofSRS-TriggerStates-2)) OF INTEGER (1..maxNrofSRS-TriggerStates-1) ]] }, semi-persistent SEQUENCE { associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook ... }, periodic SEQUENCE { associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook ... } }, alpha Alpha OPTIONAL, -- Need S p0 INTEGER (-202..24) OPTIONAL, -- Cond Setup pathlossReferenceRS CHOICE { ssb-Index SSB-Index, csi-RS-Index NZP-CSI-RS-ResourceId } OPTIONAL, -- Need M srs-PowerControlAdjustmentStates ENUMERATED { sameAsFci2, separateClosedLoop} OPTIONAL, ... }
SRS-ResourceSetId ::= INTEGER (0..maxNrofSRS-ResourceSets-1)
SRS-Resource ::= SEQUENCE { srs-ResourceId SRS-ResourceId, ptrs-PortIndex ENUMERATED {n0, n1 } OPTIONAL, -- Need R transmissionComb CHOICE { n2 SEQUENCE { combOffset-n2 INTEGER (0..1), cyclicShift-n2 INTEGER (0..7) }, n4 SEQUENCE { combOffset-n4 INTEGER (0..3), cyclicShift-n4 INTEGER (0..11) } }, resourceMapping SEQUENCE { startPosition INTEGER (0..5), nrofSymbols ENUMERATED {n1, n2, n4}, repetitionFactor ENUMERATED {n1, n2, n4} }, freqDomainPosition INTEGER (0..67), freqDomainShift INTEGER (0..268), c-SRS INTEGER (0..63), b-SRS INTEGER (0..3), b-hop INTEGER (0..3) }, groupOrSequenceHopping ENUMERATED { neither, groupHopping, sequenceHopping }, resourceType CHOICE { aperiodic SEQUENCE { ... }, semi-persistent SEQUENCE { periodicityAndOffset-sp SRS-PeriodicityAndOffset, ... }, periodic SEQUENCE { periodicityAndOffset-p SRS-PeriodicityAndOffset, ... } }, sequenceId INTEGER (0..1023), spatialRelationInfo SRS-SpatialRelationInfo OPTIONAL, -- Need R ... }
SRS-SpatialRelationInfo ::= SEQUENCE { servingCellId ServCellIndex OPTIONAL, -- Need S referenceSignal CHOICE { ssb-Index SSB-Index, csi-RS-Index NZP-CSI-RS-ResourceId, srs SEQUENCE { resourceId SRS-ResourceId, uplinkBWP BWP-Id } } }
SRS-ResourceId ::= INTEGER (0..maxNrofSRS-Resources-1)
SRS-PeriodicityAndOffset ::= CHOICE { sl1 NULL, 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), sl32 INTEGER(0..31), sl40 INTEGER(0..39), sl64 INTEGER(0..63), sl80 INTEGER(0..79), sl160 INTEGER(0..159), sl320 INTEGER(0..319), sl640 INTEGER(0..639), sl1280 INTEGER(0..1279), sl2560 INTEGER(0..2559) }
ConfiguredGrantConfig ::= SEQUENCE { frequencyHopping ENUMERATED {intraSlot, interSlot}, cg-DMRS-Configuration DMRS-UplinkConfig, mcs-Table ENUMERATED {qam256, qam64LowSE}, mcs-TableTransformPrecoder ENUMERATED {qam256, qam64LowSE}, uci-OnPUSCH SetupRelease { CG-UCI-OnPUSCH }, resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch }, rbg-Size ENUMERATED {config2}, powerControlLoopToUse ENUMERATED {n0, n1}, p0-PUSCH-Alpha P0-PUSCH-AlphaSetId, transformPrecoder ENUMERATED {enabled, disabled}, nrofHARQ-Processes INTEGER(1..16), repK ENUMERATED {n1, n2, n4, n8}, repK-RV ENUMERATED {s1-0231, s2-0303, s3-0000}, periodicity ENUMERATED { sym2, sym7, sym1x14, sym2x14, sym4x14, sym5x14, sym8x14, sym10x14, sym16x14, sym20x14,sym32x14, sym40x14, sym64x14, sym80x14, sym128x14, sym160x14, sym256x14, sym320x14, sym512x14,sym640x14, sym1024x14, sym1280x14, sym2560x14, sym5120x14, sym6, sym1x12, sym2x12, sym4x12, sym5x12,sym8x12,sym10x12,sym16x12, sym20x12, sym32x12,sym40x12, sym64x12, sym80x12, sym128x12, sym160x12, sym256x12, sym320x12, sym512x12, sym640x12,sym1280x12, sym2560x12 }, configuredGrantTimer INTEGER (1..64), rrc-ConfiguredUplinkGrant SEQUENCE { timeDomainOffset INTEGER (0..5119), timeDomainAllocation INTEGER (0..15), frequencyDomainAllocation BIT STRING (SIZE(18)), antennaPort INTEGER (0..31), dmrs-SeqInitialization INTEGER (0..1), precodingAndNumberOfLayers INTEGER (0..63), mcsAndTBS INTEGER (0..31), frequencyHoppingOffset INTEGER (1.. maxNrofPhysicalResourceBlocks-1), pathlossReferenceIndex INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1), ... }, ... }
DMRS-UplinkConfig ::= SEQUENCE { dmrs-Type ENUMERATED {type2} OPTIONAL, -- Need S dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos3} OPTIONAL, -- Need S phaseTrackingRS SetupRelease { PTRS-UplinkConfig } OPTIONAL, -- Need M maxLength ENUMERATED {len2} OPTIONAL, -- Need S transformPrecodingDisabled SEQUENCE { scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S scramblingID1 INTEGER (0..65535) OPTIONAL, -- Need S ..., [[ dmrs-Uplink-r16 ENUMERATED {enabled} OPTIONAL -- Need R ]] } OPTIONAL, -- Need R transformPrecodingEnabled SEQUENCE { nPUSCH-Identity INTEGER(0..1007) OPTIONAL, -- Need S sequenceGroupHopping ENUMERATED {disabled} OPTIONAL, -- Need S sequenceHopping ENUMERATED {enabled} OPTIONAL, -- Need S ..., [[ dmrs-UplinkTransformPrecoding-r16 SetupRelease {DMRS-UplinkTransformPrecoding-r16} OPTIONAL -- Need M ]] } OPTIONAL, -- Need R ... }
DMRS-UplinkTransformPrecoding-r16 ::= SEQUENCE { pi2BPSK-ScramblingID0 INTEGER(0..65535) OPTIONAL, -- Need S pi2BPSK-ScramblingID1 INTEGER(0..65535) OPTIONAL -- Need S }
PTRS-UplinkConfig ::= SEQUENCE { transformPrecoderDisabled SEQUENCE { frequencyDensity SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S maxNrofPorts ENUMERATED {n1, n2}, resourceElementOffset ENUMERATED {offset01, offset10, offset11 } OPTIONAL, -- Need S ptrs-Power ENUMERATED {p00, p01, p10, p11} } OPTIONAL, -- Need R transformPrecoderEnabled SEQUENCE { sampleDensity SEQUENCE (SIZE (5)) OF INTEGER (1..276), timeDensityTransformPrecoding ENUMERATED {d2} OPTIONAL -- Need S } OPTIONAL, -- Need R ... }
Tables
< 38.211 v15.5 - Table 6.3.1.5-1: Precoding matrix W for single-layer transmission using two antenna ports. >
< 38.211 v15.5 - Table 6.3.1.5-2: Precoding matrix W for single-layer transmission using four antenna ports with transform precoding enabled. >
< 38.211 v15.5 - Table 6.3.1.5-3: Precoding matrix W for single-layer transmission using four antenna ports with transform precoding disabled. >
< 38.211 v15.5 - Table 6.3.1.5-4: Precoding matrix W for two-layer transmission using two antenna ports with transform precoding disabled. >
< 38.211 v15.5 - Table 6.3.1.5-5: Precoding matrix W for two-layer transmission using four antenna ports with transform precoding disabled. >
< 38.211 v15.5 - Table 6.3.1.5-6: Precoding matrix W for three-layer transmission using four antenna ports with transform precoding disabled. >
< 38.211 v15.5 - Table 6.3.1.5-7: Precoding matrix W for four-layer transmission using four antenna ports with transform precoding disabled. >
Reference[1] 5G NR Physical Layer | Chapter 12| Uplink Transmission Schemes | Codebook & Non-Codebook Based [2] Ericsson 5G New Radio (NR) MIMO Key Features
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||