一种用于5GNR并行解交织和解速率匹配的方法和装置

文档序号:25348050发布日期:2021-06-08 12:40阅读:626来源:国知局
一种用于5GNR并行解交织和解速率匹配的方法和装置
一种用于5g nr并行解交织和解速率匹配的方法和装置
技术领域
1.本发明涉及无线通信系统,尤其涉及解交织和解速率匹配的方法。


背景技术:

2.5g nr中ldpc速率匹配包括两个过程:比特选择和比特交织。比特交织是将造成数字信号传输的突发性差错,利用交织编码技术将传输的比特顺序重新排列,因而可离散并纠正这种集中的突发性差错,改善移动通信的传输特性。比特选择通常为编码后为进行速率匹配而将已编码好的数据在传输时增加或减少数据传输量的方法。
3.目前,解交织和解速率匹配的常规做法是串行实现。首先进行解交织,然后进行解速率匹配。其中,解交织又有两种做法。第一种做法是将接收到的软信息在芯片内部按行进行存储,待所有数据接收完毕后,再将每行数据输出进行解速率匹配,参见图1。第二种做法是在芯片外部设置一块存储器,用于行列变换。解交织的第一种做法,需要内部设置比较大的存储器,功耗、面积和成本代价比较大。第二种做法采用外部存储器,虽然可以解决内部存储器过大问题,但随之而来的总线访问效率问题,难以满足实时性要求。


技术实现要素:

4.本发明针对上述问题,根据本发明的第一方面,提出一种用于5g nr ldpc码的并行解交织和解速率匹配的方法,用于将接收的数据包存储到环形缓冲器,其中环形缓冲器分为q个存储区域,q为调制阶数,所述q个存储区域视为虚拟矩阵储存器的q行,所述方法包括:
5.步骤100:根据重传版本号、接收的速率匹配长度e、调制阶数q、填充比特长度fill_num及起始地址fill_start确定在环形缓冲器中的q个存储区域的起始地址;
6.步骤200:从接收到的数据包的第一位起依次将每q位数据中的第i位数据存储到第i个存储区域,直到将数据包的数据全部存储到所述环形缓冲器,其中i=0

,q

1。
7.在本发明的一个实施例中,其中环形缓冲器包括一个行计数器k,q个存储区域的每个存储区域有一个存储指针pointer_k,k=0,...,q

1,所述步骤200包括:
8.步骤210:初始化行计数器k为0,将q行中的每一行的存储指针pointer_k分别初始化为该行的起始地址;
9.步骤220:将所述数据包中的第一个数据位存储到当前行计数器k指示的第k个存储区域中由存储指针pointer_k指示的存储位置中;
10.步骤230:将存储指针pointer_k递增指示所述第k个存储区域中下一个可存储位置;
11.如果pointer_k大于环形缓冲器的的结束地址,则置其为环形缓冲器的起始地址;
12.步骤231:将所述行计数器k递增1,判断所述行计数器k是否等于q,如果所述行计数器k等于q,将其设置为0;
13.步骤240:将下一待处理数据位存储到所述行计数器k指示的存储区域中由存储指
针pointer_k指示的存储位置;
14.步骤250:重复执行步骤230

240直至完成该数据包的接收。
15.在本发明的一个实施例中,所述步骤100包括:
16.计算每行长度l,l=e/q,
17.计算第n行起始地址,其中,n=0,1,

q

1,所述计算步骤为:
18.当n=0时,第n行起始地址为k0,其中k0为重传版本对应的起始地址,
19.当n>0时,第n行起始地址sn为:
20.如果l>a,sn=k0+nl+fill_num,
21.如果l≤a,sn=k0+nl,
22.其中a=fill_start

k0,fill_start为填充比特起始地址,fill_num为填充比特长度。
23.在本发明的一个实施例中,步骤100还包括:如果计算出的起始地址sn大于循环缓冲器长度ncb,重新计算其起始地址,包括步骤:
24.计算b=sn%ncb;
25.如果b<=fill_start,sn=b;
26.如果b>fill_start,且b<=fill_start+fill_num,sn=fill_start+fill_num;
27.如果b>fill_start+fill_num,sn=b+fill_num。
28.在本发明的一个实施例中,当填充比特长度fill_num为0时,其中计算每行长度为l的第n行起始地址的方法为k0+nl。
29.在本发明的一个实施例中,其中在速率匹配长度e大于循环缓冲器长度ncb时,在接收端的环形缓冲器中对重复发送的部分进行合并。
30.在本发明的一个实施例中,上述方法还包括:在采用打孔或截断方式进行速率匹配时,在接收数据时对打孔位填充0比特。
31.根据本发明的第二方面,提供一种计算机可读存储介质,其中存储有一个或者多个计算机程序,所述计算机程序在被处理器执行时用于实现本发明的用于5g nr ldpc码的并行解交织和解速率匹配的方法。
32.根据本发明的第三方面,提供一种计算系统,包括:存储装置、以及一个或者多个处理器;其中,所述存储装置用于存储一个或者多个计算机程序,所述计算机程序在被所述处理器执行时用于实现本发明的用于5g nr ldpc码的并行解交织和解速率匹配的方法。
33.与现有技术相比,本发明的优点在于通过对解交织和解速率匹配并行操作实现,可以降低处理时延,并降低内部存储器大小,同时避免了与总线交互带来的传输效率问题。
附图说明
34.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
35.图1示出了解交织与解速率匹配串行实现;
36.图2示出了环形缓冲器中的比特选择;
37.图3示出了行进列出比特交织;
38.图4示出了并行解交织和解速率匹配过程。
39.图5示出了并行解交织和解速率匹配的概要流程图。
40.图6示出了并行解交织和解速率匹配的详细流程图。
具体实施方式
41.针对背景技术中提出的问题,发明人进行了研究,并提出了并行解交织与解速率区配的方法。
42.比特选择的目的是为了将编码后的比特数量与时空资源进行匹配,假设编码后的比特长度为n,比特选择后的数据长度为e,e的长度由高层分配的资源决定。当e的长度小于n时,通常采用打孔或截断方式进行速率匹配;当e的长度大于n时,通常采用重复方式进行速率匹配,图2示出了环形缓冲器的各版本以及从版本rv0对应的起始地址处发送长度为e的比特选择后的数据。
43.比特交织是将比特选择后的数据进行顺序重排,以提高系统抗干扰能力。5g nr中的比特交织是将比特选择后的e个比特,平均分成q行进行存储,每行数据长度l=e/q,其中,矩阵行数q等于调制阶数,目前的5g nr协议中支持的调制阶数有1,2,4,6,8。比特交织的过程是将q*l矩阵中的数据按行进列输出。以图3为例,e=96,调制阶数q=4,则矩阵存储器行数为4,每行长度l=24。比特交织前的序列为{a0,a1,a2,

a95},比特交织后序列顺序为{a0,a24,a48,a72,a1,a25,a49,a73,

,a22,a46,a70,a94,a23,a47,a71,a95}。解交织和解速率匹配是比特选择和比特交织的逆过程。且顺序相反,在发送端先比特选择,后比特交织,在接收端,先解比特交织,后解比特选择。在接收端,数字解调后,每个比特对应一个对数似然比,称为软信息。解交织过程是将接收到的长度为e的软信息按列写入矩阵存储器中,再将数据按行读出,以进行解交织。以图3为例,即将接收到的交织后的序列{a0,a24,a48,a72,a1,a25,a49,a73,

,a22,a46,a70,a94,a23,a47,a71,a95}解交织为{a0,a1,a2,

a95}。解速率匹配则将解交织后的长度为e的序列存入环形缓冲器。以图3为例,即将解交织后的{a0,a1,a2,

a95}序列存入环形缓冲器。解速率匹配之前数据长度为e,由于5g nr中传输带宽很大,分配的最大资源块数目为275,e的长度与分配的资源块数目成正比,极端情况下,e的长度达百万量级。此外,接收到的软信息一般采用6比特进行量化,如果在内部对接收到的软信息进行存储,然后进行行列矩阵变换,其存储代价是非常高的。因此本发明并没有实例化一个真实的矩阵存储器用于解交织,而是直接计算出接收的每个比特在环形缓冲器的地址并直接存入环形缓冲器。但是在计算过程中,使用了该虚拟矩阵存储器相关概念,例如行、列、行的长度等。以图3为例,即直接计算出接收到的{a0,a24,a48,a72,a1,a25,a49,a73,

,a22,a46,a70,a94,a23,a47,a71,a95}在环形缓冲器的存储地址。
44.假设调制阶数q=4,则矩阵存储器行数为4,每行长度l=e/q。矩阵接收到的软信息序列为{a0,b0,c0,d0,a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3...},软信息序列长度为e,如图4的

所示。
45.编码后的数据存储在环行缓冲器中,环形缓冲器长度为ncb,速率匹配长度为e。比特选择的起始地址随重传版本号不同而变化,重传版本号有四种:rv0,rv1,rv2,rv3,根据重传版本号确定的起始地址发送长度为e的信息。当e的长度大于ncb时,会重复发送环行缓
冲器中的数据。不同重传版本号对应的起始地址k0如下表所示,其中,zc表示ldpc码基础矩阵扩展因子。
[0046][0047]
假设重传版本号为rv0,起始地址为k0=0,则常规解交织后的数据存储形式如图4的

所示,其中s0表示矩阵存储器第0行数据起始地址,s1表示第1行数据起始的地址,s2表示第2行数据起始地址,s3表示第3行数据起始地址。不同行起始地址计算公式如下:
[0048]
s0=k0;
[0049]
s1=s0+l;
[0050]
s2=s0+2l;
[0051]
s3=s0+3l;
[0052]
以图3中的数据为例,接收端接收的数据为{a0,a24,a48,a72,a1,a25,a49,a73,

,a22,a46,a70,a94,a23,a47,a71,a95},图4的



中的a0,b0,c0,d0可以分别对应图3的a0、a24、a48、a72,而a1,b1,c1,d1可以分别对应图3的a1、a25、a49、a73,而a2,b2,c2,d2可以分别对应图3的a2、a26、a50、a74,而a3,b3,c3,d3可以分别对应图3的a3、a27、a51、a75。因此对图4的

实现了解交织的列进行出。最终解交织为{a0,a1,a2,

a95}。为了便于用列进行出方式解交织,要计算在环形缓冲器中的列进行出时每一行的起始地址。在例如图4中的

中,实际的地址存储空间不是矩阵,而是连续地址(数字),比如起始地址为k0=0x0000200,s1=0x0000218(十六进制的18就是24,就是一行的长度),s2=0x0000230(十六进制的30就是48,就是两行的长度)。
[0053]
循环缓冲器长度为ncb,根据本发明的一个实施例,循环缓冲器中可包含填充比特,如图4的

中灰色区域,这是由于协议中的码块长度是计算出来的,实际上码块分段后的码块长度可能达不到协议算出来的这个长度,就用null比特填充。填充比特长度为fill_num,填充比特起始地址为fill_start。解速率匹配时,遇到填充比特区域,需跳过该区域进行存储。如图4的

中所示为跳过填充比特区域后,矩阵存储器不同行对应的起始地址需要调整,下面详释其计算方法。为了和前面的例子区分开,不再使用s0、s1、s2、s3表示各行数据起始地址,而使用s4表示第0行数据起始地址,s5表示第1行数据起始地址,s6表示第2行数据起始地址,s7表示第3行数据起始地址。不同行起始地址计算公式如下:
[0054]
s4=k0;
[0055]
s5:
[0056]
a=fill_start

k0
[0057]
如果l>a,s5=s0+l+fill_num;
[0058]
否则,s5=s0+l;
[0059]
s6:
[0060]
如果2l>a,s6=s0+2l+fill_num;
[0061]
否则,s6=s0+2l;
[0062]
s7:
[0063]
如果3l>a,s7=s0+3l+fill_num;
[0064]
否则,s7=s0+3l;
[0065]
根据本发明的一个实施例,由于循环缓冲器长度为ncb,如果计算出的行起始地址s4,s5,s6,s7大于ncb时,则需要进一步换算为一个小于ncb的值,此时用s8,s9,s10,s11分别表示第0、1、2、3行的起始地址,其中,以s11为例,s11使用s7计算方法如下:
[0066]
如果s7>ncb,b=s7%ncb
[0067]
如果b<=fill_start,s11=b;
[0068]
如果b>fill_start,且b<=fill_start+fill_num,s11=fill_start+fill_num;
[0069]
如果b>fill_start+fill_num,s11=b+fill_num;
[0070]
如果s4,s5,s6也大于ncb,则s8/s4,s9/s5,s10/s6的换算关系与s11/s7一样。
[0071]
当重传版本号是rv1,rv2,rv3时,行起始地址计算过程同rv0,只是k0的值不同。
[0072]
至此,我们得到了并行解交织和解速率匹配的行起始地址。
[0073]
为了将接收到的数据包映射到环形缓冲器,本发明将环形缓冲器分为q个存储区域,q为调制阶数,所述q个存储区域视为虚拟矩阵储存器的q行,这q个存储区域可能有重叠。本发明需设置一个行计数器k,k=0,...,q

1,并为每一行分别设置了存储指针,其中第k行的存储指针表示为pointer_k,如第3行的存储指针表示为pointer_3,k表示当前接收数据位应存储的行,而pointer_k表示当前接收数据位在该行中的具体存储位置。在接收数据前,行计数器k设置为0,每一行的存储指针都初始化为根据前述方式计算出的该行的起始地址。因此数据包中的第一个数据位根据k=0和pointer_0的指示,将被存储在第0行的起始地址处。
[0074]
为实现列进行出,每当接收到一个数据位后,当前行计数器k的值指示该数据位所应映射到的矩阵储存器中的行,然后行计数器加1,以用于下一个接收到的比特,如果行计数器加1后的值等于q,则将行计数器设为0。也即是实现了从接收到的数据包的第一位起依次将每q位数据中的第i位数据存储到第i个存储区域,直到将数据包的数据全部存储到所述环形缓冲器,其中i=0

,q

1。并行解交织和解速率匹配的概要流程图参见图5。
[0075]
为所接收的数据位确定所在行后,由该行的存储指针pointer_k指示具体存储位置,处理完接收的数据位后,计算用于下一个被映射到该行的接收到的数据位的地址。如果没有遇到填充区域,将pointer_k加1,如果遇到填充区域,需要跳过填充区域,则将pointer_k加fill_num。如果pointer_k大于环形缓冲器的结束地址时,将pointer_k设为环形缓冲器的起始地址,例如图4的

中,s6所指示的第二行的存储指针pointer_2大于环形缓冲器的结束地址时,将pointer_2设置为环形缓冲器的起始地址。依照此方法,对接收到
的数据包中的数据位依次处理,直到处理完数据包中的所有数据位。
[0076]
例如,当q=4时,接收到的第1比特映射到第0行的起始地址,接收到的第2、3、4比特分别映射到第1、2、3行的起始地址,接收到的第5个比特映射到第0行的起始地址加1的地址,接收到的第6个比特映射到第1行的起始地址加1的地址,接收到的第10个比特映射到第1行的起始地址加2的地址,如果第1行的起始地址加2的地址为填充区域,并且填充区域的长度为1,则接收到的第10个比特不应当映射到第1行的起始地址加2的地址,而应当映射到第1行的起始地址加3的地址。并行解交织和解速率匹配的详细流程图参见图6。
[0077]
如果环形缓冲器长度为100比特,10

19比特处为填充区域(填充区域一共10个比特长),如果e为120,则在环形缓冲器存满时,只存了90个比特,剩下30个(120

90=30)比特都存在合并的问题,这剩下的30个比特中,列进行出后的第91

100比特与环形缓冲器的第0

9比特分别合并,这剩下的30个比特中,列进行出后的第101到第120比特需要跳过填充区域,然后分别与环形缓冲器的第20

39比特合并。
[0078]
此处的合并与harq过程中收到多个版本数据后的合并方法相同,该映射过程中的合并操作解决了速率匹配长度e大于循环缓冲器长度ncb时的自身合并问题。当所有接收数据全部写入环形缓冲器中,则并行解交织和解速率匹配过程结束。
[0079]
采用打孔或截断方式进行速率匹配时,在接收数据时对打孔位填充0比特,使用和上述相同的方法根据行地址依次进行映射,即先映射第0行数据,然后是第1行数据,第2行数据,第3行数据。由于e的长度不会大于ncb,不会重复发送循环缓冲器中的数据,接收端无需将重复发送的数据合并。
[0080]
为使本领域任何普通技术人员能够实现或者使用本公开内容,上面围绕本公开内容进行了描述。对于本领域普通技术人员来说,对本公开内容进行各种修改是显而易见的,并且,本文定义的通用原理也可以在不脱离本公开内容的精神或保护范围的基础上适用于其它变型。此外,除非另外说明,否则任何方面和/或实施例的所有部分或一部分可以与任何其它方面和/或实施例的所有部分或一部分一起使用。因此,本公开内容并不限于本文所描述的例子和设计方案,而是与本文公开的原理和新颖性特征的最广范围相一致。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1