概述
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/(KMIMO∗min(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 NL∗Qm
// 其中 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 γ=G′modC
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=NL∗Qm∗floor(G′/C) }
else{
E = N L ∗ Q m ∗ c e i l ( G ′ / C ) E = N_L * Q_m * ceil(G'/C) E=NL∗Qm∗ceil(G′/C)}
参考链接:
https://www.docin.com/p-1134591557.html
速率匹配 https://www.renrendoc.com/paper/103257230.html
https://www.cnblogs.com/lmpsoftware/p/8194459.html
最后
以上就是暴躁冬日为你收集整理的LTE 有关HARQ的全部内容,希望文章能够帮你解决LTE 有关HARQ所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复