CN117650872B - 一种NR Polar编码的简化实现方法及计算机可读存储介质 - Google Patents
一种NR Polar编码的简化实现方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117650872B CN117650872B CN202410122113.2A CN202410122113A CN117650872B CN 117650872 B CN117650872 B CN 117650872B CN 202410122113 A CN202410122113 A CN 202410122113A CN 117650872 B CN117650872 B CN 117650872B
- Authority
- CN
- China
- Prior art keywords
- bit
- exclusive
- array
- sequence
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 241000169170 Boreogadus saida Species 0.000 title abstract description 4
- 239000011159 matrix material Substances 0.000 claims abstract description 107
- 239000013598 vector Substances 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 5
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000003491 array Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 8
- 238000012856 packing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种NR Polar编码的简化实现方法及计算机可读存储介质,涉及通信领域。该方法包括:获取待传输的原始信息,根据所述原始信息确定待编码比特序列,将待编码比特序列按照设定比特长度的数据类型进行存储,以构成第一数组;利用编码矩阵对待编码比特序列进行编码,以确定编码输出序列,包括:获取所述编码矩阵中的每一个列向量,将每一个所述列向量按照所述设定比特长度的数据类型进行存储,以对应构成第二数组;将每一个所述第二数组按照所述编码矩阵的行顺序进行存储,以构成第三数组;对所述第一数组和所述第三数组进行位运算确定所述编码输出序列,以进行协议规定的对应处理。由此降低编码运算复杂度、提高编码效率且降低编码所需的存储器资源。
Description
技术领域
本申请涉及通信领域,具体涉及一种NR Polar编码的简化实现方法及计算机可读存储介质。
背景技术
根据协议3GPP TS 38.212标准的第5.3.1.2节规定,在Polar编码流程中,按照特性规则将信息比特与校验比特数据填充到选定的子信道,以生成待编码比特序列u。待编码比特序列u是一个行向量,至多为1024阶,这个行向量包含了信息和检验比特数据,是进行编码运算的输入向量。编码矩阵GN是由基矩阵G2通过克罗内克积运算生成的,至多为1024阶矩阵。待编码比特序列u与编码矩阵GN相乘得到编码输出序列d。
在软件仿真NR Polar编码时,实现上述编码矩阵运算的原始方案为:使用二维数组存储编码矩阵GN中的每个元素,考虑到其最高可达1024阶,此时至少需要存储1024×1024个元素。按照矩阵乘法运算规则,将编码矩阵逐列与行向量的待编码比特序列u逐元素相乘并求和取余,分别计算编码输出序列d每列元素值。按照上述运算方法,若使用1024阶编码矩阵,每列需要计算1024次整型算法与1024次整型加法,在整个编码计算中需要分别计算1024×1024次整型乘法与加法。在这整个计算中需要耗费较多的存储器与运算器资源,编码运算效率较低。
发明内容
本申请主要解决的技术问题是:提供一种在计算过程中不需要耗费过多存储器和运算器资源的NR Polar编码的简化实现方法及计算机可读存储介质。
根据第一方面,一种实施例中提供一种NR Polar编码的简化实现方法,包括:
获取待传输的原始信息,根据所述原始信息确定待编码比特序列,将所述待编码比特序列按照设定比特长度的数据类型进行存储,以构成第一数组;
利用编码矩阵对所述待编码比特序列进行编码,以确定编码输出序列,包括:
获取所述编码矩阵中的每一个列向量,将每一个所述列向量按照所述设定比特长度的数据类型进行存储,以对应构成第二数组;
将每一个所述第二数组按照所述编码矩阵的行顺序进行存储,以构成第三数组;
对所述第一数组和所述第三数组进行位运算确定所述编码输出序列,以进行协议规定的对应处理。
一种实施例中,所述将所述待编码比特序列按照设定比特长度的数据类型进行存储,以构成第一数组,包括:
获取设定比特长度的数据类型的比特数;
对所述待编码比特序列按照顺序提取所述比特数的元素,以形成若干个第一序列;
将所述若干个第一序列按顺序存储,以构成第一数组。
一种实施例中,所述将每一个所述列向量按照所述设定比特长度的数据类型进行存储,以对应构成第二数组,包括:
获取所述设定比特长度的数据类型的比特数;
对每一个所述列向量按照顺序提取所述比特数的元素,以形成若干个第二序列;
将所述若干个第二序列按顺序存储,以对应构成第二数组。
一种实施例中,所述第三数组为二维数组;
所述将每一个所述第二数组按照所述编码矩阵的行顺序进行存储,以构成第三数组,包括:
获取每一列对应的第二数组;
将每个第二数组按照所述编码矩阵的行顺序进行存储,以构成所述二维数组。
一种实施例中,所述对所述第一数组和所述第三数组进行位运算确定所述编码输出序列,包括:
将所述第一数组的若干个第一序列分别与第二数组的若干个第二序列进行与运算,以对应得到若干个与运算值;
对所述若干个与运算值进行异或运算,以对应确定所述待编码比特序列与编码矩阵各列向量的内积运算结果;
根据所述内积运算结果确定所述编码输出序列。
一种实施例中,所述对所述若干个与运算值进行异或运算,以对应确定所述待编码比特序列与编码矩阵各列向量的内积运算结果,包括:
对所述若干个与运算值进行异或运算,以确定第一异或结果;
从所述第一异或结果开始进行右移,每次右移一位,以确定第一右移值;对所述第一右移值和所述第一异或结果进行异或运算,以对所述第一异或结果进行更新;
每完成一次第一异或结果的更新,则将所述第一右移值右移一位,以对所述第一右移值进行更新,直至所述第一异或结果中的每一位均参与最低位上的异或运算,则停止计算,完成异或运算;
获取完成异或运算的第一异或结果的最低位的数值,所述最低位的数值为所述待编码比特序列与对应的编码矩阵列向量的内积运算结果。
一种实施例中,所述对所述若干个与运算值进行异或运算,以对应确定所述待编码比特序列与编码矩阵各列向量的内积运算结果,包括:
对所述若干个与运算值进行异或运算,以确定第二异或结果;
从所述第二异或结果开始进行左移,每次左移一位,以确定第一左移值;对所述第一左移值和所述第二异或结果进行异或运算,以对所述第二异或结果进行更新;
每完成一次第二异或结果的更新,则将所述第一左移值左移一位,以对所述第一左移值进行更新,直至所述第二异或结果中的每一位均参与最高位上的异或运算,则停止计算,完成异或运算;
获取完成异或运算的第二异或结果的最高位的数值,所述最高位的数据为所述待编码比特序列与对应的编码矩阵列向量的内积运算结果。
一种实施例中,所述设定比特长度的数据类型包括1字节字符型、2字节短整型、4字节整型或4字节长整型。
一种实施例中,若干个第一序列、若干个第二序列和若干个与运算值的个数值均为所述编码矩阵的阶数除以所述比特数的值。
根据第二方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现上述任意一种实施例中所述的方法。
根据上述实施例的一种NR Polar编码的简化实现方法及计算机可读存储介质,在该方法中获取待传输的原始信息,根据该原始信息确定待编码比特序列,将待编码比特序列按照设定比特长度的数据进行存储,以构成第一数组。利用编码矩阵对待编码比特序列进行编码,以确定编码输出序列,其中,将编码矩阵中的每一个列向量按照设定比特长度的数据类型进行存储,从而对应构成第二数组,在将每一个第二数组按照编码矩阵的行顺序进行存储,以构成第三数组。最终对第一数组和第三数组进行位运算。本申请编码矩阵和待编码比特序列按照比特的方式进行存储,利用设定比特长度的数据类型存储编码矩阵和待编码比特序列,能够充分利用存储器资源,降低编码所需的存储器资源。同时,本申请利用位运算替代编码矩阵运算中的算术运算,降低了编码运算复杂度,提高了编码效率。
附图说明
图1为现有的Polar编码矩阵存储模式示意图;
图2为现有的Polar编码矩阵一次乘法运算示意图;
图3为一种实施例的NR Polar编码的简化实现方法的总流程图;
图4为一种实施例的NR Polar编码的简化实现方法步骤S100的流程图;
图5为一种实施例的NR Polar编码的简化实现方法步骤S200的流程图;
图6为一种实施例的NR Polar编码的简化实现方法步骤S210的流程图;
图7为一种实施例的Polar编码矩阵存储模式示意图;
图8为一种实施例的NR Polar编码的简化实现方法步骤S230的流程图;
图9为一种实施例的NR Polar编码的简化实现方法步骤S232的流程图;
图10为另一种实施例的NR Polar编码的简化实现方法步骤S232的流程图;
图11为一种实施例的NR Polar编码的简化实现方法的汇编实现示意图。
具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
为提高通信可靠性,NR协议引入Polar编码作为部分物理层信道的编码方式。根据协议3GPP TS 38.212标准的第5.3.1.2节规定,NR协议中使用的Polar编码采用由基矩阵通过克罗内克积(Kronecker Power)运算生成编码矩阵进行编码计算,编码矩阵最大可达1024阶方阵。而使用软件仿真分析NR物理层链路时,Polar编码矩阵运算需要计算最多1024阶矩阵相乘运算,需要耗费较多的存储器与运算器资源,编码运算效率较低。
上述方法具体到存储器资源占用时,原始方案下的Polar编码矩阵存储模式如图1所示,假设使用4字节(32比特)整型存储矩阵运算,由于协议3GPP TS 38.212标准的第5.3.1.2节规定Polar编码矩阵运算定义在GF(2)有效域,这意味着数据的取指范围为二进制,0或1,那么每个整型实际仅有一个比特位存储有效数据,存在明显的存储资源浪费。
上述方法具体到编码运算流程时,每次进行算术运算时寄存器中只有单个比特位进行了有效运算,每一次算术乘法运算如图2所示,也存在明显的运算资源浪费。图2中使用x表示编码矩阵GN中的元素数据,y表示编码比特序列u中的元素数据,z表示编码输出序列d中的元素数据。如果量化地分析原始方案中的算术乘法,对于单次算术乘法的一种典型汇编实现如下:首先,从内存中将待编码比特序列u中特定元素读取至累加器EAX;接着,从内存中将编码矩阵GN中的特性元素读取至通用寄存器EDX;最后,由算术逻辑单元ALU执行算术乘法,结果存储在累加器EAX中:Z0Z1Z2……Z31。在不考虑流水线技术等效率优化情况下,单次算术乘法可能需要3个CPU指令周期完成,这种情况下的运算需要耗费较多的存储器与运算器资源,从而导致编码运算效率较低。
基于上述所说,本申请提供一种NR Polar编码的简化实现方法,利用计算机存储器特性,将Polar矩阵按照比特位进行存储,相较于将编码矩阵按照各元素单独存储的原始方案,节省大量的存储器资源。同时,本申请利用计算机运算器特性,将Polar编码矩阵运算由算术运算转换为位运算,降低了编码矩阵运算的运算复杂度,下面进行具体阐述。
请参考图3,一种实施例中提供一种NR Polar编码的简化方法,包括如下步骤。
步骤S100:获取待传输的原始信息,根据原始信息确定待编码比特序列u,将待编码比特序列u按照设定比特长度的数据类型进行存储,以构成第一数组。
一种实施例中,原始信息指的是通信系统中待传输的未经编码的数据或消息,这些数据可能来自用户生成的信息,传感器采集的数据,或者其他应用产生的原始信息。在通信系统中,原始信息通常是数字或二进制形式的比特序列,表示了特定应用或用户想要传递的内容。原始信息可能包括语音、图像、文本、传感器测量数据等。根据这些待传输的原始信息确定出待编码的比特序列u。
一种实施例中,协议3GPP TS 38.212标准的第5.3.1.2节规定Polar编码矩阵运算定义在GF(2)有效域,且待编码比特序列u和编码矩阵GN的元素仅有两种可能性(0或1),因此可以使用单个比特位存储待编码比特序列u和编码矩阵GN的每个元素值。同时为了便于使用计算机高级语言对比特运算进行描述与实现,因此需要对待编码比特序列u和编码矩阵GN中各元素值以某种数据类型进行打包处理。
请参考图4,一种实施例中,在执行步骤S100中将待编码比特序列u按照设定比特长度的数据类型进行存储,以构成第一数组时,还包括以下步骤。
步骤S110:获取设定比特长度的数据类型的比特数。
一种实施例中,不同的计算机中CPU寄存器位数不尽相同,使用设定比特长度的数据类型按照该数据类型的比特数存储待编码比特序列u和编码矩阵GN,数据类型的比特数长度可选取典型的CPU寄存器位数及其因数。在32位寄存器中可以选用1字节字符型(char)、2字节短整型(short)、4字节整型(int)或4字节长整型(long),1字节字符型包括8位比特数,2字节短整型包括16位比特数,4字节整型(int)包括32位比特数,4字节长整型(long)包括32位比特数,其中,考虑到协议规定使用的编码矩阵GN最低为32阶方阵,因此本申请待编码比特序u和编码矩阵GN选取占用32位比特数的4字节整型(int)作为存储单位。由于1字节存储空间等效于8个比特位,因此在利用1字节字符型时,会将所需存储空间至少缩减为原本的1/8,具体采用不同的数据类型所节省的存储空间不相同。在实际实现时可以选择上述任意一种数据类型作为存储单位。
步骤S120:对待编码比特序列u按照顺序提取比特数的元素,以形成若干个第一序列。
一种实施例中,待编码比特序列u是一个行向量,以32位比特数的字节整型的数据类型为例,将待编码比特序列u中的每32个元素进行打包,以作为一个第一序列,由于待编码比特序列u和编码矩阵GN均至多包括1024阶,比特数序列为32,则若干个第一序列的个数值为1024/32=32,也即有1024/32=32个第一序列。
步骤S130:将若干个第一序列按顺序存储,以构成第一数组。
一种实施例中,以128阶的待编码比特序列u,设定的数据类型为整型为例,将待编码比特序列u中的第1-32列元素进行打包构成第一个第一序列,将待编码比特序列u中的第33-64列元素进行打包构成第二个第一序列,将待编码比特序列u中的第65-96列元素进行打包构成第三个第一序列,将待编码比特序列u中的第97-128列元素进行打包构成第四个第一序列,将该四个序列按照待编码比特序列u的列编号从小到大的顺序存储,由此构成了一个1行4列的第一数组。对于不同阶数的待编码比特序列u采用类似的方式进行打包。
步骤S200:利用编码矩阵GN对待编码比特序列u进行编码,以确定编码输出序列d。
请参考图5,一种实施例中,在执行步骤S200利用编码矩阵GN对待编码比特序列u进行编码,以确定编码输出序列d时,还包括如下步骤。
步骤S210:获取编码矩阵中的每一个列向量,将每一个列向量按照设定比特长度的数据类型进行存储,以对应构成第二数组。
请参考图6,一种实施例中,在执行步骤S210获取编码矩阵中的每一个列向量,将每一个所述列向量按照设定比特长度的数据类型进行存储,以对应构成第二数组时,还包括如下步骤。
步骤S211:获取设定比特长度的数据类型的比特数。
一种实施例中,编码矩阵GN中的数据类型采用与待编码比特序列u相同的数据类型。
步骤S212:对每一个列向量按照顺序提取比特数的元素,以形成若干个第二序列。
一种实施例中,编码矩阵GN是一个设定阶的方阵,编码矩阵GN最高可达1024阶,即最高为1024行×1024列的矩阵。由于编码矩阵GN是一个设定阶的方阵,那么该方阵就包括设定阶的行向量和设定阶的列向量,以32位比特数的4字节整型的数据类型为例,则先将编码矩阵GN中的每个列向量依序将32个元素进行打包,以作为一个第二序列,由于编码矩阵GN至多包括1024阶,比特数为32位,那么若干个第二序列的个数值为1024/32=32,也即有1024/32=32个第二序列。本申请为简化编码矩阵GN的运算,每个整型存储单个列中连续32个元素,从而实现编码矩阵GN中每个元素值仅占用1比特存储空间。
步骤S213:将若干个第二序列按顺序存储,以对应构成第二数组。
一种实施例中,将每个列向量中的第二序列按照顺序存储,从而构成第二数组。在利用设定比特长度的数据类型存储是顺序存储,因此在利用设定比特长度的数据类型进行存储时,就自然包括了矩阵中的行列信息。
步骤S220:将每一个第二数组按照编码矩阵GN的行顺序进行存储,以构成第三数组。
一种实施例中,请参考图7,将各个列向量按照第二序列存储构成第二数组后,则再将每个第二数组按照编码矩阵GN的行顺序进行存储,从而构成了第三数组,第三数组即为二维数组。
同样以编码矩阵GN为128阶,设定的数据类型为32位比特数的4字节整型为例,128阶编码矩阵包括128行的行向量和128列的列向量,将第1列的第1-32行的元素打包构成第一个第二序列,将第1列的第33-64行的元素打包构成第二个第二序列,将第1列的65-96行的元素打包构成第三个第二序列,将第1列的第97-128行的元素打包构成第四个第二序列,将该四个序列按照编码矩阵的行编号从小到大的顺序存储,以构成第一个第二数组,以此类推,将每一列的列向量进行打包,以构成每一个列向量对应的第二数组。将每一列都打包存储后,再将每一列对应的第二数组按照编码矩阵GN的行顺序依次进行存储,由此构成了一个4行128列的二维数组。在对每一个列向量进行打包后(每一个列向量的128个元素按照32个一组打包得到4个包),编码矩阵GN列数不变,行数减少至原本的1/32。但在存储时采用列优先方式,即依次连续存储第0列第0行(列号在前, 行号在后),记作[0,0],[0,1], [0,2], [0,3], [1,0], [1,1], [1,2], [1,3], [2,0] ……本领域技术人员清楚了解该二维数组在计算机中不是以矩阵的形式存储,而是每一个第二序列按照对应的顺序依次放置的形式存储。
步骤S230:对第一数组和第三数组进行位运算确定编码输出序列d,以进行协议规定的对应处理。
一种实施例中,本申请在进行编码矩阵GN的运算时,使用位运算替代算术运算,其中,使用按位与运算代替整型乘法,编码矩阵GN乘法运算结果的求和由移位运算与按位异或运算代替。
请参考图8,一种实施例中,在执行步骤S230对第一数组和第三数组进行位运算确定编码输出序列d,以进行信道传输时,还包括如下步骤。
步骤S231:将第一数组的若干个第一序列分别与第二数组的若干个第二序列进行与运算,以对应得到若干个与运算值。
一种实施例中,第一数组的第一序列和第二数组的第二序列中的元素数量相同,且第一数组的第一序列分别与第二数组的每个第二序列进行逐个与运算。
在以128阶的待编码比特序列u、编码矩阵GN、设定的数据类型为整型为例时,128阶的待编码比特序列u和128阶的编码矩阵GN分别对应为1行4列的第一数组和4行128列的第三数组,将第一数组和第三数组按照矩阵的乘法运算规则进行与运算,即将1行4列的第一数组中的第一序列与4行128列的第三数组中的第二序列进行按位与运算,以对应得到若干个与运算值。同样在编码矩阵GN至多包括1024阶,比特数序列为32的情况下,若干个与运算值的个数值为1024/32=32,也即有1024/32=32个与运算值。
步骤S232:对若干个与运算值进行异或运算,以对应确定待编码比特序列u与编码矩阵GN各列向量的内积运算结果。
请参考图9,一种实施例中,在执行步骤S232对若干个与运算值进行异或运算,以对应确定待编码比特序列u与编码矩阵GN各列向量的内积运算结果时,还包括如下步骤。
步骤S232a:对若干个与运算值进行异或运算,以确定第一异或结果。
一种实施例中,对每一个第一序列与对应的第二序列进行按位与运算的与运算值进行异或,从而得到对应的第一异或结果。
步骤S232b:对第一异或结果进行更新。
一种实施例中,在确定第一异或结果后,对第一异或结果开始进行右移,每次右移一位,在第一次右移时确定出第一右移值,将第一右移值与第一异或结果再进行异或,从而对第一异或结果进行更新,在每完成一次第一异或结果的更新后,就将第一右移值右移一位,从而对第一右移值进行更新,直至第一异或结果中的每一位均参与最低位上的异或运算,则停止计算,完成异或运算。
步骤S232c:获取完成异或运算的第一异或结果的最低位的数值。
一种实施例中,该最低位的数值为待编码比特序列u与对应的编码矩阵GN列向量的内积运算结果。
例如,对每一个第一序列与对应的第二序列进行按位与运算的与运算值进行异或的第一异或结果为1010,则先对1010进行右移一位得到第一右移值为0101,将1010与0101再进行异或,得到1111,将1111更新为第一异或结果;此时再将第一右移值进行右移为0010,将1111与0010再进行异或,得到1101,将1101再次更新为第一异或结果;此时再将第一右移值进行右移位0001,将1101与0001再次进行异或,得到1100,此时第一右移值0101中的每一位均参与了异或运算,则停止计算,此时1100中的最低位0即为待编码比特序列u与对应的编码矩阵GN列向量的内积运算结果。
请参考图10,另一种实施例中,在执行步骤S232对若干个与运算值进行异或运算,以对应确定待编码比特序列u与编码矩阵GN各列向量的内积运算结果时,还包括如下步骤。
步骤S232A:对若干个与运算值进行异或运算,以确定第二异或结果。
一种实施例中,对每一个第一序列与对应的第二序列进行按位与运算的与运算值进行异或,从而得到对应的第二异或结果。
步骤S232B:对第二异或结果进行更新。
一种实施例中,在确定第二异或结果后,对第二异或结果开始进行左移,每次左移一位,在第一次左移时确定出第一左移值,将第一左移值与第二异或结果再进行异或,从而对第二异或结果进行更新,在每完成一次第二异或结果的更新后,就将第一左移值左移一位,从而对第一左移值进行更新,直至第二异或结果中的每一位均参与最高位上的异或运算,则停止计算,完成异或运算。
步骤S232C:获取完成异或运算的第二异或结果的最高位的数值。
一种实施例中,该最高位的数值为待编码比特序列u与对应的编码矩阵GN列向量的内积运算结果。
例如,对每一个第一序列与对应的第二序列进行按位与运算的与运算值进行异或的第二异或结果为1010,则先对1010进行左移一位得到第一左移值为0100,将1010与0100再进行异或,得到1110,将1110更新为第二异或结果;此时再将第一左移值进行左移为1000,将1110与1000再进行异或,得到0110,将0110再次更新为第二异或结果;此时再将第一左移值进行左移位0000,将0110与0000再次进行异或,得到0110,此时第一左移值0100中的每一位均参与了异或运算,则停止计算,此时0110中的最高位0即为待编码比特序列u与对应的编码矩阵GN列向量的内积运算结果。
步骤S233:根据每个内积运算结果确定编码输出序列d。
一种实施例中,原始信息在通信系统中是通信的起点,通过编码和传输,确保信息能够有效地在通信系统中传递。待传递的原始信息所对应的待编码比特序列u经过编码矩阵GN进行编码后,形成编码输出序列d。编码输出序列d按照NR协议规定的进行速率匹配等一系列处理后进行调制发送,接收端通过解码操作,以还原原始信息。
一种具体实施例以占用32比特的整型为存储单位,使用1024阶编码矩阵GN进行编码为例,以说明编码矩阵运算的具体实现方法。
待编码比特序列u与编码矩阵GN每一列元素均以32个整型变量存储,将这些整型变量逐个执行按位与运算,并将该列进行按位与运算所得的全部整型变量通过算术移位提取其每一比特位数据,对上述被提取的比特位数据执行按位异或运算,以此运算结果作为编码输出序列对应的列元素数据,其可能的汇编实现如图11所示。本申请将算术乘法用按位与运算实现,充分利用了CPU的运算资源,降低了编码运算复杂度,提高编码效率。对于32位处理器的计算机系统,若以32位整型作为存储单元,本申请将32次算术乘法合并为单次按位与运算,计入从内存中取数据的消耗,仅需3个CPU指令周期即可完成,至少将运算时间消耗减少为原本的1/32。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本申请进行阐述,只是用于帮助理解本申请,并不用以限制本申请。对于本申请所属技术领域的技术人员,依据本申请的思想,还可以做出若干简单推演、变形或替换。
Claims (10)
1.一种NR Polar编码的简化实现方法,其特征在于,包括:
获取待传输的原始信息,根据所述原始信息确定待编码比特序列,将所述待编码比特序列按照设定比特长度的数据类型进行存储,以构成第一数组;其中,根据寄存器位数确定所述设定比特长度的数据类型;
利用编码矩阵对所述待编码比特序列进行编码,以确定编码输出序列,包括:
获取所述编码矩阵中的每一个列向量,将每一个所述列向量按照所述设定比特长度的数据类型进行存储,以对应构成第二数组;
将每一个所述第二数组按照所述编码矩阵的行顺序进行存储,以构成第三数组;
对所述第一数组和所述第三数组进行位运算确定所述编码输出序列,以进行协议规定的对应处理。
2.如权利要求1所述的NR Polar编码的简化实现方法,其特征在于,所述将所述待编码比特序列按照设定比特长度的数据类型进行存储,以构成第一数组,包括:
获取设定比特长度的数据类型的比特数;
对所述待编码比特序列按照顺序提取所述比特数的元素,以形成若干个第一序列;
将所述若干个第一序列按顺序存储,以构成第一数组。
3.如权利要求2所述的NR Polar编码的简化实现方法,其特征在于,所述将每一个所述列向量按照所述设定比特长度的数据类型进行存储,以对应构成第二数组,包括:
获取所述设定比特长度的数据类型的比特数;
对每一个所述列向量按照顺序提取所述比特数的元素,以形成若干个第二序列;
将所述若干个第二序列按顺序存储,以对应构成第二数组。
4.如权利要求3所述的NR Polar编码的简化实现方法,其特征在于,所述第三数组为二维数组;
所述将每一个所述第二数组按照所述编码矩阵的行顺序进行存储,以构成第三数组,包括:
获取每一列对应的第二数组;
将每个第二数组按照所述编码矩阵的行顺序进行存储,以构成所述二维数组。
5.如权利要求4所述的NR Polar编码的简化实现方法,其特征在于,所述对所述第一数组和所述第三数组进行位运算确定所述编码输出序列,包括:
将所述第一数组的若干个第一序列分别与第二数组的若干个第二序列进行与运算,以对应得到若干个与运算值;
对所述若干个与运算值进行异或运算,以对应确定所述待编码比特序列与编码矩阵各列向量的内积运算结果;
根据所述内积运算结果确定所述编码输出序列。
6.如权利要求5所述的NR Polar编码的简化实现方法,其特征在于,所述对所述若干个与运算值进行异或运算,以对应确定所述待编码比特序列与编码矩阵各列向量的内积运算结果,包括:
对所述若干个与运算值进行异或运算,以确定第一异或结果;
从所述第一异或结果开始进行右移,每次右移一位,以确定第一右移值;对所述第一右移值和所述第一异或结果进行异或运算,以对所述第一异或结果进行更新;
每完成一次第一异或结果的更新,则将所述第一右移值右移一位,以对所述第一右移值进行更新,直至所述第一异或结果中的每一位均参与最低位上的异或运算,则停止计算,完成异或运算;
获取完成异或运算的第一异或结果的最低位的数值,所述最低位的数值为所述待编码比特序列与对应的编码矩阵列向量的内积运算结果。
7.如权利要求5所述的NR Polar编码的简化实现方法,其特征在于,所述对所述若干个与运算值进行异或运算,以对应确定所述待编码比特序列与编码矩阵各列向量的内积运算结果,包括:
对所述若干个与运算值进行异或运算,以确定第二异或结果;
从所述第二异或结果开始进行左移,每次左移一位,以确定第一左移值;对所述第一左移值和所述第二异或结果进行异或运算,以对所述第二异或结果进行更新;
每完成一次第二异或结果的更新,则将所述第一左移值左移一位,以对所述第一左移值进行更新,直至所述第二异或结果中的每一位均参与最高位上的异或运算,则停止计算,完成异或运算;
获取完成异或运算的第二异或结果的最高位的数值,所述最高位的数据为所述待编码比特序列与对应的编码矩阵列向量的内积运算结果。
8.如权利要求1-3中任一项所述的NR Polar编码的简化实现方法,其特征在于,所述设定比特长度的数据类型包括1字节字符型、2字节短整型、4字节整型或4字节长整型。
9.如权利要求2、3或5中任一项所述的NR Polar编码的简化实现方法,其特征在于,若干个第一序列、若干个第二序列和若干个与运算值的个数值均为所述编码矩阵的阶数除以所述比特数的值。
10.一种计算机可读存储介质,其特征在于,所述介质上存储有程序,所述程序能够被处理器执行以实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410122113.2A CN117650872B (zh) | 2024-01-30 | 2024-01-30 | 一种NR Polar编码的简化实现方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410122113.2A CN117650872B (zh) | 2024-01-30 | 2024-01-30 | 一种NR Polar编码的简化实现方法及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117650872A CN117650872A (zh) | 2024-03-05 |
CN117650872B true CN117650872B (zh) | 2024-05-07 |
Family
ID=90046387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410122113.2A Active CN117650872B (zh) | 2024-01-30 | 2024-01-30 | 一种NR Polar编码的简化实现方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117650872B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106253913A (zh) * | 2016-07-29 | 2016-12-21 | 山东科技大学 | 极化码的块编码器及其编码方法 |
CN108809506A (zh) * | 2017-05-05 | 2018-11-13 | 华为技术有限公司 | 一种编码方法及装置 |
CN113472363A (zh) * | 2020-03-31 | 2021-10-01 | 华为技术有限公司 | 编码方法及装置 |
WO2023024987A1 (zh) * | 2021-08-24 | 2023-03-02 | 华为技术有限公司 | 一种编码、译码方法及通信装置 |
-
2024
- 2024-01-30 CN CN202410122113.2A patent/CN117650872B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106253913A (zh) * | 2016-07-29 | 2016-12-21 | 山东科技大学 | 极化码的块编码器及其编码方法 |
CN108809506A (zh) * | 2017-05-05 | 2018-11-13 | 华为技术有限公司 | 一种编码方法及装置 |
CN113472363A (zh) * | 2020-03-31 | 2021-10-01 | 华为技术有限公司 | 编码方法及装置 |
WO2023024987A1 (zh) * | 2021-08-24 | 2023-03-02 | 华为技术有限公司 | 一种编码、译码方法及通信装置 |
Non-Patent Citations (1)
Title |
---|
并行高吞吐率多模极化码编码器设计;刘丽华;管武;梁利平;;计算机工程;20180313(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117650872A (zh) | 2024-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | FPGA-based Niederreiter cryptosystem using binary Goppa codes | |
CN102084335B (zh) | 任意伽罗瓦域算术在可编程处理器上的实施 | |
CN101610088B (zh) | 基于具有安全特性的压缩技术来编码数据的系统和方法 | |
Arndt | Matters Computational: ideas, algorithms, source code | |
US9134953B2 (en) | Microprocessor Shifter Circuits Utilizing Butterfly and Inverse Butterfly Routing Circuits, and Control Circuits Therefor | |
JP3505266B2 (ja) | プログラム実行装置 | |
CN110768785B (zh) | 一种编、解码方法、相关装置及计算机设备 | |
JP3754772B2 (ja) | 誤り検出訂正装置及び方法 | |
US8843810B2 (en) | Method and apparatus for performing a CRC check | |
CN110210211A (zh) | 一种数据保护的方法和计算设备 | |
King et al. | Binary templates for comma-free DNA codes | |
Deshpande et al. | Fast and efficient hardware implementation of HQC | |
CN113222159A (zh) | 一种量子态的确定方法及装置 | |
US20020154767A1 (en) | Tamper resistance device | |
US20080288756A1 (en) | "or" bit matrix multiply vector instruction | |
CN117650872B (zh) | 一种NR Polar编码的简化实现方法及计算机可读存储介质 | |
WO2021179697A1 (zh) | 一种在虚拟机中执行功能模块的方法和装置 | |
Hilewitz et al. | Fast bit gather, bit scatter and bit permutation instructions for commodity microprocessors | |
WO2023124371A1 (zh) | 数据处理装置、方法、芯片、计算机设备及存储介质 | |
CN113222151A (zh) | 一种量子态的变换方法及装置 | |
CN113222160A (zh) | 一种量子态的转换方法及装置 | |
US20050154773A1 (en) | Data processing apparatus and method for performing data processing operations on floating point data elements | |
CN114928363A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112232025B (zh) | 一种字符串存储方法、装置及电子设备 | |
CN114153409B (zh) | 光栅操作电路、装置、显示控制系统及显示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |