PDSCH物理层处理过程(五):速率匹配(基于LDPC码)

参考资料:3GPP 38.212 Clause 5.4.2
本文主要对协议中速率匹配部分进行翻译并加了一些解释便于理解。速率匹配可以结合HARQ一起学习。

对于每个码块,LDPC码分别完成速率匹配,速率匹配由比特选择和比特交织两部分组成。比特选择的目的 为提取合适数量的编码比特以匹配物理层分配的资源,同时产生不同的用于HARQ进程的冗余版本(Redundancy Version, RV) 。因为PDSCH上传输的比特数量不仅依赖于分配的RB数量和OFDM符号数,也 依赖于用于其他目的的重叠的RE的数量,例如,参考信号、控制信道或系统消息。

速率匹配的输入序列为 d 0 , d 1 , d 2 , . . . , d N − 1 d_0,d_1,d_2,...,d_{N-1} d0,d1,d2,...,dN1(信号编码后得到的序列),经过速率匹配后输出的序列用 f 0 , f 1 , . . . f E − 1 f_0,f_1,...f_{E-1} f0,f1,...fE1表示。

比特选择

在这里插入图片描述
将第 r r r个码块中信号编码后得到的序列 d 0 , d 1 , d 2 , . . . , d N − 1 d_0,d_1,d_2,...,d_{N-1} d0,d1,d2,...,dN1写入长度为 N c b N_{cb} Ncb的循环缓存区。针对第 r r r个码块,若 I L B R M = 0 I_{LBRM}=0 ILBRM=0,则令 N c b = N N_{cb}=N Ncb=N;否则 N c b = m i n ( N , N r e f ) N_{cb}=min(N,N_{ref}) Ncb=min(N,Nref),其中 N r e f = ⌊ T B S L B R M C ⋅ R L B R M ⌋ N_{ref}=\left\lfloor \frac{TBS_{LBRM}}{C\cdot R_{LBRM}} \right \rfloor Nref=CRLBRMTBSLBRM R L B R M = 2 / 3 R_{LBRM}=2/3 RLBRM=2/3

将第 r r r个码块速率匹配后的序列长度表示为 E r E_r Er,其中 E r E_r Er的值确定方法如下:

j = 0;
for r = 0:C-1
	if the r-th coded block is not scheduled for transmission as indicated by CBGTI according to Clause 5.1.7.2 for DL-SCH and 6.1.5.2 for UL-SCH in [6, TS 38.214]
	%CBGTI(CBG Transmission Information): Indicate which CBG need to be retransmitted.
		Er = 0;
	else
		if j <= C'-mod(G/(N_L*Q_m),C')-1 % G/(N_L*Q_m)无法整除C’时,需要有部分码块组bit数多一位,此处令后面几个码块多一位
			Er = N_L * Q_m * floor(G/N_L*Q_m*C');
		else
			Er =  N_L * Q_m * ceil(G/N_L*Q_m*C');
		end
		j = j + 1;
	end
end
%N_L:传输层数
%Q_m:调制阶数
%G:传输bit总数
%C':若DCI调度信息中不包括CBGTI,C'= C;否则C'为调度的码块数

r v i d rv_{id} rvid 表示传输冗余版本数,其中 r v i d ∈ { 0 , 1 , 2 , 3 } rv_{id}\in\left\{0,1,2 ,3\right\} rvid{0,1,2,3}比特选择输出序列 e k e_k ek k = 0 , 1 , 2 , . . . , E − 1 k=0,1,2,...,E-1 k=0,1,2,...,E1 k 0 k_0 k0为不同冗余版本的开始位置, k 0 k_0 k0取值见38.212中表格,比特选择输出序列生成方法如下:

k = 0;
j = 0;
while k < E
	if d[mod(k0+j,N_cb)] != <NULL>
		e[k] = d[mod(k0+j,N_cb)];
		k = k + 1;
	end
	j = j + 1;
end

在这里插入图片描述
每个冗余版本都是由在速率匹配过程中存储的循环缓冲区中的比特构建的,每个冗余版本比特如下所示:
在这里插入图片描述

比特交织

比特选择输出序列 e 0 , e 1 , e 2 , . . . , e E − 1 e_0,e_1,e_2,...,e_{E-1} e0,e1,e2,...,eE1经过交织后得到速率匹配的输出序列 f 0 , f 1 , f 2 , . . . , f E − 1 f_0,f_1,f_2,...,f_{E-1} f0,f1,f2,...,fE1,交织方法如下:

for j = 0 : E/Q_m -1
	for i = 0 : Q_m - 1
		f[i + j*Q_m] = e[i*E/Q_m + j];
	end
end
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值