LTE 有关HARQ

1 PDCCH和PDSCH在一个时隙中占用不同的OFDM symbol,前面一个 1~3个OFDM是控制域,用于存放PBCH、PHICH、PCFICH和PDCCH,前面的是PDSCH;
2 接收端确定PDCCH位置的过程为:首先接收位置固定的PBCH,获得PHICH的格式和占用情况;接着收取位置固定的PCFICH,获得PDCCH在一个子帧中的OFDM数目;最后在控制域中剔除PCFICH和PHICH,获得PDCCH的起点;知道了起点和OFDM symbol数目,PDCCH就可以正确接收了,而PDSCH 属于数据域,位置可以认为是固定的。

上报方法要在上行控制信息 UCI 里面找。

ACK/NACK 反馈模式要在PUCCH的反馈过程中有描述。大概思路:
1 首先根据高层配置选择绑定模式还是复用模式
2 如果是绑定,则绑定范围内多个子帧的同一个codeword的CRC结果相与,得到和codeword数目相同的bit,每一个对应一个 codeword的绑定 ACK/NACK消息,根据比特数目为 1 或者 2 分别选择 1a 或者 1b。
3 如果是复用模式,则每个子帧内可能的 codeword的CRC校验结果相与,得到一个 bit的ACK消息,然后再根据复用范围内每个子帧的ACK消息,然后再根据复用范围内每个子帧的 ACK消息,查表获得最终的上报比特。

HARQ重传
HARQ重传是一种结合FEC(FORWARD error correction )与ARQ(automatic repeat request、)的技术。
harq buffer 是指收集到的错误信息放到一个buffer池里面。
重传的coded bit集合称为冗余版本(redundancy version RV)。
在fec无法纠正的错误出现时,接收端根据crc效验码对比,确定是否反馈NACK,若接收到了nack,则会重发数据。在增量冗余方式中,每次重传并不需要与初始传输相同,而会把初始版本分成多个coded 比特的集合,每个集合都携带相同的信息,当需要重传时,则会传输与前一次不同的额coded bit集合,接收端会把重传的数据与前一次进行软合并。
在这里插入图片描述

从上图可以看出,经过turbo编码后一个重传版本会生成包含所有信息的systematic bits ,和多个parity bits,若收到的反馈是dtx,则重传 systematic bits,若收到的为nack,则重传额外的parity bits。

在lte中,下行采用异步,自适应harq,上行采用同步harq,但重传可以自适应,也可以非自适应。
HARQ中的冗余版本如何控制 Rate Matching中数据比特选择和修剪的?

1 首先看看算法怎么求每个 RV 的吧,主要有几个参数:G、Nsoft、Ncb、 N I R N_{IR} NIR、E
(1) 先说说G吧。G是信道资源,也就是传输数据可用的RB资源,说白了就是总的信道资源减去同步信号、参考信号等占用的信道资源,为了最大程度利用信道资源我们当然要把可用的信道都占用,那么G也就成了我们可以传输的数据最大比特数。那么E又是怎么呢回事呢?为什么速率匹配后根据 E的个数来传送数据呢?虽然我们希望尽可能在有效信道资源传输尽可能多的数据,但接收端、发射端缓存、数据处理速度、信道状况等限制了我们能传送的数据个数。比如我要传送 1288bit 数,但是终端只能处理 1208 bit,那么有 1288-1208 bit数会被打掉,这就是速率匹配。

(2) N I R N_{IR} NIR
N I R = f l o o r ( U E . N s o f t / ( K M I M O ∗ m i n ( L T E p a r a m s . H A R Q p r o c e s s , M l i m i t ) ) ) N_{IR} = floor(UE.N_{soft}/(K_{MIMO}*min(LTE_{params}.HARQ_{process},M_{limit}))) NIR=floor(UE.Nsoft/(KMIMOmin(LTEparams.HARQprocess,Mlimit)))
其中 N s o f t N_{soft} Nsoft 代表UE能够处理的数据最大缓存, K M I M O K_{MIMO} KMIMO 是由天线个数决定的参数可为 1 或 2
M l i m i t M_{limit} Mlimit 指HARQ最大进程数 8 。HARQ进程数可配置为 8 或 7 或其他数,我们取这两者的最小数表明 UE的一个 HARQ进程的缓存大小。 所以 N I R N_{IR} NIR表示UE能处理的单个HARQ进程数据比特数。

(3) N c b N_{cb} Ncb

N c b = f l o o r ( N I R / C ) < = K w ? f l o o r ( N I R / C ) : K w N_{cb} = floor(N_{IR}/C)<=K_w ?floor(N_{IR}/C):K_w Ncb=floor(NIR/C)<=Kw?floor(NIR/C):Kw
其中 K w K_w Kw即 Circular Buffer,它等于发送数据的总长度,这个长度由G来决定。
其中 C 为码块的数量。
N c b N_{cb} Ncb 就是从UE能处理的数据数和发送资源允许发送的数据数中选较小的那个

(4)E,即速率匹配后输出的长度
E的计算

// G’ — number of symbols sent per layer
// G — 一个传输块的总的可用比特数
G’ = G / N L ∗ Q m N_L * Q_m NLQm
// 其中 Q m Q_m Qm 在调制方式为 QPSK、16QAM、64QAM时取值分别为 2、4、6
// 当传输块映射到单层传输层的时候, N L N_L NL 为1
// 当传输块映射到 2 或 4 层传输层的时候, N L N_L NL 为2
γ = G ′ m o d C \gamma=G' mod C γ=GmodC
if r < = C − γ − 1 r < = C - \gamma - 1 r<=Cγ1{
E = N L ∗ Q m ∗ f l o o r ( G ′ / C ) E = N_L * Q_m * floor(G'/C) E=NLQmfloor(G/C) }
else{
E = N L ∗ Q m ∗ c e i l ( G ′ / C ) E = N_L * Q_m * ceil(G'/C) E=NLQmceil(G/C)}

参考链接:
https://www.docin.com/p-1134591557.html
速率匹配 https://www.renrendoc.com/paper/103257230.html
https://www.cnblogs.com/lmpsoftware/p/8194459.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值