一种能同时处理极化码和LDPC码的BP译码器的配置方法与流程

文档序号:15927981发布日期:2018-11-14 01:20阅读:235来源:国知局
本发明涉及无线通信
技术领域
,尤其是一种能同时处理极化码和ldpc码的bp译码器的配置方法。
背景技术
移动通信经历了第一代模拟通信(1g)、第二代蜂窝数字通信(2g)、第三代cdma宽带通信(3g)的发展历程,目前已进入了第四代移动通信(4g)产业化的应用阶段。移动通信正朝着高速率、高容量、高频谱效率和低功耗的方向发展,不断满足人们日益增长的数据和视频需求。据主要运营商和权威咨询机构预测:移动宽带业务流量将在未来10年增长1000倍。现有4g技术在传输速率和资源利用率等方面仍然无法满足未来的需求,其无线覆盖和用户体验也有待进一步提高。世界各国在推动4g产业化工作的同时,第五代移动通信技术(5g)已经成为了国内外无线通信领域的研究热点。5g将满足人们工作、生活和娱乐的多样化业务需求,即使在中央商务区、密集住宅区、体育场和高速公路等具有超高流量密度、超高连接数密度和超高移动性特征的场景,也可以为用户提供超清视频、增强现实和在线游戏等极致业务体验。近年来,随着无线通信技术在各领域的广泛应用,社会通信需求呈现快速激增态势,传统通信技术日益无法满足社会发展需要。据主要运营商和权威咨询机构的预测,移动宽带业务流量将在未来10年增长1000倍之多。为应对即将到来的巨大通信压力,5g作为全新的移动通信技术应运而生。5g移动通信标志性的关键技术主要体现在超高效能的无线传输技术和高密度无线网络技术。相对于传统的小规模mimo系统,大规模mimo极大地改善了频谱效率、连接可靠性和覆盖范围。与此同时,高性能、高效率的信道编码技术也将成为5g的一个重要研究方向。在5g移动通信的全新应用场景下,极化码和低密度奇偶校验码(ldpc)码被设定为标准的编码方案,这两种编码方式共存于同一套通信传输方案中,引起了学术界和工业界的广泛关注。技术实现要素:本发明所要解决的技术问题在于,提供一种能同时处理极化码和ldpc码的bp译码器的配置方法,能够实现硬件架构的统一,减小总体的硬件消耗。为解决上述技术问题,本发明提供一种能同时处理极化码和ldpc码的bp译码器的配置方法,包括如下步骤:(1)设计基本模块;(2)设计极化码译码模块;(3)设计ldpc译码模块;(4)设计统一译码硬件架构;(5)对步骤(2)中的极化码译码模块和步骤(3)中的ldpc译码模块的译码性能、硬件复杂度进行比较,用verilog实现。优选的,步骤(1)中,设计基本模块具体为:极化码的译码计算公式如下所示:在公式(1)中,l和r变量分别表示向左传递和向右传递的概率量,其下标表示结点所在位置;基于min-sum算法,g函数的计算公式如下:g(x,y)=sgn(x)sgn(y)min(|x|,|y|)(2)在公式(2)中,sgn(x)和sgn(y)分别表示取x和y的符号;ldpc码的译码计算公式如下所示:公式(3)(4)中的l表示用于传递信息的概率量;公式(1)(2)(3)包含了两个重要的因子:两个数的符号和两个数绝对值的最小值;g-函数计算模块gfu,由一个异或门和一个比较器组成;异或门用于取得两个数符号的乘积,比较器用于取得两个数绝对值的最小值。优选的,步骤(2)中,设计极化码译码模块具体为:对于极化码的译码过程而言,两输入的gfu模块用于计算公式(1),而公式(1)可分为以下两种类型:图2说明了其对应计算模块的硬件设计,第一种类型是:两个输入先经过gfu计算,其结果再和另外一个输入相加,得到最终输出;第二种类型是:两个输入先相加,其结果再和与另外一个输入经过gfu计算,得到最终输出。图3展示了极化码的基本计算模块bcb的硬件设计:它由4个gfu和4个加法器组成;黑色实线表示的长方形表示寄存器,用于寄存向左传递或向右传递的概率量。图3中的计算板块分成4组,每组含有1个加法器和1个gfu,其中的两组是图2中的第一种类型,另外两组是图二中的第二种类型,相应的输入输出值和连接方式均由公式(1)给出。优选的,步骤(3)中,设计ldpc译码模块具体为:在ldpc码的译码计算公式(3)中,等式的右边有两个及两个以上的概率量,如果将一定数量的gfu组装起来,形成一个cu单元,这样就能执行ldpc的译码过程;通过观察如下等式的递归特性:由此,图4设计出了多输入的cn单元:图4的左半部分是三输入的cu,它由2个gfu组成;图4的右半部分是四输入的cu,它由3个gfu组成;为了展示具体的设计过程,需考虑一个具体的6×12的ldpc码,h矩阵如下所示:每个cn结点有4个输入和4个输出,每个vn有3个输入和3个输出;图5展示的是第0个cn单元的硬件设计:它由8个gfu单元组成;根据等式(7)可知,第0个cn单元的输入是l(q00)、l(q10)、l(q20)和l(q30),输出是l(r00)、l(r01)、l(r02)和l(r03);由公式(3),可得出硬件连接方式,即这8个gfu单元分成4组,每组是由2个gfu构成的三输入cu单元;另外,每一个vn单元会由3个加法器组成,总共需用到48个gfu单元和36个加法器。优选的,步骤(4)中,设计统一译码硬件架构具体为:一个9输入6输出的合并计算模块mbcb,用于执行两种译码过程;根据选择信号s的不同,mbcb有两种不同的内部连接方式;在图6中,黑色实线表示译极化码时的硬件连接方式,和图3中的硬件连接方式一致;黑色虚线线条表示译ldpc码时的硬件连接方式,和图5中的硬件连接方式一致;选择信号s为0或1,用来切换这两种硬件连接方式;在译极化码时,mbcb的功能和bcb的功能是相同的;另外,一对mbcb被复用,用于执行译ldpc码的工作时;图7展示了一对mbcb的设计图:它们的内部连接硬件方式已经由图6给出,实线箭头表示极化码的输入输出,虚线箭头表示ldpc码的输入输出;配置译码器一共使用了96个异或门,96个比较器和48个加法器,既可用于执行8比特的极化码的译码工作,又可执行上述ldpc码的译码工作;这个可配置译码器与一个极化码译码器和一个ldpc译码器的总和相比,异或门,比较器,加法器的数量分别减少了50%,50%,43%。本发明的有益效果为:本发明能够实现硬件架构的统一,减小总体的硬件消耗,即在译码性能损失较小的情况下,以一套译码器硬件的代价,可以分别实现两种不同码的译码功能。附图说明图1为本发明基本计算模块gfu的设计示意图。图2为本发明极化码两种计算公式对应的硬件设计示意图。图3为本发明极化码的基本计算模块bcb的硬件示意图。图4为本发明ldpc基本模块cu的硬件示意图。图5为本发明ldpc的cn模块的硬件示意图。图6为本发明一个mbcb的硬件示意图。图7为本发明另一个mbcb的硬件示意图。图8为本发明的译码器执行译码操作的性能曲线示意图。具体实施方式一种能同时处理极化码和ldpc码的bp译码器的配置方法,包括如下步骤:(1)设计基本模块;(2)设计极化码译码模块;(3)设计ldpc译码模块;(4)设计统一译码硬件架构;(5)对步骤(2)中的极化码译码模块和步骤(3)中的ldpc译码模块的译码性能、硬件复杂度进行比较,用verilog实现。下面结合具体实例和附图,对可配置的能同时处理极化码和ldpc码的bp译码器进行详细说明:1、基本模块的设计:极化码的译码计算公式如下所示:在公式(1)中,l和r变量分别表示向左传递和向右传递的概率量,其下标表示结点所在位置。基于min-sum算法,g函数的计算公式如下:g(x,y)=sgn(x)sgn(y)min(|x|,|y|)(2)在公式(2)中,sgn(x)和sgn(y)分别表示取x和y的符号。ldpc码的译码计算公式如下所示:公式(3)(4)中的l表示用于传递信息的概率量。公式(1)(2)(3)包含了两个重要的因子:两个数的符号和两个数绝对值的最小值。图1展示的是g-函数计算模块gfu,它由一个异或门和一个比较器组成。异或门用于取得两个数符号的乘积,比较器用于取得两个数绝对值的最小值。2、极化码译码模块的设计:对于极化码的译码过程而言,两输入的gfu模块用于计算公式(1),而公式(1)可分为以下两种类型:图2说明了其对应计算模块的硬件设计。图3展示了极化码的基本计算模块(bcb)的硬件设计,它由一个gfu和一个加法器组成。黑色实线表示的长方形表示寄存器,用于寄存向左传递或向右传递的概率量。3、ldpc译码模块的设计:因为在ldpc码的译码计算公式(3)中,等式的右边有两个及两个以上的概率量,所以如果将一定数量的gfu组装起来,就能执行ldpc的译码过程。通过观察如下等式的递归特性:由此,图4设计出了多输入的cu单元。接下来,为了展示具体的设计过程,需考虑一个具体的6×12的ldpc码,h矩阵如下所示:每个cn结点有4个输入和4个输出,每个vn有3个输入和3个输出;第0个cn单元由8个gfu单元组成;根据等式(7)可知,第0个cn单元的输入是l(q00)、l(q10)、l(q20)和l(q30),输出是l(r00)、l(r01)、l(r02)和l(r03);由公式(3),得出硬件连接方式,即这8个gfu单元分成4组,每组是由2个gfu构成的三输入cu单元;另外,每一个vn单元会由3个加法器组成,总共需用到48个gfu单元和36个加法器。4、统一译码硬件架构的设计:图6展示了一个9输入6输出的合并计算模块mbcb,它可用于执行两种译码过程。根据选择信号s的不同,mbcb有两种不同的内部连接方式。在图6中,黑色实线表示译极化码时的硬件连接方式,黑色虚线线条表示译ldpc码时的硬件连接方式,选择信号s为0或1,用来切换这两种硬件连接方式。在译极化码时,mbcb的功能和bcb的功能是相同的。另外,一对mbcb被复用,用于执行译ldpc码的工作时。图7展示了一对mbcb的设计图,实线箭头表示极化码的输入输出,虚线箭头表示ldpc码的输入输出。因此,这个可配置译码器一共使用了96个异或门,96个比较器和48个加法器,既可用于执行8比特的极化码的译码工作,又可执行上述ldpc码的译码工作。这个可配置译码器与一个极化码译码器和一个ldpc译码器的总和相比,异或门,比较器,加法器的数量分别减少了50%,50%,43%。5、译码性能分析,硬件复杂度比较,以及verilog实现结果:图8分析了极化码译码过程和ldpc译码过程的性能。三角形曲线表示采用浮点数进行ldpc译码时的性能,圆形曲线表示采用定点数(1位符号位,4位整数位,2位小数位)进行ldpc译码时的性能。星形曲线表示采用浮点数进行极化码译码时的性能,正方形曲线表示采用定点数(1位符号位,4位整数位,2位小数位)进行极化码译码时的性能。当误码率ber=10-2时,相比于浮点数,ldpc码的信噪比有0.5db的增益,极化码的信噪比有0.2db的增益。在这种情况下,硬件性能的损失是可以接受的。表1是硬件复杂度的理论比较分析。这个可配置的bp译码器的硬件复杂度由极化码的码长n=2n(n≥2)决定,包含2n×log2n个比较器,2n×log2n个加法器和2n×log2n个异或门。表格还给出了一个极化码译码器和一个ldpc译码器的硬件复杂度的总和。在ldpc码的h矩阵中,aj(aj≥3)表示矩阵的第j行中‘1’的数量,bi(bi≥2)表示矩阵的第i列中‘1’的个数。根据矩阵中‘1’的数量,可以得出等式:其中m指的是ldpc码的总码长,k指的是ldpc码中信息位的个数。表2列出了verilog的实现结果;当译码器处理码长为12,编码率为0.5的ldpc码时,设定迭代次数等于10,总共需要10个时钟周期,计算出吞吐率为144.6mbps;当译码器处理码长为8,编码率为0.5的极化码时,设定迭代次数等于10,总共需要63个时钟周期,计算出吞吐率为15.3mbps。表1译码器硬件复杂度比较表2verilog实现结果译码过程ldpc译码极化码译码迭代次数1010码长128编码率0.50.5吞吐率(mbps)144.615.3时钟周期数1063极化码和ldpc码的译码算法都包括置信传播算法(bp),两者bp算法的计算公式具有一定的相似性,都涉及对两个数的符号位和它们绝对值最小值的处理。因此,可以设计一个基本模块,它包括一个异或门和一个比较器,分别用于计算两个数的符号位乘积和它们绝对值最小值。在此基础上,分别分析极化码译码模块的硬件设计和ldpc译码模块的硬件设计。进一步,将极化码译码模块和ldpc译码模块进行整合,设计出一套统一的译码硬件架构,既可以用于译极化码,又可以用于译ldpc码。最后,对硬件的译码性能进行了分析,并且比较了硬件的复杂度,还给出了verilog实现结果。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1