TDD LTE中的 ACK/NACK Bundling和 Multiplexing

TDD LTE中,上下行之间不一定是对称的。在下行子帧多于上行子帧的配置中,会出现一个上行子帧中同时上报多个下行子帧的HARQ的情况。一个上行子帧中上报HARQ的数目取决于LTE上下行的配置以及下行的MIMO模式。通过上层的配置,LTE TDD支持两种模式的上行HARQ报告:

(1): ACK/NACK Bundling。多个ACK/NACK通过逻辑与运算生成上行子帧中一个Bit的ACK(或NACK),逻辑与运算是针对下行子帧中的每个MIMO Codeword来进行的。对于空间复用中两个CodeWord的情况,则会在上行子帧中生成两个Bit的ACK/NACK。

(2): ACK/NACK Multiplexing。ACK /NACK Multiplexing模式允许最多4个下行子帧的ACK(或NACK)复用到一起。一个下行子帧中,如果存在多个CodeWord,则通过逻辑与运算生成一个Bit的ACK(或NACK)。一个特殊情况是,上行子帧只对应一个下行子帧并且相应的下行子帧中存在两个CodeWord,此时仍然使用子帧中两个Bit的HARQ反馈,而不进行空间绑定(Spatial Bundling)。

ACK /NACK Multiplexing中,在上行子帧对应多个下行子帧(最多4个)时,可以反馈1到4个Bit的ACK/NACK(Section 5.2.2.6,3GPP 36.212),允许一个下行子帧对应一个Bit的情况。HARQ的Bit与下行子帧的对应关系在后面会详细叙述。

TDD 中ACK/NACK 采用的是Bundling还是Multiplexing的方式由高层信令中的PUCCH-ConfigCommon:tdd-AckNackFeedbackMode来决定,此参数也同时适用于PUSCH。对于TDD Configuration 5,LTE只能将此参数设置为Bundling的形式。(3GPP 36.331)

TDD中,对于子帧号为n的上行子帧,其对应的一个或多个下行子帧号为n-k,其中 ,满足如下:(36.213),如果在这些子帧中存在PDSCH的传输(包括有PDCCH指示的PDSCH传输和SPS半静态调度的传输),或者存在指示SPS释放的PDCCH,那么需要在上行子帧n中反馈相应的ACK或NACK。

Table 10.1-1: Downlink association set index : for TDD

UL-DL

Configuration

Subframe n

0

1

2

3

4

5

6

7

8

9

0

-

-

6

-

4

-

-

6

-

4

1

-

-

7,6

4

-

-

-

7,6

4

-

2

-

-

8,7,4,6

-

-

-

-

8,6

-

-

3

-

-

7,6,11

6,5

5,4

-

-

-

-

-

4

-

-

12,8,5,7

-

-

-

-

-

-

5

-

-

13,12,9,11,6

-

-

-

-

-

-

-

6

-

-

7

7

5

-

-

7

7

-

对于TDD UL-DL Configuration的1-6来说,子帧 (其中 如下表定义)中DCI格式0(代表PUSCH的Grant)中的DAI,定义为 ,代表上行子帧n对应的所有下行子帧中,满足如下条件的子帧数目:子帧中或者存在PDSCH的传输(包括有PDCCH指示的PDSCH传输和SPS半静态调度的传输)或者存在指示SPS释放的PDCCH。

Table 7.3-Y: Uplink association index k’ for TDD

TDD UL/DL
Configuration

DL subframe number n

0

1

2

3

4

5

6

7

8

9

1

6

4

6

4

2

4

4

3

4

4

4

4

4

4

5

4

6

7

7

5

7

7

其中 指示UE 应该收到的下行子帧数目,这些子帧中或者存在PDSCH的传输(包括有PDCCH指示的PDSCH传输和SPS半静态调度的传输)或者存在指示SPS释放的PDCCH。 是2个Bit的值,其值如下所示:

Table 7.3-X: Value of Downlink Assignment Index

DAI
MSB,LSB

or

Number of subframes with PDSCH transmission and with PDCCH indicating DL SPS release

0,0

1

1 or 5 or 9

0,1

2

2 or 6

1,0

3

3 or 7

1,1

4

0 or 4 or 8

如果UE接收到了 ,表示UE在子帧n将会存在PUSCH的传输。反之,UE不会收到 。此时LTE会通过 来指示UE应该收到的为n-k,(其中 )下行子帧中,存在PDCCH指示的PDSCH传输或者指示SPS释放的子帧数目(请注意,这其中并不包含半静态调度SPS传输的数目)。DCI格式1/1A/1B/1D/2/2A/2B中的DAI代表了到目前帧为止,n-k(其中 )下行子帧中,存在PDCCH指示PDSCH传输或者指示SPS释放的子帧数目。 定义为 中的DAI,其中 是集合K中,UE探测到DCI格式1/1A/1B/1D/2/2A/2B的最小值。也就是说,最近的存在相应下行传输的子帧。

TDD LTE中,定义 为,在n-k下行子帧中,UE实际接收到的存在PDCCH的子帧数目,这些PDCCH用来指示PDSCH的传输或者SPS的释放。通过实际接收值 与期待值 之间的对比,UE可以判定是否有下行数据传输的丢失。

定义 取值为0或者1,表示在n-k子帧中,SPS传输(不存在相应的PDCCH指示)的数目。因此 就代表在n-k子帧中,实际接收到的所有存在相应下行传输的子帧数目。在子帧n存在有PDCCH指示的上行传输的情况下(反之是SPS的上行数据传输),通过实际接收值 与期待值 之间的数目对比,UE也可以判定是否有下行数据传输的丢失。

如果UE在子帧n存在PUSCH的传输,TDD LTE中,ACK/NACK Multiplexing的情形, ACK/NACK反馈的Bit数目 以及其中的各个Bit,满足如下:

(1):在UE接收到 的情形,那么 ,除非是 并且 ,此时UE无需发送任何的ACK、NACK。其中子帧 对应的ACK/NACK位为 ,其中DAI(k)是子帧 的DCI格式1/1A/1B/1D/2/2A/2B的DAI值。对于 的情形,半静态调度对应反馈的比特位为 。

(2):如果UE没有接收到 ,那么 ,其中M为上行子帧n对应的下行子帧的数目,由于UL-DLConfiguration只能适用ACK、NACK的Bundling,从Table 10.1-1可以看出,在ACK/NACK Multiplexing的情况下,M最大可以为4。 对应下行子帧 ,其中 的ACK/NACK反馈。

如果UE在子帧n没有PUSCH的传输,那么对应的ACK/NACK的反馈需要在PUCCH上进行传输。对于TDD LTE中,ACK/NACK Multiplexing的情形,UE在子帧n相应的PUCCH资源 上按照PUCCH格式1b传输两个Bit 。 以及 按照一定的频率选择产生,在M=2的时候如下表所示:(更多的情况如M=3 或M=4见36.213)

Table 10.1-2: Transmission of ACK/NACK multiplexing for M = 2

HARQ-ACK(0),HARQ-ACK(1)

ACK,ACK

1,1

ACK,NACK/DTX

0,1

NACK/DTX,ACK

0,0

NACK/DTX,NACK

1,0

NACK,DTX

1,0

DTX,DTX

N/A

N/A

其中 指的是根据子帧 得到的PUCCH所使用的资源。

对于由PDCCH指示的PDSCH传输或者SPS的释放, 与子帧 上PDCCH的起始CCE标号 有关,公式为: ,P在0,1,2,3之间选择,满足 , 。 由上层配置。

对于半静态调度SPS的传输,不存在相应的PDCCH指示。 由上层进行指定。

对于ACK/NACK和SR 同时传输的情形,需要在SR相应的PUCCH资源上进行ACK/NACK的传输。问题是此时如何进行频率选择呢?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


什么是设计模式一套被反复使用、多数人知晓的、经过分类编目的、代码 设计经验 的总结;使用设计模式是为了 可重用 代码、让代码 更容易 被他人理解、保证代码 可靠性;设计模式使代码编制  真正工程化;设计模式使软件工程的 基石脉络, 如同大厦的结构一样;并不直接用来完成代码的编写,而是 描述 在各种不同情况下,要怎么解决问题的一种方案;能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免引
单一职责原则定义(Single Responsibility Principle,SRP)一个对象应该只包含 单一的职责,并且该职责被完整地封装在一个类中。Every  Object should have  a single responsibility, and that responsibility should be entirely encapsulated by t
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强烈推荐。原文截图*************************************************************************************************************************原文文本************
适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本接口不兼容的类可以相互合作。
策略模式定义了一系列算法族,并封装在类中,它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的一些设计问题,总结出来的一套通用的解决方案。
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
迭代器模式提供了一种方法,用于遍历集合对象中的元素,而又不暴露其内部的细节。
外观模式又叫门面模式,它提供了一个统一的(高层)接口,用来访问子系统中的一群接口,使得子系统更容易使用。
单例模式(Singleton Design Pattern)保证一个类只能有一个实例,并提供一个全局访问点。
组合模式可以将对象组合成树形结构来表示“整体-部分”的层次结构,使得客户可以用一致的方式处理个别对象和对象组合。
装饰者模式能够更灵活的,动态的给对象添加其它功能,而不需要修改任何现有的底层代码。
观察者模式(Observer Design Pattern)定义了对象之间的一对多依赖,当对象状态改变的时候,所有依赖者都会自动收到通知。
代理模式为对象提供一个代理,来控制对该对象的访问。代理模式在不改变原始类代码的情况下,通过引入代理类来给原始类附加功能。
工厂模式(Factory Design Pattern)可细分为三种,分别是简单工厂,工厂方法和抽象工厂,它们都是为了更好的创建对象。
状态模式允许对象在内部状态改变时,改变它的行为,对象看起来好像改变了它的类。
命令模式将请求封装为对象,能够支持请求的排队执行、记录日志、撤销等功能。
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 基本介绍 **意图:**在不破坏封装性的前提下,捕获一个对象的内部状态,并在该
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为
享元模式(Flyweight Pattern)(轻量级)(共享元素)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结