Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020224386 - DATA DECODING METHOD AND APPARATUS

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25  

附图

1A   1B   2   3   4   5   6A   6B   7   8   9   10A   10B   11   12   13   14   15   16   17  

说明书

发明名称 : 一种数据译码的方法以及装置

[0001]
本申请要求于2019年05月08日提交中国专利局、申请号为201910381356.7、申请名称为“一种数据译码的方法以及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

[0002]
本申请涉及通信领域,尤其涉及一种数据译码的方法以及装置。

背景技术

[0003]
在各种通信系统中,发送设备与接收设备之间传输数据时,通常需要对发送数据进行编码。低密度奇偶校验码(low density parity check code,LDPC)是一种线性分组码,可以由校验矩阵唯一确定,也可以由校验矩阵对应的Tanner图唯一确定。LDPC码可以用于通信系统进行编码。例如在第五代移动通信技术(5th-Generation,5G)系统中,可以利用LDPC码对数据进行编码。
[0004]
因此,接收设备在接收到传输的数据之后,需要对该数据进行LDPC译码。在现有方案中,在前一次置信度传播(belief propagation,BP)算法译码失败之后,将不满足校验方程的变量节点(variable node,VN)确定出来,组成VN集合,然后从VN集合中选出部分VN,将该部分VN对应的原始信道的对数似然比(log-likelihood ratio,LLR)的值进行饱和处理,饱和至正最大以及负最大,然后将LLR饱和处理后生成的序列输入译码器进行译码,并重复以上步骤,直到满足预设条件,即输出合法码字。并且从输出的合法码字中确定一组作为最终的译码数据。
[0005]
然而,现有方案中,译码过程为串行过程,即在上一次译码完成之后,再进行下一级的译码过程,并且,每一级译码都需要对下一级的VN进行选择,复杂度较高,且时延较大。
[0006]
发明内容
[0007]
本申请提供了一种数据译码的方法以及装置,用于通过对LLR序列进行扰动处理的方式,降低译码复杂度、降低译码时延,并且提高译码的准确性。
[0008]
有鉴于此,本申请第一方面提供一种数据译码的方法,包括:
[0009]
获取传输数据;根据传输数据确定第一对数似然比LLR序列;对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列;对一组或多组第二LLR序列进行译码,得到第一译码数据。在本申请实施例中,对第一LLR序列中的一个或多个第一LLR进行扰动处理,得到一组或多组第二LLR序列,然后对该一组或多组第二LLR序列进行译码,得到第一译码数据。因此,对第一LLR序列中的一个或多个LLR进行扰动处理,即可得到新的LLR序列,即第二LLR序列,然后使用新的LLR序列进行译码,提高了得到译码成功的译码数据的准确率。并且对于得到的多组新的第二LLR序列,可以实现并行译码,且可以降低LDPC译码的复杂度以及时延,提高译码效率。
[0010]
可选地,在一些可能的实施方式中,对一组或多组第二LLR序列进行译码,得到第一译码数据,可以包括:
[0011]
对其中一组第二LLR序列进行LDPC迭代译码;若一组第二LLR序列的译码数据校验成功,则将第二LLR序列的译码数据作为第一译码数据。在本申请实施例中,可以对第二LLR 序列进行LDPC迭代译码,若其中一组第二LLR序列的LDPC迭代译码得到的译码数据校验成功,则可以将组第二LLR序列的译码数据作为第一译码数据。因此,可以使用对第一LLR序列进行扰动处理之后得到的第二LLR序列进行LDPC迭代译码,以得到校验成功的译码数据。
[0012]
可选地,在一些可能的实施方式中,对一组或多组第二LLR序列进行译码,得到第一译码数据,可以包括:
[0013]
对一组或多组第二LLR序列中的各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据;根据预置规则从一组或多组校验成功的译码数据中确定一组译码数据作为第一译码数据。
[0014]
在本申请实施例中,可以对一组或多组第二LLR序列中各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据,然后根据预置规则从一组或多组校验成功的译码数据中确定一组译码数据作为第一译码数据。当仅有一组译码成功的译码数据时,将该一组译码数据作为第一译码数据,当有多组译码成功的译码数据时,可以根据预置规则从该多组译码数据中选择一组作为第一译码数据,因此,可以得到译码成功的译码数据。
[0015]
可选地,在一些可能的实施方式中,根据预置规则从一组或多组校验成功的译码数据中确定一组译码数据作为第一译码数据,可以包括:
[0016]
从一组或多组校验成功的译码数据中确定出与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为第一译码数据。在本申请实施例中,在确定了一组或多组校验成功的译码数据之后,可以从该一组或多组译码数据中确定与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为第一译码数据。通过欧几里得度量对该一组或多组译码数据进行筛选,可以得到更准确的译码数据。
[0017]
可选地,在一些可能的实施方式中,对其中一组第二LLR序列进行LDPC迭代译码,可以包括:
[0018]
对一组第二LLR序列执行N次迭代译码,针对其中的第k次LDPC迭代译码中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,N小于或等于预设迭代次数;其中,一组第二LLR序列的第k次迭代译码的译码数据包括R ij[k]和Q ji[k]。
[0019]
本申请实施例中,在每一次的迭代译码中,可以交替更新变量节点与校验节点,完成对第二LLR序列的译码,得到准确的译码数据。
[0020]
可选地,在一些可能的实施方式中,更新第i个校验节点传给第j个变量节点的信息R ij[k],可以包括:
[0021]
通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k]。在本申请实施例中,可以通过修正值更新第i个校验节点传给第j个变量节点的信息,通过修 正值改善译码性能,补偿计算误差,提高译码的准确度。
[0022]
可选地,在一些可能的实施方式中,通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],可以包括:
[0023]
通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]。
[0024]
本申请实施例中,可以通过加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息,提高得到的Q ji[k]的准确度,并提高Q ji[k]的有效性。
[0025]
可选地,在一些可能的实施方式中,通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],可以包括:
[0026]
若第k次迭代译码得到的Q ji[k]的符号与第k-1次迭代译码得到的Q ji[k-1]的符号不同,则Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],ω为加权值。
[0027]
本申请实施例中,提供了在迭代译码时,通过上一次迭代译码的结果,对本次迭代译码的Q ji[k]进行更新,可以是多次迭代译码之间的译码结果进行结合,提高译码的准确性。
[0028]
可选地,在一些可能的实施方式中,在对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列之前,该方法还可以包括:
[0029]
对第一LLR序列进行LDPC译码失败。
[0030]
在本申请实施例中,可以是在对第一LLR序列进行LDPC译码失败之后,再对第一LLR序列进行扰动处理,然后基于扰动处理之后得到的第二LLR序列进行译码。因此,即使在第一次对第一LLR序列译码失败之后,也可以使用一组或多组第二LLR序列进行译码,得到校验成功的第一译码数据,可以提高得到校验成功的译码数据的准确率。
[0031]
本申请第二方面提供一种译码装置,该译码装置具有实现上述第一方面数据译码的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
[0032]
本申请实施例第三方面提供一种译码装置,可以包括:
[0033]
处理器、存储器以及输入输出接口,该处理器、该存储器与该输入输出接口连接;该存储器,用于存储程序代码;该处理器调用该存储器中的程序代码时执行本申请第一方面或第一方面任一实施方式提供的方法的步骤。
[0034]
本申请实施例第四方面提供一种终端,可以包括:
[0035]
处理器、存储器以及输入输出接口,该处理器、该存储器与该输入输出接口连接;该存储器,用于存储程序代码;该处理器调用该存储器中的程序代码时执行本申请第一方面或第一方面任一实施方式提供的方法的步骤。
[0036]
本申请实施例第五方面提供一种基站,可以包括:
[0037]
处理器、存储器以及输入输出接口,该处理器、该存储器与该输入输出接口连接;该存储器,用于存储程序代码;该处理器调用该存储器中的程序代码时执行本申请第一方面或第一方面任一实施方式提供的方法的步骤。
[0038]
本申请实施例第六方面提供一种译码装置,该译码装置可以应用于终端或者基站等设备中,译码装置与存储器耦合,用于读取并执行所述存储器中存储的指令,使得所述译码装置实现本申请第一方面或第一方面任一实施方式提供的方法的步骤。在一种可能的设计中,该译码装置为芯片或片上系统。
[0039]
本申请第七方面提供一种芯片系统,该芯片系统包括处理器,用于支持基站或终端实现上述方面中所涉及的功能,例如,例如处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存基站或终端必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
[0040]
其中,上述任一处提到的处理器,可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制上述第一方面数据搜索方法的程序执行的集成电路。
[0041]
本申请实施例第八方面提供一种存储介质,需要说明的是,本发的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产口的形式体现出来,该计算机软件产品存储在一个存储介质中,用于储存为上述设备所用的计算机软件指令,其包含用于执行上述第一方面中任一可选实施方式为译码装置,例如基站或者终端所设计的程序。
[0042]
该存储介质包括:U盘、移动硬盘、只读存储器(英文缩写ROM,英文全称:Read-Only Memory)、随机存取存储器(英文缩写:RAM,英文全称:Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0043]
本申请实施例第九方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本申请第一方面任一可选实施方式中所述的方法。
[0044]
本申请实施例第十方面提供一种通信系统,该通信系统可以包括接终端以及基站;
[0045]
该终端可以是本申请实施例第四方面提供的终端;
[0046]
该基站可以是本申请实施例第五方面提供的基站。
[0047]
在本申请实施例中,对第一LLR序列中的一个或多个第一LLR进行扰动处理,得到一组或多组第二LLR序列,然后对该一组或多组第二LLR序列进行译码,得到第一译码数据。因此,对第一LLR序列中的一个或多个LLR进行扰动处理,即可得到新的LLR序列,即第二LLR序列,然后使用新的LLR序列进行译码,提高了得到译码成功的译码数据的准确率。并且对于得到的一组或多组新的LLR序列,可以实现并行译码,且可以降低LDPC译码的复杂度以及时延,提高译码效率。

附图说明

[0048]
图1a为本申请实施例提供的数据译码的方法的一种应用场景;
[0049]
图1b为本申请实施例提供的数据译码的方法的另一种应用场景;
[0050]
图2为本申请实施例提供的数据译码的方法的一种实施例示意图;
[0051]
图3为本申请实施例提供的数据译码的方法的另一种实施例示意图;
[0052]
图4为本申请实施例提供的LDPC码的校验矩阵和校验方程的一种示意图;
[0053]
图5为本申请实施例提供的一种校验矩阵H对应的Tanner图;
[0054]
图6a为本申请实施例提供的一种基图矩阵示意图;
[0055]
图6b为本申请实施例提供的另一种基图矩阵示意图;
[0056]
图7为本申请实施例提供的一种偏移矩阵示意图;
[0057]
图8为本申请实施例提供的一种置换矩阵示意图;
[0058]
图9为本申请实施例提供的两种基图矩阵的应用范围示意图;
[0059]
图10a为本申请实施例提供的一种更新变量节点的示意图;
[0060]
图10b为本申请实施例提供的一种更新校验节点的示意图;
[0061]
图11为本申请实施例提供的一种交替更新变量节点与校验节点的示意图;
[0062]
图12为本申请实施例提供的一种仿真结果示意图;
[0063]
图13为本申请实施例提供的另一种仿真结果示意图;
[0064]
图14为本申请实施例提供的译码装置的一种结构示意图;
[0065]
图15为本申请实施例提供的译码装置的另一种结构示意图;
[0066]
图16为本申请实施例提供的基站的一种结构示意图;
[0067]
图17为本申请实施例提供的终端的另一种结构示意图。

具体实施方式

[0068]
本申请提供了一种数据译码的方法以及装置,用于通过对LLR序列进行扰动处理的方式,降低译码复杂度、降低译码时延,并且提高译码的准确性。
[0069]
本申请提供的数据译码的方法可以应用于各种通信系统或通信网络,例如,5G系统,长期演进(Long Term Evolution,LTE)系统、全球移动通信系统(Global System for Mobile Communication,GSM)或码分多址(Code Division Multiple Access,CDMA)网络、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)网络等,还可以是全球微波互联接入(Worldwide Interoperability for Microwave Access,WiMAX)或无线保真(Wireless Fidelity,WiFI)等其他需要进行数据译码的通信网络或通信系统。
[0070]
示例性地,本申请实施例的具体应用场景可以如图1a或图1b所示。其中,LDPC码可以应用于基站与终端之间的通信编码。具体的,该应用场景可以包括一个或多个基站,以及一个或多个终端。如图1a所示,一个基站可以接入多个终端(例如图1a中的终端1以及终端2),即一个基站可以与多个终端进行通信,可以由该基站向多个终端发送编码后的数据,基站也可以接收由终端发送的编码后的数据。如图1b所示,一个终端也可以与多个基站(如图1b中的基站1、基站2以及基站3)进行通信,可以是终端接收多个基站发送的编码后的数据,终端可以向多个基站发送编码后的数据。
[0071]
因此,本申请实施例提供的数据译码的方法也可以由各种译码装置执行,该译码装置 可以包括基站、终端等等,或者,也可以是该译码装置可以包括于基站、终端等等设备中。该基站可以是各种形式的宏基站,微基站(也称为小站),中继站,接入点等。而在不同的通信系统中,基站的名称也可能会不同,例如,该基站可以是GSM或CDMA网络中的基站收发信台(Base Transceiver Station,BTS),WCDMA中的NB(NodeB),LTE系统中的长期演进节点(Evolutional NodeB,eNB或eNodeB),还可以是5G网络中的基站设备或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)网络中的通信装置,例如,5G基站(Next generation NodeB,gNB)。终端可以是各种包括通信功能的手持设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等等。例如,可以是移动站(Mobile Station,MS)、用户单元(subscriber unit)、蜂窝电话(cellular phone)、智能电话(smart phone)、无线数据卡、个人数字助理(Personal Digital Assistant,简称:PDA)电脑、平板型电脑、无线调制解调器(modem)、手持设备(handset)、膝上型电脑(laptop computer)、机器类型通信(Machine Type Communication,MTC)终端等等。
[0072]
应理解,本申请实施例提供的数据译码的方法可以由以上各种独立的译码装置,或者基站或终端设备等设备中的译码装置执行,下面基于译码装置对本申请实施例提供的数据译码的方法的具体流程进行详细说明。
[0073]
本申请提供的数据译码的方法的具体流程可以如图2所示,可以包括:
[0074]
201、获取传输数据对应的第一对数似然比LLR序列。
[0075]
通常,译码装置可以接收另一网络设备发送的信号。例如,当接收信号的译码装置为基站时,另一发送信号的网络设备可以是终端,当接收信号的译码装置为终端时,另一发送信号的设备可以是终端也可以是基站等等。
[0076]
发送信号的网络设备对待传输数据进行LDPC编码后得到传输数据,经过调制映射后发送其对应的信号,该传输数据可以由信息比特以及校验数据组成,例如,若该传输数据为n比特序列的数据,则该传输数据可以包括k比特的信息比特以及(n-k)比特的校验数据,k<n。
[0077]
接收信号的译码装置接收到信号后,经过解调后得到与传输数据对应的第一LLR序列。
[0078]
例如,可以是对接收到的信号进行解调、同步等等,得到第一LLR序列。第一LLR序列中的每个LLR与传输数据中的每个比特一一对应。每个LLR可以表示为 p(1)表示对应的比特判定为1的概率,p(0)表示对应的比特判定为0个概率。
[0079]
202、对第一LLR序列中的一个或多个第一LLR进行扰动处理,得到一组或多组第二LLR序列。
[0080]
在确定与传输数据对应的第一LLR序列之后,对第一LLR序列中的一个或多个第一LLR进行扰动处理。
[0081]
可选地,在一些可能的实施方式中,对第一LLR序列中的一个或多个第一LLR进行扰动处理,可以是对该一个或多个第一LLR分别加上一个或多个扰动值,即对至少一个第一LLR分别加上至少一个扰动值,得到一组或多组第二LLR序列。应理解,本申请实施例中 的多个为两个或两个以上,多组为两组或两组以上。
[0082]
可选地,在一些可能的实施方式中,对第一LLR序列中的一个或多个第一LLR进行扰动处理,也可以是对该一个或多个第一LLR分别乘上一个或多个扰动值,得到一组或多组第二LLR序列。
[0083]
当然,除了以上的加上或者乘上一个或多个扰动值之外,也可以是通过其他的方式,例如,减去一个或多个扰动值、除以一个或多个扰动值等等以LLR和扰动值为参数进行的代数运算,具体可以根据实际应用场景进行调整,例如,可以是加法,减法,乘法或除法等中的一种或多种,本申请对于第一LLR序列的扰动处理的方式不作限定。
[0084]
其中,扰动值可以是预设的值,也可以是根据历史数据进行学习得到的值等等。
[0085]
例如,扰动处理可以是对该一个或多个第一LLR中的每个第一LLR加上相同的扰动值,包括对每个第一LLR加上相同的一个或多个扰动值,得到一组或者多组第二LLR序列,例如,可以在第一次对每个第一LLR加上一个扰动值,得到一组第二LLR序列,然后继续第二次对每个第一LLR加上一个与第一次不同的扰动值,得到两组第二LLR序列,以此类推;也可以是对每个第一LLR加上不同的扰动值,得到一组或多组第二LLR序列。
[0086]
并且,可选地,在一种可能的实施方式中,可以是在对第一LLR序列进行第一次LDPC译码失败之后,再对第一LLR序列中的一个或多个第一LLR加上一个或多个扰动值,得到一组或多组第二LLR序列,之后基于该一组或多组第二LLR序列对该传输数据进行第二次LDPC译码。
[0087]
203、对一组或多组第二LLR序列进行译码,得到第一译码数据。
[0088]
在得到一组或多组第二LLR序列之后,对该一组或多组第二LLR序列进行译码,得到对应的第一译码数据。
[0089]
具体地,对第二LLR序列进行译码的译码方式可以包括多种,例如,可以是基于一组或多组第二LLR序列的最小和(Min-Sum,MS)译码、分层译码、最大似然法(Maximum Likelihood,ML)译码等等,具体可以根据实际应用场景进行调整,此处不作限定。
[0090]
并且,在对一组或多组第二LLR序列进行译码时,可以是对该一组或多组第二LLR序列中的所有第二LLR序列进行并行译码,也可以是对该一组或多组第二LLR序列中的所有第二LLR序列进行串行译码,具体可以根据实际应用场景调整,此处不作限定。
[0091]
此外,在进行LDPC译码候,还需要对译码结果进行判定,以确定译码成功的译码数据。具体可以是通过LDPC自校验进行校验,也可以通过循环冗余校验(cyclic redundancy check,CRC)进行校验等等,具体可以根据实际应用场景进行调整,此处不作限定。
[0092]
在本申请实施例中,对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列,然后根据该一组或多组第二LLR序列,对第二LLR序列进行译码,得到第一译码数据。因此,对第一LLR序列中的一个或多个LLR添加扰动值,即可得到新的LLR序列,然后使用新的LLR序列进行译码,相对于选择不满足校验方程的变量节点进行下一步的校验,本申请实施例可以直接通过扰动处理之后得到的第二LLR序列进行译码,相对于选择变量节点,本申请实施例可以降低复杂度。且得到一组或多组第二LLR序列之后,可以直接基于该一组或多组第二LLR序列进行译码,可以实现并行译码,相对于串行 译码,可以提高译码的效率,降低译码时延。并且,可以对多组第二LLR序列进行译码,后续可以得到多组译码数据,可以提高得到成功译码的译码数据的准确率。
[0093]
前述对本申请提供的数据译码的方法的流程进行描述,其中,本申请实施例中针对第二LLR序列进行译码的方式有多种,可以是ML译码或者LDPC迭代译码等等,示例性的,下面以LDPC迭代译码为例对本申请提供的数据译码的方法进行更详细的描述。请参阅图3,本申请实施例提供的数据译码的方法的另一种流程示意图,可以包括:
[0094]
301、获取传输数据对应的第一LLR序列。
[0095]
通常,译码装置可以接收另一网络设备发送的信号。发送该信号的网络设备可以是前述的基站、终端等等。例如,可以是基站向终端发送信号或者终端向基站发送信号等等。
[0096]
发送信号的设备可以对待传输的数据进行编码之后,得到传输数据,并经过调制映射后发送其对应的信号。
[0097]
译码装置在接收到信号后,经过解调后得到与传输数据对应的第一LLR序列。
[0098]
传输数据可以由信息比特以及校验数据组成,信息比特即需要传输的信息,校验数据即对需要传输的信息比特通过预置的编码方式进行计算后得到的数据。例如,若该传输数据为n比特序列的数据,则该传输数据可以包括k比特的信息比特以及(n-k)比特的校验数据,k<n。发送信号的网络设备对信息比特进行编码的具体编码方式可以是LDPC编码,CRC编码、turbo编码等等。相应的,译码装置对传输数据的译码方式与编码方式对应。例如,该译码方式可以是针对LDPC编码的译码方式,针对CRC编码的译码方式、或者针对turbo编码的译码方式等等,本申请实施例仅对LDPC译码进行示例性说明,具体使用的译码方式可以根据实际应用场景进行调整,本申请对此并不作限定。通常,传输数据可以由矩阵表示,因此,对应的第一LLR序列也可以通过矩阵表示。
[0099]
示例性地,LDPC码可以理解为(n,k)线性分组码,其校验矩阵是一种稀疏矩阵,码长为n,信息序列长度为k,并且可以由其校验矩阵H唯一确定,也可以由校验矩阵H对应的Tanner图唯一确定。示例性地,LDPC码的校验矩阵H和对应的校验方程如图4所示。该校验矩阵H对应的Tanner图的表示如图5所示。其中,每个圆形节点表示为变量节点,代表校验矩阵H矩阵中的一列,每个方形节点为校验节点,代表H矩阵中的一行,图5中每条连接校验节点与变量节点的线代表着两个节点所对应的行与列交汇的位置存在一个非零元素。
[0100]
通常,LDPC码可以用于通信系统中进行编码,例如,在5G通信系统中,可以利用LDPC码对数据进行编码,得到传输数据。LDPC码通常可以奇偶校验矩阵H来表示,而奇偶校验矩阵H通常可以由基图(base graph)和偏移值得到。基图通常可以包括m*n个矩阵元素,可以用m行n列的矩阵形式表示,矩阵元素的值为0或1,其中值为0的元素,也可以称为零元素。零元素可以表示该元素可以被z*z的全零矩阵替换,值为1的元素,也可以称为非零元素。非零元素也可以表示该元素可以被z*z的循环置换矩阵(circulant permutation matrix)替换。因此,每个矩阵元素可以替换为一个全零矩阵或者一个循环置换矩阵。
[0101]
示例性地,如图6a与图6b所示,分别为不同的基图矩阵。如图6a所示,该基图矩阵 为46行68列,如图6b所示,该基图矩阵为42行52列。如图6a与图6b所示的基图矩阵中,行号标注在最左一列,列号标注在最上一行,各行列中仅示出非零元素,以“1”表示,空白部分为零元素。其中第0列和第1列为2列内置打孔列,在进行速率匹配环节不参与比特选择,即不进入循环缓存。
[0102]
示例性地,图7为基于前述图6a的一个偏移值矩阵的示例,若基图矩阵中第i行第j列的元素值为1,其偏移值为P i,j,P i,j为大于或等于0的整数,则表示基图矩阵中第i行第j列的值为1的元素可以被P i,j对应的z*z的循环矩阵替换,该循环矩阵可以通过将z*z的单位矩阵进行P i,j此向右循环位移得到。可见,将图6a的基图矩阵中每个值为0的元素用z*z的全零矩阵替换,以及将每个值为1的元素用z*z的单位矩阵经过对应的P i,j次向右循环位移得到,则可以得到LDPC码的就校验矩阵H。其中,z为正整数,z也可以称为扩展因子,z的值具体可以根据通信系统支持的码块大小和信息数据的大小确定。奇偶校验矩阵H的大小为(m*z)*(n*z)。
[0103]
例如,若z=4,则基图矩阵的每个元素值相应的置换矩阵可以如图8所示,其中,图8中从左到右依次为偏移值为1的z*z矩阵;偏移值为0的z*z矩阵,即单位矩阵;偏移值为1的z*z矩阵,即向右偏移1的矩阵;偏移值为2的z*z矩阵,即向右偏移2的矩阵;偏移值为3的z*z矩阵,即向右偏移3的矩阵。示例性地,当基图矩阵中的元素值大于预设的扩展因子时,需要对该元素值做取模运算,具体为:P i,j=mod(V i,j,Z C),其中,V i,j为基图矩阵中对应的元素值,Z C为实际扩展因子,P i,j为实际偏移值,mod(x,y)为取模运算,返回x除以y的余值,然后根据该公式计算得到实际循环位移值P i,j,然后进行展开做循环位移,得到偏移后的z*z矩阵。
[0104]
通常,5G中的LDPC码可以采用准循环的结构实现。例如,基于前述图6a以及图6b中提供的两种基图矩阵,可以支持两种LDPC编码方式。具体应用可以如图9所示,其中,图6a所示的基图矩阵称为BG1,图6b所示的基图矩阵称为BG2,可以根据编码的数据确定采用的基图矩阵。具体可以根据不同的传输块的长度和码率,选择不同的基图矩阵进行编码。例如,如图9所示,当待传输的传输块大小小于或等于308,或待传输的传输块大小小于等于3840且编码码率小于等于2/3,或者编码码率小于1/4时,即采用BG2进行编码;若待传输的传输块大小大于308,且编码码率大于2/3,或待传输的传输块大小大于3840,编码码率大于1/4,则采用BG1进行编码。编码后可以得到校验数据。例如,若传输数据为n比特序列的数据,则该传输数据可以包括k比特的信息比特,即k比特待传输的数据,以及(n-k)比特的校验数据,k<n。
[0105]
302、对第一LLR序列进行LDPC译码,若译码成功,则执行步骤305,若译码失败,则执行步骤303。
[0106]
在得到传输数据之后,即可对第一LLR序列进行第一次LDPC译码。具体的译码方式可以包括最小和MS译码、分层译码等等,得到一组译码数据。可以对该译码数据进行校验,若校验结果为译码成功,则可以执行步骤305,即执行其他步骤。若校验结果为译码失败,则可以执行步骤303,即继续进行LDPC译码。
[0107]
对该一组译码数据的具体校验方式可以是LDPC自校验、CRC校验等等,具体可以根据实际应用场景调整。
[0108]
示例性地,LDPC自校验可以是判断译码数据是否满足LDPC码的校验关系。例如,LDPC码预设的校验矩阵为H,c为包含信息比特和校验比特的LDPC码字的序列,即译码数据。该校验关系H*c T=0,即译码数据与校验矩阵相乘的结果为0,则可以确定校验结果为译码成功,若译码数据与校验矩阵相乘的结果不为0,则可以确定校验结果为译码失败。此外,若传输数据还经过CRC处理,则c还可以包括CRC校验比特。
[0109]
示例性地,CRC校验可以是判断译码数据是否满足CRC的校验关系,该校验关系可以是H CRC*c CRC T=0,该H CRC为预设的CRC校验矩阵,c CRC即包含信息比特与CRC校验比特的序列。若译码数据满足该校验关系,则可以确定译码结果为译码成功,若译码数据不满足该校验关系,则可以确定译码结果为译码失败。
[0110]
303、对第一LLR序列中的一个或多个第一LLR进行扰动处理,得到一组或多组第二LLR序列。
[0111]
在得到第一LLR序列之后,可以对第一LLR序列中的一个或多个第一LLR加上一个或多个扰动值,得到一组或多组第二LLR序列;或者,对第一LLR序列中的一个或多个第一LLR乘以一个或多个扰动值,得到一组或多组第二LLR序列。
[0112]
可选地,在一些可能的实施方式中,扰动值可以是预设的一组值,也可以是随机产生的一组值,添加扰动值可以是第一LLR序列中预设的位置,也可以是随机确定的位置。并且,每一组第二LLR序列都可以一一对应一组LDPC迭代译码。可以理解为,当存在多组第二LLR序列时,需要对每组第二LLR序列都进行LDPC迭代译码。示例性地,在对第一LLR序列进行扰动处理时,可以是在第一LLR序列的相同的位置加上不同的扰动值,也可以是在第一LLR序列的不同的位置加上相同的扰动值。当然,还可以是在第一LLR序列的不同的位置加上不同的扰动值。例如,在得到第一LLR序列之后,令LLR i=LLR i+n i,n i即扰动值,i即需要加上扰动值对应的位置,可以对同一个i的位置加上一个n i,得到一组第二LLR序列,也可是在同一个i的位置加上多个n i,得到多组第二LLR序列,还可以是在不同i的位置加上多个n i,得到多组第二LLR序列。
[0113]
例如,在得到第一LLR序列之后,通过一个或多个扰动值,组成m组扰动值组。每组扰动值组可以包括相同或不同的扰动值,且m组扰动值中的每组扰动值可以对应相同或者不同位置的LLR。然后通过该m组扰动值组分别对第一LLR序列进行扰动处理,得到m组第二LLR序列。且该m组第二LLR序列中的每组第二LLR序列各不相同。例如,第一组第二LLR序列可以是对第一LLR序列加上第一组扰动值组后得到,第二组第二LLR序列可以是对第一LLR序列加上第二组扰动值组后得到,第一组扰动值组中的每个扰动值与第二组扰动值组中的每个扰动值对应的LLR的位置可以相同也可以不同,第一组扰动值组与第二 组扰动值组可以包括相等或者不等的扰动值,第一组扰动值与第二组扰动值不完全相等,具体可以根据实际应用场景进行调整,本申请对此并不作限定。
[0114]
304、对一组或多组第二LLR序列进行LDPC译码,得到第一译码数据。
[0115]
在得到一组或多组第二LLR序列之后,可以对该一组或多组第二LLR序列进行LDPC迭代译码,得到译码成功的第一译码数据。在进行LDPC迭代译码时,迭代的最大次数可以为预设迭代次数。
[0116]
可选地,当有多组第二LLR序列时,对于该多组第二LLR序列的译码方式可以是并行译码,也可以是串行译码,具体可以根据实际应用场景进行调整,本申请对此不作限定。例如,为提高译码效率,可以对该多组第二LLR序列采用并行译码。
[0117]
可选地,在一种可能的实施方式中,可以基于该一组或多组第二LLR序列中的每组第二LLR序列分别进行LDPC迭代译码,每组第二LLR序列对应一组LDPC迭代译码。当任意一组第二LLR序列对应的LDPC迭代译码得到译码成功的一组译码数据之后,即停止对该一组或多组第二LLR序列进行译码,并将该一组译码数据作为第一译码数据。例如,若存在m组第二LLR序列,在基于第m组第二LLR序列进行LDPC迭代译码时,当第m组第二LLR序列对应的LDPC迭代译码首先得到一个正确的译码数据之后,即停止所有基于第二LLR序列的LDPC迭代译码,将该正确的译码数据作为第一译码数据。
[0118]
可选地,在一种可能的实施方式中,可以基于该一组或多组第二LLR序列中的每组第二LLR序列分别对该传输数据进行LDPC迭代译码,得到一组或多组译码成功的译码数据。若仅得到一组译码成功的译码数据,则可以直接确定该一组译码数据为第一译码数据。若得到多组译码成功的译码数据,则可以根据预置规则从该多组译码数据中选择一组译码数据作为第一译码数据。
[0119]
可选的,在一种可能的实施方式中,该预置规则可以是从该多组译码数据中确定与第一LLR序列之间的欧几里得度量不大于阈值的一组译码数据作为第一译码数据。当然,也可以是从该多组译码数据中随机确定一组译码数据作为第一译码数据,具体可以根据实际应用场景进行调整,本申请对此并不做限定。此外,该阈值可以是预设的,也可以是根据实际应用场景进行计算得到,例如,可以从多组译码数据中选择欧几里得度量值最小的译码数据作为第一译码数据。
[0120]
示例性地,欧几里得度量以下也可以称为欧式距离。欧式距离的具体计算方式可以包括:扰动处理之后得到的第二LLR序列LLR=[LLR 0,LLR 1,LLR 2,...,LLR n-1],对第二LLR序列的LDPC译码结果为u=[u 0,u 1,...,u N-1]。首先对LLR序列进行硬判决,得到d=[d 0,d 1,...,d N-1],其中,具体的硬判决方式可以是: 或者, 具体的硬判决方式可以与LDPC编码时的映射关系保持一致。然后比较序列d与序列c的值,若不相等,则对相应位置的LLR的绝对值相加,最终得到的欧式 距离为
[0121]
可选地,在一种可能的实施方式中,在对一组或多组第二LLR序列中任意一组第二LLR序列执行从第一次到第N次的迭代译码时,针对其中的第k次LDPC迭代译码中:更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,N小于或等于预设迭代次数,并且,任意一组第二LLR序列的译码数据包括该R ij[k]和Q ji[k]。
[0122]
可选地,在一种可能的实施方式中,基于一组或多组第二LLR序列中的每组第二LLR序列对第二LLR序列进行LDPC迭代译码时,在第k次迭代中:可以通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],得到一组译码数据,k小于预设迭代次数,且k为正整数。其中,可选的,可以将该一组译码数据作为第一译码数据,也可以是在得到多组译码数据之后,选择其中一组作为第一译码数据,具体可以根据实际应用场景进行调整。
[0123]
示例性地,以任意一组第二LLR序列为例,具体的LDPC迭代译码方式可以是:在迭代之前,对各个参数进行初始化,确定进行译码的第二LLR序列,定义输入序列第j个元素的LLR信息λ j=LLR_in j,并且, 为正逻辑映射(0→-1,1→+1)。第i个校验节点传给第j个变量节点的信息R ij[0]初始化为0,其中j∈V(i)。i=0,1,...,m-1,V(i)表示与第i个校验节点相邻的变量节点的集合。第j个变量节点传给第i个校验节点的信息Q ji[0]初始化为λ j,其中i∈C(j),j=0,1,...,n-1,C(j)表示与第j个变量节点相邻的校验节点的集合。然后进行LDPC迭代译码,交替更新校验节点与变量节点。
[0124]
可选地,在第k次迭代译码中,k可以是任意一次迭代,且k不大于预设的迭代次数。若Q ji[k-1]=min j'∈V(i)(|Q j'i[k-1]|),即可以理解为若Q ji[k-1]为第k-1次迭代中得到的Q ji的最小值,则R ij[k]=α 1*∏ j'∈V(i)\jsgn(Q j'i[k-1])*min j'∈V(i)(|Q j'i[k-1]|);若Q ji[k-1]不为第k-1次迭代中得到的Q ji的最小值,则R ij[k]=α 2j'∈V(i)\jsgn(Q j'i[k-1])*min j'∈V(i)(|Q j'i[k-1]|)。其中,sgn为取符号操作,min为 求最小值操作,V(i)\j表示与第i个校验节点相连的除第j个变量节点以外的其余变量节点的集合。α 1与α 2为预设的修正值,也可以称为修正因子,α 1与α 2为归一化修正因子。可以理解为,本申请实施例在当Q ji为最小值的场景下,对校验节点的更新进行了修正,即对最小值采用修正因子α 1,其余值采用修正因子α 2,通常,α 1与α 2为小于1的正数。因此,本申请实施例中,可以采用修正因子改善译码性能,补偿计算误差,提高译码的准确度。
[0125]
在第k次迭代中,第j个变量节点传给第i个校验节点的信息:Q ji[k]=λ ji'∈C(j)\iR i'j[k],C(j)为与第j个变量节点相连的校验节点的集合,C(j)\i表示与第j个变量节点相连的除第i个校验节点之外的校验节点的集合。
[0126]
可选地,如果第k次迭代中Q ji[k]的符号与上一次迭代中Q ji[k-1]的符号不同,则令Q ji[k]=0。
[0127]
示例性的,在第k次迭代中,变量节点更新的过程可以如图10a所示,以及校验节点更新的过程可以如图10b所示。其中,可以根据添加扰动值后的LLR对变量节点进行更新,即图10a中的λ j
[0128]
可选的,可以同时更新一个变量节点或校验节点,也可以同时更新多个变量节点或校验节点,具体可以根据实际应用场景进行调整,此处并不作限定。
[0129]
在交替更新了校验节点与变量节点之后,还需要计算变量节点的后验概率信息: 然后根据该后验概率信息完成硬判决译码,例如,该硬判决的方式可以为:
[0130]
或者,
[0131]
在根据硬判决译码得到对第二LLR序列的第k次迭代译码的译码数据之后,还可以对该译码数据进行校验,可以是LDPC自校验,也可以是CRC校验等,还可以是对进行了多次迭代后得到的所有译码数据进行校验,确定译码成功的数据。例如,以LDPC自校验为例,在得到译码数据 之后,计算 则校验结果为译码成功,若 则校验结果为译码失败。
[0132]
可选地,在一种可能的实施方式中,对一组或多组第二LLR序列进行LDPC迭代译码时,在第k次迭代中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],得到一组译码数据,k可以是任意一次迭代,且k不大于预设的迭代次数。
[0133]
例如,在本申请实施例中,也可以交替更新R ij[k]以及Q ji[k],更新第i个校验节点传给第j个变量节点的信息R ij[k]可以与前述实施例中利用至少一个修正值更新R ij[k]的方式类似。当然,也可以不使用修正值直接更新R ij[k]。在通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]时,具体的译码过程可以例如,在第k次迭代中,通过第二LLR序列更新Q ji[k],Q ji[k]=λ ji'∈C(j)\iR i'j[k]。若Q ji[k]的符号与上一次迭代的Q ji[k-1]的符号不同,则令:Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],若Q ji[k]的符号与上一次迭代的Q ji[k-1]的符号相同,则Q ji[k]保持当前的计算结果不变。其中,ω即预设的加权值,通常可以是大于0小于1的正数,可以根据对大量的译码数据进行学习确定的值,也可以确定为经验值,例如,ω通常可以是0.75。在本申请实施例中,可以通过加权值更新变量节点传给校验节点的信息,该加权值可以是计算得到,也可以是预设的值,使得在Q ji[k]的符号与上一次迭代的Q ji[k-1]的符号不同时,可以使用该加权值更新Q ji[k]的值,提高得到的Q ji[k]的准确度,并提高Q ji[k]的有效性。
[0134]
可选地,本申请实施例中,对第二LLR序列的译码的方式除了前述的LDPC迭代译码之外,对一组或多组第二LLR序列进行LDPC译码的译码方式可以是MS译码、分层译码算法等等,可以根据实际需求进行调整,此处并不作限定。
[0135]
例如,基于前述对第二LLR序列的LDPC译码的方式,可以交替更新校验节点与变量节点。而在交替更新校验节点与变量节点时,可选的,可以采用分层译码的方式更新校验节点与变量节点。例如,更新变量节点与校验节点的方式可以从上往下,将数据矩阵按行分为多层,然后依次更新层。每一层的行更新完成后,对该层对应的列进行更新,对每一层的行与列都更新完成之后,再对下一层进行更新。例如,如图11所示,在更新变量节点与校验节点时,可以分层进行更新,按照矩阵的行进行分层,可以将一行分为一层,然后分别更新每一层的行,以及更新每一行对应的列。如图11中,分别对第一层至第五层的行与列进行更新。在本申请实施例中,可以通过分层译码的方式更新每一层,将待译码数据分为多层,然后逐层进行更新。因此,在前一层对行与列都更新完成之后,再进行下一层的更新。而由于下一层的行在更新时是基于更新过的其他行的信息,迭代收敛速度相对较快。相对于在所有行更新完成之后才更新列,而行与行之间相互无法提前获取更新得到的相关信息,迭代收敛速度慢,本申请实施例通过行与列交替更新的方式,使每一层的更新都可以关联起来,提高收敛速度。
[0136]
305、其他步骤。
[0137]
当第一次LDPC译码成功之后,则可以直接使用第一次译码得到的译码数据作为传输数据的译码结果。
[0138]
可选地,当得到译码成功的第一译码数据之后,也可以对第一译码数据进行后续的信息解读或指令执行等等步骤,具体可以根据实际应用场景进行调整。
[0139]
因此,在本申请实施例中,在第一次LDPC译码失败之后,可以基于对第一LLR序列进行扰动处理之后得到的一组或者多组第二LLR序列继续进行LDPC译码。当存在多组第二LLR序列时,可以实现并行译码,提高译码的效率。并且本申请实施例直接基于扰动处理之后得到的第二LLR序列进行译码,除了可以降低译码复杂度,还可以提高得到的译码数据的准确度,提高译码性能。
[0140]
示例性地,在饱和的最小和(Saturated Min-Sum,SMS)译码方式中,在第一次译码失败之后,对接收到的信道LLR进行排序,选取幅度最小的j个位置,然后对该j个位置的LLR分别饱和至整最大和负最大,得到2 j个序列,然后将2 j个序列重新输入至译码器分别进行译码,输出合法码字,然后选取与原始信道LLR序列具有最小欧式距离的码字,但仅根据信道LLR来选择VN,得到的译码结果准确性较差,译码性能差。本申请实施例相对于SMS译码中的从不满足校验方程的VN中选择部分VN进行译码,本申请实施例可以直接基于扰动处理之后得到的第二LLR序列进行译码,无需进行VN选择,可以降低译码复杂度,提高译码效率。
[0141]
示例性地,LDPC译码的性能可以通过误块率(Block Error Rate,BLER)衡量,示例性地,下面以BLER的仿真结果进行更形象的描述。请参阅图12,在高斯白噪声(Additive White Gaussian Noise,AWGN)环境中,信息块的长度为120比特,编码码率为1/5,且同为LLR序列(list)16的场景下,各种译码方式的BLER。由图12可知,在同一条件以及相同信噪比(signal to noise ratio,SNR或S/N)下,误码率最高的译码方式为分层归一化最小和(layered normalized min-sum,LNMS)的15次迭代译码,其次为LNMS的850次迭代译码,然后为SMS译码方式,之后是增强BP(augmented belief propagation,ABP)方式,本申请实施例中提供的扰动处理(可以简称为perturbation)的译码方式的误块率最低,明显低于其他方式的BLER。此外,信息块的长度为360比特的场景的BLER如图13所示,与前述图12中的结果类似,本申请实施例中提供的扰动处理的译码方式的误块率最低,明显低于其他方式的BLER。因此,本申请实施例提供的数据译码的方法的BLER明显高于其他译码方式的BLER,提高了LDPC译码的可靠性以及译码效率。
[0142]
前述对本申请实施例提供的数据译码的方法进行了详细说明,下面对本申请提供的装置进行阐述。
[0143]
本申请提供的译码装置的结构示意图可以参阅图14,可以包括:处理单元1401,获取单元1402。
[0144]
获取单元1402,可以用于获取传输数据对应的第一对数似然比LLR序列;
[0145]
处理单元1401,还可以用于对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列;
[0146]
处理单元1401,还可以用于对一组或多组第二LLR序列进行译码,得到第一译码数据。
[0147]
示例性地,该处理单元可以用于执行前述图2中的步骤201-203,或图3中的步骤301-305中的任一步骤,该获取单元1402可以用于执行前述图2或图3中获取传输数据的 步骤。
[0148]
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:
[0149]
对其中一组第二LLR序列进行LDPC迭代译码;
[0150]
若一组第二LLR序列的译码数据校验成功,则将第二LLR序列的译码数据作为第一译码数据。
[0151]
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:
[0152]
对一组或多组第二LLR序列中的各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据;
[0153]
根据预置规则从一组或多组校验成功的译码数据中确定一组译码数据作为第一译码数据。
[0154]
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:
[0155]
从一组或多组校验成功的译码数据中确定出与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为第一译码数据。
[0156]
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:
[0157]
对一组第二LLR序列执行N次迭代译码,针对其中的第k次LDPC迭代译码中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,N小于或等于预设迭代次数;
[0158]
其中,一组第二LLR序列的第k次迭代译码的译码数据包括R ij[k]和Q ji[k]。
[0159]
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:
[0160]
通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k]。
[0161]
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:
[0162]
通过预设的加权值以及第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]。
[0163]
可选地,在一些可能的实施方式中,处理单元1401,具体可以用于:
[0164]
若第k次迭代译码得到的Q ji[k]的符号与第k-1次迭代译码得到的Q ji[k-1]的符号不同,则Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],ω为加权值。
[0165]
可选地,在一些可能的实施方式中,
[0166]
处理单元1401,还用于在对第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列之前,对第一LLR序列进行LDPC译码失败。
[0167]
图15是本申请实施例提供的一种译码装置结构示意图,该译码装置1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1522(或其它类型的处理器)和存储介质1530,存储介质1530用于存储一 个或一个以上应用程序1542或数据1544。其中,存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对译码装置中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在译码装置1500上执行存储介质1530中的一系列指令操作。
[0168]
该中央处理器1522可以根据指令操作执行如前述图2-图11对应的任一实施例。
[0169]
译码装置1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
[0170]
上述实施例中图2-图11中可以由译码装置所执行的步骤可以基于该图15所示的译码装置结构。
[0171]
本申请提供的译码装置可以包括基站,终端等。
[0172]
示例性地,当该译码装置为基站,或者该译码装置包括于基站时,该基站的结构可以如图16所示。
[0173]
图16是本申请实施例提供的一种基站结构示意图,该基站1600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1622(或其它类型的处理器)和存储介质1630,存储介质1630用于存储一个或一个以上应用程序1642或数据1644。其中,存储介质1630可以是短暂存储或持久存储。存储在存储介质1630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基站中的一系列指令操作。更进一步地,中央处理器1622可以设置为与存储介质1630通信,在基站1600上执行存储介质1630中的一系列指令操作。
[0174]
该中央处理器1622可以根据指令操作执行如前述图2-图11对应的任一实施例。
[0175]
基站1600还可以包括一个或一个以上电源1626,一个或一个以上有线或无线网络接口1650,一个或一个以上输入输出接口1658,和/或,一个或一个以上操作系统1641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
[0176]
上述实施例中图2-图11中可以由译码装置所执行的步骤可以基于该图16所示的基站结构。
[0177]
本申请提供的译码装置可以是各种终端,或者,也可以理解为该译码装置可以包括于终端,例如,可以是手机、平板电脑、笔记本电脑、电视机、智能穿戴设备或其他具有显示屏的电子设备等等。在以上实施例中,对该终端的具体形式不作任何限制。其中,终端可以搭载的系统可以包括 或者其它操作系统等,本申请实施例对此不作任何限制。
[0178]
该终端可以适用于各种通信系统。具体的,该通信系统例如:例如,CDMA、TDMA、FDMA、OFDMA、SC-FDMA和其它系统等。术语“系统”可以和“网络”相互替换。CDMA系统可以实现例如UTRA,CDMA2000等无线技术。UTRA可以包括WCDMA技术和其它CDMA变形的技术。CDMA2000可以覆盖过渡标准(interim standard,IS)2000(IS-2000),IS-95和IS-856标准。TDMA系统可以实现例如全球移动通信系统(global system for mobile communication,GSM)等无线技术。OFDMA系统可以实现诸如演进通用无线陆地接入(evolved UTRA,E-UTRA)、超级移动宽带(ultra mobile broadband,UMB)、IEEE 802.11(Wi-Fi),IEEE 802.16(WiMAX),IEEE 802.20,Flash OFDMA等无线技术。UTRA和E-UTRA是UMTS以及UMTS演进版本。3GPP在长期演进(long term evolution,LTE)和基于LTE演进的各种版本是使用E-UTRA的UMTS的新版本。以及第五代(5Generation,简称:“5G”)通信系统、新空口(New Radio,简称“NR”)是正在研究当中的下一代通信系统。此外,所述通信系统还可以适用于面向未来的通信技术,都可以应用于本申请实施例提供的技术方案中。
[0179]
示例性的,以搭载 操作系统的终端100为例,如图17所示,终端100从逻辑上可划分为硬件层21、操作系统161,以及应用层31。硬件层21包括应用处理器101、微控制器单元103、调制调解器107、Wi-Fi模块111、传感器114、定位模块150、存储器等硬件资源。应用层31包括一个或多个应用程序,比如应用程序163,应用程序163可以为社交类应用、电子商务类应用、浏览器等任意类型的应用程序。操作系统161作为硬件层21和应用层31之间的软件中间件,是管理和控制硬件与软件资源的计算机程序。
[0180]
在一个实施例中,操作系统161包括内核23,硬件抽象层(hardware abstraction layer,HAL)25、库和运行时(libraries and runtime)27以及框架(framework)29。其中,内核23用于提供底层系统组件和服务,例如:电源管理、内存管理、线程管理、硬件驱动程序等;硬件驱动程序包括Wi-Fi驱动、传感器驱动、定位模块驱动等。硬件抽象层25是对内核驱动程序的封装,向框架29提供接口,屏蔽低层的实现细节。硬件抽象层25运行在用户空间,而内核驱动程序运行在内核空间。
[0181]
库和运行时27也叫做运行时库,它为可执行程序在运行时提供所需要的库文件和执行环境。库与运行时27包括安卓运行时(Android Runtime,ART)271以及库273等。ART 271是能够把应用程序的字节码转换为机器码的虚拟机或虚拟机实例。库273是为可执行程序在运行时提供支持的程序库,包括浏览器引擎(比如webkit)、脚本执行引擎(比如JavaScript引擎)、图形处理引擎等。
[0182]
框架29用于为应用层31中的应用程序提供各种基础的公共组件和服务,比如窗口管理、位置管理等等。框架29可以包括电话管理器291,资源管理器293,位置管理器295等。
[0183]
以上描述的操作系统161的各个组件的功能均可以由应用处理器101执行存储器中存储的程序来实现。
[0184]
所属领域的技术人员可以理解终端100可包括比图17所示的更少或更多的部件,图17所示的该终端仅包括与本申请实施例所公开的多个实现方式更加相关的部件。
[0185]
终端通常支持安装多种应用程序(Application,APP),如文字处理应用程序、电话应用程序、电子邮件应用程序、即时消息应用程序、照片管理应用程序、网络浏览应用程序、数字音乐播放器应用程序、和/或数字视频播放器应用程序。
[0186]
本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持译码装置实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存必要的程序指令和数据。 该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
[0187]
在另一种可能的设计中,当该译码装置为终端或者基站等内的芯片时,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该终端或者基站等内的芯片执行上述图2-11中任一项实施例中网络执行的方法的步骤。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端或者基站等内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
[0188]
本申请实施例还提供了一种芯片,包括:处理模块与通信接口,所述处理模块能执行上述任一方法实施例中与译码装置相关的方法流程。进一步地,所述芯片还可以包括存储模块(如,存储器),所述存储模块用于存储指令,所述处理模块用于执行所述存储模块存储的指令,并且对所述存储模块中存储的指令的执行使得所述处理模块执行上述任一方法实施例中与译码装置相关的方法流程。
[0189]
本申请实施例还提供了一种通信系统,该通信系统可以包括终端以及基站,该终端可以是如图17所示的终端,该终端可以用于执行前述图2-11的实施例中的任一项步骤。该基站可以是如图16所示的基站,该基站可以用于前述图2-11的实施例中的任一项步骤。
[0190]
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例中与译码装置相关的方法流程。对应的,该计算机可以为上述译码装置。
[0191]
本申请实施例还提供了一种计算机程序或包括计算机程序的一种计算机程序产品,该计算机程序在某一计算机上执行时,将会使所述计算机实现上述任一方法实施例中与译码装置相关的方法流程。对应的,该计算机可以为上述的译码装置。
[0192]
在上述图2-11中各个实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0193]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0194]
应理解,本申请中提及的处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集 成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0195]
还应理解,本申请中的处理器的数量可以是一个,也可以是多个,具体可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。本申请实施例中的存储器的数量可以是一个,也可以是多个,具体可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。
[0196]
还需要说明的是,当译码装置包括处理器(或处理模块)与存储器时,本申请中的处理器可以是与存储器集成在一起的,也可以是处理器与存储器通过接口连接,具体可以根据实际应用场景调整,并不作限定。
[0197]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0198]
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0199]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0200]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0201]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者其他网络设备等)执行本申请图2-11中各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0202]
应理解,本申请中提及的存储介质或存储器可以包括易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM), 其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
[0203]
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0204]
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

权利要求书

[权利要求 1]
一种数据译码的方法,其特征在于,包括: 获取传输数据对应的第一对数似然比LLR序列; 对所述第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列; 对所述一组或多组第二LLR序列进行译码,得到第一译码数据。
[权利要求 2]
根据权利要求1所述的方法,其特征在于,所述对所述一组或多组第二LLR序列进行译码,得到第一译码数据,包括: 对其中一组第二LLR序列进行LDPC迭代译码; 若所述一组第二LLR序列的译码数据校验成功,则将所述第二LLR序列的译码数据作为所述第一译码数据。
[权利要求 3]
根据权利要求1所述的方法,其特征在于,所述对所述一组或多组第二LLR序列进行译码,得到第一译码数据,包括: 对所述一组或多组第二LLR序列中的各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据; 根据预置规则从所述一组或多组校验成功的译码数据中确定一组译码数据作为所述第一译码数据。
[权利要求 4]
根据权利要求3所述的方法,其特征在于,所述根据预置规则从所述一组或多组校验成功的译码数据中确定一组译码数据作为所述第一译码数据,包括: 从所述一组或多组校验成功的译码数据中确定出与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为所述第一译码数据。
[权利要求 5]
根据权利要求2所述的方法,其特征在于,所述对其中一组第二LLR序列进行LDPC迭代译码,包括: 对所述一组第二LLR序列执行N次迭代译码,针对其中的第k次LDPC迭代译码中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,所述N小于或等于预设迭代次数; 其中,所述一组第二LLR序列的第k次迭代译码的译码数据包括所述R ij[k]和所述Q ji[k]。
[权利要求 6]
根据权利要求5所述的方法,其特征在于,所述更新第i个校验节点传给第j个变量节点的信息R ij[k],包括: 通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k]。
[权利要求 7]
根据权利要求5或6所述的方法,其特征在于,所述通过所述第二LLR序列更新第 j个变量节点传给第i个校验节点的信息Q ji[k],包括: 通过预设的加权值以及所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]。
[权利要求 8]
根据权利要求7所述的方法,其特征在于,所述通过预设的加权值以及所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],包括: 若第k次迭代译码得到的Q ji[k]的符号与第k-1次迭代译码得到的Q ji[k-1]的符号不同,则Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],所述ω为所述加权值。
[权利要求 9]
根据权利要求1-8中任一项所述的方法,其特征在于,在所述对所述第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列之前,所述方法还包括: 对所述第一LLR序列进行LDPC译码失败。
[权利要求 10]
一种译码装置,其特征在于,包括:获取单元,处理单元; 所述获取单元,用于获取传输数据对应的第一对数似然比LLR序列; 所述处理单元,用于对所述第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列; 所述处理单元,还用于对所述一组或多组第二LLR序列进行译码,得到第一译码数据。
[权利要求 11]
根据权利要求10所述的译码装置,其特征在于,所述处理单元,具体用于: 对其中一组第二LLR序列进行LDPC迭代译码; 若所述一组第二LLR序列的译码数据校验成功,则将所述第二LLR序列的译码数据作为所述第一译码数据。
[权利要求 12]
根据权利要求10所述的译码装置,其特征在于,所述处理单元,具体用于: 对所述一组或多组第二LLR序列中的各组第二LLR序列分别进行LDPC迭代译码,得到一组或多组校验成功的译码数据; 根据预置规则从所述一组或多组校验成功的译码数据中确定一组译码数据作为所述第一译码数据。
[权利要求 13]
根据权利要求12所述的译码装置,其特征在于,所述处理单元,具体用于: 从所述一组或多组校验成功的译码数据中确定出与第一LLR序列之间欧几里得度量小于或等于阈值的一组译码数据作为所述第一译码数据。
[权利要求 14]
根据权利要求11所述的译码装置,其特征在于,所述处理单元,具体用于: 对所述一组第二LLR序列执行N次迭代译码,针对其中的第k次LDPC迭代译码中,更新第i个校验节点传给第j个变量节点的信息R ij[k],以及通过所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k],1≤k≤N,所述N小于或等于预设迭代次数; 其中,所述一组第二LLR序列的第k次迭代译码的译码数据包括所述R ij[k]和所述Q ji[k]。
[权利要求 15]
根据权利要求14所述的译码装置,其特征在于,所述处理单元,具体用于: 通过预设的至少一个修正值更新第i个校验节点传给第j个变量节点的信息R ij[k]。
[权利要求 16]
根据权利要求14或15所述的译码装置,其特征在于,所述处理单元,具体用于: 通过预设的加权值以及所述第二LLR序列更新第j个变量节点传给第i个校验节点的信息Q ji[k]。
[权利要求 17]
根据权利要求16所述的译码装置,其特征在于,所述处理单元,具体用于: 若第k次迭代译码得到的Q ji[k]的符号与第k-1次迭代译码得到的Q ji[k-1]的符号不同,则Q ji[k]=ω*Q ji[k]+(1-ω)*Q ji[k-1],所述ω为所述加权值。
[权利要求 18]
根据权利要求10-17中任一项所述的译码装置,其特征在于, 所述处理单元,还用于在对所述第一LLR序列中的一个或多个LLR进行扰动处理,得到一组或多组第二LLR序列之前,对所述第一LLR序列进行LDPC译码失败。
[权利要求 19]
一种基站,其特征在于,包括如权利要求10至18中任一项所述的译码装置。
[权利要求 20]
一种终端,其特征在于,包括如权利要求10至18中任一项所述的译码装置。
[权利要求 21]
一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-9中任意一项所述的方法。
[权利要求 22]
一种译码装置,包括处理器和存储器,其特征在于,所述处理器与存储器耦合,用于读取并执行所述存储器中存储的指令,实现如权利要求1-9中任一项的步骤。
[权利要求 23]
如权利要求22所述的装置,其特征在于,所述译码装置为芯片或片上系统。
[权利要求 24]
一种包含指令的计算机程序产品,其特征在于,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-9中任一所述的方法。
[权利要求 25]
一种通信系统,其特征在于,包括如权利要求19所述的基站以及如权利要求20所述的终端。

附图

[ 图 1A]  
[ 图 1B]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6A]  
[ 图 6B]  
[ 图 7]  
[ 图 8]  
[ 图 9]  
[ 图 10A]  
[ 图 10B]  
[ 图 11]  
[ 图 12]  
[ 图 13]  
[ 图 14]  
[ 图 15]  
[ 图 16]  
[ 图 17]