CN115037310A - 一种基于随机计算的5g ldpc译码器性能优化方法及架构 - Google Patents
一种基于随机计算的5g ldpc译码器性能优化方法及架构 Download PDFInfo
- Publication number
- CN115037310A CN115037310A CN202210535004.4A CN202210535004A CN115037310A CN 115037310 A CN115037310 A CN 115037310A CN 202210535004 A CN202210535004 A CN 202210535004A CN 115037310 A CN115037310 A CN 115037310A
- Authority
- CN
- China
- Prior art keywords
- bit
- unit
- decoding
- sub
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000005457 optimization Methods 0.000 title abstract description 14
- 238000012805 post-processing Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims abstract description 5
- 230000015556 catabolic process Effects 0.000 claims abstract description 3
- 238000006731 degradation reaction Methods 0.000 claims abstract description 3
- 230000002028 premature Effects 0.000 claims abstract description 3
- 108091006146 Channels Proteins 0.000 claims description 60
- 238000006243 chemical reaction Methods 0.000 claims description 20
- 238000013461 design Methods 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 7
- 238000003491 array Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 238000004088 simulation Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000007619 statistical method Methods 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 238000013139 quantization Methods 0.000 claims description 3
- 239000000654 additive Substances 0.000 claims description 2
- 230000000996 additive effect Effects 0.000 claims description 2
- 230000010363 phase shift Effects 0.000 claims description 2
- 230000011218 segmentation Effects 0.000 claims description 2
- 230000003595 spectral effect Effects 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000005284 excitation Effects 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 12
- 230000001788 irregular Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102100038614 Hemoglobin subunit gamma-1 Human genes 0.000 description 1
- 102100038617 Hemoglobin subunit gamma-2 Human genes 0.000 description 1
- 101001031977 Homo sapiens Hemoglobin subunit gamma-1 Proteins 0.000 description 1
- 101001031961 Homo sapiens Hemoglobin subunit gamma-2 Proteins 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007306 turnover 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/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提出一种基于随机计算的5G LDPC译码器性能优化方法及架构,方法为:随机计算LDPC译码器基于概率域全并行的SPA算法,所有变量节点单元VNU和校验节点单元CNU同时更新运算,主要特点在于迭代中使用逻辑门电路进行单比特运算,高信噪比下能达到较高的吞吐率。具体优化部分为基于5G LDPC在后处理过程中使用比特翻转、判决饱和计数器复位和针对低码率码的比特翻转策略三种方法。本发明的译码器结构分为三大部分:前向处理部分、译码迭代部分和校验及后处理部分。本发明将随机计算译码方式应用在5GLDPC上,能解决因度分布差异大而引起的性能退化和误码平层过早出现的问题,有效在较少DC数内完成译码,尤其是在高信噪比下可以提高整体译码吞吐率。
Description
技术领域
本发明属于通信技术领域,涉及一种基于随机计算(Stochastic Computing)的5GLDPC译码器性能优化方法和低资源架构设计。
背景技术
LDPC码在1960s被Gallager提出,由于其接近信道容量的译码性能和较简化的硬件实现方法,所以5G数据信道采用LDPC码作为编码方案。LDPC码可以用稀疏的校验矩阵和因子图表示,主要由校验节点单元(CNU)和变量节点单元(VNU)两部分构成。和积算法(SPA)是最早的LDPC译码算法,为了简化计算学者又提出了最小和算法(MSA)。在硬件架构方面,检验矩阵的稀疏性为基于ASIC(专用集成电路)或FPGA(现场可编程门阵列电路)的硬件实现带来便利,全并行的译码器架构将所有的CNU和VNU在硬件平台上整体布局,可以实现极高的译码吞吐率,但是由于节点数量众多和运算单元较复杂等原因,会导致硬件资源消耗巨大;部分并行的架构将每次迭代过程分层进行,对于5G标准中使用的QC-LDPC(准循环低密度校验码)较为友好,但每次迭代需要多个时钟导致译码吞吐率较低。
为了解决当使用SPA或MSA译码算法在全并行架构译码时存在面积消耗巨大的问题,随机计算的LDPC译码算法被提出(参考文献[1]:S.Sharifi Tehrani,W.J.Gross,andS.Mannor,“Stochastic decoding of LDPC codes,”IEEE Commun.Lett.,vol.10,no.10,pp.716–718,Oct.2006.),此算法基于SPA算法,在译码过程中将多比特的概率值转换为单比特的二进制伯努利序列,既可以降低基本运算单元实现的复杂度,又可以缓解因LDPC多比特复杂互连网络产生的布线拥塞现象,可以降低基带芯片的功耗,提高单位面积的吞吐率,在当前摩尔定律逐渐失效的背景下,是下一代通信系统编译码部分可以采用的技术方向之一。
但是由于随机计算LDPC的序列之间存在相关性等问题,相比于基于概率或者对数似然比(LLR)的SPA和MSA等译码方式存在性能退化。为了解决这一问题,学者们提出了多种概率追踪器结构以改善性能,Saeed Sharifi Tehrani等人提出在VNU节点中由于JK触发器的锁存特性会导致节点收敛缓慢且准确性差,所以设计时引入外部存储器EM和内部存储器IM结构作为概率追踪器辅助每条边的收敛,提高了译码性能(参考文献[2]:S.S.Tehrani,S.Mannor,and W.J.Gross,“Fully parallel stochastic LDPC decoders,”IEEETrans.Signal Process.,vol.56,no.11,pp.5692–5703,Nov.2008.)。EM结构能有效辅助性能的提高,但是因为每条边都需要1个EM和由变量节点度决定的多个IM,并且EM由多比特的移位寄存器构成(常为32bit,48bit,64bit等),所以会消耗大量寄存器资源,另一种追踪预测存储器TFM可以使用存储多比特概率值的方式取代EM以减少寄存器的使用,并且保证纠错性能基本无损(参考文献[3]:S.Sharifi Tehrani,A.Naderi,G.-A.Kamendje,S.Mannor,and W.J.Gross,“Tracking forecast memories in stochastic decoders,”inProc.IEEEInt.Conf.Acoustics,Speech,Signal Processing(ICASSP),Taipei,Taiwan,Apr.2009,pp.561–564.)。但是TFM结构并未减少译码器使用的概率追踪器总数量,因此基于大数的追踪预测存储器MTFM结构被提出,其基于多数原则仅对每个VNU配置1个TFM的概率追踪器,以达到降低总数的目的,但这种方法在变量节点度较低时相比于前面的方法有性能损失(参考文献[4]:S.S.Tehrani,A.Naderi,G.-A.Kamendje,S.Hemati,S.Mannor,and W.J.Gross,“Majority-based tracking forecast memories for stochastic LDPC decoding,”IEEETrans.Signal Process.,vol.58,no.9,pp.4883–4896,Sep.2010.)。在译码性能方面,结合LDPC的比特翻转算法,多种后处理方法被提出以降低译码DC(Decoding Cycle)数,优化纠错性能(参考文献[5]:D.Wu,Y.Chen,Q.Zhang,Y.-L.Ueng,and X.Zeng,“Strategies forreducing decoding cycles in stochastic LDPC decoders,”IEEE Trans.CircuitsSyst.II,Exp.Briefs,vol.63,no.9,pp.873–877,Sep.2016.)。同时Qichen Zhang等人也从相关性分析的角度设计VNU节点结构以提高译码性能(参考文献[6]:Q.Zhang,Y.Chen,S.Li,X.Zeng and K.K.Parhi,"A High-Performance Stochastic LDPC DecoderArchitecture Designed via Correlation Analysis,"IEEE Transactions on Circuitsand Systems I:Regular Papers,vol.67,no.12,pp.5429-5442,Dec.2020.)。
上述分析大部分基于IEEE 802.3an中(2048,1723)这一规则LDPC码设计得到,但这些方法应用于5G LDPC这一类非规则码时仍然存在性能问题,主要原因是其变量节点度差异过大(最大为30,最小为1)并且数量分布不均匀,不利于随机计算译码方式的收敛。另外当度过大时VNU存在较多冗余单元,会使译码器整体面积增大,不利于面效比的提高。
发明内容
本发明针对以上问题,提出一种可用于5G LDPC这类非规则码的译码性能优化方法,在后处理过程中使用比特翻转、判决饱和计数器复位和针对低码率码的比特翻转策略这三种方法,解决因度分布差异较大而引起的性能退化和误码平层过早出现的问题,也可以同时降低译码DC数,降低单码块的译码时延。
本发明还提出一种可支持5G LDPC随机译码器的整体结构设计方法,设计子节点可复用的VNU单元结构减少冗余,使用简单的流程可以实现高度VNU节点低资源设计,并保证纠错性能无损。
本发明译码步骤及性能优化方法为:
随机计算LDPC译码器基于概率域全并行的SPA算法,所有变量节点单元VNU和校验节点单元CNU同时更新运算,主要特点在于迭代过程中使用简单的逻辑门电路进行单比特运算,在高信噪比下能达到较高的吞吐率。为表述统一,设5G LDPC的提升值为Zc,基础矩阵列数为blk_length,行数为blk_width,第i个变量节点度即列重为dvi,第i个校验节点度即行重为dci。
步骤1:信道接收及概率值转换。接收信道符号并计算所有LLR信息,根据噪声依赖的LLR缩放法(Noise-Dependent-Scaling,NDS)修正信道LLR值为LLR',加性高斯白噪声信道下噪声功率谱密度为N0,在BPSK(Binary Phase Shift Keying,二进制相移键控)调制方式下,具体方法为:
上述(2)式中α/Y为NDS系数,作用是对信道接收符号y的幅值进行缩放。依据(3)式的方法将blk_length×Zc个LLR'转换为相同数量的概率值P。
步骤2:随机数产生。使用多个线性反馈移位寄存器(LFSR)产生伪随机数R,每个DC都需要blk_length×Zc个R用于产生信道随机比特流。
步骤3:信道随机比特流产生。使用多个比较器将所有并行blk_length×Zc个概率值P与步骤2同时刻产生的相同数量的伪随机数R比较大小,若P>R则输出1,否则输出0,依此方法产生blk_length×Zc个单比特序列channel_bit。当序列无限长时channel_bit中1出现的概率无限接近于P。
步骤4:译码器初始化。使用步骤1中转换得到的概率值P对各VNU节点中概率追踪器赋值,并令译码首个DC前变量节点传递给检验节点的值(V2C)和检验节点传递给变量节点的值(C2V)都为0。
步骤5:变量节点更新。每个VNU单元更新dvi条边的V2C值,各DC中更新度为dvi的变量节点时,需要输入dvi个C2V值和1个步骤3产生的channel_bit,并在下一时钟周期输出dvi个更新后的V2C值。
步骤6:校验节点更新。由异或门构成的CNU单元完成blk_width×Zc个校验节点C2V值的更新,对于度为dci的校验节点,接收并异或所有相邻VNU更新后的dci个V2C值,将异或结果再分别与各边V2C值再次异或,输出得到dci条边的C2V更新值。
步骤7:译码判决。每一个VNU单元内都包含1个饱和计数器,用于判决迭代结束后的码字,计数值范围为-7~7,在每个DC中统计C2V和channel_bit中1的数量决定计数器加1或减1或保持不变,根据计数器正负判决码字,计数器小于0判决为0,否则为1。
步骤8:提前停止及后处理判断。校验每个DC中步骤7的码字判决结果,并统计所有校验方程未通过的数量,若均通过校验,则提前停止;当未通过数量小于某一阈值时(即译码到只剩少部分错误)进行步骤9开始后处理操作;否则跳转至步骤5进行下一个DC的译码。
步骤9:比特翻转后处理。满足步骤8的条件后,统计每一个变量节点连接的校验节点校验不通过的数量,若此数量大于此变量节点度的一半,则认为该码字不可靠,翻转该码字。
步骤10:计数器复位后处理。在步骤9需要翻转的码字基础上,对相应位置的判决饱和计数器实施复位操作。
步骤11:再次校验。统计方法与步骤8相同,当所有校验方程通过时提前停止;当此时为低码率且仅有少量方程未通过校验时进入下一阶段的低码率后处理,因为低码率的校验矩阵会有较多低度变量节点,收敛过程容易受不可靠channel_bit影响而收敛到近码字(即错误码字),所以此时进入步骤12加入额外扰动以加快收敛;若不符合则跳转至步骤5进行下一个DC的译码。
步骤12:针对低码率比特翻转后处理。低码率时某些不可靠码字位置无法通过步骤9中比特翻转的方式识别,所以当某变量节点相邻的属于核心阵(前4*Z_c行)的校验节点全部不通过校验时,则认为当前位置不可靠,翻转码字。
以上步骤8~12经仿真验证对低码率码,尤其是短码,有较好的性能优化效果,并能有效降低平均译码DC数,但是对于包含较多变量节点的长码仍然存在收敛缓慢并且错误平层较早出现的问题,下面使用另一种方法解决此问题。
步骤13:分段松弛系数β的重译码策略。松弛系数β为VNU节点内概率追踪器的概率更新步进值,在重译码中分段调整为较大β以增加随机扰动。因为LDPC码中有环和陷阱集等结构的存在,在使用不同随机数时译码的收敛情况不同,有些随机数可能导致其收敛到近码字(陷阱集导致),而其它随机数可能会正常收敛。因此若首次译码DC数达到设定最大DC的90%仍未成功收敛时,仍然使用本帧数据启动第二次译码,跳转至步骤4重新初始化译码器,设定第二次译码的松弛系数β为分段值,经仿真验证得到对于5G LDPC最佳设置方式为:前5个译码DC中,β设置为1/2;随后的95个DC中,β设置为1/4,之后的译码DC中β设为正常值1/16。这样设置的原因是在译码的前段,对译码收敛方向施加较大的外界激励,增加跳出错误组合的概率。
本发明中译码器的整体结构为:
本发明的译码器整体结构分为三大部分:前向处理部分、译码迭代部分和校验及后处理部分。
前向处理部分,作用是在译码迭代前对信道串行接收且解调后产生的对数似然比(LLR)进行处理,输入从信道采样且经NDS方法处理后的LLR值,输出转换后的概率值和产生的channel_bit给译码迭代部分。前向处理部分结构主要由LLR转换概率单元、缓存单元、随机数发生器、比较器阵列构成。
所述的LLR转换概率单元每个时钟采样Zc个经过NDS方法缩放后的量化位宽为QLLRbit的信道接收值LLR',此单元由Zc个查找表(LUT)构成,在同一时钟内转换为Zc个概率值P,每个概率值的量化位宽为QPROB bit,将产生的Zc×QPROB bit数据分别送入缓存单元用于串并转换和译码迭代部分用于译码器初始化。
所述的缓存单元用于串并转换及数据帧缓存,由BRAM(Block Random AccessMemory,随机块存储器)或FIFO(First Input First Output,先入先出存储器)构成,接收连续多个时钟周期内LLR转换概率单元输出的Zc×QPROB bit概率数据,并将多组数据依次写入BRAM或FIFO中,内存空间需要保证能最少存储2帧完整数据,当1帧数据缓存完成后并行输出一帧Zc×QPROB×blk_length bit数据给比较器阵列用于产生信道随机比特channel_bit。
所述的随机数发生器由多个线性反馈移位寄存器(LFSR)构成用于产生伪随机数R,每个R的位宽为QPROB bit,将此单元生成的Zc×QPROB×blk_length bit随机数并行送入比较器阵列用于产生channel_bit。
所述的比较器阵列由blk_length×Zc个比较器构成,每个比较器的一个输入端为缓存单元输出的概率值P,另一个输入端为随机数发生器输出的随机数序列R,比较大小生成单比特序列channel_bit,此单元每个DC将并行的blk_length×Zc个channel_bit送入译码迭代部分。
译码迭代部分主要作用是各DC译码迭代过程中变量节点和校验节点的更新以及生成判决码字,输入为前向处理部分生成的概率值以及信道随机比特流channel_bit,以及后处理部分生成的计数器复位位置指示信号,输出为每个DC的码字判决结果给后处理部分。译码迭代部分结构主要由判决饱和计数器单元和blk_length个依次互连的子块组成,每个子块内包含Zc个VNU单元,dv个子异或(SUB-XOR)单元构成的CNU节点和1个路由(Routing)单元。
所述的互联子块的作用是完成变量节点更新、校验节点更新以及迭代信息的传递,每Zc个VNU划分为1个子块,共blk_length个,子块之间采用双向位宽为Zc×blk_widthbit的总线依次相连,用于传递CNU的中间更新结果。每个子块还输出Zc个2bit的数据给判决饱和计数器单元,用于指示当前DC对应计数器值加1、减1或保持不变。
所述的每个子块内Zc个VNU单元用于更新各边的V2C值,根据不同的dvi设计子节点可复用的VNU单元同步输出dvi个更新结果,度为dvi的VNU输入端数为dvi+1个,层级结构采用多个3输入子节点和2输入子节点级联的方式,称这些节点为原始子节点,在此基础上为了满足所有边的更新结构,需要在原始子节点上并联多个额外的子节点,称这些节点为旁路子节点,在更新每条边时各原始子节点被多次复用,可以达到降低资源开销的目的。每个VNU单元需要配置概率追踪器以避免锁存情况发生,并且由于5G LDPC码长较长不易收敛,所以当dvi不小于6时,需要基于大数追踪预测存储器MTFM设计概率追踪器以保证纠错性能要求,当dvi小于6大于1时,需要使用追踪预测存储器TFM结构,当dvi等于1时直接将channel_bit作为更新值。另外,在译码迭代过程开始前需要用前向处理部分输出的概率值依次初始化所有dvi>1的VNU中概率追踪器存储的概率值,以加快译码收敛速度。
所述的每个子块内路由(Routing)单元用于在VNU和CNU之间传递更新后的V2C和C2V值,所以其输入为CNU单元更新的C2V信息和Zc个VNU单元更新的V2C信息,输出经路由后的C2V信息给VNU和路由后的V2C信息给CNU,这些端口的宽度都为Zc×dvi bit。由于随机译码为全并行架构,所以路由单元内主要由输入输出直连的网络构成,可以依据不同基矩阵的移位值p以及提升值Zc设计网络连接关系,满足不同码长码率的译码需求。当需要同时兼容多种基矩阵时,如5G LDPC需要支持2种基图HBG1和HBG2,每种基图包含8个不同的基矩阵,可以在路由单元的输入或输出端使用多路选择器选择相应的连接网络,实现正确的信息传递。
所述的每个子块内CNU节点由dvi个子异或(SUB-XOR)单元构成,用于子块内C2V值的更新。因为随机LDPC译码中CNU的更新方法是接收所有相邻VNU更新后的V2C值,更新某条边时,将除本条边上传递的V2C以外的其他V2C值异或,得到该条边C2V的更新结果。考虑本发明译码迭代部分的结构特点,每个SUB-XOR内需要设计3个异或门电路,其中2个起到传递异或中间值的作用,即将左侧(右侧)相邻子块输出的部分异或后的值与本子块输出的V2C值异或,再传递给右侧(左侧)相邻子块,另外1个将左侧和右侧相邻子块输出的部分异或后的值再按位异或,将结果输入到路由单元中,即完成了当前子块内C2V值的更新。所以每个SUB-XOR的输入端有3个,分别为左侧子块、右侧子块经部分异或后的中间值和当前子块路由单元输出的V2C值,输出端也有3个,分别为经异或处理后传递给左右相邻子块的值和输出给本子块路由单元的C2V值,以上这些端口的宽度都为Zc bit。
所述的判决饱和计数器单元用于每个VNU节点对应的码字判决,计数器位宽为4bit,计数范围为-7~7,共需blk_length×Zc个,此单元的输入为每个子块输出的Zc个2bit信号,用于指示对应计数器值加1、减1或保持不变,还会输入后处理部分生成的计数器复位信号,用于指示需要置0的计数器位置,输出为码字判决结果。
后处理部分主要优化解决由于LDPC码存在环等因素的影响,导致一些校验位的错误很难快速纠正,具体表现为在译码DC后段收敛速度逐渐减慢,个别校验节点无法通过校验,所以通过后处理方法可以提高收敛速度,优化纠错性能。此部分的输入为译码迭代部分输出的判决码字,输出为给译码迭代部分内判决饱和计数器单元的计数器复位位置信号,以及最终的译码码字输出。后处理部分内的主要结构有奇偶校验单元、码字翻转和计数器复位单元、低码率翻转单元。
所述的奇偶校验单元在获得译码迭代部分的码字输入后进行blk_width×Zc个方程的奇偶校验,此单元内部包含多组异或门阵列,校验行异或结果为0则通过校验,为1则不通过校验。使用计数器统计未通过校验的数量并设置阈值,若超过阈值则指示信号为1否则为0,将此阈值指示信号与各方程校验结果输出给码字翻转和计数器复位单元以及低码率翻转单元。奇偶校验单元内还会进行码字翻转操作,输入来自码字翻转和计数器复位单元以及低码率翻转单元生成的错误位置指示信号,并将对应位置的码字翻转以纠正部分错误,译码成功后将正确的码字输出。
所述的码字翻转和计数器复位单元作用是产生需要翻转的码字和复位的计数器位置指示信号,首先若奇偶校验单元生成阈值指示信号为0则满足翻转条件,将每一码字位置未通过的校验方程数量与当前dvi比较,产生需要翻转的位置指示信号,若大于dvi/2则需要翻转并指示为1,否则为0,总位宽为blk_length×Zc bit,将其输出给奇偶校验单元和译码迭代部分的饱和计数器单元。
所述的低码率翻转单元作用是对于码率小于0.5的码,当个别校验方程经多个DC译码始终不通过时,通过再次翻转码字的方法加快收敛。输入为奇偶校验单元生成的阈值指示信号和各方程校验结果,统计每一码字位置核心阵未通过的数量并与核心阵的度比较,产生并输出需要翻转的码字位置指示信号。
本发明的优点及有益效果在于:
本发明将随机计算译码方式应用在5G LDPC上,能有效在较少DC数内完成译码,尤其是在高信噪比下可以提高整体译码吞吐率。
本发明结合了比特翻转算法的优势,使用3种后处理方法和1种基于分段松弛系数的重译码方法,降低了码字收敛到近码字的概率,降低了译码错误平层,对于5G LDPC这种非规则码有很好的性能优化效果,使随机计算的5G LDPC译码器具有与基于LLR的归一化分层最小和译码器相当甚至更优的纠错性能。
本发明提出了低资源的VNU节点设计方法,通过在原始子节点上增加旁路子节点提高了复用性,使用此类方法可以设计多种高度节点(如dv=30),降低了设计复杂度,并且相比于传统TFM的方式基本没有性能损失,对于5G LDPC这类非规则码有较好的适配性。
附图说明
图1为本发明所述的随机LDPC译码器架构示意图。
图2为本发明所述的变量节点度为5的更新单元结构示意图。
图3为本发明所述的变量节点度为13的更新单元结构示意图。
图4为本发明中采用的包含IM的degree-2_Subnode结构示意图。
图5为本发明中采用的包含IM的degree-3_Subnode结构示意图。
图6为本发明中采用的不包含IM的degree-2_Gate结构示意图。
图7为本发明中采用的TFM结构示意图。
图8为本发明中采用的MTFM结构示意图。
图9为本发明所述的译码步骤流程图。
图10为本发明所述的后处理方法对平均译码DC数降低效果示意图。
图11为本发明所述的译码算法应用在两种5G LDPC码字上误帧性能改善示意图。
具体实施方式
下面结合附图和实施示例对本发明进行详细说明。
图1是本发明描述的用于5G LDPC随机译码器的整体架构图,上半部分为所述的前向处理部分(Pre-Processing),中间为所述的译码迭代部分(VNCNU),最下方为所述的校验及后处理部分(Post-Processing),图中箭头代表各模块之间的数据交换,箭头旁边的指示代表数据位宽,单位为比特(bit)。每个时钟从信道Input采样Zc个LLR'值Zc×QLLRbit送入LLR转换概率单元(LLR to Probability),这里LLR'为使用NDS方法修正后的值,经仿真测试,5G LDPC部分码率下α/Y的值由表1所示。在LLR转换概率单元中,使用Zc个查找表将Zc个LLR'同步转换为Zc个位宽为QPROB=6bit的概率值P,并将连续blk_length个时钟内的Zc×QPROBbit分别送入串并转换缓存单元和译码迭代部分分别完成译码前的串并转换和译码器初始化过程。图1中Buffer为串并转换缓存单元,由FIFO构成,依据2帧数据帧的位宽2N=2×Zc×blk_length×QPROBbit设置内存空间,当1帧数据串行缓存完成后并行输出给比较器阵列(Compare Array)用于产生信道随机比特流channel_bit。LFSRs为随机数产生单元,由多个线性反馈移位寄存器(LFSR)构成产生伪随机数R,每个LFSR寄存器位宽为10bit,为了降低资源消耗可将多路随机数序列R重复利用产生channel_bit(这里每32个不相邻的位置复用1路随机数)。比较器阵列(Compare Array)用于将所有并行blk_length×Zc个概率值P与LFSRs产生的随机数R比较大小,并转换为blk_length×Zc个单比特序列channel_bit,将其输入至译码迭代部分。
表1.码率与NDS系数γ=α/Y的近似关系
码率R | 1/3 | 1/2 | 5/8 | 2/3 | 3/4 |
γ=α/Y | 0.3 | 0.5 | 0.65 | 0.7 | 0.9 |
码率R | 13/16 | 5/6 | 7/8 | 22/25 | 22/24 |
γ=α/Y | 1.0 | 1.1 | 1.1 | 1.4 | 1.5 |
图1中间的译码迭代部分接收来自前向处理部分的channel_bit和用于概率追踪器初始化的概率值,以及来自后处理部分的判决饱和计数器复位信号,输出为判决的码字。此部分包含n个子块(n=blk_length)和判决饱和计数器单元,子块之间采用双向位宽为Zc×blk_width bit的总线依次相连,用于传递CNU的中间更新结果。每个子块还输出Zc个2bit的数据给判决饱和计数器单元,用于指示对应计数器值加1、减1或保持不变。每个子块内包含Zc个VNU单元(如图中圆圈所示),dvi个子异或(SUB-XOR)单元构成的CNU单元和1个路由(Routing)单元。VNU单元用于更新各边的V2C值,对于度为dvi的VNU输入端数为dvi+1个,输出端为dvi个。路由(Routing)单元用于在VNU和CNU之间传递更新后的V2C和C2V值,所以其输入为CNU单元更新的C2V信息和Zc个VNU单元更新的V2C信息,输出经路由后的C2V信息给VNU和路由后的V2C信息给CNU,这些端口的宽度都为Zc×dvi bit,路由单元内网络设计采用直连的方式,可以根据基矩阵和提升值配置不同的连接网络满足多种码的译码需求,具体方法为在此单元的输出端采用多选一的数据选择器配置不同的连接网络,其输入端数量N_MUX与最大支持的基矩阵数量n相关且N_MUX=2n,即当仅支持1个基矩阵时所有选择器类型为2选1,支持2个基矩阵时选择器类型为4选1。每个子块内CNU单元用于C2V值的更新,除第一和最后一个子块中,其它每个子块内都包含dvi个子异或单元(SUB-XOR),SUB-XOR内有3个异或门,每个门的端口数据位宽为Zc bit,下方两个异或门分别向左、右相邻子块传递累积异或结果,上方异或门接收并运算来自左右相邻子块的异或结果,作为更新后的C2V值输入至Routing单元中。第一和最后一个子块中不需要异或,只需要通过Slice单元选择有效的dvi×Zc bit C2V信息送入Routing单元。子块间信息传递的过程中,每个子块只会更新dvi×Zc bit,对于总线上其余(blk_width-dvi)×Zc bit则采用直通的方式,不经过子异或模块。图1中判决饱和计数器单元(HardDecision Counter)用于每个VNU单元对应的码字判决,包含blk_length×Zc个位宽为4bit的饱和计数器,此单元的输入为每个子块输出的Zc个2bit信号,用于指示对应计数器值加1、减1或保持不变,还会输入后处理部分生成的计数器复位信号,用于指示需要置0的计数器位置,输出为blk_length×Zc bit码字判决结果。
图1下方的后处理部分输入为译码迭代部分输出的判决码字,输出为给译码迭代部分中判决饱和计数器单元的计数器复位位置信号,以及最终译码成功的码字输出。后处理部分内的主要结构有奇偶校验单元(Parity Check)、码字翻转和计数器复位单元(Codeword Flip&Counter reset)和低码率翻转单元(Low-rate Flip)。奇偶校验单元在获得译码迭代部分的码字输入后进行blk_width×Zc个方程的奇偶校验,同时使用计数器统计未通过校验的数量并设置阈值,若超过阈值则指示信号为1否则为0,将此阈值指示信号与各方程校验结果共blk_width×Zc+1bit输出给码字翻转和计数器复位单元以及低码率翻转单元。奇偶校验单元得到blk_length×Zc bit错误位置指示信号后进行码字翻转操作以纠正部分错误,最后译码成功后将正确的码字输出。码字翻转和计数器复位单元接收blk_width×Zc+1bit校验结果,若满足翻转条件,则将每一码字位置未通过的校验方程数量与当前dvi比较,产生blk_length×Zc bit需要翻转的位置指示信号,输出给奇偶校验单元和译码迭代部分的饱和计数器单元。低码率翻转单元在码率小于0.5时激活,输入和输出形式与码字翻转和计数器复位单元相同,不同点在于其只会将blk_length×Zc bit需要翻转的位置指示信号输出给奇偶校验单元。
图2为本发明设计的变量节点度为5的更新单元结构,是一种低度节点的实施例,其输入端数量为6,其中有5个C2V值和1个channel_bit,在1个时钟内更新得到5个V2C值,图中根据输入端数量划分2种包含内部存储器(IM)的子节点,分别为2输入端子节点(Degree-2 Subnode)和3输入端子节点(Degree-3 Subnode),每个子节点都会输出新生比特(Regenerate bit)。在设计子节点层级结构时通过使用在原始子节点上并联旁路子节点的方式减少子节点总数量,图2中白色方框为原始子节点,灰色方框为旁路子节点,对于dvi=5的情况从左至右共分为3层:第一层中2输入端子节点1~3并联在3输入端子节点1上,2输入端子节点4和5并联在3输入端子节点2上;第二层为6个不包含IM的2输入门电路(Degree-2Gate),其输入为第一层产生的新生比特,输出为使能信号en和数据信号r,en指示当前Degree-2 Gate的两个输入是否相等,r则为两输入相与的结果;第三层为概率追踪器以避免锁存情况发生,当dvi小于6大于1时,需要使用基于计数器的TFM结构,当dvi不小于6时,需要使用MTFM结构,当dvi为1时则不需要概率追踪器,所以在此实施例中需要使用5个TFM且输入分别为第二层产生的各边使能en和数据r。
图3为本发明设计的变量节点度为13的更新单元结构,是一种高度节点的实施例,其输入端数量为14,其中有13个C2V值和1个channel_bit,在1个时钟内更新得到13个V2C值。高度VNU节点的设计原则是,首先依据dvi+1输入端数量设计层级结构确定原始子节点(白色方框)之间的连接关系,在设计更新第i条边V2C_i的数据路径时,需要排除C2V_i值的影响,所以通过增加部分旁路子节点(灰色方框)的方式以避开涉及到C2V_i的原始子节点(白色方框)。对于dvi=13的情况从左至右其VNU共分为4层:第一层中每3个2输入端子节点并联在1个3输入端子节点上,共有3组,还有1个额外的2输入端子节点;第二层中上方白色方框的3输入端子节点的输入来自第一层上方三个原始子节点(白色方框)的输出,同样下方白色方框的2输入端子节点的输入来自第一层下方两个原始子节点(白色方框)的输出,其余各子节点均为旁路子节点(灰色方框);第三层中为dvi=13个不包含IM的2输入门电路(Degree-2 Gate),其输入为第二层产生的新生比特,输出为使能信号en和数据信号r;第四层为1个MTFM结构,并且在各边输出时需要dvi=13个选择器,当en=1时使用数据r作为边的V2C更新值,当en=0时使用MTFM输出作为边的V2C更新值。
图4为本发明采用的包含IM的degree-2_Subnode结构,图5为本发明采用的包含IM的degree-3_Subnode结构,两者结构中或门的输出都为使能信号en,用于IM存储器读写使能和输出选择器的数据选通,上方与门的输出都为产生的数据r,随机数R用于当en=0时作为随机地址从IM中读取数据输出。图4和图5唯一的不同点在于,前端两个与门分别为2输入端和3输入端。图6为本发明中采用的不包含IM的degree-2_Gate结构,in1=in2时en=1,此时r输出有效为这个相等值,否则en=0,此结构用于TFM/MTFM前端产生使能及数据信号。图7为本发明中采用的TFM结构,包含1个加减计数器和1个比较器,计数器步进值为±β,仅当en=1时才会更新计数器值P(t+1)=P(t)-(-1)rβ,当en=0时将计数器存储值P(t)与随机数R(t)比较大小获得输出。图8为本发明中采用的MTFM结构,包括i个两输入与门、1个i输入与门(i=dvi)、1个加法器和1个图7中的TFM,使用加法器统计所有degree-2_Gate输出en=1且r=1的数目X(t),并取其最高有效位作为TFM的数据输入r,并将所有degree-2_Gate输出的en相与作为TFM的使能输入en,按照图7的结构产生MTFM的输出。
图9为本发明所述的译码步骤流程图,主要详细描述了其中的后处理部分。具体步骤为:
步骤1:信道接收及概率值转换。
步骤2:随机数产生。
步骤3:信道随机比特流产生。
步骤4:译码器初始化。
以上步骤1~4对应图9中前向信息处理部分。
步骤5:变量节点更新,更新每个变量节点的V2C值。
步骤6:校验节点更新,更新每个校验节点的C2V值。
以上步骤5和6对应图9中变量及校验节点更新部分。
步骤7:判决饱和计数器更新及码字判决。
步骤8:提前停止及后处理判断。校验每个DC中步骤7的码字判决结果,并统计所有校验方程未通过的数量Np,当Np为0则提前停止输出码字,当Np小于某一阈值T1则进入步骤9,否则当前DC加1并判断当前DC数是否达到最大DC的90%,若不是则跳转至步骤5进行下一个DC的译码。这里阈值T1的设置根据码长N设定为经验值,当码长N<10000时为60,N≥10000时为200。
步骤9:比特翻转后处理。满足步骤8的条件后,统计每一个变量节点连接的校验节点校验不通过的数量,若不通过的校验节点数量大于此变量节点度的一半,则认为该码字不可靠,翻转该码字。
步骤10:计数器复位后处理。在步骤9需要翻转的码字基础上,对步骤7中提到的相应位置的判决饱和计数器实施复位操作。
步骤11:再次校验。进行全矩阵的校验并统计当前未通过的校验方程数量Np’,若Np’=0则提前停止并输出码字;若当前码率小于0.5且Np’<T2,则进入步骤12;否则当前DC加1并判断当前DC数是否达到最大DC的90%,若不是则跳转至步骤5进行下一个DC的译码。这里的阈值T2经仿真验证恒等于10较优。
步骤12:针对低码率比特翻转后处理。当某变量节点相邻的属于核心阵的校验节点(前4*Z_c行)全部不通过校验时,则认为当前变量节点不可靠,翻转码字。
步骤13:分段松弛系数β的重译码策略。当某帧译码DC数达到设定最大DC的90%仍未成功收敛时,仍然使用本帧数据启动第二次译码,跳转至步骤4重新初始化译码器,并设定第二次译码的松弛系数β为分段值,设置方法如(4)式。但重译码对一帧数据只进行一次,若重译码达到最大DC的90%仍未收敛则直接输出码字。
图10为本发明所述的后处理方法对平均译码DC数降低效果,使用2种比特翻转(普适的比特翻转后处理和针对低码率的比特翻转后处理)加计数器复位的方法与无后处理进行比较,可看出(1920,640)码在1.4dB时的平均译码DC数从675降低至310。
图11为本发明所述的译码算法应用在两种5G LDPC码字上误帧性能比较。左侧三条曲线表示(1920,640)低码率中短码在归一化分层最小和(LNMSA)算法、随机译码传统无优化算法、随机译码后处理优化算法下的性能表现,可以看出在BLER=10-2处本发明的后处理优化算法能带来约0.3dB的性能增益,同时误帧率优于LNMSA;右侧三条曲线表示(9600,8448)高码率长码在同样三种算法下的性能表现,可以看出在BLER=10-2处本发明的后处理优化算法能带来约0.2dB的性能增益,并且有效降低了错误平层。因此,本发明对于5G LDPC这种非规则码有很好的性能优化效果。
Claims (10)
1.一种基于随机计算的5G LDPC译码器性能优化方法,其特征在于,包括如下步骤:
步骤1:信道接收及概率值转换;接收信道符号并计算所有LLR信息,根据噪声依赖的LLR缩放法NDS修正信道LLR值为LLR',加性高斯白噪声信道下噪声功率谱密度为N0,在二进制相移键控BPSK调制方式下,具体方法为:
其中,α/Y为NDS系数,是对信道接收符号y的幅值进行缩放;根据式(3)的方法将blk_length×Zc个LLR'转换为相同数量的概率值P;
步骤2:随机数产生;使用多个线性反馈移位寄存器LFSR产生伪随机数R,每个DC都需要blk_length×Zc个R用于产生信道随机比特流;
步骤3:信道随机比特流产生;使用多个比较器将所有并行blk_length×Zc个概率值P与步骤2同时刻产生的相同数量的伪随机数R比较大小;若P>R则输出1,否则输出0,产生blk_length×Zc个单比特序列channel_bit;当序列无限长时channel_bit中1出现的概率无限接近于P;
步骤4:译码器初始化;使用步骤1中转换得到的概率值P对各VNU节点中概率追踪器赋值,并令译码首个DC前变量节点传递给检验节点的值V2C和检验节点传递给变量节点的值C2V都为0;
步骤5:变量节点更新;每个VNU单元更新dvi条边的V2C值,各DC中更新度为dvi的变量节点时,需要输入dvi个C2V值和1个步骤3产生的channel_bit,并在下一时钟周期输出dvi个更新后的V2C值;
步骤6:校验节点更新;由异或门构成的CNU单元完成blk_width×Zc个校验节点C2V值的更新,对于度为dci的校验节点,接收并异或所有相邻VNU更新后的dci个V2C值,将异或结果再分别与各边V2C值再次异或,输出得到dci条边的C2V更新值;
步骤7:译码判决;每一个VNU单元内都包含1个饱和计数器,用于判决迭代结束后的码字,计数值范围为-7~7,在每个DC中统计C2V和channel_bit中1的数量决定计数器加1或减1或保持不变,根据计数器正负判决码字,计数器小于0判决为0,否则为1;
步骤8:提前停止及后处理判断;校验每个DC中步骤7的码字判决结果,并统计所有校验方程未通过的数量,若均通过校验,则提前停止;当未通过数量小于某一阈值时进行步骤9开始后处理操作;否则跳转至步骤5进行下一个DC的译码;
步骤9:比特翻转后处理;满足步骤8的条件后,统计每一个变量节点连接的校验节点校验不通过的数量,若此数量大于此变量节点度的一半,则认为该码字不可靠,翻转该码字;
步骤10:计数器复位后处理;在步骤9需要翻转的码字基础上,对相应位置的判决饱和计数器实施复位操作;
步骤11:再次校验;统计方法与步骤8相同,当所有校验方程通过时提前停止;当此时为低码率且仅有少量方程未通过校验时进入下一阶段的低码率后处理,因为低码率的校验矩阵会有较多低度变量节点,收敛过程容易受不可靠channel_bit影响而收敛到近码字即错误码字,所以此时进入步骤12加入额外扰动以加快收敛;若不符合则跳转至步骤5进行下一个DC的译码;
步骤12:针对低码率比特翻转后处理;低码率时某些不可靠码字位置无法通过步骤9中比特翻转的方式识别,所以当某变量节点相邻的属于核心阵的校验节点全部不通过校验时,则认为当前位置不可靠,翻转码字;
步骤13:分段松弛系数β的重译码策略;松弛系数β为VNU节点内概率追踪器的概率更新步进值,在重译码中分段调整为较大β以增加随机扰动;因为LDPC码中有环和陷阱集结构的存在,在使用不同随机数时译码的收敛情况不同,有些随机数会导致其收敛到近码字,而其它随机数会正常收敛;因此若首次译码DC数达到设定最大DC的90%仍未成功收敛时,仍然使用本帧数据启动第二次译码,跳转至步骤4重新初始化译码器,设定第二次译码的松弛系数β为分段值,经仿真验证得到对于5G LDPC最佳设置方式为:前5个译码DC中,β设置为1/2;随后的95个DC中,β设置为1/4,之后的译码DC中β设为正常值1/16。
2.根据权利要求1所述的一种基于随机计算的5G LDPC译码器性能优化方法,其特征在于:使用基于比特翻转、判决饱和计数器复位和针对低码率码的比特翻转策略这三种后处理方法,改善因度分布差异较大而引起的性能退化和误码平层过早出现的问题;使用基于分段松弛系数β的重译码策略,在重译码轮次根据当前DC选择相应的β值,这样设置的原因是在译码的前段,对译码收敛方向施加较大的外界激励,增加跳出错误组合的概率。
3.一种基于随机计算的5G LDPC译码器的架构,其特征在于:译码器分为三大部分:前向处理部分、译码迭代部分和校验及后处理部分;其中,
前向处理部分是在译码迭代前对信道串行接收且解调后产生的对数似然比LLR进行处理,输入从信道采样且经NDS方法处理后的LLR值,输出转换后的概率值和产生的channel_bit给译码迭代部分;前向处理部分结构由LLR转换概率单元、缓存单元、随机数发生器及比较器阵列构成;
译码迭代部分是各DC译码迭代过程中变量节点和校验节点的更新以及生成判决码字,输入为前向处理部分生成的概率值以及信道随机比特流channel_bit,以及后处理部分生成的计数器复位位置指示信号,输出为每个DC的码字判决结果给后处理部分;译码迭代部分结构由判决饱和计数器单元和blk_length个依次互连的子块组成,每个子块内包含Zc个VNU单元,dv个子异或SUB-XOR单元构成的CNU节点和1个路由Routing单元;
后处理部分优化的输入为译码迭代部分输出的判决码字,输出为给译码迭代部分内判决饱和计数器单元的计数器复位位置信号,以及最终的译码码字输出;后处理部分内的结构包括奇偶校验单元、码字翻转和计数器复位单元及低码率翻转单元。
4.根据权利要求2所述的一种基于随机计算的5G LDPC译码器的架构,其特征在于:所述的LLR转换概率单元每个时钟采样Zc个经过NDS方法缩放后的量化位宽为QLLR bit的信道接收值LLR',此单元由Zc个查找表LUT构成,在同一时钟内转换为Zc个概率值P,每个概率值的量化位宽为QPROB bit,将产生的Zc×QPROB bit数据分别送入缓存单元用于串并转换和译码迭代部分用于译码器初始化;
所述的缓存单元用于串并转换及数据帧缓存,由随机块存储器BRAM或先入先出存储器FIFO构成,接收连续多个时钟周期内LLR转换概率单元输出的Zc×QPROB bit概率数据,并将多组数据依次写入BRAM或FIFO中,内存空间需要保证能最少存储2帧完整数据,当1帧数据缓存完成后并行输出一帧Zc×QPROB×blk_length bit数据给比较器阵列用于产生信道随机比特channel_bit。
5.根据权利要求2所述的一种基于随机计算的5G LDPC译码器的架构,其特征在于:所述的随机数发生器由多个线性反馈移位寄存器LFSR构成用于产生伪随机数R,每个R的位宽为QPROB bit,将此单元生成的Zc×QPROB×blk_length bit随机数并行送入比较器阵列用于产生channel_bit;
所述的比较器阵列由blk_length×Zc个比较器构成,每个比较器的一个输入端为缓存单元输出的概率值P,另一个输入端为随机数发生器输出的随机数序列R,比较大小生成单比特序列channel_bit,此单元每个DC将并行的blk_length×Zc个channel_bit送入译码迭代部分。
6.根据权利要求2所述的一种基于随机计算的5G LDPC译码器的架构,其特征在于:所述的互联子块的作用是完成变量节点更新、校验节点更新以及迭代信息的传递,每Zc个VNU划分为1个子块,共blk_length个,子块之间采用双向位宽为Zc×blk_width bit的总线依次相连,用于传递CNU的中间更新结果;每个子块还输出Zc个2bit的数据给判决饱和计数器单元,用于指示当前DC对应计数器值加1、减1或保持不变;
所述的每个子块内Zc个VNU单元用于更新各边的V2C值,根据不同的dvi设计子节点可复用的VNU单元同步输出dvi个更新结果,度为dvi的VNU输入端数为dvi+1个,层级结构采用多个3输入子节点和2输入子节点级联的方式,称这些节点为原始子节点,在此基础上为了满足所有边的更新结构,需要在原始子节点上并联多个额外的子节点,称这些节点为旁路子节点,在更新每条边时各原始子节点被多次复用,达到降低资源开销的目的;每个VNU单元需要配置概率追踪器以避免锁存情况发生,并且由于5G LDPC码长较长不易收敛,所以当dvi不小于6时,需要基于大数追踪预测存储器MTFM设计概率追踪器以保证纠错性能要求,当dvi小于6大于1时,需要使用追踪预测存储器TFM结构,当dvi等于1时直接将channel_bit作为更新值;另外,在译码迭代过程开始前需要用前向处理部分输出的概率值依次初始化所有dvi>1的VNU中概率追踪器存储的概率值,以加快译码收敛速度。
7.根据权利要求2所述的一种基于随机计算的5G LDPC译码器的架构,其特征在于:所述的每个子块内路由Routing单元用于在VNU和CNU之间传递更新后的V2C和C2V值,所以其输入为CNU单元更新的C2V信息和Zc个VNU单元更新的V2C信息,输出经路由后的C2V信息给VNU和路由后的V2C信息给CNU,这些端口的宽度都为Zc×dvi bit;由于随机译码为全并行架构,所以路由单元内由输入输出直连的网络构成,依据不同基矩阵的移位值p以及提升值Zc设计网络连接关系,满足不同码长码率的译码需求;当需要同时兼容多种基矩阵时,在路由单元的输入或输出端使用多路选择器选择相应的连接网络,实现正确的信息传递。
8.根据权利要求2所述的一种基于随机计算的5G LDPC译码器的架构,其特征在于:所述的每个子块内CNU节点由dvi个子异或SUB-XOR单元构成,用于子块内C2V值的更新;因为随机LDPC译码中CNU的更新方法是接收所有相邻VNU更新后的V2C值,更新某条边时,将除本条边上传递的V2C以外的其他V2C值异或,得到该条边C2V的更新结果;每个SUB-XOR内需要设计3个异或门电路,其中2个起到传递异或中间值的作用,即将左侧相邻子块输出的部分异或后的值与本子块输出的V2C值异或,再传递给右侧相邻子块,另外1个将左侧和右侧相邻子块输出的部分异或后的值再按位异或,将结果输入到路由单元中,即完成了当前子块内C2V值的更新;所以每个SUB-XOR的输入端有3个,分别为左侧子块、右侧子块经部分异或后的中间值和当前子块路由单元输出的V2C值,输出端也有3个,分别为经异或处理后传递给左右相邻子块的值和输出给本子块路由单元的C2V值,以上这些端口的宽度都为Zc bit;
所述的判决饱和计数器单元用于每个VNU节点对应的码字判决,计数器位宽为4bit,计数范围为-7~7,共需blk_length×Zc个,此单元的输入为每个子块输出的Zc个2bit信号,用于指示对应计数器值加1、减1或保持不变,还会输入后处理部分生成的计数器复位信号,用于指示需要置0的计数器位置,输出为码字判决结果。
9.根据权利要求2所述的一种基于随机计算的5G LDPC译码器的架构,其特征在于:所述的奇偶校验单元在获得译码迭代部分的码字输入后进行blk_width×Zc个方程的奇偶校验,此单元内部包含多组异或门阵列,校验行异或结果为0则通过校验,为1则不通过校验;使用计数器统计未通过校验的数量并设置阈值,若超过阈值则指示信号为1否则为0,将此阈值指示信号与各方程校验结果输出给码字翻转和计数器复位单元以及低码率翻转单元;奇偶校验单元内还会进行码字翻转操作,输入来自码字翻转和计数器复位单元以及低码率翻转单元生成的错误位置指示信号,并将对应位置的码字翻转以纠正部分错误,译码成功后将正确的码字输出。
10.根据权利要求2所述的一种基于随机计算的5G LDPC译码器的架构,其特征在于:所述的码字翻转和计数器复位单元作用是产生需要翻转的码字和复位的计数器位置指示信号,首先若奇偶校验单元生成阈值指示信号为0则满足翻转条件,将每一码字位置未通过的校验方程数量与当前dvi比较,产生需要翻转的位置指示信号,若大于dvi/2则需要翻转并指示为1,否则为0,总位宽为blk_length×Zc bit,将其输出给奇偶校验单元和译码迭代部分的饱和计数器单元;
所述的低码率翻转单元作用是对于码率小于0.5的码,当个别校验方程经多个DC译码始终不通过时,通过再次翻转码字的方法加快收敛;输入为奇偶校验单元生成的阈值指示信号和各方程校验结果,统计每一码字位置核心阵未通过的数量并与核心阵的度比较,产生并输出需要翻转的码字位置指示信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210535004.4A CN115037310B (zh) | 2022-05-17 | 2022-05-17 | 一种基于随机计算的5g ldpc译码器性能优化方法及架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210535004.4A CN115037310B (zh) | 2022-05-17 | 2022-05-17 | 一种基于随机计算的5g ldpc译码器性能优化方法及架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115037310A true CN115037310A (zh) | 2022-09-09 |
CN115037310B CN115037310B (zh) | 2024-04-26 |
Family
ID=83121840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210535004.4A Active CN115037310B (zh) | 2022-05-17 | 2022-05-17 | 一种基于随机计算的5g ldpc译码器性能优化方法及架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115037310B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056149A (zh) * | 2023-10-08 | 2023-11-14 | 飞腾信息技术有限公司 | 一种内存测试方法、装置、计算设备及存储介质 |
CN118539932A (zh) * | 2024-07-26 | 2024-08-23 | 华中科技大学 | 一种qc-ldpc译码器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161770A1 (en) * | 2009-12-31 | 2011-06-30 | Yeong-Luh Ueng | Low density parity check codec and method of the same |
CN104242956A (zh) * | 2014-09-01 | 2014-12-24 | 复旦大学 | 基于随机计算的高性能低复杂度ldpc译码器 |
CN104283571A (zh) * | 2014-09-06 | 2015-01-14 | 复旦大学 | 一种基于随机计算的ldpc译码器 |
CN108462496A (zh) * | 2018-04-24 | 2018-08-28 | 成都吉纬科技有限公司 | 一种基于随机比特流更新的ldpc译码器 |
CN111211790A (zh) * | 2020-02-25 | 2020-05-29 | 重庆邮电大学 | 一种面向5g终端的高吞吐率ldpc译码算法及架构 |
-
2022
- 2022-05-17 CN CN202210535004.4A patent/CN115037310B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161770A1 (en) * | 2009-12-31 | 2011-06-30 | Yeong-Luh Ueng | Low density parity check codec and method of the same |
CN104242956A (zh) * | 2014-09-01 | 2014-12-24 | 复旦大学 | 基于随机计算的高性能低复杂度ldpc译码器 |
CN104283571A (zh) * | 2014-09-06 | 2015-01-14 | 复旦大学 | 一种基于随机计算的ldpc译码器 |
CN108462496A (zh) * | 2018-04-24 | 2018-08-28 | 成都吉纬科技有限公司 | 一种基于随机比特流更新的ldpc译码器 |
CN111211790A (zh) * | 2020-02-25 | 2020-05-29 | 重庆邮电大学 | 一种面向5g终端的高吞吐率ldpc译码算法及架构 |
Non-Patent Citations (1)
Title |
---|
赵岭;张晓林;智钢;: "一种多码率QC-LDPC码译码结构设计与实现", 北京航空航天大学学报, vol. 34, no. 04, 15 April 2008 (2008-04-15), pages 435 - 438 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056149A (zh) * | 2023-10-08 | 2023-11-14 | 飞腾信息技术有限公司 | 一种内存测试方法、装置、计算设备及存储介质 |
CN117056149B (zh) * | 2023-10-08 | 2024-02-02 | 飞腾信息技术有限公司 | 一种内存测试方法、装置、计算设备及存储介质 |
CN118539932A (zh) * | 2024-07-26 | 2024-08-23 | 华中科技大学 | 一种qc-ldpc译码器 |
Also Published As
Publication number | Publication date |
---|---|
CN115037310B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI406508B (zh) | 解碼ldpc編碼信號的解碼器 | |
US7246304B2 (en) | Decoding architecture for low density parity check codes | |
CN100364237C (zh) | 非规则低密度奇偶校验码的系统码设计方法及其通信系统 | |
US9075738B2 (en) | Efficient LDPC codes | |
US9100153B2 (en) | Methods and systems for improving iterative signal processing | |
CN115037310B (zh) | 一种基于随机计算的5g ldpc译码器性能优化方法及架构 | |
Nguyen-Ly et al. | Analysis and design of cost-effective, high-throughput LDPC decoders | |
Gunnam | Area and energy efficient VLSI architectures for low-density parity-check decoders using an on-the-fly computation | |
Tsatsaragkos et al. | A reconfigurable LDPC decoder optimized for 802.11 n/ac applications | |
CN105515590B (zh) | 一种有效低复杂度串行抵消列表极化码译码方法 | |
US20120240003A1 (en) | Method, Apparatus, Computer Program Product and Device Providing Semi-Parallel Low Density Parity Check Decoding Using a Block Structured Parity Check Matrix | |
JP7365335B2 (ja) | ポーラー符号化のための電子デバイス、集積回路、及び方法 | |
Thi et al. | Basic-set trellis min–max decoder architecture for nonbinary ldpc codes with high-order galois fields | |
CN116964945A (zh) | 原模图准循环极化码及相关的低密度生成矩阵族 | |
Lin et al. | An efficient fully parallel decoder architecture for nonbinary LDPC codes | |
Selvarathinam et al. | Low-density parity-check decoder architecture for high throughput optical fiber channels | |
CN101136639A (zh) | 用于降低复杂性的低密度奇偶校验解码的系统和方法 | |
TWI407703B (zh) | 解碼器 | |
Kakde et al. | FPGA implementation of decoder architectures for high throughput irregular LDPC codes | |
Leduc-Primeau et al. | High-throughput LDPC decoding using the RHS algorithm | |
CN113595564A (zh) | 基于信息截断的低复杂度多进制ldpc码译码器装置 | |
Xia et al. | High throughput polar decoding using two-staged adaptive successive cancellation list decoding | |
Lu et al. | Fully-parallel stochastic decoder for rate compatible modulation | |
Garcia-Herrero et al. | High-speed NB-LDPC decoder for wireless applications | |
Roberts et al. | A Power-and area-efficient multirate quasi-cyclic LDPC decoder |
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 |