CN108809506B - 一种编码方法及装置 - Google Patents
一种编码方法及装置 Download PDFInfo
- Publication number
- CN108809506B CN108809506B CN201710314164.5A CN201710314164A CN108809506B CN 108809506 B CN108809506 B CN 108809506B CN 201710314164 A CN201710314164 A CN 201710314164A CN 108809506 B CN108809506 B CN 108809506B
- Authority
- CN
- China
- Prior art keywords
- column
- check
- vector
- bit
- sequence
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- 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/27—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 using interleaving techniques
- H03M13/2703—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 using interleaving techniques the interleaver involving at least two directions
- H03M13/271—Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- 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
-
- 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
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/27—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 using interleaving techniques
-
- 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/27—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 using interleaving techniques
- H03M13/2703—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 using interleaving techniques the interleaver involving at least two directions
-
- 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/27—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 using interleaving techniques
- H03M13/2778—Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of sub-matrices
-
- 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/27—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 using interleaving techniques
- H03M13/2792—Interleaver wherein interleaving is performed jointly with another technique such as puncturing, multiplexing or routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
Abstract
本申请涉及通信技术领域,公开了一种编码方法及装置,用以提供一种新的校验编码方式。该方法为:发送端对待编码信息进行校验编码,获得校验编码码字,校验编码码字中信息比特的长度为K,校验比特的长度为J;发送端对校验编码码字进行交织操作;其中,交织操作所采用的交织序列S包括J个子序列,第i个子序列包括中间结果向量Ti中元素为1的位置索引值和(K+i)的值,1≤i≤J,i为整数,Ti=(~M)&(Vi),M=M︱(Vi),Vi为校验部分矩阵P的列向量,P为校验编码的系统形式生成矩阵G的子矩阵,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算;发送端对交织操作后的校验编码码字进行Polar编码。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种编码方法及装置。
背景技术
循环冗余校验(Cyclic Redundancy Check,CRC)编码是数据通信领域中最常用的一种查错校验码,CRC编码的特征是信息字段和校验字段的长度可以任意选定。在通信系统中, CRC编码用于检测数据的传输是否正确,以及控制虚警(英文:False Alarm)的发生概率。
CRC编码的一种实现方式为移位寄存器形式。图1为一种常用的移位寄存器(简称寄存器)形式实现CRC编码的方式,寄存器的反馈抽头由CRC多项式[1 0 1 0 1]决定,寄存器内容初始化为预设值。编码时,待编码信息逐比特从一侧移入寄存器,反馈抽头与寄存器对应状态进行比特异或运算,从而寄存器状态发生变化。当所有待编码比特移入寄存器后,再移入与CRC校验长度相等位数的比特0,然后读取寄存器状态,将寄存器状态作为 CRC校验比特,附在待编码信息之后,作为CRC编码码字。发送端对CRC编码进行信道编码,接收端进行对应的信道译码,在信道译码结束后,通过CRC校验判断译码结果是否译码成功。
但是,对于顺序译码(即串行译码)的译码方式,如果采用上述传统的CRC编码方式,在信道译码结束后才能进行CRC校验,使得译码过程复杂,占用时间较长,且浪费译码资源。
发明内容
本申请实施例提供一种编码方法及装置,用以解决采用现有CRC编码方式译码过程复杂从而浪费译码资源的问题。
本申请实施例提供的具体技术方案如下:
第一方面,提供一种编码方法,发送端采用交织的方式,将待编码信息的校验比特穿插在信息比特之间,当接收端采用顺序译码时,每译码出校验比特,即可进行校验,若校验不通过,可以提前结束译码,有助于避免在信道译码结束后再进行校验造成了译码资源浪费的问题,缩短了译码所用时长,提高了译码的效率。
在一个可能的设计中,发送端对待编码信息进行校验编码,获得校验编码码字,所述校验编码码字包括信息比特和校验比特,信息比特的长度为K,校验比特的长度为J,所述发送端对所述校验编码码字进行交织操作,其中,所述交织操作所采用的交织序列S包括J个子序列,第i个所述子序列包括中间结果向量Ti中元素为1的位置索引值和(K+i)的值, 1≤i≤J,i为整数,Ti=(~M)&(Vi),M=M︱(Vi),M为掩码向量,Vi为校验部分矩阵P 的列向量,P为校验编码的系统形式生成矩阵G的子矩阵,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算;所述发送端对交织操作后的校验编码码字进行Polar 编码。可选的,Ti、M均为1×K的向量。
可选的,在硬件实现时,中间结果向量Ti可占据地址连续的一段存储空间。
由此看出,交织序列的计算方式更加简单易实现,有效节省了硬件开销,有助于提高编码资源的利用率。
在一个可能的设计中,所述发送端采用动态计算的方式或者离线存储的方式获取所述交织序列S。具体地,所述发送端对所述编码码字进行交织操作之前,计算所述交织序列S;或者,所述发送端离线计算并存储所述交织序列S,在所述发送端对所述编码码字进行交织操作时,所述发送端按照存储的所述交织序列S对所述编码码字进行交织操作。
在一个可能的设计中,所述J个子序列中i取值的顺序可以按照i值从小到大的顺序,或者按照i值从大到小的顺序,或者按照列向量Vi中元素1的个数从少到多的顺序,或者按照列向量Vi中元素1的个数从多到少的顺序。
第二方面,提供一种编码方法,发送端对待编码信息进行校验编码,获得编码码字,所述编码码字包括信息比特和校验比特,信息比特的长度为K,校验比特的长度为J,所述发送端对所述编码码字进行交织操作,所述发送端对交织操作后的校验编码码字进行Polar 编码。其中,所述交织操作所采用的交织序列S按照以下方式获取:计算校验编码的生成矩阵G,提取所述生成矩阵G中的校验部分矩阵P;初始化掩码向量M、中间结果向量Ti和交织序列S;按照设定的顺序逐列读取所述校验部分矩阵P的列向量Vi,每读取一个列向量Vi:执行Ti=(~M)&(Vi)计算,并将Ti中元素为1的位置索引值以及(K+i)的值依次记录于S的尾部,i为Vi在P中的列索引值,按照M=M︱(Vi)更新M。这样,当接收端采用顺序译码时,每译码出校验比特,即可进行校验,若校验不通过,可以提前结束译码,有助于避免在信道译码结束后再进行校验造成了译码资源浪费的问题,缩短了译码所用时长,提高了译码的效率。
可选的,Ti、M均为1×K的向量。
可选的,在硬件实现时,中间结果向量Ti可占据地址连续的一段存储空间。
由此看出,交织序列的计算方式更加简单易实现,有效节省了硬件开销,有助于提高编码资源的利用率。
在一个可能的设计中,按照设定的顺序逐列读取所述校验部分矩阵的列向量Vi,通过以下方式实现:按照列索引值从小到大的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,按照列索引值从大到小的顺序,逐列读取所述校验部分矩阵的列向量Vi。
第三方面,提供一种编码方法,发送端通过以下方式离线计算交织序列S:计算校验编码的生成矩阵G,提取所述生成矩阵G中的校验部分矩阵P;初始化掩码向量M、中间结果向量Ti和交织序列S;按照设定的顺序逐列读取所述校验部分矩阵P的列向量Vi,每读取一个列向量Vi:执行Ti=(~M)&(Vi)计算,并将Ti中元素为1的位置索引值以及(K+i) 的值依次记录于S的尾部,i为Vi在P中的列索引值,按照M=M︱(Vi)更新M。发送端存储所述交织序列S,发送端在获取待编码信息后,对待编码信息进行校验编码,获得编码码字,采用存储的交织序列S对所述编码码字进行交织操作,所述发送端对交织操作后的校验编码码字进行Polar编码。这样,当接收端采用顺序译码时,每译码出校验比特,即可进行校验,若校验不通过,可以提前结束译码,有助于避免在信道译码结束后再进行校验造成了译码资源浪费的问题,缩短了译码所用时长,提高了译码的效率。
可选的,Ti、M均为1×K的向量。
可选的,在硬件实现时,中间结果向量Ti可占据地址连续的一段存储空间。
由此看出,交织序列的计算方式更加简单易实现,有效节省了硬件开销,有助于提高编码资源的利用率。
在一个可能的设计中,按照设定的顺序逐列读取所述校验部分矩阵的列向量Vi,通过以下方式实现:按照列索引值从小到大的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,按照列索引值从大到小的顺序,逐列读取所述校验部分矩阵的列向量Vi。
第四方面,提供一种编码方法,发送端获取待编码信息向量U;所述发送端计算校验编码的系统形式生成矩阵G,并提取所述G中的校验部分矩阵P;所述发送端初始化掩码向量M、第一中间结果向量T1i、第二中间结果向量T2i和校验编码码字C;所述发送端按照设定的顺序逐列读取所述校验部分矩阵P的列向量Vi,每读取一个列向量Vi,执行以下操作:T1i=(~M)&(Vi)计算;U和Vi进行逐比特与运算,得到T2i;确定T1i中元素为 1的位置索引,将T2i中所述位置索引对应的元素、和T2i中所有元素进行异或运算的结果记录于C的尾部,按照M=M︱(Vi)更新M,其中,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算;所述发送端对所述校验编码码字C进行Polar编码。这样,当接收端采用顺序译码时,每译码出校验比特,即可进行校验,若校验不通过,可以提前结束译码,有助于避免在信道译码结束后再进行校验造成了译码资源浪费的问题,缩短了译码所用时长,提高了译码的效率。
在一个可能的设计中,所述发送端按照设定的顺序逐列读取所述校验部分矩阵P的列向量Vi,通过以下方式实现:所述发送端按照列索引值从小到大的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,所述发送端按照列索引值从大到小的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,所述发送端按照列向量中元素1的个数从少到多的顺序,逐列读取所述校验部分矩阵的列向量Vi;或者,所述发送端按照列向量中元素1的个数从多到少的顺序,逐列读取所述校验部分矩阵的列向量Vi。
第五方面,提供一种译码方法,接收端获取待译码的序列,接收端对待译码的序列进行Polar码译码,并对译码后的序列进行解交织操作,假设信息比特的长度为K,校验比特的长度为J,所述解交织操作所用的解交织序列S’满足S’(S(j))=j,1≤j≤(K+J),j为整数,其中S为交织序列,交织序列S包括J个子序列,一个所述子序列包括中间结果向量Ti中元素为1的位置索引值和(K+i)的值,1≤i≤J,i为整数,Ti=(~M)&(Vi),M=M︱(Vi), M为掩码向量,Vi为校验部分矩阵P的列向量,P为校验编码的系统形式生成矩阵G的子矩阵,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算。
可选的,Ti、M均为1×K的向量。
在一个可能的设计中,所述接收端采用动态计算的方式或者离线存储的方式获取所述解交织序列S’。具体地,所述接收端对所述译码后的序列进行解交织操作之前,计算所述解交织序列S’;或者,所述接收端离线计算并存储所述解交织序列S’,在所述接收端对所述编码码字进行解交织操作时,所述接收端按照存储的所述解交织序列S’对所述译码后的序列进行解交织操作。
在一个可能的设计中,所述J个子序列中i取值的顺序可以按照i值从小到大的顺序,或者按照i值从大到小的顺序,或者按照列向量Vi中元素1的个数从少到多的顺序,或者按照列向量Vi中元素1的个数从多到少的顺序。
第六方面,提供一种译码方法,接收端通过以下方式离线计算解交织序列S’:计算校验编码的生成矩阵G,提取所述生成矩阵G中的校验部分矩阵P;初始化掩码向量M、中间结果向量Ti和交织序列S;按照设定的顺序逐列读取所述校验部分矩阵P的列向量Vi,每读取一个列向量Vi:执行Ti=(~M)&(Vi)计算,并将Ti中元素为1的位置索引值以及(K+i)的值依次记录于S的尾部,i为Vi在P中的列索引值,按照M=M︱(Vi)更新M;按照S’(S(j))=j获取S’,1≤j≤(K+J),j为整数;接收端存储所述解交织序列S’,接收端在获取待译码的序列后,对待译码的序列进行Polar码译码,并采用存储的解交织序列S’对译码后的序列进行解交织操作。
在一个可能的设计中,按照设定的顺序逐列读取所述校验部分矩阵的列向量Vi,通过以下方式实现:按照列索引值从小到大的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,按照列索引值从大到小的顺序,逐列读取所述校验部分矩阵的列向量Vi。
第七方面,提供一种编码装置,该装置具有实现上述第一方面和第一方面的任一种可能的设计中发送端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,当所述功能的部分或全部通过硬件实现时,所述编码装置包括:输入接口电路,用于获取待编码信息;逻辑电路,用于执行上述第一方面和第一方面的任一种可能的设计中发送端的行为;输出接口电路,用于输出Polar编码后的比特序列。
可选的,所述编码装置可以是芯片或者集成电路。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述编码装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述编码装置可以实现如上述第一方面和第一方面的任一种可能的设计中所述的方法。
可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述编码装置包括处理器。用于存储程序的存储器位于所述编码装置之外,处理器通过电路/电线与存储器连接,用于读取并执行所述存储器中存储的程序。
第八方面,提供一种编码装置,该装置具有实现上述第二方面和第二方面的任一种可能的设计中发送端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,当所述功能的部分或全部通过硬件实现时,所述编码装置包括:输入接口电路,用于获取待编码信息;逻辑电路,用于执行上述第二方面和第二方面的任一种可能的设计中发送端的行为;输出接口电路,用于输出Polar编码后的比特序列。
可选的,所述编码装置可以是芯片或者集成电路。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述编码装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述编码装置可以实现如上述第二方面和第二方面的任一种可能的设计中所述的方法。
可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述编码装置包括处理器。用于存储程序的存储器位于所述编码装置之外,处理器通过电路/电线与存储器连接,用于读取并执行所述存储器中存储的程序。
第九方面,提供一种编码装置,该装置具有实现上述第三方面和第三方面的任一种可能的设计中发送端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,当所述功能的部分或全部通过硬件实现时,所述编码装置包括:输入接口电路,用于获取待编码信息;逻辑电路,用于执行上述第三方面和第三方面的任一种可能的设计中发送端的行为;输出接口电路,用于输出Polar编码后的比特序列。
可选的,所述编码装置可以是芯片或者集成电路。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述编码装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述编码装置可以实现如上述第三方面和第三方面的任一种可能的设计中所述的方法。
可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述编码装置包括处理器。用于存储程序的存储器位于所述编码装置之外,处理器通过电路/电线与存储器连接,用于读取并执行所述存储器中存储的程序。
第十方面,提供一种编码装置,该装置具有实现上述第四方面和第四方面的任一种可能的设计中发送端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,当所述功能的部分或全部通过硬件实现时,所述编码装置包括:输入接口电路,用于获取待编码信息向量U;逻辑电路,用于执行上述第四方面和第四方面的任一种可能的设计中发送端的行为;输出接口电路,用于输出Polar编码后的比特序列。
可选的,所述编码装置可以是芯片或者集成电路。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述编码装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述编码装置可以实现如上述第四方面和第四方面的任一种可能的设计中所述的方法。
可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述编码装置包括处理器。用于存储程序的存储器位于所述编码装置之外,处理器通过电路/电线与存储器连接,用于读取并执行所述存储器中存储的程序。
第十一方面,提供了一种译码装置,该装置具有实现上述第五方面和第五方面的任一种可能的设计中接收端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,当所述功能的部分或全部通过硬件实现时,所述译码装置包括:输入接口电路,用于获取待译码的序列;逻辑电路,用于执行上述第五方面和第五方面的任一种可能的设计中接收端的行为;输出接口电路,用于输出解交织操作后的比特序列。
可选的,所述译码装置可以是芯片或者集成电路。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述译码装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述译码装置可以实现如上述第五方面和第五方面的任一种可能的设计中所述的方法。
可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述译码装置包括处理器。用于存储程序的存储器位于所述译码装置之外,处理器通过电路/电线与存储器连接,用于读取并执行所述存储器中存储的程序。
第十二方面,提供了一种译码装置,该装置具有实现上述第六方面和第六方面的任一种可能的设计中接收端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,当所述功能的部分或全部通过硬件实现时,所述译码装置包括:输入接口电路,用于获取待译码的序列;逻辑电路,用于执行上述第六方面和第六方面的任一种可能的设计中接收端的行为;输出接口电路,用于输出解交织操作后的比特序列。
可选的,所述译码装置可以是芯片或者集成电路。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述译码装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述译码装置可以实现如上述第五方面和第五方面的任一种可能的设计中所述的方法。
可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述译码装置包括处理器。用于存储程序的存储器位于所述译码装置之外,处理器通过电路/电线与存储器连接,用于读取并执行所述存储器中存储的程序。
第十三方面,提供了一种通信系统,该系统包括第七方面至第十方面任一方面所述的装置,和第十一方面或第十二方面所述的装置。
第十四方面,提供了一种计算机存储介质,用于存储计算机程序,该计算机程序包括用于执行第一方面至第六方面、第一方面至第六方面的任一可能的实施方式中的方法的指令。
第十五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
图1为现有技术中CRC编码方式示意图;
图2为本申请实施例中通信系统架构示意图;
图3为本申请实施例中编码方法流程示意图之一;
图4为本申请实施例中校验编码码字交织示意图;
图5为本申请实施例中编码方法流程示意图之二;
图6为本申请实施例中编码装置结构示意图之一;
图7为本申请实施例中编码装置结构示意图之二;
图8为本申请实施例中编码装置结构示意图之三;
图9为本申请实施例中编码装置结构示意图之四;
图10为本申请实施例中编码装置结构示意图之五;
图11为本申请实施例中译码装置结构示意图之一;
图12为本申请实施例中译码装置结构示意图之二;
图13为本申请实施例中译码装置结构示意图之三。
具体实施方式
下面将结合附图,对本申请实施例进行详细描述。
本申请实施例提供一种编码方法及装置,通过交织方式将校验比特穿插在待编码信息比特之间,当接收端采用顺序译码时,每译码出校验比特,即可进行校验,若校验不通过,可以提前结束译码,有助于避免在信道译码结束后再进行校验造成了译码资源浪费的问题,缩短了译码所用时长,提高了译码的效率。
如图2所示,本申请实施例应用的通信系统200中包括发送端201和接收端202。其中,发送端201可以为基站,接收端202为终端;或者,发送端201为终端,接收端202为基站。基站是一种部署在无线接入网中用以为终端提供无线通信功能的装置。基站可以包括各种形式的宏基站,微基站,中继站,接入点等等。可以应用在不同的无线接入技术的系统中,例如长期演进(Long Term Evolution,LTE)系统中,或者,第五代(5th Generation, 5G)通信系统等更多可能的通信系统中。基站还可以是其他具有基站功能的网络设备,特别地,还可以是D2D通信中担任基站功能的终端。终端可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS)等。
基于图2所示的通信系统架构,本申请实施例中,发送端201对待编码信息进行校验编码和Polar编码,其中,发送端201对校验编码码字进行交织,或者发送端201在校验编码过程中实现将校验比特穿插于信息比特之间,发送端201将编码后的Polar码发送给接收端202,接收端202进行译码和解交织。下面将结合图3和图5详细介绍一下本申请实施例基于同一发明构思提供的两种编码方法。
如图3所示,本申请实施例提供的编码方法之一的具体流程如下所述。
步骤301、发送端获取待编码信息;
步骤302、发送端进行校验编码,获得校验编码码字。
步骤303、发送端对校验编码码字进行交织操作。
步骤304、发送端对交织操作后的校验编码码字进行Polar码编码。
步骤305、接收端获取待译码的序列。
步骤306、接收端对待译码的序列进行Polar码译码。
步骤307、接收端对译码后的序列进行解交织操作。
或者,在步骤304之后,接收端不采用步骤305~步骤307的方式进行译码和解交织。例如,对顺序译码方式,接收端可以在译码过程中,根据译码得到的一部分校验比特对译码得到的一部分信息比特进行校验,若已有的译码结果无法通过校验,则立刻停止译码,并反馈译码失败,否则继续译码。
具体地,发送端进行检验编码的方法可以采用现有技术中的任意一种校验编码方法,例如采用现有的CRC编码方式。发送端进行校验编码后获得的校验编码码字中包括信息比特和校验比特。假设信息比特长度为K,校验比特长度为J。发送端采用交织序列S对校验编码码字进行交织操作。其中,发送端所采用的交织序列S包括J个子序列,J个子序列连续,一个子序列包括中间结果向量Ti中元素为1的位置索引值和(K+i)的值,1≤i≤J,i为整数。i取不同的值,子序列不同。可选的,i的取值顺序可以按照i值从小到大的顺序,或者按照i值从大到小的顺序,或者按照列向量Vi中元素1的个数从少到多的顺序,或者按照列向量Vi中元素1的个数从多到少的顺序,本申请中不作限定。Ti=(~M)&(Vi),M=M ︱(Vi),Vi为校验部分矩阵P的列向量,P为校验编码的系统形式生成矩阵G的子矩阵,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算,可选的,初始化掩码向量M、中间结果向量Ti和交织序列S,例如,初始化掩码向量M和中间结果向量Ti均为长度为K的全0向量。
发送端可以在步骤303之前动态计算上述交织序列S,也可以离线计算并存储上述交织序列S,在步骤303中发送端采用存储的交织序列S对校验编码码字进行交织操作。
以下详细说明一下发送端如何计算上述交织序列S。需要说明的是,发送端采用相同的计算方式离线计算上述交织序列S并存储下来。
为方便说明,假设信息比特长度为K,校验比特长度为J。简要来说,发送端计算校验编码的系统形式生成矩阵G,提取生成矩阵G中的校验部分矩阵P;初始化掩码向量M、中间结果向量Ti和交织序列S,例如,初始化掩码向量M和中间结果向量Ti均为长度为K 的全0向量;按照设定的顺序逐列读取校验部分矩阵P的列向量Vi,1≤i≤J,i为整数。具体地,可以是按照列索引值从小到大的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,按照列索引值从大到小的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,按照列向量中元素1的个数从少到多的顺序,逐列读取所述校验部分矩阵的列向量Vi,也或者,按照列向量中元素1的个数从多到少的顺序,逐列读取所述校验部分矩阵的列向量Vi。当然,还可以按照其他设定顺序读取P的列向量Vi。每读取一个列向量Vi,执行一次下述操作,直到读取完校验部分矩阵P中的所有列向量,具体地,执行Ti=(~M)&(Vi)计算,并将Ti中元素为1的位置索引值以及(K+i)的值依次记录于S的尾部,i为Vi在P中的列索引值,按照M=M︱(Vi)更新M,其中,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算。
下面以校验编码为CRC编码为例,详细介绍一下发送端获取交织序列的步骤。
(1)根据CRC多项式,获取CRC系统形式生成矩阵G,G=[I P]。
其中,G为K行、(K+J)列的系统形式生成矩阵,I为K行、K列的单位矩阵,P为K 行、J列的矩阵,P可以称为校验部分矩阵,从G中提取出校验部分矩阵P。
(2)初始化掩码向量M、中间结果向量Ti和交织序列S。
具体地,掩码向量M和中间结果向量Ti初始化长度为K的全0向量。交织序列S的长度为(K+J)。其中,在硬件实现时,中间结果向量Ti可占据地址连续的一段存储空间。
(3)按照设定顺序逐列读取矩阵P中的列向量。
列向量以Vi表示,1≤i≤J,i为整数。具体地,发送端可以按照列序号从小到大或者从大到小的顺序依次读取列向量,即依次读取P中的第1到第J列,或者,依次读取第J到第1列。发送端还可以按照每列中包含元素1的个数从多到少或者从少到多的顺序依次读取列向量。
每读取一个列向量执行步骤(3.1)~步骤(3.3),直到读取完校验部分矩阵P的所有列向量。
(3.1)将读取的第i列向量Vi与掩码向量M进行逐比特运算,然后赋值给向量Ti。
例如Ti=(~M)&(Vi),其中~为逐比特取非运算,&为逐比特与运算;
(3.2)读取中间结果向量Ti中元素值为1的位置索引值,将读取到的位置索引值和值 (K+i)记录于交织序列S的尾部,记录的顺序可以按照数值从小到大、或从大到小的方式,本申请不作限定。其中,位置索引值可以是值为1的元素在中间结果向量Ti中的序号,或中间结果向量Ti中元素值为1的地址与Ti中第一个元素的地址的差值。
(3.3)更新掩码向量M。
将掩码向量M与向量Vi进行逐比特或运算,将运算后的值更新掩码向量M,例如M=M |(Vi)。
(4)获得交织序列S。
针对接收端来说,在步骤307中,若需要获取解交织序列,则按照解交织序列S’与交织序列S的关系获取,解交织序列S’与交织序列S的关系为:依次取j为1到(K+J),S’(S(j))=j。接收端采用解交织序列S’对译码后的序列进行解交织操作。其中,接收端获取交织序列S 的方法与发送端获取交织序列S的方法相同,重复之处在此不再赘述。同样,接收端也可以在步骤307之前动态计算解交织序列S’,也可以离线计算并存储上述解交织序列S’,在步骤307中接收端采用存储的解交织序列S’对译码后的序列进行解交织操作。
下面举例说明获取交织序列的过程。仍以校验编码为CRC编码为例。例如,信息比特长度K为10,CRC校验编码的校验比特长度J为5。待编码的信息向量U=[1,0,1,1,0,1,0,0,1,1], CRC编码的生成多项式为[1 0 1 0 0 1],按照现有CRC编码方式,得到校验编码码字 C0=[1,0,1,1,0,1,0,0,1,1,1,0,1,0,0]。
那么,发送端获取交织序列S的步骤如下1~5所述。
1、计算CRC编码的系统形式生成矩阵G,如表1。可见,G为K行、(K+J)列的矩阵,即G为10×(10+5)矩阵,G=[I P],I为K行、K列的单位矩阵,即K为10×10的单位矩阵,P为K行、J列的矩阵,即P为10×5的矩阵。其中,P为校验部分矩阵。
表1
2、在G中取出校验部分矩阵P,如表2;
表2
0 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 |
1 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 1 |
3、初始化掩码向量M=[0,0,0,0,0,0,0,0,0,0]、中间结果向量Ti=[0,0,0,0,0,0,0,0,0,0]和交织序列S。
4、逐列读取校验部分矩阵P中的列向量Vi,每读取一列,计算获得一个子序列,将获得的子序列记录在交织序列S的尾部。
具体地,确定校验部分矩阵P的每个列向量中元素1的个数,即[6,6,5,6,7]。按照列向量中元素1的个数由少到多的顺序逐列读取校验部分矩阵P,即按照i=[3,1,2,4,5]的顺序逐列读取校验部分矩阵P中的列向量Vi。当然,读取列向量的顺序可以按照其他方式确定。
首先,读取第3列V3,执行步骤4.1~步骤4.3。
4.1、读取第3列V3,V3=[0,1,1,1,0,1,0,1,0,0],将V3与掩码向量M进行逐比特运算获得向量T3,例如,T3=(~M)&(Vi)=[0,1,1,1,0,1,0,1,0,0];
4.2、读取T3中元素1的序号[2,3,4,6,8],并计算i+K的值,(i+K)=(3+10)=13,将T3中元素为1的序号和(i+K)的值记录于交织序列S,例如,可以按照从小大到的顺序,依次记录于交织序列S,得到S=[2,3,4,6,8,13]。
4.3、更新掩码向量M,例如,可以按照M=M|(Vi)更新,M=M|(Vi)=[0,1,1,1,0,1,0,1,0,0]。
接着,依次读取第1、2、4、5列,类似地,按照上述步骤更新记录交织序列S。具体地,对校验部分矩阵P的第1、2、4、5列的读取及中间结果向量Ti、交织序列S和掩码向量M的变化过程如下,读取矩阵P第1列,得到T1=[0,0,0,0,1,0,1,0,1,0], S=[2,3,4,6,8,13,5,7,9,11],M=[0,1,1,1,1,1,1,1,1,0];读取矩阵P第2列,得到 T2=[0,0,0,0,0,0,0,0,0,1],S=[2,3,4,6,8,13,5,7,9,11,10,12],M=[0,1,1,1,1,1,1,1,1,1];读取矩阵P 第4列,得到T4=[1,0,0,0,0,0,0,0,0,0],S=[2,3,4,6,8,13,5,7,9,11,10,12,1,14], M=[1,1,1,1,1,1,1,1,1,1];读取矩阵P第5列,得到T5=[0,0,0,0,0,0,0,0,0,0], S=[2,3,4,6,8,13,5,7,9,11,10,12,1,14,15],M=[1,1,1,1,1,1,1,1,1,1]。
5、获得交织序列S=[2,3,4,6,8,13,5,7,9,11,10,12,1,14,15]
如图4所示,在获得交织序列S后,采用交织序列S对校验编码码字 C0=[1,0,1,1,0,1,0,0,1,1,1,0,1,0,0]进行交织,得到码字C=[0,1,1,1,0,1,0,0,1,1,1,0,1,0,0]。S中的每一个元素表示:在C中该元素的位置放置C0中位置索引为该元素的元素值,例如,S中的第1个元素为2,表示在C中第1个位置放置C0中第2个元素值,S中的第2个元素为3,表示在C中第2个位置放置C0中第3个元素值。
如图5所示,本申请实施例提供的编码方法之二的具体流程如下所述。
步骤501、发送端获取待编码信息向量U。
假设U的长度为K,预生成的校验比特的长度为J。
步骤502、发送端计算校验编码的系统形式生成矩阵G,并提取生成矩阵G中的校验部分矩阵P。
可选的,校验编码方式可以是CRC编码,根据CRC多项式,通过现有技术获取CRC 系统形式生成矩阵G,G=[I P]。其中,G为K行、(K+J)列的系统形式生成矩阵,I为K行、 K列的单位矩阵,P为K行、J列的矩阵,P可以称为校验部分矩阵,从G中提取出校验部分矩阵P。
步骤503、发送端初始化掩码向量M、第一中间结果向量T1i、第二中间结果向量T2i和校验编码码字C。
具体地,掩码向量M和中间结果向量T i初始化长度为K的全0向量。其中,在硬件实现时,第一中间结果向量T1i可占据地址连续的一段存储空间。校验编码码字C的长度为 (K+J)。
步骤504、发送端按照设定的顺序逐列读取校验部分矩阵P的列向量Vi,1≤i≤J,i为整数。每读取一个列向量Vi,执行以下操作,直到读完P中所有列向量,获得最终的校验编码码字C。
T1i=(~M)&(Vi)计算;U和Vi进行逐比特与运算,得到T2i;确定T1i中元素为1 的位置索引,将T2i中所述位置索引对应的元素、和T2i中所有元素进行异或运算的结果记录于C的尾部,按照M=M︱(Vi)更新M,其中,~表示取非运算,&表示与运算,︱表示或运算。
步骤505、发送端对最终获得的校验编码码字C进行Polar编码。
其中,步骤504中,发送端可以按照列索引值从小到大的顺序,逐列读取校验部分矩阵P的列向量Vi,或者发送端按照列索引值从大到小的顺序,逐列读取校验部分矩阵P的列向量Vi,或者发送端按照列向量中元素1的个数从少到多的顺序,逐列读取校验部分矩阵P的列向量Vi;或者发送端按照列向量中元素1的个数从多到少的顺序,逐列读取校验部分矩阵P的列向量Vi。
下面对图5所示的编码方法之二进行举例说明。仍以校验编码为CRC编码为例。例如, U的长度K为10,CRC校验编码的校验比特长度J为5。U=[1,0,1,1,0,1,0,0,1,1],CRC编码的生成多项式为[1 0 1 0 0 1],则获取校验编码码字C的步骤为:
1)、计算CRC编码的系统形式生成矩阵G,如表3。可见,G为K行、(K+J)列的矩阵,即G为10×(10+5)矩阵,G=[I P],I为K行、K列的单位矩阵,即K为10×10的单位矩阵,P为K行、J列的矩阵,即P为10×5的矩阵。其中,P为校验部分矩阵。
表3
2)、在G中取出校验部分矩阵P,如表4;
表4
0 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 |
1 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 1 |
3)、初始化掩码向量M=[0,0,0,0,0,0,0,0,0,0]、中间结果向量T1i=[0,0,0,0,0,0,0,0,0,0]、中间结果向量T2i=[0,0,0,0,0,0,0,0,0,0]和码字向量C。
4)、逐列读取校验部分矩阵P中的列向量Vi,每读取一列,计算中间结果向量T1i、中间结果向量T2i、码字向量C和掩码向量M,直到读取完校验部分矩阵P中的所有列向量。
具体地,确定校验部分矩阵P的每个列向量中元素1的个数,即[6,6,5,6,7]。按照列向量中元素1的个数由少到多的顺序逐列读取校验部分矩阵P,即按照i=[3,1,2,4,5]的顺序逐列读取校验部分矩阵P中的列向量Vi。当然,读取列向量的顺序可以按照其他方式确定。
首先,读取第3列V3,V3=[0,1,1,1,0,1,0,1,0,0],将V3与掩码向量M进行逐比特运算获得向量T13,T13=(~M)&(Vi)=[0,1,1,1,0,1,0,1,0,0];
接着,将U与V3进行逐比特与运算,得到T23,T23=[0,0,1,1,0,1,0,0,0,0];
然后,确定T13中元素值为1的序号向量[2,3,5,6,7,9],取出T23中这些序号的元素值 [0,1,1,1,0],确定T23的所有比特的异或结果[1],将T23中取出的这些元素值[0,1,1,1,0]和上述异或结果[1]按照先后顺序放入码字向量C中,得到C=[0,1,1,1,0,1]。
最后,更新掩码向量M,例如,可以按照M=M|(Vi)更新,M=M|(Vi)= [0,1,1,1,0,1,0,1,0,0];
对校验部分矩阵P的第1、2、4、5列的读取及中间结果向量T1i、中间结果向量T2i、码字向量C和掩码向量M的变化过程如下:
读取矩阵P第1列,得到T11=[0,0,0,0,1,0,1,0,1,0],T21=[0,0,1,0,0,1,0,0,1,0], C=[0,1,1,1,0,1,0,0,1,1],M=[0,1,1,1,1,1,1,1,1,0];读取矩阵P第2列,得到 T12=[0,0,0,0,0,0,0,0,0,1],T22=[0,0,1,1,0,1,0,0,0,1],C=[0,1,1,1,0,1,0,0,1,1,1,0], M=[0,1,1,1,1,1,1,1,1,1];读取矩阵P第4列,得到T14=[1,0,0,0,0,0,0,0,0,0],T24=[1,0,1,1,0,0,0,0,1,0],C=[0,1,1,1,0,1,0,0,1,1,1,0,1,0],M=[1,1,1,1,1,1,1,1,1,1];读取矩阵P 第5列,得到T15=[0,0,0,0,0,0,0,0,0,0],T25=[1,0,0,1,0,1,0,0,0,1], C=[0,1,1,1,0,1,0,0,1,1,1,0,1,0,0],M=[1,1,1,1,1,1,1,1,1,1]。
5)、获得校验编码码字C=[0,1,1,1,0,1,0,0,1,1,1,0,1,0,0]。
通过上述图3和图5所示的编码方法,本申请实施例可以将校验编码码字实现交织,校验比特穿插于信息比特之间,当接收端采用顺序译码时,每译码出校验比特,即可进行校验,若校验不通过,可以提前结束译码,有助于避免在信道译码结束后再进行校验造成了译码资源浪费的问题,缩短了译码所用时长,提高了译码的效率。并且,采用本申请实施例提供的方法,可以更简单的实现校验编码码字的交织,有效的节省了硬件开销,有助于提高编码资源的利用率。
基于图3或图5所示的编码方法的同一发明构思,如图6所示,本申请实施例中还提供一种编码装置600,编码装置600用于执行图3或图5所示的编码方法,编码装置600包括:
接收单元601,用于获取待编码信息;
处理单元602,用于对待编码信息进行校验编码,获得校验编码码字,校验编码码字包括信息比特和校验比特,信息比特的长度为K,校验比特的长度为J;
处理单元602,还用于对校验编码码字进行交织操作;其中,交织操作所采用的交织序列S包括J个子序列,第i个子序列包括中间结果向量Ti中元素为1的位置索引值和(K+i) 的值,1≤i≤J,i为整数,Ti=(~M)&(Vi),M=M︱(Vi),M为掩码向量,Vi为校验部分矩阵P的列向量,P为校验编码的系统形式生成矩阵G的子矩阵,~表示逐比特取非运算,& 表示逐比特与运算,︱表示逐比特或运算;
处理单元602,还用于对交织操作后的校验编码码字进行Polar编码。
可选的,处理单元602用于:对编码码字进行交织操作之前,计算交织序列S;或者,离线计算并存储交织序列S,按照存储的交织序列S对编码码字进行交织操作。
可选的,J个子序列中i取值的顺序包括:按照i值从小到大的顺序,或者,按照i值从大到小的顺序,或者,按照列向量Vi中元素1的个数从少到多的顺序,或者,按照列向量Vi中元素1的个数从多到少的顺序。
基于图3或图5所示的编码方法的同一发明构思,如图7所示,本申请实施例中还提供一种编码装置700,编码装置700用于执行图3或图5所示的编码方法,编码装置700包括:
接收单元701,用于获取待编码信息向量U;
处理单元702,用于计算校验编码的系统形式生成矩阵G,并提取G中的校验部分矩阵 P;
处理单元702,还用于初始化掩码向量M、第一中间结果向量T1i、第二中间结果向量 T2i和校验编码码字C;
处理单元702,还用于按照设定的顺序逐列读取校验部分矩阵P的列向量Vi,每读取一个列向量Vi,执行以下操作:T1i=(~M)&(Vi)计算;U和Vi进行逐比特与运算,得到T2i;确定T1中元素为1的位置索引,将T2i中位置索引对应的元素、和T2i中所有元素进行异或运算的结果记录于C的尾部,按照M=M︱(Vi)更新M,其中,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算;
处理单元702,还用于对校验编码码字C进行Polar编码。
可选的,处理单元702用于:
按照列索引值从小到大的顺序,逐列读取校验部分矩阵的列向量Vi,或者,
按照列索引值从大到小的顺序,逐列读取校验部分矩阵的列向量Vi,或者,
按照列向量中元素1的个数从少到多的顺序,逐列读取校验部分矩阵的列向量Vi;或者,按照列向量中元素1的个数从多到少的顺序,逐列读取校验部分矩阵的列向量Vi。
基于图3或图5所示的编码方法的同一发明构思,如图8所示,本申请实施例中还提供一种编码装置800,该编码装置800用于执行图3或图5所示的编码方法。上述实施例的编码方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,所述编码装置800包括:输入接口电路801,用于获取待编码信息;逻辑电路802,用于执行上述图3或图5所示的编码方法,具体请见前面方法实施例中的描述,此处不再赘述;输出接口电路803,用于输出Polar编码后的比特序列。
可选的,编码装置800在具体实现时可以是芯片或者集成电路。
可选的,当上述实施例的编码方法中的部分或全部通过软件来实现时,如图9所示,编码装置800包括:存储器901,用于存储程序;处理器902,用于执行存储器901存储的程序,当程序被执行时,使得编码装置800可以实现上述实施例提供的编码方法。
可选的,上述存储器901可以是物理上独立的单元,也可以如图10所示,存储器901与处理器902集成在一起。
可选的,当上述实施例的编码方法中的部分或全部通过软件实现时,编码装置800也可以只包括处理器902。用于存储程序的存储器901位于编码装置800之外,处理器902通过电路/电线与存储器901连接,用于读取并执行存储器901中存储的程序。
基于图3所示方法中接收端执行方法的同一发明构思,如图11所示,本申请实施例中还提供一种译码装置1100,该译码装置1100用于执行图3所示方法中接收端所执行方法。图3所示方法中接收端执行方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,所述译码装置1100包括:输入接口电路1101,用于获取待译码的序列;逻辑电路1102,用于执行上述图3所述方法中接收端所执行方法,具体请见前面方法实施例中的描述,此处不再赘述;输出接口电路1103,用于输出解交织操作后的比特序列。
可选的,译码装置1100在具体实现时可以是芯片或者集成电路。
可选的,当图3所示方法中接收端执行方法中的部分或全部通过软件来实现时,如图 12所示,译码装置1100包括:存储器1201,用于存储程序;处理器1202,用于执行存储器1201存储的程序,当程序被执行时,使得译码装置1100可以实现上述图3所示方法中接收端执行方法。
可选的,上述存储器1201可以是物理上独立的单元,也可以如图13所示,存储器1301 与处理器1302集成在一起。
可选的,当图3所示方法中接收端执行方法中的部分或全部通过软件实现时,译码装置1100也可以只包括处理器1202。用于存储程序的存储器1201位于译码装置1100之外,处理器1202通过电路/电线与存储器1201连接,用于读取并执行存储器1201中存储的程序。
本申请实施例提供了一种计算机存储介质,用于存储计算机程序,该计算机程序包括用于执行图3或图5所示的编码方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行图3或图5所示的编码方法。
本申请实施例图8~图10所示的编码装置还可以是一种系统芯片,图11~图13所示的译码装置也可以是一种系统芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种编码方法,其特征在于,包括:
发送端对待编码信息进行校验编码,获得校验编码码字,所述校验编码码字包括信息比特和校验比特,信息比特的长度为K,校验比特的长度为J;
所述发送端对所述校验编码码字进行交织操作;
其中,所述交织操作所采用的交织序列S包括J个子序列,第i个所述子序列包括中间结果向量Ti中元素为1的位置索引值和(K+i)的值,1≤i≤J,i为整数,Ti=(~M)&(Vi),M=M︱(Vi),M为掩码向量,Vi为校验部分矩阵P的列向量,P为校验编码的系统形式生成矩阵G的子矩阵,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算;所述交织序列S中的任一元素表示,在交织操作后的校验编码码字的所述元素对应的位置,放置交织前所述校验编码码字中以所述元素为位置索引的值;
所述发送端对交织操作后的校验编码码字进行Polar编码。
2.如权利要求1所述的方法,其特征在于,所述发送端对所述编码码字进行交织操作之前,计算所述交织序列S;或者,
所述发送端离线计算并存储所述交织序列S,所述发送端对所述编码码字进行交织操作,包括:所述发送端按照存储的所述交织序列S对所述编码码字进行交织操作。
3.如权利要求1或2所述的方法,其特征在于,所述J个子序列中i取值的顺序包括:
按照i值从小到大的顺序,或者,
按照i值从大到小的顺序,或者,
按照列向量Vi中元素1的个数从少到多的顺序,或者,
按照列向量Vi中元素1的个数从多到少的顺序。
4.一种编码方法,其特征在于,包括:
发送端获取待编码信息向量U;
所述发送端计算校验编码的系统形式生成矩阵G并提取所述G中的校验部分矩阵P;
所述发送端初始化掩码向量M、第一中间结果向量T1i、第二中间结果向量T2i和校验编码码字C;
所述发送端按照设定的顺序逐列读取所述校验部分矩阵P的列向量Vi,每读取一个列向量Vi,执行以下操作,直到读完所述校验部分矩阵P中所有列向量,获得最终的校验编码码字C:
T1i=(~M)&(Vi)计算;U和Vi进行逐比特与运算,得到T2i;确定T1i中元素为1的位置索引,将T2i中所述位置索引对应的元素、和T2i中所有元素进行异或运算的结果记录于C的尾部,按照M=M︱(Vi)更新M,其中,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算;
所述发送端对所述最终的校验编码码字C进行Polar编码。
5.如权利要求4所述的方法,其特征在于,所述发送端按照设定的顺序逐列读取所述校验部分矩阵P的列向量Vi,包括:
所述发送端按照列索引值从小到大的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,
所述发送端按照列索引值从大到小的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,
所述发送端按照列向量中元素1的个数从少到多的顺序,逐列读取所述校验部分矩阵的列向量Vi;或者,
所述发送端按照列向量中元素1的个数从多到少的顺序,逐列读取所述校验部分矩阵的列向量Vi。
6.一种编码装置,其特征在于,包括:
接收单元,用于获取待编码信息;
处理单元,用于对待编码信息进行校验编码,获得校验编码码字,所述校验编码码字包括信息比特和校验比特,信息比特的长度为K,校验比特的长度为J;
所述处理单元,还用于对所述校验编码码字进行交织操作;
其中,所述交织操作所采用的交织序列S包括J个子序列,第i个所述子序列包括中间结果向量Ti中元素为1的位置索引值和(K+i)的值,1≤i≤J,i为整数,Ti=(~M)&(Vi),M=M︱(Vi),M为掩码向量,Vi为校验部分矩阵P的列向量,P为校验编码的系统形式生成矩阵G的子矩阵,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算;所述交织序列S中的任一元素表示,在交织操作后的校验编码码字的所述元素对应的位置,放置交织前所述校验编码码字中以所述元素为位置索引的值;
所述处理单元,还用于对交织操作后的校验编码码字进行Polar编码。
7.如权利要求6所述的装置,其特征在于,所述处理单元用于:
对所述编码码字进行交织操作之前,计算所述交织序列S;或者,
离线计算并存储所述交织序列S,按照存储的所述交织序列S对所述编码码字进行交织操作。
8.如权利要求6或7所述的装置,其特征在于,所述J个子序列中i取值的顺序包括:
按照i值从小到大的顺序,或者,
按照i值从大到小的顺序,或者,
按照列向量Vi中元素1的个数从少到多的顺序,或者,
按照列向量Vi中元素1的个数从多到少的顺序。
9.一种编码装置,其特征在于,包括:
接收单元,用于获取待编码信息向量U;
处理单元,用于计算校验编码的系统形式生成矩阵G,并提取所述G中的校验部分矩阵P;
所述处理单元,还用于初始化掩码向量M、第一中间结果向量T1i、第二中间结果向量T2i和校验编码码字C;
所述处理单元,还用于按照设定的顺序逐列读取所述校验部分矩阵P的列向量Vi,每读取一个列向量Vi,执行以下操作,直到读完所述校验部分矩阵P中所有列向量,获得最终的校验编码码字C:
T1i=(~M)&(Vi)计算;U和Vi进行逐比特与运算,得到T2i;确定T1i中元素为1的位置索引,将T2i中所述位置索引对应的元素、和T2i中所有元素进行异或运算的结果记录于C的尾部,按照M=M︱(Vi)更新M,其中,~表示逐比特取非运算,&表示逐比特与运算,︱表示逐比特或运算;
所述处理单元,还用于对所述最终的校验编码码字C进行Polar编码。
10.如权利要求9所述的装置,其特征在于,所述处理单元用于:
按照列索引值从小到大的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,
按照列索引值从大到小的顺序,逐列读取所述校验部分矩阵的列向量Vi,或者,
按照列向量中元素1的个数从少到多的顺序,逐列读取所述校验部分矩阵的列向量Vi;或者,
按照列向量中元素1的个数从多到少的顺序,逐列读取所述校验部分矩阵的列向量Vi。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710314164.5A CN108809506B (zh) | 2017-05-05 | 2017-05-05 | 一种编码方法及装置 |
PCT/CN2018/085503 WO2018202097A1 (zh) | 2017-05-05 | 2018-05-03 | 一种编码方法及装置 |
EP18794746.0A EP3614568B1 (en) | 2017-05-05 | 2018-05-03 | Encoding method and device |
US16/673,118 US11063611B2 (en) | 2017-05-05 | 2019-11-04 | Encoding method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710314164.5A CN108809506B (zh) | 2017-05-05 | 2017-05-05 | 一种编码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108809506A CN108809506A (zh) | 2018-11-13 |
CN108809506B true CN108809506B (zh) | 2020-09-04 |
Family
ID=64015857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710314164.5A Active CN108809506B (zh) | 2017-05-05 | 2017-05-05 | 一种编码方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11063611B2 (zh) |
EP (1) | EP3614568B1 (zh) |
CN (1) | CN108809506B (zh) |
WO (1) | WO2018202097A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10536240B2 (en) | 2017-08-07 | 2020-01-14 | Huawei Technologies Co., Ltd. | Channel encoding method and apparatus in wireless communications |
WO2019153232A1 (en) * | 2018-02-09 | 2019-08-15 | Qualcomm Incorporated | Polar coded harq-ir scheme |
CN111224677B (zh) * | 2018-11-27 | 2021-10-15 | 华为技术有限公司 | 编码方法、译码方法及装置 |
CN112838871A (zh) * | 2019-11-25 | 2021-05-25 | 中国科学院微电子研究所 | 卫星导航用ldpc码编码方法、编码器及卫星导航系统 |
CN111600613B (zh) * | 2020-05-18 | 2023-07-21 | Oppo广东移动通信有限公司 | 一种校验方法、装置、译码器、接收机及计算机存储介质 |
CN113708887B (zh) * | 2020-05-20 | 2022-10-04 | 中国电信股份有限公司 | 极化码编码及译码方法和装置、信息传输系统 |
CN113238799B (zh) * | 2021-04-07 | 2022-06-28 | 南京交通职业技术学院 | 一种用于智能汽车的车载芯片安全防护系统及方法 |
CN113517950B (zh) * | 2021-04-30 | 2024-03-12 | 山东英信计算机技术有限公司 | 一种信号收发方法、系统及介质 |
CN117650872A (zh) * | 2024-01-30 | 2024-03-05 | 深圳市鼎阳科技股份有限公司 | 一种NR Polar编码的简化实现方法及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101636938A (zh) * | 2007-03-16 | 2010-01-27 | 三星电子株式会社 | 提高多个码块传输的性能和实现其快速解码的方法和装置 |
CN104219019A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 编码方法及编码设备 |
CN104539393A (zh) * | 2015-01-07 | 2015-04-22 | 北京邮电大学 | 一种基于极化码的信源编码方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8413012B2 (en) * | 2009-05-18 | 2013-04-02 | Allen LeRoy Limberg | Burst-error correction methods and apparatuses for wireless digital communications systems |
EP2518922A1 (en) * | 2011-04-26 | 2012-10-31 | Panasonic Corporation | Bit permutation patterns for BICM with LDPC codes of rate 1/3 and QAM constellations |
US9362956B2 (en) * | 2013-01-23 | 2016-06-07 | Samsung Electronics Co., Ltd. | Method and system for encoding and decoding data using concatenated polar codes |
US10623227B2 (en) * | 2015-10-21 | 2020-04-14 | Lg Electronics Inc. | Method for transmitting or receiving signal using long sequence and apparatus therefor |
CN106452460B (zh) * | 2016-09-21 | 2018-02-02 | 华中科技大学 | 一种极化码与重复码级联的纠错编码方法 |
CN105656604B (zh) * | 2016-01-21 | 2019-03-26 | 北京邮电大学 | 一种比特交织极化编码调制方法及装置 |
CN107370490B (zh) * | 2016-05-13 | 2023-07-14 | 中兴通讯股份有限公司 | 结构化ldpc的编码、译码方法及装置 |
US10389567B2 (en) * | 2016-11-03 | 2019-08-20 | Samsung Electronics Co., Ltd. | Method and apparatus for synchronization signal design |
-
2017
- 2017-05-05 CN CN201710314164.5A patent/CN108809506B/zh active Active
-
2018
- 2018-05-03 WO PCT/CN2018/085503 patent/WO2018202097A1/zh unknown
- 2018-05-03 EP EP18794746.0A patent/EP3614568B1/en active Active
-
2019
- 2019-11-04 US US16/673,118 patent/US11063611B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101636938A (zh) * | 2007-03-16 | 2010-01-27 | 三星电子株式会社 | 提高多个码块传输的性能和实现其快速解码的方法和装置 |
CN104219019A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 编码方法及编码设备 |
CN104539393A (zh) * | 2015-01-07 | 2015-04-22 | 北京邮电大学 | 一种基于极化码的信源编码方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2018202097A1 (zh) | 2018-11-08 |
EP3614568A1 (en) | 2020-02-26 |
EP3614568B1 (en) | 2022-04-06 |
CN108809506A (zh) | 2018-11-13 |
EP3614568A4 (en) | 2020-05-06 |
US20200067534A1 (en) | 2020-02-27 |
US11063611B2 (en) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108809506B (zh) | 一种编码方法及装置 | |
US10700808B2 (en) | Method and apparatus for encoding data using a polar code | |
CN110113132B (zh) | 一种编译码方法和终端 | |
US11171741B2 (en) | Polar code transmission method and apparatus | |
EP3484126B1 (en) | Method and apparatus for carrying identifier information | |
CN109150383B (zh) | 一种Polar码的编码方法及装置 | |
CN107659381B (zh) | 编译码方法及装置 | |
US11258463B2 (en) | Polar code transmission method and apparatus | |
CN108737021B (zh) | Polar码传输方法及装置 | |
CN109257140B (zh) | 一种极化信道可靠度排序的方法、极化码编码方法及装置 | |
KR100975695B1 (ko) | 통신 시스템에서 신호 수신 장치 및 방법 | |
CN108574494B (zh) | 编译码方法及装置 | |
CN109361403A (zh) | Ldpc译码方法、ldpc译码器及其存储设备 | |
CN110582942A (zh) | 利用分布式crc极化码的提前终止 | |
CN110771046B (zh) | 分布式crc极化码 | |
CN108737020A (zh) | 一种信息承载方法及装置 | |
US20170288697A1 (en) | Ldpc shuffle decoder with initialization circuit comprising ordered set memory | |
CN109391358B (zh) | 极化码编码的方法和装置 | |
CN108809485B (zh) | 一种编码的方法和装置 | |
CN110022158B (zh) | 一种译码方法及装置 | |
CN111130565B (zh) | 一种基于神经网络的译码方法及装置 | |
CN111600613B (zh) | 一种校验方法、装置、译码器、接收机及计算机存储介质 | |
CN109412610B (zh) | 一种编码方法、译码方法、编码装置及译码装置 | |
CN109474383B (zh) | 编码方法及装置 | |
CN109217878B (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 |