CN112054808A - Polar码的编码方法及装置 - Google Patents
Polar码的编码方法及装置 Download PDFInfo
- Publication number
- CN112054808A CN112054808A CN202011048580.3A CN202011048580A CN112054808A CN 112054808 A CN112054808 A CN 112054808A CN 202011048580 A CN202011048580 A CN 202011048580A CN 112054808 A CN112054808 A CN 112054808A
- Authority
- CN
- China
- Prior art keywords
- code length
- output
- bit
- circuit
- code
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 6
- 241000764238 Isis Species 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 241000169170 Boreogadus saida Species 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 101150050759 outI gene Proteins 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
技术领域
本发明涉及无线通信系统,尤其涉及Polar码的编码方法与编码器。
背景技术
为了实现可靠的信号传输,编码学家在过去的半个多世纪提出多种纠错码技术如里所码(RS码)、卷积码,Turbo码等,并在各种通信系统中取得了广泛的应用。但是以往所有实用的编码方法都未能达到香农于1948年所给出的信道传输的容量极限(也称为香农界)。2008年在国际信息论ISIT会议上,Arikan首次提出了信道极化的概念,基于该理论,他给出了人类已知的第一种能够被严格证明达到信道容量的信道编码方法,并命名为极化码(Polar Code)。Polar码具有明确而简单的编码及译码算法。通过信道编码学者的不断努力,当前Polar码所能达到的纠错性能超过目前广泛使用的Turbo码、LDPC码。因此Polar码在5G标准中被采用,被确定为5G eMBB场景控制信道的编码方案。
在数字通信系统中,当有发送信源信息的需求产生后,首先进行信源编码将其变成能够传输的数字序列,然后对这一段序列进行信道编码。Polar码属于线性分组码,它通过生成矩阵来实现编码。Polar码的码长只能为2的正整数幂,当码长为2N时,它的生成矩阵为核心矩阵F的N次克罗内克积(nth Kronecker power),F定义如下
当码长为21时,可表示为如下
因此x0=u0+u1,x1=u1,其中加法为模2加法,即异或运算,本发明所称的加法均为模2加法,由此可得到码长为2时的编码图,如图1所示,图中y0,y1为经过信道传输后的信号,W为信道转移概率。
当码长为22时,生成矩阵G4为
[x0,x2,x1,x3]=[u0,u1,u2,u3]G4
因此有
x0=u0+u1+u2+u3
x2=u1+u3
x1=u2+u3
x3=u3
由此可得到码长为4时的编码图,如图2所示,图2中略去了信道部分,此图包含两级,注意编码结果不是[x0,x1,x2,x3],而是[x0,x2,x1,x3],这是因为Polar编码中的倒序重排(reverse shuffle)形成的。
按照这种方式可以得出码长为任意时的编码图,图3(a)示出了码长为16时的编码图,它需要32个异或门,它的关键电路跨越4级,长度为4,图3(b)中的粗黑实线示出了它的关键电路。
以上方式为根据生成矩阵直接设计出的全并行编码器。Polar码长越长,越接近香农极限,因此码长越长越好,在5G标准中编码序列码长最大为1024,随着码长变长,全并行方式所需的存储器和异或门的数量迅速增长,关键路径也相应变长,在1024位码长全并行电路中,关键路径为10。
为解决关键路径和异或门的数量迅速增长的问题,通常需要对电路进行复用,利用同一电路反复计算,因此采用部分并行的方式,减少异或门的数量,从而减少硬件体积。图4示出了部分并行电路的电路图,它可以处理16位码长,但仅是4位并行,此图包含4级。在该方案中存在一条关键路径,图5中黑色粗实线示出了图4方案中从输入到输出经过的运算最长的逻辑路径,此关键路径跨越了4级,长度为4。利用此种方式设计的处理码长为1024的电路,关键路径将达到10。
在集成电路设计中,关键路径过长,会带来很多问题,例如,延长编码器的处理时间,大大降低了编码器的通量,严重影响了编码器的性能。而图4这种电路复用方式与全并行电路相比,并没有能缩短关键路径。
发明内容
本发明针对上述问题,根据本发明的第一方面,提出一种Polar码编码的方法,包括:
在本发明的一个实施例中,还包括逐次扩展电路,其中用于每一次扩展的电路包括一个2T位的寄存器,T为大于N的任意正整数,一个2TXOR异或门,其中2T为本次扩展前的码长,将待编码的数字序列 分为和两部分,其中 使用所述全并行编码器与本次扩展之前的扩展电路以及所述寄存器和异或门:
在本发明的一个实施例中,扩展前的编码输出和每一次扩展的编码输出,可以直接输出。
根据本发明的第三方面,提供一种计算机可读存储介质,其中存储有一个或者多个计算机程序,所述计算机程序在被执行时用于实现本发明的Polar码编码方法。
根据本发明的第四方面,提供一种计算系统,包括:存储装置、以及一个或者多个处理器;其中,所述存储装置用于存储一个或者多个计算机程序,所述计算机程序在被所述处理器执行时用于实现本发明的Polar码编码方法。
与现有技术相比,本发明的实施例的优点在于:在不增加硬件的情况下,缩短了关键路径,大大提升编码器的速率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了码长为2的Polar码编码示意图;
图2示出了码长为4的Polar码编码示意图;
图3(a)示出了码长为16的Polar码全并行编码电路示意图;
图3(b)示出了码长为16的Polar码全并行编码电路关键路径示意图;
图4示出了码长为16的4位并行Polar码编码电路示意图;
图5示出了码长为16的4位并行Polar码编码电路关键路径示意图;
图6示出了电路C8的示意图;
图7示出了根据本发明实施例的电路C3+1的示意图;
图8示出了根据本发明实施例的电路C5+5的示意图。
图9示出了根据本发明实施例的电路C5+5的扩展电路的关键路径示意图。
具体实施方式
如背景技术中所介绍,目前的Polar编码器存在关键路径过长的问题。为此,本专利发明人进行了研究,提出了一种Polar码编码电路的构建方法。
以图3(a)所示码长16的全并行电路为例介绍此构建方法,图3(a)电路包含4级,图中wx,y表示第x级的第y比特输出。
用CL表示码长为L的编码电路,对于图3(a)所示的16位全并行编码电路,其电路表示为C16,不考虑第四级,仅看前三级,上半部分电路与下半部分电路是相同的,因此可以将前三级上半部分电路与下半部分电路复用,只保留一半的电路,例如只留下前三级上半部分的电路,令其为电路C8,如图6所示。当由C8处理图3(a)的C16的输入u0,u1,u2...u15时,需分两次处理,第一次输入u0,u1,u2...u7,得到输出w3,0,w3,1,w3,2,...w3,7,第二次输入u8,u9,u10...u15,得到输出w3,8,w3,9,w3,10,...w3,15。注意本发明无需考虑Polar编码的倒序重排问题。
对于C16中第四级的电路,需要将两次输出保存起来,再将两次输出按位异或操作获得第四级低8位的输出,即x0,x8,x4,x12,x2,x10,x6,x14,而第二次输出的w3,8,w3,9,w3,10,...w3,15直接为第四级高8位的输出,即x1,x9,x5,x13,x3,x11,x7,x15。
由此,可以获得图7所示的电路,其中8位Polar编码器即为图6中的C8电路,两个8位寄存器分别存储两次计算结果,将两个8位寄存器按位异或后输出到16位寄存器的低8位,将存储第二次输出结果的寄存器中的值直接输出到16位寄存器的高8位。
通过这种方法将码长为8的编码电路C8扩展为码长16位的编码电路。此方法也可对任意码长的电路进行扩展。
首先定义1x k的矩阵上的扩展运算符#,对于两个1x k的矩阵a=(a1,a2...ak)和b=(b1,b2...bk),扩展运算结果为一个长度为1x 2k的矩阵c=(c1,c2...ck,ck+1...c2k),
即c=a#b,其中
ci=bi,i=k+1,k+2...2k
将以下称为扩展2:ci=bi,i=k+1,k+2...2k
扩展运算包括扩展1和扩展2。
步骤400:将x1#x2作为码长为2N+1的编码输出
根据本发明的一个实施例,上述编码模块可以采用硬件电路实现,如图7中的8位Polar编码器,也可以为任意硬件、软件以及软硬件的结合,用实现码长为2N+1的编码时也可以采用任意硬件、软件以及软硬件的结合的方法。
图7中电路分为两部分,一部分为码长2N全并行编码器,另一部分为扩展电路,扩展电路在码长2N全并行编码器的基础上实现码长2N+1的编码。图7中全并行编码器完成码长8的编码,扩展电路实现了码长16的编码,扩展了一次。可以根据需要选择全并行编码器支持的码长2N,码长2N可以为任意2的正整数次幂,而扩展电路部分可以扩展多次,在全并行编码器的基础上实现长于2N的任意码长的编码。
例如针对5G标准的1024码长的需求,可以选择32位码长的全并行编码器,以及扩展5次的扩展电路,如图8所示。
因此可以在前述步骤400后再将编码电路扩展一次或多次以实现码长为2N+1+z的编码,z为任意正整数,所述方法需执行步骤500z次:
步骤500:用N+1替换N,执行步骤100、200、300和400
此外图8中的电路还可以实现码长32、64、128、256、512的编码,标示为1的数据线可输出码长为32的编码,标示为2的数据线可输出码长为64的编码,标示为3、4、5的数据线可分别输出码长为128、256、512的编码。
当使用图8电路进行编码时,先使用全并行32位Polar编码器两次,两次结果和分别存在两个32位的寄存器中,然后求取64位编码结果利用异或门32XOR完成的扩展1,并输出到64位数据线的低32位,的扩展2则是将直接输出到64位数据线的高32位,则此时64位数据线上为即完成64位码长编码,完成了第一次扩展,编码结果可以通过标示为2的数据线输出。
如果要进行128位码长的编码,需将经64位数据线存入64寄存器中。再使用全并行32位Polar编码器两次,两次编码结果和分别存在两个32位寄存器中,覆盖掉原有的和对和扩展运算后,输出64位码长的编码结果至64位数据线,这和从和获取方法相同。
再对64位数据线上的与存储在64位寄存器中的进行扩展运算求取128位编码结果利用异或门64XOR完成的扩展1,并输出到128位数据线的低64位,的扩展2则是将直接输出到128位数据线的高64位,则此时128位数据线上为即完成128位码长编码,完成了第二次扩展,编码结果可以通过标示为3的数据线输出。
如果要进行256位码长的编码,需将经128位数据线存入128位寄存器中,再用获取的方法获取将输出到128位数据线上,对128位数据线上的和128位寄存器中的求取256位编码结果当使用图8电路进行256位码长编码时,全并行32位Polar编码器需要编码256/32=8次,其它依次类推。
从第二次扩展开始,将本次扩展前的编码结果存放在2T位的寄存器中,T为大于N的任意正整数,采用和相同的编码方法获取将输出到2T位数据线上,对2T位数据线上的和2T位的寄存器中求取扩展运算结果使用2TXOR异或门进行扩展1,并输出到2T+1位数据线的低2T位,扩展2则是将输出到2T+1位数据线的高2T位,此时2T+1位数据线上的为码长为2T+1的编码结果。
图8中的电路32位寄存器有两个,而64位、128位、256位、512位寄存器各有一个。32位寄存器可以仿照其它位的寄存器只设置一个,但是在扩展电路中由数据线和异或门连接也形成的关键路径,图9中的粗黑实线示出了图8电路的扩展电路中的关键路径,长度为5,而全并行32位Polar编码器中关键路径为5,如果不断开两条关键路径,关键路径长度将达10。通过设置寄存器可以防止两条关键路径连通,使整个电路的关键路径仍为5。图9左侧的32位寄存器断开了全并行32位Polar编码器中的关键路径与扩展电路中的关键路径的连接。
用CN+E表示上述全并行编码电路+扩展电路,N表示全并行编码电路部分码长为2N,E表示扩展电路部分扩展的次数,则图7为C3+1,图8为C5+5,根据上述可知,N和E可根据需要设为任意正整数,例如,可以选用C4+6,C3+7,C6+4,C7+3等的电路。同样地,扩展电路中数据线和异或门连接会形成关键路径,需要在对全并行编码电路的第一次扩展中,使用寄存器将全并行编码电路中的关键路径与扩展电路中的关键路径断开。
在CN+E中对全并行编码电路的第一次扩展总结为将全并行编码和分别存放在2N位的寄存器中,求取扩展运算结果使用2NXOR异或门进行扩展1,并输出到2N+1位数据线的低2N位,扩展2则是将输出到2N+1位数据线的高2N位,此时2N+1位数据线上的为码长为2N+1的编码结果。
CN+E电路中的全并行编码电路部分也可以用其它电路代替,例如C4+6的电路中,码长16位的全并行编码电路可以用图4中的电路代替。
图7所示的C3+1电路与图4相比,硬件没有增加,图7电路关键路径为3,而图4电路关键路径为4。为支持5G标准要求的最大码长1024的Polar码,以图4方式扩展后,关键路径为10,而图8中的关键路径仅为5。图8电路在主频为1Ghz时该编码器的吞吐量达到32Gbps。采用这种方式的编码架构,实现高吞吐量的同时并没有增加硬件代价,最关键的是避免了长关键路径的存在。
应当理解,可以使用编程和/或工程技术来生产软件、固件、硬件或其任何组合的方式,将上述系统和方法实现为方法、设备或制造产品。另外,可以将上述系统和方法作为嵌入在一个或多个制造产品之上或之中的一个或多个计算机可读程序来提供。本文所使用的术语“制造产品”旨在包括可从一个或多个计算机可读装置、固件、可编程逻辑、存储装置(例如EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子装置、计算机可读非易失性存储单元(例如CD-ROM、USB闪存、硬盘驱动器等)可访问的或嵌入其中的代码或逻辑。可以从文件服务器访问该制造产品,该文件服务器经由网络传输线、无线传输介质、在空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问。该制造产品可以是闪存卡或磁带。该制造产品包括硬件逻辑以及嵌入在计算机可读介质中的由处理器执行的软件或可编程代码。通常,计算机可读程序可以以任何编程语言(例如LISP、PERL、C、C++、C#、PROLOG)或任何字节代码语言(例如JAVA)实现。软件程序可以作为目标代码存储在一个或多个制造产品之上或之中。上述系统可以提供那些组件中的任意的多个组件或那些组件中的每一个组件,并且这些组件可以在独立的机器上或者在一些实施例中在分布式系统中的多个机器上提供。
为使本领域任何普通技术人员能够实现或者使用本公开内容,上面围绕本公开内容进行了描述。对于本领域普通技术人员来说,对本公开内容进行各种修改是显而易见的,并且,本文定义的通用原理也可以在不脱离本公开内容的精神或保护范围的基础上适用于其它变型。此外,除非另外说明,否则任何方面和/或实施例的所有部分或一部分可以与任何其它方面和/或实施例的所有部分或一部分一起使用。因此,本公开内容并不限于本文所描述的例子和设计方案,而是与本文公开的原理和新颖性特征的最广范围相一致。
Claims (6)
4.根据权利要求2或3所述的电路,扩展前的编码输出和每一次扩展的编码输出,可以直接输出。
5.一种计算机可读存储介质,其中存储有一个或者多个计算机程序,所述计算机程序在被执行时用于实现如权利要求1所述的方法。
6.一种计算系统,包括:
存储装置、以及一个或者多个处理器;
其中,所述存储装置用于存储一个或者多个计算机程序,所述计算机程序在被所述处理器执行时用于实现如权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011048580.3A CN112054808B (zh) | 2020-09-29 | 2020-09-29 | Polar码的编码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011048580.3A CN112054808B (zh) | 2020-09-29 | 2020-09-29 | Polar码的编码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112054808A true CN112054808A (zh) | 2020-12-08 |
CN112054808B CN112054808B (zh) | 2024-03-08 |
Family
ID=73606409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011048580.3A Active CN112054808B (zh) | 2020-09-29 | 2020-09-29 | Polar码的编码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112054808B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710264A (zh) * | 2012-06-29 | 2012-10-03 | 华为技术有限公司 | 译码方法和装置 |
CN105897279A (zh) * | 2016-03-29 | 2016-08-24 | 中山大学 | 一种基于分组马尔可夫叠加传输的系统化编码方法 |
-
2020
- 2020-09-29 CN CN202011048580.3A patent/CN112054808B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710264A (zh) * | 2012-06-29 | 2012-10-03 | 华为技术有限公司 | 译码方法和装置 |
CN105897279A (zh) * | 2016-03-29 | 2016-08-24 | 中山大学 | 一种基于分组马尔可夫叠加传输的系统化编码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112054808B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100502609B1 (ko) | Ldpc 코드를 이용한 부호화기 및 부호화 방법 | |
US8745472B2 (en) | Memory with segmented error correction codes | |
KR102386191B1 (ko) | 폴라 코드용의 블록 단위의 병렬 동결 비트 생성 | |
US11165448B2 (en) | Low latency polar coding and decoding by merging of states of the polar code graph | |
US8700971B2 (en) | Parallel residue arithmetic operation unit and parallel residue arithmetic operating method | |
CN110741558B (zh) | 具有逻辑三维存储器的极化编码器、通信单元、集成电路及其方法 | |
CN113110954A (zh) | 一种crc码并行计算方法、装置及其应用 | |
JP2019525638A (ja) | 2のべき乗でない長さに拡張されたポーラ符号の符号化および復号化 | |
Alhassan et al. | The Huffman’s method of secured data encoding and error correction using residue number system (RNS) | |
US11075715B2 (en) | Encoding method and apparatus | |
EP2309650A1 (en) | A systematic encoder with arbitrary parity positions | |
CN109245775B (zh) | 一种译码器及其实现译码的方法 | |
CN112054808A (zh) | Polar码的编码方法及装置 | |
CN100417031C (zh) | 宽带无线接入系统中里德索洛门卷积级联码的实现方法 | |
US11677419B2 (en) | Cyclic redundancy check, CRC, decoding using the inverse CRC generator polynomial | |
CN114342265A (zh) | 使用存储在查找表lut中的生成器矩阵的部分并行循环冗余校验crc计算 | |
CN111600613B (zh) | 一种校验方法、装置、译码器、接收机及计算机存储介质 | |
CN111082889A (zh) | 一种Gold序列生成方法及系统 | |
CN116186745B (zh) | 哈希加密方法、非易失性可读存储介质及电子设备 | |
WO2022022311A1 (zh) | 产生伪随机序列的方法和装置、电子设备、存储介质 | |
Lakshmi et al. | Area efficient implementation of short length QC-LDPC codes for Ultra-Reliable Low-Latency Communication (URLLC) application | |
CN116722967A (zh) | 一种轻量级联合编码的密码实现方法及系统 | |
CN116208180A (zh) | 一种bch码高效并行编解码方法 |
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 |