|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In LTE, I haven't seen much case of UL MIMO being really used even though it is defined in 3GPP specification. In NR, as of now (Apr 2022), I still don't see UL MIMO being used in wide scale but I am expecting it to be used more (at least more than LTE MIMO).
How UL MIMO is configured ?In NR, Downlink MIMO is configured by relatively straight forward manner (i.e, only by Antenna Port in DCI) as described in this page. But UL MIMO configuration is more complicated and multiple types of tables and multiple fields in DCI are working together to configure UL MIMO. Followings are the summary of those tables related to configuring UL MIMO. < Precoding information and number of layers >
MIMO Configuration Table : Precoding Information and Number of Layers
< 38.212 - Table 7.3.1.1.2-2: Precoding information and number of layers, for 4 antenna ports, if transform precoder is disabled, maxRank = 2 or 3 or 4, and ul-FullPowerTransmission is not configured or configured to fullpowerMode2 or configured to fullpower >
< 38.212 - Table 7.3.1.1.2-2A: Precoding information and number of layers for 4 antenna ports, if transform precoder is disabled, maxRank = 2, and ul-FullPowerTransmission = fullpowerMode1 >
< 38.212 - Table 7.3.1.1.2-2B: Precoding information and number of layers for 4 antenna ports, if transform precoder is disabled, maxRank = 3 or 4, and ul-FullPowerTransmission = fullpowerMode1 >
< 38.212 - Table 7.3.1.1.2-3: Precoding information and number of layers for 4 antenna ports, if transform precoder is enabled and ul-FullPowerTransmission is either not configured or configured to fullpowerMode2, or if transform precoder is disabled, maxRank = 1, and ul-FullPowerTransmission is not configured or configured to fullpowerMode2 or configured to fullpower >
< 38.212 - Table 7.3.1.1.2-3A: Precoding information and number of layers for 4 antenna ports, if transform precoder is enabled and ul-FullPowerTransmission = fullpowerMode1, or if transform precoder is disabled, maxRank = 1, and ul-FullPowerTransmission = fullpowerMode1 >
< 38.212 - Table 7.3.1.1.2-4: Precoding information and number of layers, for 2 antenna ports, if transform precoder is disabled, maxRank = 2, and ul-FullPowerTransmission is not configured or configured to fullpowerMode2 or configured to fullpower >
< 38.212 - Table 7.3.1.1.2-4A: Precoding information and number of layers, for 2 antenna ports, if transform precoder is disabled, maxRank = 2, and ul-FullPowerTransmission = fullpowerMode1 >
< 38.212 - Table 7.3.1.1.2-5: Precoding information and number of layers, for 2 antenna ports, if transform precoder is enabled and ul-FullPowerTransmission is not configured or configured to fullpowerMode2 or configured to fullpower, or if transform precoder is disabled, maxRank = 1, and and ul-FullPowerTransmission is not configured or configured to fullpowerMode2 or configured to fullpower >
< 38.212 - Table 7.3.1.1.2-5A: Precoding information and number of layers, for 2 antenna ports, if transform precoder is enabled and ul-FullPowerTransmission = fullpowerMode1, or if transform precoder is disabled, maxRank = 1, and ul-FullPowerTransmission = fullpowerMode1 > MIMO Configuration Table : Antenna Port ConfigurationTables in this section shows Antenna Port Configuration for PUSCH for various situations. Which one of these tables to use is determined by RRC Configuration and which row(element) of the selected table is used is determined by Antenna Port in DCI 0_1.
< 38.212 - Table 7.3.1.1.2-6: Antenna port(s), transform precoder is enabled, dmrs-Type=1, maxLength=1,except that dmrs-UplinkTransformPrecoding and tp-pi2BPSK are both configured and π/2-BPSK modulation is used >
< 38.212 - Table 7.3.1.1.2-6A: Antenna port(s), transform precoder is enabled, dmrs-UplinkTransformPrecoding and tp-pi2BPSK are both configured, π/2-BPSK modulation is used, dmrs-Type=1, maxLength=1 >
< 38.212 - Table 7.3.1.1.2-7: Antenna port(s), transform precoder is enabled, dmrs-Type=1, maxLength=2, except that dmrs-UplinkTransformPrecoding and tp-pi2BPSK are both configured and π/2-BPSK modulation is used > : Antenna port(s), transform precoder is enabled, dmrs-UplinkTransformPrecoding and tp-pi2BPSK are both configured, π/2-BPSK modulation is used, dmrs-Type=1, maxLength=2 >
< 38.212 - Table 7.3.1.1.2-8:Antenna port(s), transform precoder is disabled, dmrs-Type=1, maxLength=1,rank=1>
< 38.212 - Table 7.3.1.1.2-9:Antenna port(s), transform precoder is disabled, dmrs-Type=1, maxLength=1,rank= 2>
< 38.212 - Table 7.3.1.1.2-10: Antenna port(s), transform precoder is disabled,dmrs-Type=1,maxLength=1,rank=3 >
< 38.212 - Table 7.3.1.1.2-11: Antenna port(s), transform precoder is disabled, dmrs-Type=1,maxLength=1,rank= 4>
< 38.212 - Table 7.3.1.1.2-12: Antenna port(s), transform precoder is disabled, dmrs-Type=1, maxLength=2, rank=1>
< 38.212 - Table 7.3.1.1.2-13: Antenna port(s), transform precoder is disabled, dmrs-Type=1, maxLength=2, rank=2>
< 38.212 - Table 7.3.1.1.2-14: Antenna port(s), transform precoder is disabled, dmrs-Type=1, maxLength=2,rank=3>
< 38.212 - Table 7.3.1.1.2-15: Antenna port(s), transform precoder is disabled, dmrs-Type=1, maxLength=2, rank=4>
< 38.212 - Table 7.3.1.1.2-16: Antenna port(s), transform precoder is disabled, dmrs-Type=2, maxLength=1,rank=1>
< 38.212 - Table 7.3.1.1.2-17:Antenna port(s), transform precoder is disabled, dmrs-Type=2, maxLength=1,rank=2>
< 38.212 - Table 7.3.1.1.2-18:Antenna port(s), transform precoder is disabled, dmrs-Type=2, maxLength=1, rank=3>
< 38.212 - Table 7.3.1.1.2-19:Antenna port(s), transform precoder is disabled, dmrs-Type=2, maxLength=1, rank=4>
< 38.212 - Table 7.3.1.1.2-20:Antenna port(s), transform precoder is disabled, dmrs-Type=2, maxLength=2,rank=1>
< 38.212 - Table 7.3.1.1.2-21:Antenna port(s), transform precoder is disabled,dmrs-Type=2,maxLength=2,rank=2>
< 38.212 - Table 7.3.1.1.2-22: Antenna port(s), transform precoder is disabled, dmrs-Type=2, maxLength=2,rank=3>
< 38.212 - Table 7.3.1.1.2-23:Antenna port(s), transform precoder is disabled, dmrs-Type=2, maxLength=2,rank=4> MIMO Configuration Table : Precoding MatrixTables in this section shows Precoding Matrix for PUSCH for various situations. Which one of these tables to use is determined by RRC Configuration and which row(element) of the selected table is used is associated with Precoding information and number of layers in DCI 0_1. (i.e, the specific TMPI index is indirectly determined by Precoding Information and number of layers field). < 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. > ExamplesExample 01 : UL 2x2 MIMO: This example is from the test with Amarisoft Callbox(gNB) and Amarisoft UEsim
{ message c1: rrcSetup: { ... spCellConfig { spCellConfigDedicated { initialDownlinkBWP { ... uplinkConfig { initialUplinkBWP { ... pusch-Config setup: { txConfig codebook, dmrs-UplinkForPUSCH-MappingTypeA setup: { dmrs-AdditionalPosition pos1, transformPrecodingDisabled { } }, maxLength is not present, it mean maxLength is len1 pusch-PowerControl { msg3-Alpha alpha1, p0-NominalWithoutGrant -84, p0-AlphaSets { { p0-PUSCH-AlphaSetId 0, p0 0, alpha alpha1 } }, pathlossReferenceRSToAddModList { { pusch-PathlossReferenceRS-Id 0, referenceSignal ssb-Index: 0 } }, sri-PUSCH-MappingToAddModList { { sri-PUSCH-PowerControlId 0, sri-PUSCH-PathlossReferenceRS-Id 0, sri-P0-PUSCH-AlphaSetId 0, sri-PUSCH-ClosedLoopIndex i0 } } }, resourceAllocation resourceAllocationType1, codebookSubset nonCoherent, maxRank 2, uci-OnPUSCH setup: { betaOffsets semiStatic: { betaOffsetACK-Index1 9, betaOffsetACK-Index2 9, betaOffsetACK-Index3 9, betaOffsetCSI-Part1-Index1 7, betaOffsetCSI-Part1-Index2 7, betaOffsetCSI-Part2-Index1 7, betaOffsetCSI-Part2-Index2 7 }, scaling f1 } }, srs-Config setup: { srs-ResourceSetToAddModList { { srs-ResourceSetId 0, srs-ResourceIdList { 0 }, resourceType periodic: { }, usage codebook, p0 -84, pathlossReferenceRS ssb-Index: 0 } }, srs-ResourceToAddModList { { srs-ResourceId 0, nrofSRS-Ports ports2, transmissionComb n2: { combOffset-n2 0, cyclicShift-n2 0 }, resourceMapping { startPosition 1, nrofSymbols n1, repetitionFactor n1 }, freqDomainPosition 0, freqDomainShift 5, freqHopping { c-SRS 11, b-SRS 3, b-hop 0 }, groupOrSequenceHopping neither, resourceType periodic: { periodicityAndOffset-p sl80: 7 }, sequenceId 500 } } } }, firstActiveUplinkBWP-Id 0, pusch-ServingCellConfig setup: { } }, ...
Following is an example of DCI 0_1 transmitted by the gNB. In this case (based on RRC configuration shown above : 2 antenna ports, codebookSubset = nonCoherent, transform precoder = disabled, ul-FullPowerTransmission = not configured), precoding_info indicates the index in 38.212 - Table 7.3.1.1.2-4 and antenna_ports indicates the index in 38.212 - Table 7.3.1.1.2-9 Message: ss_id=2 cce_index=2 al=2 dci=0_1 k2=7
Data: rb_alloc=0x12f time_domain_rsc=0 mcs=2 ndi=1 rv_idx=0 harq_process=0 dai=3 tpc_command=1 srs_request=0 dmrs_seq_init=0 ul_sch_indicator=1 Example 02 : UL 4x4 MIMO: This example is from the test with Amarisoft Callbox(gNB) and Amarisoft UEsim
{ message c1: rrcSetup: { rrc-TransactionIdentifier 0, ... spCellConfig { spCellConfigDedicated { ... uplinkConfig { initialUplinkBWP { ... pusch-Config setup: { txConfig codebook, dmrs-UplinkForPUSCH-MappingTypeA setup: { dmrs-AdditionalPosition pos1, transformPrecodingDisabled { } maxLength is not present, it mean maxLength is len1 }, pusch-PowerControl { msg3-Alpha alpha1, p0-NominalWithoutGrant -84, p0-AlphaSets { { p0-PUSCH-AlphaSetId 0, p0 0, alpha alpha1 } }, pathlossReferenceRSToAddModList { { pusch-PathlossReferenceRS-Id 0, referenceSignal ssb-Index: 0 } }, sri-PUSCH-MappingToAddModList { { sri-PUSCH-PowerControlId 0, sri-PUSCH-PathlossReferenceRS-Id 0, sri-P0-PUSCH-AlphaSetId 0, sri-PUSCH-ClosedLoopIndex i0 } } }, resourceAllocation resourceAllocationType1, codebookSubset nonCoherent, maxRank 4, uci-OnPUSCH setup: { betaOffsets semiStatic: { betaOffsetACK-Index1 9, betaOffsetACK-Index2 9, betaOffsetACK-Index3 9, betaOffsetCSI-Part1-Index1 7, betaOffsetCSI-Part1-Index2 7, betaOffsetCSI-Part2-Index1 7, betaOffsetCSI-Part2-Index2 7 }, scaling f1 } }, srs-Config setup: { srs-ResourceSetToAddModList { { srs-ResourceSetId 0, srs-ResourceIdList { 0 }, resourceType periodic: { }, usage codebook, p0 -84, pathlossReferenceRS ssb-Index: 0 } }, srs-ResourceToAddModList { { srs-ResourceId 0, nrofSRS-Ports ports4, transmissionComb n2: { combOffset-n2 0, cyclicShift-n2 2 }, resourceMapping { startPosition 1, nrofSymbols n1, repetitionFactor n1 }, freqDomainPosition 0, freqDomainShift 5, freqHopping { c-SRS 11, b-SRS 3, b-hop 0 }, groupOrSequenceHopping neither, resourceType periodic: { periodicityAndOffset-p sl80: 7 }, sequenceId 500 } } } }, firstActiveUplinkBWP-Id 0, pusch-ServingCellConfig setup: { } },
Following is an example of DCI 0_1 transmitted by the gNB. In this case (based on RRC configuration shown above : 2 antenna ports, codebookSubset = nonCoherent, transform precoder = disabled, ul-FullPowerTransmission = not configured), precoding_info indicates the index in 38.212 - Table 7.3.1.1.2-2 and antenna_ports indicates the index in 38.212 - Table 7.3.1.1.2-11 Message: ss_id=2 cce_index=2 al=2 dci=0_1 k2=7
Data: rb_alloc=0x12f time_domain_rsc=0 mcs=2 ndi=1 rv_idx=0 harq_process=2 dai=0 tpc_command=1 srs_request=0 dmrs_seq_init=0 ul_sch_indicator=1
Reference
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||