CN107733446B - 译码方法及设备、译码器 - Google Patents
译码方法及设备、译码器 Download PDFInfo
- Publication number
- CN107733446B CN107733446B CN201610665446.5A CN201610665446A CN107733446B CN 107733446 B CN107733446 B CN 107733446B CN 201610665446 A CN201610665446 A CN 201610665446A CN 107733446 B CN107733446 B CN 107733446B
- Authority
- CN
- China
- Prior art keywords
- decoding
- path
- bit
- llr
- value
- 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
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/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
- H03M13/3927—Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
-
- 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
-
- 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
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
-
- 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/0054—Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明实施例提供一种译码方法及设备、译码器。该方法包括:接收待译码信号对应的N个LLR,根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,根据N个LLR和预设规则生成M条译码路径,可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,根据M条译码路径的PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果,当有第一条译码路径的长度达到N时,对第一条译码路径中的K个译码比特进行CRC,若CRC通过,则译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则译码失败。
Description
技术领域
本发明涉及编译码技术领域,尤其涉及一种译码方法及设备、译码器。
背景技术
Polar(极化)码是一种理论上证明可以达到香农极限的编码方法。Polar码是一种线性块码,其编码过程为其中是一个N长二进制的行矢量,BN为N×N的比特反转(Bit Reversal)矩阵, 为log2N个矩阵F2的克罗内克(Kronecker)乘积,中的一部分比特用于信息传输,称为信息比特,余下的比特置为固定比特。Polar码在广泛的工作区间(码长、码率、信噪比)都具有极佳的译码性能。
现有的逐比特消除译码算法(Successive Cancellation,简称:SC)的译码过程为:接收到信号后,逐个计算信息比特的对数似然比(Log Likelihood Ratio简称:LLR),若信息比特的LLR>0,则译码结果为0,若信息比特的LLR<0,则译码结果为1,固定比特无论LLR为多少译码结果都置为0。图1为SC译码计算过程示意图,以译码比特为4个为例,图1中共有8个计算节点,其中有4个F节点,4个G节点,F节点和G节点分别对应F函数和G函数。F节点的计算需要其右侧2项LLR输入,G节点的计算需要其右侧2项LLR输入以及上一级的输出也作为输入,只有输入项计算完成后,才能计算输出。按照上述计算规则,图1中从右侧接收信号开始,按序计算8个节点,获得的译码比特依次为①→②→③→④,至此译码完成。可以看出,SC算法为逐比特判决,一旦判错,其错误结果将作为后续比特G函数的输入,导致错误扩散,且没有机会挽回,因此译码性能不高。为解决这一问题,在逐次消除列表算法(Successive Cancellation List,简称:SCL)中,SCL算法将0和1对应的译码结果都保存作为2个分支译码路径,图2为SCL算法中的译码路径示意图,如图2所示,每一层代表1个译码比特,若译码结果为0,则沿着左子树发展路径,若译码结果为1,则沿着右子树发展路径,当译码路径的总数超过预设的路径宽度L(一般L=2n)时,选择出路径度量(PM)值最佳的L条路径保存并继续发展路径以译出后续的译码比特,对于每一级的译码比特,对L条路径的PM值按照从小到大排序,并通过PM值和循环冗余码校验(Cyclic Redundancy Check,简称:CRC)来筛选出正确的路径,如此反复,直到译完最后一个比特,其中的PM用于判断路径的好坏,PM通过LLR计算得出。
在实际应用中,译码比特的数目是非常大的,使用SCL译码算法,虽然译码性能较好,避免了SC算法中存在的一个译码比特出错会扩散到后续的译码比特的缺陷,但是要计算所有路径的PM值,对于每一个译码比特都要对所有路径根据PM值进行一次排序,其计算复杂度和排序复杂度都很高。
发明内容
本发明提供一种译码方法及设备、译码器,可基于路径优先级进行并行译码,实现了在保证较好的译码性能的同时降低Polar码译码的计算复杂度。
第一方面,本发明实施例提供一种译码方法,包括:接收待译码信号对应的N个对数似然比LLR之后,N为码长,首先根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,先验LLR为根据信道统计信息得到的译码比特的平均LLR,后验LLR为根据N个LLR实时计算的译码比特的LLR,接着根据N个LLR和预设规则生成M条译码路径,1≤M≤Q,Q为预设的译码路径的总数,每一级的路径的总数不超过L,L为预设的达到相同长度的译码路径的总数,L≤Q,预设规则为:可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,对于一条路径长度为j的译码路径由第1至j个译码比特的判决结果组成,每一次判决结果对应译码路径的一级,K为最终的译码比特的数目,其中N、M、Q、L、K、j均为正整数,1≤j≤N,接着根据M条译码路径的路径度量PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果,最后,当有第一条译码路径的长度达到N时,对第一条译码路径中的K个译码比特进行循环冗余码校验CRC,若CRC通过,则译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则译码失败。由于在生成译码路径之前和/生成译码路径的同时对译码比特进行了划分,可靠的比特不分裂,不可靠的比特才分裂,因此减少了路径分裂次数,从而减少了译码路径的总数,因此降低了所要计算PM值的路径数目以及参与排序的路径数目,降低了计算复杂度和排序复杂度,同时也保证了较好的译码性能。
需要说明的是,本发明实施例中的译码比特可以是信息比特,也可以是信息比特和固定比特,当译码比特为信息比特和固定比特时,在进行可靠比特与不可靠比特的划分时,因为固定比特的译码结果是确定的,无论LLR为多少译码结果都为0,因此可直接将固定比特划分为可靠比特,固定比特不影响总体的计算复杂度。
在一种可能的设计中,根据N个LLR和预设规则生成M条译码路径的同时,还包括:从M条译码路径中选择出PM值最小的l条译码路径,并行发展l条译码路径,1≤l≤L。
通过优先拓展最佳路径,可以尽快地找到正确译码结果并结束译码,以节省译码时延和复杂度。相比较SCL算法,在具有降低计算复杂度和排序复杂度,同时也保证了较好的译码性能的优点的同时,还可以降低译码时延。
在一种可能的设计中,根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,具体为根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
在一种可能的设计中,根据N个LLR和预设规则生成M条译码路径,包括:根据N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值,按照预设规则生成译码路径,当生成的译码路径的总数大于Q时,选择出PM值最小的M条译码路径,并按照PM值从小到大的顺序对M条译码路径进行排序。
在一种可能的设计中,根据N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值,具体为根据如下公式计算每条译码路径的PM值:
其中z(j)为第j个比特的判决值,其值为0或者1。
其中f(x)为x的概率密度函数;
其中,为第j级译码比特对应的译码路径的PM值,为的均值取反。
本发明实施例提出的路径度量不仅包含后验信息,也将先验信息计入考虑,这样才能更加准确的反映路径优劣,从而加快找到最佳路径的时间。通过实验仿真,采用上述定义的PM值后,不仅所需存储的路径数Q大幅降低,搜索到正确路径所需的时间也有所降低
在一种可能的设计中,根据M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,还包括:根据排序条件和PM值从小到大的顺序对M条译码路径进行排序,排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。通过上述插入排序的方法,可以进一步降低排序复杂度,减少译码所需的时间,降低译码时延。
在一种可能的设计中,当M=Q时,还包括:
启动路径管理,优先发展较短路径直到所有译码路径中最大的译码路径的长度与最小的译码路径的长度之差小于或等于预设阈值。
在一种可能的设计中,还包括:剪除M条译码路径中PM值大于预设值的至少一条译码路径,预设值通过离线计算或在线计算得到。
其中的预设值为:其中,B是预设参数。
在译码过程中,通过更新PM值,并保留最佳的若干条路径、淘汰最差路径,可以找到最佳的译码结果。因此,通过上述路径管理和剪枝处理,可以保证较好的译码性能。
在一种可能的设计中,先验LLR根据如下公式计算得到:
其中,LLRprior(j)为先验LLR。
在一种可能的设计中,本发明实施例的译码方法可通过以下示例的伪代码实现:
While M>0
If“M<Q”or“d<D”
从PM队列这pop最优路径
Else
从length队列中pop最短路径
End
更新路径长度(+1)
更新译码树在该比特的宽度
If w==L
检出所有更短的路径
End
利用PM值剪枝
If 固定比特或先/后验可靠比特
不分裂路径,采用硬判决结果
Else
分裂路径,同时保留0/1对应的路径
End
If j==N and CRC校验通过
Return 译码结果
Else
将当前路径删除
End
If“分裂”
将新产生的2条路径压入PM队列
将新产生的2条路径压入length队列
End
End
Return“译码失败”
其中,length队列为译码路径队列,即多条译码路径组成的队列。
第二方面,本发明实施例提供一种译码设备,包括:
接收模块,用于接收待译码信号对应的N个对数似然比LLR,N为码长,划分模块,用于根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,先验LLR为根据信道统计信息得到的译码比特的平均LLR,后验LLR为根据N个LLR实时计算的译码比特的LLR,生成模块,用于根据N个LLR和预设规则生成M条译码路径,1≤M≤Q,Q为预设的译码路径的总数,每一级的路径的总数不超过L,L为预设的达到相同长度的译码路径的总数,L≤Q,预设规则为:可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,对于一条路径长度为j的译码路径由第1至j个译码比特的判决结果组成,每一次判决结果对应译码路径的一级,K为最终的译码比特的数目,其中N、M、Q、L、K、j均为正整数,1≤j≤N,选择模块,用于根据M条译码路径的路径度量PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果,校验模块,用于在有第一条译码路径的长度达到N时,对第一条译码路径中的K个译码比特进行循环冗余码校验CRC,若CRC通过,则返回译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则返回译码失败。
在一种可能的设计中,生成模块根据N个LLR和预设规则生成M条译码路径的同时,还用于:从M条译码路径中选择出PM值最小的l条译码路径,并行发展l条译码路径,1≤l≤L。
在一种可能的设计中,划分模块具体用于根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
在一种可能的设计中,生成模块具体用于:根据N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值,按照预设规则生成译码路径,当生成的译码路径的总数大于Q时,选择出PM值最小的M条译码路径,并按照PM值从小到大的顺序对M条译码路径进行排序。
在一种可能的设计中,生成模块具体用于根据如下公式计算每条译码路径的PM值:
其中z(j)为第j个比特的判决值,其值为0或者1。
其中f(x)为x的概率密度函数;
其中,为第j级译码比特对应的译码路径的PM值,为的均值取反。
在一种可能的设计中,选择模块还用于:在根据M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,根据排序条件和PM值从小到大的顺序对M条译码路径进行排序,排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。
在一种可能的设计中,还包括:
路径管理模块,用于在M=Q时,启动路径管理,优先发展较短路径直到所有译码路径中最大的译码路径的长度与最小的译码路径的长度之差小于或等于预设阈值。
在一种可能的设计中,还包括:剪枝模块,用于剪除M条译码路径中PM值大于预设值的至少一条译码路径,预设值通过离线计算或在线计算得到。
其中的预设值为:其中,B是预设参数。
在一种可能的设计中,先验LLR根据如下公式计算得到:
其中,LLRprior(j)为先验LLR。
上述第二方面以及上述第二方面的各可能的设计所提供的译码设备,其有益效果可以参见上述第一方面和第一方面的各可能的设计所带来的有益效果,在此不再赘述。
第三方面,本发明实施例提供一种译码器,包括:接收器,用于接收待译码信号对应的N个对数似然比LLR,N为码长,存储器,用于存储程序指令、LLR表、部分和、译码结果以及译码路径队列和路径度量PM值队列,部分和为G函数的一个输入,用于控制程序指令执行的处理器,处理器用于:根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,先验LLR为根据信道统计信息得到的译码比特的平均LLR,后验LLR为根据N个LLR实时计算的译码比特的LLR,根据N个LLR和预设规则生成M条译码路径,1≤M≤Q,Q为预设的译码路径的总数,每一级的路径的总数不超过L,L为预设的达到相同长度的译码路径的总数,L≤Q,预设规则为:可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,对于一条路径长度为j的译码路径由第1至j个译码比特的判决结果组成,每一次判决结果对应译码路径的一级,K为最终的译码比特的数目,其中N、M、Q、L、K、j均为正整数,1≤j≤N,根据M条译码路径的路径度量PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果,检验器,用于在有第一条译码路径的长度达到N时,对第一条译码路径中的K个译码比特进行循环冗余码校验CRC,若CRC通过,则返回译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则返回译码失败。
在一种可能的设计中,处理器根据N个LLR和预设规则生成M条译码路径的同时,还用于:从M条译码路径中选择出PM值最小的l条译码路径;译码器还包括:并行计算器,用于并行发展l条译码路径,1≤l≤L;输入缓存,用于存储从译码路径队列中筛选出的译码路径;输出缓存,用于存储计算过PM值的译码路径。
在一种可能的设计中,处理器具体用于根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
在一种可能的设计中,处理器具体用于:根据N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值;按照预设规则生成译码路径,当生成的译码路径的总数大于Q时,选择出PM值最小的M条译码路径,并按照PM值从小到大的顺序对M条译码路径进行排序。
在一种可能的设计中,处理器具体用于根据如下公式计算每条译码路径的PM值:
其中z(j)为第j个比特的判决值,其值为0或者1。
其中f(x)为x的概率密度函数;
其中,为第j级译码比特对应的译码路径的PM值,为的均值取反。
在一种可能的设计中,处理器还用于在根据M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,根据排序条件和PM值从小到大的顺序对M条译码路径进行排序,排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。
在一种可能的设计中,还包括:
路径管理器,用于在M=Q时,启动路径管理,优先发展较短路径直到所有译码路径中最大的译码路径的长度与最小的译码路径的长度之差小于或等于预设阈值。
在一种可能的设计中,还包括:剪枝控制器,用于剪除M条译码路径中PM值大于预设值的至少一条译码路径,预设值通过离线计算或在线计算得到。
其中的预设值为其中,B是预设参数。
在一种可能的设计中,先验LLR根据如下公式计算得到:
其中,LLRprior(j)为先验LLR。
上述第三方面以及上述第三方面的各可能的设计所提供的译码设备,其有益效果可以参见上述第一方面和第一方面的各可能的设计所带来的有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为SC译码计算过程示意图;
图2为SCL算法中的译码路径示意图;
图3为本发明译码方法实施例一的流程图;
图4为本发明提供的译码方法实施例二的流程图;
图5为本发明译码方法实施例三的流程图;
图6为图5所示的实施例的并行计算框架图;
图7为本发明译码设备实施例一的结构示意图;
图8为本发明译码设备实施例二的结构示意图;
图9为本发明译码器实施例一的结构示意图;
图10为本发明译码器实施例二的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Polar码的译码由接收端执行,本发明实施例提供的译码方法主要涉及Polar码的译码过程,现有的译码算法SC和SCL中,SC算法为逐比特判决,按顺序依次译出所有的译码比特,由于前一个译码比特的结果作为后一个译码比特计算的一个输入,因此,一旦前一个译码比特判错,其错误结果将作为后续比特G函数的输入,导致错误扩散,且没有机会挽回,因此译码性能不高。SCL算法虽然避免了这一问题,但是实际应用中译码比特的数目是非常大的,SCL算法要计算所有路径的PM值,对于每一个译码比特都要对所有路径根据PM值进行一次排序,其计算复杂度和排序复杂度都很高。针对上述问题,本发明实施例提供一种译码方法,可基于路径优先级进行并行译码,实现了在保证较好的译码性能的同时降低Polar码译码的计算复杂度。下面结合附图详细说明本发明实施例提供的译码方法及设备、译码器。
本发明实施例提供的译码方法主要应用于各种无线通信系统,其可以在基站侧/终端侧由软件或硬件实现,特别地,包括5G中的增强移动宽带(Enhanced MobileBroadband,简称:eMBB)、超低时延超高可靠通信(Ultra-reliable and low-latencycommunications,简称:uRLLC)以及大规模机器通信(Massive Machine-TypeCommunications,简称:mMTC)场景。
本发明实施例涉及的网元主要是基站和终端,实现基站与终端之间的通信。
图3为本发明译码方法实施例一的流程图,如图3所示,本实施例的方法可以包括:
S101、接收待译码信号对应的N个LLR,N为码长。
具体地,接收端接收到待译码信号之后,通过计算得到待译码信号对应的N个LLR,送至接收端的译码器,其中LLR=2*y/var,y是待译码信号的信号值,var是噪声方差。
S102、根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特。
具体是根据先验LLR和/或后验LLR衡量每个译码比特的可靠度以决定是否对该比特进行路径的分裂,其中的先验LLR为根据信道统计信息得到的译码比特的平均LLR,其可由高斯近似、极化权重、蒙特卡洛仿真等离线方法得到,也可以由译码器实时统计的在线方法得到。后验LLR为根据N个LLR实时计算的译码比特的LLR,即译码器实时译码时获得的对应译码比特的LLR。
具体地,先验LLRLLRprior(j)可根据如下公式计算得到:
其中的K为要译出的译码比特的总数,译码器是在译码前就已获知的,在生成译码路径之前,可以是根据先验LLR将K个译码比特划分为可靠比特和不可靠比特,例如可根据编码时信息比特的可靠度或者极化权重设置可靠比特与不可靠比特的百分比,根据这个百分比设置先验LLR的阈值,大于该阈值则划分为可靠比特,小于该阈值则划分为不可靠比特,可靠比特的下一级路径确定性高,即下一级路径为1条,不可靠路径的下一级路径为2条。例如可以是根据如下规则划分出可靠比特和不可靠比特:
其中,θ为预设参数。
还可以是在生成译码路径之前根据后验LLR将K个译码比特划分为可靠比特和不可靠比特,例如是通过将译码时获得的“后验LLR”与高斯近似获得的信息比特LLR的期望进行比较,实时将K个译码比特划分为可靠比特和不可靠比特,例如可以是根据如下规则划分出可靠比特和不可靠比特:
其中,η为预设参数。
还可以是根据先验LLR和后验LLR将K个译码比特划分为可靠比特和不可靠比特。例如可以是根据如下规则划分出可靠比特和不可靠比特:
其中,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
需要说明的是,本发明实施例中的译码比特可以是信息比特,也可以是信息比特和固定比特,当译码比特为信息比特和固定比特时,在进行可靠比特与不可靠比特的划分时,因为固定比特的译码结果是确定的,无论LLR为多少译码结果都为0,因此可直接将固定比特划分为可靠比特,固定比特不影响总体的计算复杂度。
S103、根据N个LLR和预设规则生成M条译码路径。
其中,1≤M≤Q,Q为预设的译码路径的总数,也即路径宽度,每一级的路径的总数不超过L,L为预设的达到相同长度的译码路径的总数,L≤Q,预设规则为:可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,对于一条路径长度为j的译码路径由第1至j个译码比特的判决结果组成,每一次判决结果对应译码路径的一级,K为最终的译码比特的数目,其中N、M、Q、L、K均为正整数,1≤j≤N。码长为N,码率即为K/N。
S103具体为:首先根据N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值。具体地,根据如下公式计算每条译码路径的PM值:
其中z(j)为第j个比特的判决值,其值为0或者1。
其中f(x)为x的概率密度函数;
其中,为第j级译码比特对应的译码路径的PM值,为的均值取反。
接着,按照预设规则生成译码路径,当生成的译码路径的总数大于Q时,选择出PM值最小的M条译码路径,并按照PM值从小到大的顺序对M条译码路径进行排序。
在现有的SCL和SCS译码算法中,译码算法的PM值只考虑了后验LLR,而没有考虑先验LLR,在路径长度不同的情况下,有可能导致长短路径间比较不公平。因此,本发明实施例提出的路径度量不仅包含后验信息,也将先验信息计入考虑,这样才能更加准确的反映路径优劣,从而加快找到最佳路径的时间。通过实验仿真,采用上述定义的PM值后,不仅所需存储的路径数Q大幅降低,搜索到正确路径所需的时间也有所降低。
S104、根据M条译码路径的PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果。
具体地,筛选出M条译码路径中PM值最小的译码路径作为目标译码路径,得到每一级译码比特的译码结果,由于每一级译码比特所对应的译码路径的长度不同,例如得到了第二级译码比特的译码结果,在获取第三级译码比特的译码结果时,要重新筛选三级译码路径中PM值最小的译码路径,根据筛选出的译码路径得到第三级译码比特的译码结果。
S105、当有第一条译码路径的长度达到N时,对第一条译码路径中的K个译码比特进行CRC,若CRC通过,则译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则译码失败。
本实施例提供的译码方法,在接收到待译码信号对应的N个LLR之后,首先根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,然后再根据N个LLR生成M条译码路径时,按照可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条的规则生成译码路径,接着根据M条译码路径的PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果,最后在有一条译码路径的长度达到N时循环进行CRC,直到获取到译码成功或译码失败的结果,译码完成,由于在生成译码路径之前和/生成译码路径的同时对译码比特进行了划分,可靠的比特不分裂,不可靠的比特才分裂,因此减少了路径分裂次数,从而减少了译码路径的总数,因此降低了所要计算PM值的路径数目以及参与排序的路径数目,降低了计算复杂度和排序复杂度,同时也保证了较好的译码性能。
进一步地,作为本发明的另一可选的实施例,图4为本发明提供的译码方法实施例二的流程图,如图4所示,在图3所示的实施例一中S104之前,还可以包括:
S106、根据排序条件和PM值从小到大的顺序对M条译码路径进行排序,排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。
通过上述步骤,也就是插入排序的方法,可以进一步降低排序复杂度,减少译码所需的时间,降低译码时延。
可选的,在上述实施例的基础上,译码路径在不断发展的过程中,当M=Q时,启动路径管理,优先发展较短路径直到所有译码路径中最大的译码路径的长度与最小的译码路径的长度之差小于或等于预设阈值。
由于本发明实施例中,长短路径间长度差别较大,采用本发明实施例中定义的PM值后,仍然可能导致正确路径被淘汰,因此需要在淘汰路径前,保证长度路径间长度差别不能太大。可进一步地提高译码性能。
可选的,在上述实施例的基础上,还可以包括:
剪除M条译码路径中PM值大于预设值的至少一条译码路径,预设值通过离线计算或在线计算得到。在线计算时,可以初始化为最大值,并通过统计正确译码路径的最大PM值来更新该值。离线计算时,预设值可以为:
其中K为译码比特个数(如有CRC比特,应计入),为预设的达到相同长度的译码路径的总数,B为预设参数,是一个常数,可以设为3。
具体来说,在较高信噪比(通常指误帧率(BLER)<10-3对应的信噪比(SNR)区间)时,路径间PM值差别会较大,这时通过比较与最佳路径的PM值,减除较差路径可以减少复杂度。而在中信噪比(通常指10-3<BLER<0.5×10-1对应的SNR区间)时,路径间PM值差别不会太大,因此可以通过路径管理控制最长和最短的路径的差别来保证公平地比较和淘汰路径。而在低信噪比(通常指BLER>0.5×10-1对应的SNR区间)时,几乎所有路径的PM值都非常差,这时应该将PM值与一预设门限进行比较,剪除所有大于该门限的路径。
PM值在Polar码译码中起着评价路径好坏的功能,通常PM值越低,表示其路径越可能是正确路径,即路径越好。在译码过程中,通过更新PM值,并保留最佳的若干条路径、淘汰最差路径,可以找到最佳的译码结果。因此,通过上述路径管理和剪枝处理,可以保证较好的译码性能。
图5为本发明译码方法实施例三的流程图,如图5所示,本实施例的方法在图3或图4的基础上,S103中根据N个LLR和预设规则生成M条译码路径的同时,还可以包括:
从M条译码路径中选择出PM值最小的l条译码路径,并行发展l条译码路径,1≤l≤L。也即,
S103’、根据N个LLR和预设规则生成M条译码路径,从M条译码路径中选择出PM值最小的l条译码路径,并行发展l条译码路径,1≤l≤L。
也就是说,在译码路径组成的译码树中,优先对M条译码路径中PM最优的l条译码路径进行并行的拓展,译码树中不同译码路径的长度不一定相同。l可称为并行度,1≤l≤L。当l=1时,并行度与逐次消除堆栈算法(Successive Cancellation Stack,简称:SCS)相同,当l=L时并,行度与SCL相同。
由于采取了图3或图4所示实施例所说的减分裂操作,路径分裂率较低意味着l条路径几乎独立前行,类似于l个并行的SC译码器,其计算速度可以达到非常高。另外,当l条路径中的一条产生分裂时,其引起的队列操作(即发展两条新路径)可与其它l-1条路径的LLR计算同时进行。通过上述并行操作,实际并行度非常高。
本实施例提供的译码算法,通过优先拓展最佳路径,可以尽快地找到正确译码结果并结束译码,以节省译码时延和复杂度。相比较SCL算法,在具有降低计算复杂度和排序复杂度,同时也保证了较好的译码性能的优点的同时,还可以降低译码时延。
图6为图5所示的实施例的并行计算框架图,如图6所示,在具体的软件或硬件实施时,具体包括:
一、优先队列操作原则:用一个Q长的译码路径队列保存Q条路径信息(PM值、路径长度),优先从队列中筛选出最佳的l条译码路径,图6中所示l为8,并送入路径缓存(Buf);l个并行计算单元(PE)负责对筛选出的最佳路径进行路径处理,即逐比特译码,并只在路径分裂时才对队列进行路径插入操作:如图6所示将新产生的2条路径(路径0和路径1)插入译码路径队列。
二、l-并行计算架构:对宽度为L的译码树进行部分并行计算,即从队列中选出其中的l条最佳路径同时处理,l称为并行度,且1≤l≤L。当l=1时,并行度与SCS相同,当l=L时并,并行度与SCL算法相同。
三、l-存储架构:只存储当前并行计算单元处理中的l条译码路径的LLR表(存储在RAM中),使得LLR表份数l≤L。当前处理的译码路径需要切换到其它译码路径时,由于新译码路径的LLR表没有保存,因此需要重新计算部分LLR值,但由于2张LLR表中通常包含较高的冗余度,重新计算的LLR值一般不会太多,实际中只需要额外计算两条译码路径间不同的LLR值。
具体地,本发明实施例的译码方法可通过以下示例的伪代码实现:
While M>0
If“M<Q”or“d<D”
从PM队列中pop最优路径
Else
从length队列中pop最短路径
End
更新路径长度(+1)
更新译码树在该比特的宽度
If w==L
检出所有更短的路径
End
利用PM值剪枝
If固定比特或先/后验可靠比特
不分裂路径,采用硬判决结果
Else
分裂路径,同时保留0/1对应的路径
End
If j==N and CRC校验通过
Return 译码结果
Else
将当前路径删除
End
If“分裂”
将新产生的2条路径压入PM队列
将新产生的2条路径压入length队列
End
End
Return“译码失败”
其中,length队列为译码路径队列,即多条译码路径组成的队列。
图7为本发明译码设备实施例一的结构示意图,如图7所示,本实施例的译码设备可以包括:接收模块11、划分模块12、生成模块13、选择模块14和校验模块15。其中,接收模块11用于接收待译码信号对应的N个对数似然比LLR,N为码长。划分模块12用于根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,先验LLR为根据信道统计信息得到的译码比特的平均LLR,后验LLR为根据N个LLR实时计算的译码比特的LLR。生成模块13用于根据N个LLR和预设规则生成M条译码路径,1≤M≤Q,Q为预设的译码路径的总数,每一级的路径的总数不超过L,L为预设的达到相同长度的译码路径的总数,L≤Q,预设规则为:可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,对于一条路径长度为j的译码路径由第1至j个译码比特的判决结果组成,每一次判决结果对应译码路径的一级,K为最终的译码比特的数目,其中N、M、Q、L、K均为正整数,1≤j≤N。选择模块14用于根据M条译码路径的路径度量PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果。校验模块15用于在有第一条译码路径的长度达到N时,对第一条译码路径中的K个译码比特进行循环冗余码校验CRC,若CRC通过,则返回译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则返回译码失败。
进一步地,划分模块12具体用于根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
其中的先验LLR根据如下公式计算得到:
其中,LLRprior(j)为先验LLR。
可选的,生成模块13具体用于:根据N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值。按照预设规则生成译码路径,当生成的译码路径的总数大于Q时,选择出PM值最小的M条译码路径,并按照PM值从小到大的顺序对M条译码路径进行排序。
生成模块13具体用于根据如下公式计算每条译码路径的PM值:
其中z(j)为第j个比特的判决值,其值为0或者1。
其中f(x)为x的概率密度函数;
其中,为第j级译码比特对应的译码路径的PM值,为的均值取反。
可选的,选择模块14还用于:在根据M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,根据排序条件和PM值从小到大的顺序对M条译码路径进行排序,排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。通过插入排序的方法,可以进一步降低排序复杂度,减少译码所需的时间,降低译码时延。
本实施例的译码设备,可以用于执行图3或图4所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本实施例提供的译码设备,在接收到待译码信号对应的N个LLR之后,首先根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,然后再根据N个LLR生成M条译码路径时,按照可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条的规则生成译码路径,接着根据M条译码路径的PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果,最后在有一条译码路径的长度达到N时循环进行CRC,直到获取到译码成功或译码失败的结果,译码完成,由于在生成译码路径之前和/生成译码路径的同时对译码比特进行了划分,可靠的比特不分裂,不可靠的比特才分裂,因此减少了路径分裂次数,从而减少了译码路径的总数,因此降低了所要计算PM值的路径数目以及参与排序的路径数目,降低了计算复杂度和排序复杂度,同时也保证了较好的译码性能。
进一步地,在上述实施例提供的译码设备的基础上,生成模块13根据N个LLR和预设规则生成M条译码路径的同时,还用于:从M条译码路径中选择出PM值最小的l条译码路径,并行发展l条译码路径,1≤l≤L。
本实施例的译码设备,可以用于执行图5所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本实施例提供的译码设备,通过优先拓展最佳路径,可以尽快地找到正确译码结果并结束译码,以节省译码时延和复杂度。相比较SCL算法,在具有降低计算复杂度和排序复杂度,同时也保证了较好的译码性能的优点的同时,还可以降低译码时延。
图8为本发明译码设备实施例二的结构示意图,如图8所示,本实施例的译码设备在图7所示设备结构的基础上,进一步地,还可以包括:路径管理模块16,该路径管理模块16用于在M=Q时,启动路径管理,优先发展较短路径直到所有译码路径中最大的译码路径的长度与最小的译码路径的长度之差小于或等于预设阈值。
进一步地,还可以包括:剪枝模块17,用于剪除M条译码路径中PM值大于预设值的至少一条译码路径,预设值通过离线计算或在线计算得到。其中预设值可以为:
其中,B是预设参数。
本实施例提供的译码设备,在译码过程中,通过更新PM值,并保留最佳的若干条路径、淘汰最差路径,可以找到最佳的译码结果。因此,通过上述路径管理和剪枝处理,可以保证较好的译码性能。
图9为本发明译码器实施例一的结构示意图,如图9所示,本实施例的译码器可以包括:接收器21、存储器22、用于控制程序指令执行的处理器23和检验器24,接收器21用于接收待译码信号对应的N个对数似然比LLR,N为码长。存储器22用于存储程序指令、LLR表、部分和、译码结果以及译码路径队列和PM值队列,部分和为G函数的一个输入。处理器23用于:根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,先验LLR为根据信道统计信息得到的译码比特的平均LLR,后验LLR为根据N个LLR实时计算的译码比特的LLR。根据N个LLR和预设规则生成M条译码路径,1≤M≤Q,Q为预设的译码路径的总数,每一级的路径的总数不超过L,L为预设的达到相同长度的译码路径的总数,L≤Q,预设规则为:可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,对于一条路径长度为j的译码路径由第1至j个译码比特的判决结果组成,每一次判决结果对应译码路径的一级,K为最终的译码比特的数目,其中N、M、Q、L、K均为正整数,1≤j≤N。根据M条译码路径的路径度量PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果。检验器24用于在有第一条译码路径的长度达到N时,对第一条译码路径中的K个译码比特进行循环冗余码校验CRC,若CRC通过,则返回译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则返回译码失败。
其中的先验LLR根据如下公式计算得到:
其中,LLRprior(j)为先验LLR。
本实施例提供的译码设备,在接收到待译码信号对应的N个LLR之后,首先根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,然后再根据N个LLR生成M条译码路径时,按照可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条的规则生成译码路径,接着根据M条译码路径的PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果,最后在有一条译码路径的长度达到N时循环进行CRC,直到获取到译码成功或译码失败的结果,译码完成,由于在生成译码路径之前和/生成译码路径的同时对译码比特进行了划分,可靠的比特不分裂,不可靠的比特才分裂,因此减少了路径分裂次数,从而减少了译码路径的总数,因此降低了所要计算PM值的路径数目以及参与排序的路径数目,降低了计算复杂度和排序复杂度,同时也保证了较好的译码性能。
图10为本发明译码器实施例二的结构示意图,如图10所示,本实施例的译码器在图9所示译码器的基础上,还可以包括:并行计算器25、输入缓存26和输出缓存27,需要说明的,处理器23执行的操作可以由图10中的并行计算器25、分裂控制器30共同执行,并行计算器25有l个。其中,处理器23根据N个LLR和预设规则生成M条译码路径的同时,还用于:从M条译码路径中选择出PM值最小的l条译码路径。并行计算器25用于并行发展l条译码路径,1≤l≤L,输入缓存26用于存储从译码路径队列中筛选出的译码路径,输出缓存27用于存储计算过PM值的译码路径。通过优先拓展最佳路径,可以尽快地找到正确译码结果并结束译码,以节省译码时延和复杂度。相比较SCL算法,在具有降低计算复杂度和排序复杂度,同时也保证了较好的译码性能的优点的同时,还可以降低译码时延。
进一步地,处理器23具体用于:
根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
进一步的,处理器23具体用于:根据N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值,按照预设规则生成译码路径,当生成的译码路径的总数大于Q时,选择出PM值最小的M条译码路径,并按照PM值从小到大的顺序对M条译码路径进行排序。处理器23具体用于根据如下公式计算每条译码路径的PM值:
其中z(j)为第j个比特的判决值,其值为0或者1。
其中f(x)为x的概率密度函数;
其中,为第j级译码比特对应的译码路径的PM值,为的均值取反。
可选的,处理器23还用于:在根据M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,根据排序条件和PM值从小到大的顺序对M条译码路径进行排序,排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。通过插入排序的方法,可以进一步降低排序复杂度,减少译码所需的时间,降低译码时延。
如图10所示,可选的,还包括:路径管理器28和剪枝控制器29,路径管理器28用于在M=Q时,启动路径管理,优先发展较短路径直到所有译码路径中最大的译码路径的长度与最小的译码路径的长度之差小于或等于预设阈值。
剪枝控制器29用于剪除M条译码路径中PM值大于预设值的至少一条译码路径,预设值通过离线计算或在线计算得到。预设值为:
其中,B是预设参数。
本实施例提供的译码设备,在译码过程中,通过更新PM值,并保留最佳的若干条路径、淘汰最差路径,可以找到最佳的译码结果。因此,通过上述路径管理和剪枝处理,可以保证较好的译码性能。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (36)
1.一种译码方法,其特征在于,包括:
接收待译码信号对应的N个对数似然比LLR,N为码长;
根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,所述先验LLR为根据信道统计信息得到的译码比特的平均LLR,所述后验LLR为根据所述N个LLR实时计算的译码比特的LLR;
根据所述N个LLR和预设规则生成M条译码路径,1≤M≤Q,Q为预设的译码路径的总数,每一级的路径的总数不超过L,L为预设的达到相同长度的译码路径的总数,L≤Q,所述预设规则为:可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,对于一条路径长度为j的译码路径由第1至j个译码比特的判决结果组成,每一次判决结果对应译码路径的一级,K为最终的译码比特的数目,其中N、M、Q、L、K、j均为正整数,1≤j≤N;
根据所述M条译码路径的路径度量PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果;
当有第一条译码路径的长度达到N时,对所述第一条译码路径中的K个译码比特进行循环冗余码校验CRC,若CRC通过,则译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则译码失败。
2.根据权利要求1所述的方法,其特征在于,所述根据所述N个LLR和预设规则生成M条译码路径的同时,还包括:
从所述M条译码路径中选择出PM值最小的l条译码路径,并行发展所述l条译码路径,1≤l≤L。
3.根据权利要求1所述的方法,其特征在于,所述根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,包括:
根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
4.根据权利要求2所述的方法,其特征在于,所述根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,包括:
根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述根据所述N个LLR和预设规则生成M条译码路径,包括:
根据所述N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值;
按照所述预设规则生成译码路径,当生成的译码路径的总数大于Q时,选择出PM值最小的M条译码路径,并按照PM值从小到大的顺序对所述M条译码路径进行排序。
6.根据权利要求5所述的方法,其特征在于,所述根据所述N个LLR 实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值,包括:
根据如下公式计算每条译码路径的PM值:
其中z(j)为第j个比特的判决值,其值为0或者1;
其中f(x)为x的概率密度函数;
其中,为第j级译码比特对应的译码路径的PM值,为的均值取反。
7.根据权利要求1~4、6任一项所述的方法,其特征在于,所述根据所述M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,还包括:
根据排序条件和PM值从小到大的顺序对所述M条译码路径进行排序,所述排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。
8.根据权利要求 5所述的方法,其特征在于,所述根据所述M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,还包括:
根据排序条件和PM值从小到大的顺序对所述M条译码路径进行排序,所述排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。
9.根据权利要求1~4、6、8任一项所述的方法,其特征在于,当M=Q时,所述方法还包括:
启动路径管理,优先发展较短路径直到所有译码路径中最大的译码路径的长度与最小的译码路径的长度之差小于或等于预设阈值。
10.根据权利要求1~4、6、8任一项所述的方法,其特征在于,还包括:
剪除所述M条译码路径中PM值大于预设值的至少一条译码路径,所述预设值通过离线计算或在线计算得到。
11.根据权利要求10所述的方法,其特征在于,所述预设值为:
其中,B是预设参数。
12.根据权利要求1所述的方法,其特征在于,所述先验LLR根据如下公式计算得到:
其中,LLRprior(j)为先验LLR。
13.一种译码设备,其特征在于,包括:
接收模块,用于接收待译码信号对应的N个对数似然比LLR,N为码长;
划分模块,用于根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,所述先验LLR为根据信道统计信息得到的译码比特的平均LLR,所述后验LLR为根据所述N个LLR实时计算的译码比特的LLR;
生成模块,用于根据所述N个LLR和预设规则生成M条译码路径,1≤M≤Q,Q为预设的译码路径的总数,每一级的路径的总数不超过L,L为预设的达到相同长度的译码路径的总数,L≤Q,所述预设规则为:可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,对于一条路径长度为j的译码路径由第1至j个译码比特的判决结果组成,每一次判决结果对应译码路径的一级,K为最终的译码比特的数目,其中N、M、Q、L、K、j均为正整数,1≤j≤N;
选择模块,用于根据所述M条译码路径的路径度量PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果;
校验模块,用于在有第一条译码路径的长度达到N时,对所述第一条译码路径中的K个译码比特进行循环冗余码校验CRC,若CRC通过,则返回译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则返回译码失败。
14.根据权利要求13所述的译码设备,其特征在于,所述生成模块根据所述N个LLR和预设规则生成M条译码路径的同时,还用于:
从所述M条译码路径中选择出PM值最小的l条译码路径,并行发展所述l条译码路径,1≤l≤L。
15.根据权利要求13所述的译码设备,其特征在于,所述划分模块具体用于:
根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
16.根据权利要求14所述的译码设备,其特征在于,所述划分模块具体用于:
根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
17.根据权利要求13~16任一项所述的译码设备,其特征在于,所述生成模块具体用于:
根据所述N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值;
按照所述预设规则生成译码路径,当生成的译码路径的总数大于Q时,选择出PM值最小的M条译码路径,并按照PM值从小到大的顺序对所述M条译码路径进行排序。
18.根据权利要求17所述的译码设备,其特征在于,所述生成模块具体用于:
根据如下公式计算每条译码路径的PM值:
其中z(j)为第j个比特的判决值,其值为0或者1;
其中f(x)为x的概率密度函数;
其中,为第j级译码比特对应的译码路径的PM值,为的均值取反。
19.根据权利要求13~16、18任一项所述的译码设备,其特征在于,所述选择模块还用于:
在根据所述M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,根据排序条件和PM值从小到大的顺序对所述M条译码路径进行排序,所述排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。
20.根据权利要求17所述的译码设备,其特征在于,所述选择模块还用于:
在根据所述M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,根据排序条件和PM值从小到大的顺序对所述M条译码路径进行排序,所述排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。
21.根据权利要求13~16、18、20任一项所述的译码设备,其特征在于,还包括:
路径管理模块,用于在M=Q时,启动路径管理,优先发展较短路径直到所有译码路径中最大的译码路径的长度与最小的译码路径的长度之差小于或等于预设阈值。
22.根据权利要求13~16、18、20任一项所述的译码设备,其特征在于,还包括:
剪枝模块,用于剪除所述M条译码路径中PM值大于预设值的至少一条译码路径,所述预设值通过离线计算或在线计算得到。
23.根据权利要求22所述的译码设备,其特征在于,所述预设值为:
其中,B是预设参数。
24.根据权利要求13所述的译码设备,其特征在于,所述先验LLR根据如下公式计算得到:
其中,LLRprior(j)为先验LLR。
25.一种译码器,其特征在于,包括:
接收器,用于接收待译码信号对应的N个对数似然比LLR,N为码长;
存储器,用于存储程序指令、LLR表、部分和、译码结果以及译码路径队列和路径度量PM值队列,所述部分和为G函数的一个输入;
用于控制程序指令执行的处理器,所述处理器用于:
根据先验LLR和/或后验LLR将K个译码比特划分为可靠比特和不可靠比特,所述先验LLR为根据信道统计信息得到的译码比特的平均LLR,所述后验LLR为根据所述N个LLR实时计算的译码比特的LLR;
根据所述N个LLR和预设规则生成M条译码路径,1≤M≤Q,Q为预设的译码路径的总数,每一级的路径的总数不超过L,L为预设的达到相同长度的译码路径的总数,L≤Q,所述预设规则为:可靠比特的下一级路径为1条,不可靠比特的下一级路径为2条,对于一条路径长度为j的译码路径由第1至j个译码比特的判决结果组成,每一次判决结果对应译码路径的一级,K为最终的译码比特的数目,其中N、M、Q、L、K、j均为正整数,1≤j≤N;
根据所述M条译码路径的路径度量PM值筛选出每一级目标译码路径,得到每一级译码比特的译码结果;
检验器,用于在有第一条译码路径的长度达到N时,对所述第一条译码路径中的K个译码比特进行循环冗余码校验CRC,若CRC通过,则返回译码成功;否则继续对下一条长度达到N的译码路径中的K个译码比特进行CRC,若对所有的长度达到N的译码路径中的K个译码比特进行CRC的结果都未通过,则返回译码失败。
26.根据权利要求25所述的译码器,其特征在于,所述处理器根据所述N个LLR和预设规则生成M条译码路径的同时,还用于:
从所述M条译码路径中选择出PM值最小的l条译码路径;
所述译码器还包括:
并行计算器,用于并行发展所述l条译码路径,1≤l≤L;
输入缓存,用于存储从所述译码路径队列中筛选出的译码路径;
输出缓存,用于存储计算过PM值的译码路径。
27.根据权利要求25所述的译码器,其特征在于,所述处理器具体用于:
根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
28.根据权利要求26所述的译码器,其特征在于,所述处理器具体用于:
根据如下规则划分出可靠比特和不可靠比特:
或者,
或者,
其中,LLRprior(j)为先验LLR,LLRpost(j)为后验LLR,C、θ和η为预设参数,j为第j个比特,1≤j≤N。
29.根据权利要求25~28任一项所述的译码器,其特征在于,所述处理器具体用于:
根据所述N个LLR实时计算每条译码路径中每一级译码比特的LLR,并根据每一级译码比特的LLR计算相应的译码路径的PM值;
按照所述预设规则生成译码路径,当生成的译码路径的总数大于Q时,选择出PM值最小的M条译码路径,并按照PM值从小到大的顺序对所述M条译码路径进行排序。
30.根据权利要求29所述的译码器,其特征在于,所述处理器具体用于:
根据如下公式计算每条译码路径的PM值:
其中z(j)为第j个比特的判决值,其值为0或者1;
其中f(x)为x的概率密度函数;
其中,为第j级译码比特对应的译码路径的PM值,为的均值取反。
31.根据权利要求25~28、30任一项所述的译码器,其特征在于,所述处理器还用于:
在根据所述M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,根据排序条件和PM值从小到大的顺序对所述M条译码路径进行排序,所述排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。
32.根据权利要求29所述的译码器,其特征在于,所述处理器还用于:
在根据所述M条译码路径的路径度量PM值筛选出每一级目标译码路径之前,根据排序条件和PM值从小到大的顺序对所述M条译码路径进行排序,所述排序条件为:只对当前分裂的路径进行排序,不分裂的路径不参与排序。
33.根据权利要求25~28、30、32任一项所述的译码器,其特征在于,还包括:
路径管理器,用于在M=Q时,启动路径管理,优先发展较短路径直到所有译码路径中最大的译码路径的长度与最小的译码路径的长度之差小于或等于预设阈值。
34.根据权利要求25~28、30、32任一项所述的译码器,其特征在于,还包括:
剪枝控制器,用于剪除所述M条译码路径中PM值大于预设值的至少一条译码路径,所述预设值通过离线计算或在线计算得到。
35.根据权利要求34所述的译码器,其特征在于,所述预设值为:
其中,B是预设参数。
36.根据权利要求25所述的译码器,其特征在于,所述先验LLR根据如下公式计算得到:
其中,LLRprior(j)为先验LLR。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610665446.5A CN107733446B (zh) | 2016-08-12 | 2016-08-12 | 译码方法及设备、译码器 |
EP17838496.2A EP3480957B1 (en) | 2016-08-12 | 2017-07-07 | Polar code list decoding |
PCT/CN2017/092179 WO2018028366A1 (zh) | 2016-08-12 | 2017-07-07 | 译码方法及设备、译码器 |
US16/264,014 US10879939B2 (en) | 2016-08-12 | 2019-01-31 | Decoding method and device, and decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610665446.5A CN107733446B (zh) | 2016-08-12 | 2016-08-12 | 译码方法及设备、译码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107733446A CN107733446A (zh) | 2018-02-23 |
CN107733446B true CN107733446B (zh) | 2019-06-07 |
Family
ID=61162668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610665446.5A Active CN107733446B (zh) | 2016-08-12 | 2016-08-12 | 译码方法及设备、译码器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10879939B2 (zh) |
EP (1) | EP3480957B1 (zh) |
CN (1) | CN107733446B (zh) |
WO (1) | WO2018028366A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10831231B1 (en) * | 2018-03-28 | 2020-11-10 | Xilinx, Inc. | Circuit for and method of implementing a polar decoder |
CN110324111B (zh) * | 2018-03-31 | 2020-10-09 | 华为技术有限公司 | 一种译码方法及设备 |
CN110661533B (zh) * | 2018-06-28 | 2023-05-16 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 优化译码器存储极化码译码性能的方法 |
CN110752891B (zh) * | 2018-07-24 | 2022-04-29 | 中兴通讯股份有限公司 | 极化码译码方法及装置、存储介质、电子装置 |
CN110830051B (zh) * | 2018-08-07 | 2023-06-23 | 普天信息技术有限公司 | 一种译码方法和装置 |
CN110858792B (zh) * | 2018-08-23 | 2020-12-25 | 华为技术有限公司 | 删除译码路径的方法及装置 |
CN109525252B (zh) * | 2018-10-29 | 2022-06-24 | 东南大学 | 基于简化三阶关键集合的极化码串行抵消列表译码方法 |
CN111384978B (zh) * | 2018-12-29 | 2023-08-01 | 大唐移动通信设备有限公司 | 一种极化码译码方法、装置及通信设备 |
CN109951190B (zh) * | 2019-03-15 | 2020-10-13 | 北京科技大学 | 一种自适应Polar码SCL译码方法及译码装置 |
CN109921804B (zh) * | 2019-03-22 | 2023-01-31 | 中国传媒大学 | 一种自适应融合串行抵消列表极化码译码方法及系统 |
CN110190857B (zh) * | 2019-04-28 | 2023-04-11 | 深圳大学 | 一种crc辅助校验极化码译码方法和智能终端 |
CN112260697B (zh) * | 2019-07-22 | 2024-04-09 | 华为技术有限公司 | 译码方法、装置及设备 |
CN110830166B (zh) * | 2019-10-31 | 2022-05-06 | 哈尔滨工业大学(深圳) | 联合检测译码方法、装置、计算机设备及存储介质 |
CN115152150A (zh) * | 2020-02-28 | 2022-10-04 | 哲库科技有限公司 | 用于极性解码器的方法和装置 |
US11799590B2 (en) * | 2020-04-27 | 2023-10-24 | Qualcomm Incorporated | Hybrid automatic repeat request procedures for a relay using partial decoding |
US11277155B2 (en) * | 2020-07-06 | 2022-03-15 | Huawei Technologies Co., Ltd. | Decoder and decoding method |
TWI748739B (zh) * | 2020-11-10 | 2021-12-01 | 國立清華大學 | 決定待翻轉比特位置的方法及極化碼解碼器 |
TWI759072B (zh) * | 2021-01-14 | 2022-03-21 | 國立清華大學 | 極化碼解碼裝置及其操作方法 |
CN115296676B (zh) * | 2022-08-04 | 2023-10-10 | 南京濠暻通讯科技有限公司 | 一种提升Polar译码LLR运算性能的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158235A (zh) * | 2011-04-26 | 2011-08-17 | 中兴通讯股份有限公司 | turbo译码的方法及装置 |
CN103368583A (zh) * | 2012-04-11 | 2013-10-23 | 华为技术有限公司 | 极性码的译码方法和译码装置 |
CN103856218A (zh) * | 2012-12-05 | 2014-06-11 | 华为技术有限公司 | 译码处理方法及译码器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100512020C (zh) * | 2006-07-28 | 2009-07-08 | 华为技术有限公司 | 一种译码方法及译码装置 |
US9503126B2 (en) * | 2012-07-11 | 2016-11-22 | The Regents Of The University Of California | ECC polar coding and list decoding methods and codecs |
US9467164B2 (en) * | 2013-10-01 | 2016-10-11 | Texas Instruments Incorporated | Apparatus and method for supporting polar code designs |
US10205470B2 (en) * | 2014-02-14 | 2019-02-12 | Samsung Electronics Co., Ltd | System and methods for low complexity list decoding of turbo codes and convolutional codes |
KR102128471B1 (ko) * | 2014-03-11 | 2020-06-30 | 삼성전자주식회사 | 폴라 부호의 리스트 복호 방법 및 이를 적용한 메모리 시스템 |
CN108370255B (zh) * | 2015-11-24 | 2022-04-12 | 相干逻辑公司 | 极性码连续消去列表解码器中的存储器管理和路径排序 |
-
2016
- 2016-08-12 CN CN201610665446.5A patent/CN107733446B/zh active Active
-
2017
- 2017-07-07 WO PCT/CN2017/092179 patent/WO2018028366A1/zh unknown
- 2017-07-07 EP EP17838496.2A patent/EP3480957B1/en active Active
-
2019
- 2019-01-31 US US16/264,014 patent/US10879939B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158235A (zh) * | 2011-04-26 | 2011-08-17 | 中兴通讯股份有限公司 | turbo译码的方法及装置 |
CN103368583A (zh) * | 2012-04-11 | 2013-10-23 | 华为技术有限公司 | 极性码的译码方法和译码装置 |
CN103856218A (zh) * | 2012-12-05 | 2014-06-11 | 华为技术有限公司 | 译码处理方法及译码器 |
Also Published As
Publication number | Publication date |
---|---|
CN107733446A (zh) | 2018-02-23 |
EP3480957A4 (en) | 2019-09-11 |
US20190165807A1 (en) | 2019-05-30 |
WO2018028366A1 (zh) | 2018-02-15 |
EP3480957A1 (en) | 2019-05-08 |
EP3480957B1 (en) | 2021-04-07 |
US10879939B2 (en) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107733446B (zh) | 译码方法及设备、译码器 | |
EP3381128B1 (en) | Memory management and path sorting in a polar code successive cancellation list decoder | |
CN109547034B (zh) | 译码方法及设备、译码器 | |
CN112332864B (zh) | 一种自适应有序移动剪枝列表的极化码译码方法及系统 | |
CN111277277B (zh) | 一种减少极化码连续对消表译码算法译码延迟的方法及装置 | |
CN108833052B (zh) | 信道极化译码路径度量值排序方法 | |
CN110661533B (zh) | 优化译码器存储极化码译码性能的方法 | |
Shen et al. | Low-latency segmented list-pruning software polar list decoder | |
US9793944B2 (en) | System and apparatus for decoding tree-based messages | |
WO2019075988A1 (zh) | 译码方法和装置 | |
CN104471888B (zh) | 突发数据块中的空闲块idle的处理方法、设备及系统 | |
CN111130567B (zh) | 添加噪声扰动和比特翻转的极化码置信传播列表译码方法 | |
CN112039634A (zh) | 一种极化码的译码方法、装置、计算机设备及存储介质 | |
US20240039556A1 (en) | Data Coding Processing Method and Apparatus, Storage Medium, and Electronic Device | |
Liang et al. | Efficient stochastic successive cancellation list decoder for polar codes | |
CN110858792B (zh) | 删除译码路径的方法及装置 | |
CN113131950A (zh) | 一种极化码的自适应连续消除优先译码方法 | |
WO2020213152A1 (ja) | 整列処理装置、選別システム、整列処理方法、及び非一時的なコンピュータ可読媒体 | |
WO2016168991A1 (zh) | 一种低密度校验码生成方法及装置 | |
Qi et al. | An improved successive cancellation decoder for polar codes | |
Shang et al. | LSTM-based path selection for successive cancellation list decoding for short polar codes | |
Tai et al. | An Improved CA-SCL Decoding Algorithm for Polar Code | |
CN118054797B (zh) | 编码及译码方法、装置、设备 | |
CN110166058B (zh) | 极化码ca-scl译码器、方法及噪声功率获取方法 | |
Wang et al. | Low Complexity Construction of Polar Codes with BP Decoder over Medium to High SNR Region |
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 |