译码方法和设备与流程

文档序号:12374820阅读:278来源:国知局
译码方法和设备与流程

本发明实施例涉及存储领域,尤其涉及译码方法和设备。



背景技术:

存储器,为用于存储数据的存储介质,可向该存储器写入数据,还可从该存储器读取数据。在向存储器写入数据时,可能因写操作引入的噪声和/或环境噪声,造成写入的数据是错误的;保存该存储器的期间,环境噪声可能会修改该存储器中已写入的数据;从存储器读取数据时,可能因读操作引入的噪声和/或环境噪声,造成读取的数据是错误的;因数据的读写过程及数据的保存期间,都可能因噪声改变数据,为提高从读取的数据中解析出写入前的数据的正确性,对数据先编码,再将编码后的数据写入存储器,对读取的数据进行相应译码,一定程度上保证译码所得的数据与编码前的数据相同。

现有成熟的差错检测和修正(Error Checking and Correction,简称ECC)技术采用BCH(Bose、Ray、Hocquenghem)码实现;BCH码能纠正一个或多个错误,在通信领域和存储领域应用普遍,尤其对于短的和中等长度的码,其纠错能力强,并且构造方便,编码简单;但随着新一代存储系统对大容量、小尺寸、高密度和低功耗存储的追求,存储单元尺寸越来越小,信号电平越来越低,存储的数据出错的概率也相应增 大,对数据纠错能力提出了更高的要求,BCH码针对出错码的概率较大的情况的纠错效果不佳。

低密度奇偶校验码(Low Density Parity Check Code,LDPC),为一类具有稀疏校验矩阵的线性分组码,其针对新一代存储系统具有较好的纠错能力;尤其对于数据出错概率较大的情况,采用LDPC纠错,强于采用BCH码纠错;但目前采用LDPC对从新一代存储系统读取的数据纠错,仍存在一定译码失败率。



技术实现要素:

有鉴于此,本发明实施例提供了一种译码方法和设备,如果采用LDPC算法纠错失败,将数据向量中错误概率相对大的数值作为删除译码算法中的删除位,将通过该删除译码算法计算出的该删除位的估计值替换该数据向量中对应的该数值,将替换所得的数据向量作为成功译码的数据向量。

第一方面,本发明实施例提供了一种译码方法,所述译码方法包括:

从存储器读取码向量,所述码向量根据生成矩阵对原始数据向量编码生成并写入所述存储器;

根据低密度奇偶校验码LDPC算法对所述码向量译码,得到第一数据向量,并确定根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率;

根据校验矩阵校验所述第一数据向量是否正确,所述校验矩阵为与所述生成矩阵对应的校验矩阵;

如果校验结果为不正确,则将所述第一数据向量中错误概率大于概率阈值的数值作为删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量。

结合第一方面,在第一方面的第一种可能的实现方式中,所述根据低密度奇偶校验码LDPC算法对所述码向量译码,得到第一数据向量,并确定根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率,具体包括:

根据所述LDPC算法对所述码向量译码,获取软判决所得的第二数据向量,对所述第二数据向量进行硬判决,得到所述第一数据向量;

确定将所述第二数据向量中每个数值硬判决为所述第一数据向量中对应数值的错误概率,作为根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率。

结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述如果校验结果为不正确,则将所述第一数据向量中错误概率大于概率阈值的数值作为删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量,具体包括:

如果校验结果为不正确,则将所述第一数据向量中错误概率大于所述概率阈值的数值置为零,并得到第三数据向量;

确定所述校验矩阵与所述第三数据向量的转置相乘所得的结果等于零向量,将所述第一数据向量中错误概率大于概率阈值的数值作为所述删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量。

结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据校验矩阵校验所述第一数据向量是否正确,具体为:

计算所述校验矩阵与所述第一数据向量的转置相乘所得的结果是否等于零向量;

如果所述校验矩阵与所述第一数据向量的转置相乘所得的结果等于零向量,则校验结果为正确;

如果所述校验矩阵与所述第一数据向量的转置相乘所得的结果不等于零向量,则校验结果为不正确。

结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述概率阈值根据预设个数确定,所述预设个数为删除译码时所述第一数据向量中作为删除位的数值个数。

第二方面,本发明实施例提供了一种译码器,所述译码器包括:

读取单元,用于从存储器读取码向量,所述码向量根据生成矩阵对原始数据向量编码生成并写入所述存储器;

第一译码单元,用于根据低密度奇偶校验码LDPC算法对所述码向量译码,得到第一数据向量,并确定根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率;

校验单元,用于根据校验矩阵校验所述第一数据向量是否正确,所述校验矩阵为与所述生成矩阵对应的校验矩阵;

第二译码单元,用于如果校验结果为不正确,则将所述第一数据向量中错误概率大于概率阈值的数值作为删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量。

结合第二方面,在第二方面的第一种可能的实现方式中,所述第一译码单元,用于根据低密度奇偶校验码LDPC算法对所述码向量译码,得到第一数据向量,并确定根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率,具体包括:

判决单元,用于根据所述LDPC算法对所述码向量译码,获取软判决所得的第二数据向量,对所述第二数据向量进行硬判决,得到所述第一数据向量;

错误概率确定单元,用于确定将所述第二数据向量中每个数值硬判决为所述第一数据向量中对应数值的错误概率,作为根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率。

结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第二译码单元,用于如果校验结果为 不正确,则将所述第一数据向量中错误概率大于概率阈值的数值作为删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量,具体包括:

所述第二译码单元,用于如果校验结果为不正确,则将所述第一数据向量中错误概率大于所述概率阈值的数值置为零,并得到第三数据向量;

所述第二译码单元,用于确定所述校验矩阵与所述第三数据向量的转置相乘所得的结果等于零向量,将所述第一数据向量中错误概率大于概率阈值的数值作为所述删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量。

结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述校验单元,用于根据校验矩阵校验所述第一数据向量是否正确,具体为:

所述校验单元,用于计算所述校验矩阵与所述第一数据向量的转置相乘所得的结果是否等于零向量;

如果所述校验矩阵与所述第一数据向量的转置相乘所得的结果等于零向量,则校验结果为正确;

如果所述校验矩阵与所述第一数据向量的转置相乘所得的结果不等于零向量,则校验结果为不正确。

结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式,所述概率阈值根据预设个数确定,所述预设个数为删除译码时所述第一数据向量中作为删除位的数值个数。

第三方面,本发明实施例提供了一种译码设备,所述译码设备包括处理器和存储器,所述处理器与所述存储器通过总线连接;

所述存储器用于存储计算机执行指令,当所述译码设备运行时,所述处理器读取所述存储器存储的所述计算机执行指令,以使所述译码设备执行第一方面或者第一方面的任一种可能的实现方式提供的译码方法。

通过上述方案,对采用LDPC算法纠错失败的数据向量,根据LDPC算法确定该数据向量包括的数值的错误概率,并将该数据向量中错误概率大于概率阈值的数值作为删除位进行删除译码,如果删除译码成功,将删除译码所得的最终数据向量作为对该数据向量译码的译码结果。

附图说明

图1为译码方法的应用场景的系统逻辑结构示意图;

图2为译码方法的一种示范性流程图;

图3为图2中步骤S201的一种可选细化流程图;

图4为图2中步骤S204的一种可选细化流程图;

图5为依据本发明一实施例的译码器500提供的逻辑结构示意图;

图6为图5中第一译码单元502的一种可选细化逻辑结构示意图;

图7为依据本发明一实施例的译码设备700提供的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在 没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示的系统100,包括处理器101和存储器102。

对于图1中的存储器102,为软盘、U盘、硬盘、磁盘阵列等存储介质,对存储器102具体为哪种存储介质构成,不做限定,但存储器102需具有在掉电时数据不消失的特性,用于保存数据。通常,译码设备的驱动程序、译码设备的启动程序、以及数据量大的数据都存储在存储器102中。如果处理器101与存储器102未解耦,处理器101与存储器102通过总线连接,处理器101可通过磁盘输入/输出端口(Input/Output,简称I/O)访问存储器102,对存储器102执行读取数据、写入数据等操作。

对于图1中的处理器101,可以是中央处理器(Central Processing Unit,简称CPU),该CPU作为译码设备的控制核心,解释并执行计算机指令,处理计算机中软件的数据和/或硬件的数据;处理器101可以是协处理器,例如众核架构处理器(Many Integrated Core,简称MIC),处理特定任务甚至特定代码段以协助处于控制核心的CPU。处理器101可访问存储器102,从存储器102读取数据,处理读取的数据,将处理所得的数据写入存储器102,等等。

本发明一实施例,基于上述实施例提供的硬件架构,提供一种译码方法,图2示出了依据本实施例提供的该方法的基本实现流程,但为了便于描述,图2仅示出了与本发明实施例相关的部分。所述译码方法包括步骤S201、步骤S202、步骤S203和步骤S204。

本实施例中,原始数据向量是指包含多个数值的向量,并针对该原始数据向量设计了生成矩阵和校验矩阵;为实现在存储器安全存储原始数据向量,先采用生成矩阵对原始数据向量编码得到码向量,在存储器存储该码向量后,若处理器需使用原始数据向量,从存储器读取该码向量,对从存储器读取的该码向量译码,再采用校验矩阵检验译码所得的数据向量是否正确;一种校验实现方式,将校验矩阵与译码所得的数据 向量相乘,如果相乘结果等于零向量,代表译码所得的数据向量与原始数据向量相同,校验结果为正确,如果相乘结果不等于零向量,代表译码所得的数据向量与原始数据向量不相同,校验结果为不正确。

步骤S201,从存储器读取码向量,所述码向量根据生成矩阵对原始数据向量编码生成并写入所述存储器。

本实施例中,将需写入存储器的数据划分为一个或多个原始数据向量;具体地,因读写存储器可能引入噪声、在存储器存储数据的期间可能引入环境噪声,导致从存储器读取的数据与先前向存储器写入的数据不一致,为根据读取的数据解析出与写入的数据尽可能相等的数据,在向存储器写入数据之前,将待写入的数据划分为原始数据向量,并根据生成矩阵对原始数据向量编码,向存储器写入编码所得的码向量。

对于从存储器读取码向量,因读写存储器可能引入噪声和存储期间可能引入噪声,从存储器读取的码向量可能不等于向存储器写入的码向量。

步骤S202,根据低密度奇偶校验码LDPC算法对所述码向量译码,得到第一数据向量,并确定根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率。

本实施例中,本实施例对LDPC算法的具体实现流程不做限定,对采用哪种类型的LDPC算法不做限定;

举例说明,采用LDPC迭代译码算法对所述码向量译码之前,可根据以往实验数据设定最大迭代次数,可人为设定或修改该最大迭代次数,该LDPC迭代译码算法每次迭代都包括一次依次执行的软判决、硬判决,具体地,在一次迭代过程中,首先完成该次迭代的软判决,再对该软判决得到的数据向量进行硬判决;本次迭代结束后,采用校验矩阵与该硬判决所得的数据向量相乘,如果相乘结果等于零向量,则退出迭代过程,完成译码,如果相乘结果不等于零向量,则将该硬判决所得的数据向量作为下一次迭代过程的输入,进入该下一次的迭代过程,直到经过的迭代过程的次数达到最大迭代次数,退出迭代过程,将经过最大迭代次数的迭代过程所得的软判决结果作为信息向量,将经过最大迭代 次数的迭代过程所得的硬判决结果作为第一数据向量;

其中,根据该信息向量(经过最大迭代次数的迭代过程所得的软判决结果)确定:将该软判决结果包含的每个数值硬判决为第一数据向量包含的对应数值的错误概率(即根据所述LDPC迭代译码算法译码为所述第一数据向量包括的数值的错误概率)。

需说明的是,该LDPC迭代译码算法包括:和积译码算法、最小和译码算法、LDPC的误差反向传播(Error Back Propagation,简称BP)算法、附加提前终止判断标准的BP算法。

步骤S203,根据校验矩阵校验所述第一数据向量是否正确,所述校验矩阵为与所述生成矩阵对应的校验矩阵。

所述生成矩阵与所述校验矩阵,是针对原始数据向量匹配生成的;采用生成矩阵对原始数据向量编码并将编码所得的码向量存储至存储器后,对于从存储器读取的该码向量译码所得的数据向量是否正确,采用校验矩阵检验。

具体在本实施例中,该校验矩阵用于校验所述第一数据向量是否与所述原始数据向量相同,一可选实施方式是,将该校验矩阵与该第一数据向量相乘,如果相乘结果等于预设向量,代表校验通过,校验结果为正确,该第一数据向量与所述原始数据向量相同;如果相乘结果不等于该预设向量,代表校验未通过,校验结果为不正确,该第一数据向量与所述原始数据向量不相同。

本实施例对根据校验矩阵校验所述第一数据向量是否正确的校验方式不做限定,针对原始数据向量匹配生成不同所述生成矩阵与不同所述校验矩阵时,校验方式通常不同。

可选地,所述根据校验矩阵校验所述第一数据向量是否正确,具体为:

计算所述校验矩阵与所述第一数据向量的转置相乘所得的结果是否等于零向量;

如果所述校验矩阵与所述第一数据向量的转置相乘所得的结果等于零向量,则校验结果为正确;

如果所述校验矩阵与所述第一数据向量的转置相乘所得的结果不等于零向量,则校验结果为不正确。

具体地,将所述第一数据向量这一行向量转置为列向量,再将所述校验矩阵与转置得到的列向量相乘,判断相乘结果是否等于零向量(该零向量属于列向量),如果该相乘结果等于零向量,表示校验通过,所述第一数据向量等于原始数据向量,校验结果为正确,如果该相乘结果不等于零向量,表示校验未通过,所述第一数据向量不等于原始数据向量,校验结果为不正确。

步骤S204,如果校验结果为不正确,则将所述第一数据向量中错误概率大于概率阈值的数值作为删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量。

本实施例中,如果步骤S203校验的校验结果为不正确,代表:采用LDPC算法对码向量译码,译码失败;但本实施例在采用LDPC算法译码失败后,进一步采用删除译码算法进行删除译码。

对所述第一数据向量根据所述删除译码算法进行删除译码的具体动作,包括:根据所述删除译码算法计算出每个删除位的估计值,将计算出的估计值替换所述第一数据向量中对应删除位的数值以得到所述最终数据向量。如果删除该第一数据向量中少数数值,删除译码算法能够估计出该第一数据向量中每个删除位的数值;另外,对于该数据向量中出删除位以外的错误数值,删除译码算法能够纠正该该数据向量中的错误数值。

如数据向量X(n,k),该数据向量包括的数值的总个数为n,该数据向量包括的数值中有k个表示信息的数值,该数据向量包括的数值中有r个用于校验的数值,r=n-k;删除译码算法能够纠正的错误位的个数和删除位的个数需满足的关系,如下:

v+e/2≤r (1),

其中,删除位的个数为e,错误位的个数为v。

值得说明的是,本实施例对于删除译码算法中的删除位,不是任意选择的;而是将根据LDPC算法译码为所述第一数据向量时所述第一数 据向量中错误概率大于概率阈值的数值,作为该删除译码算法的删除位;然后采用删除译码算法对第一数据向量译码时,计算出每个删除位的估计值;对于第一数据向量中每个删除位,一一对应地将估计值替换第一数据向量中的对应数值,得到最终数据向量。该最终数据向量为对码向量译码所得的数据向量,本实施例将该最终数据向量作为原始数据向量的估计,作为对码向量译码所得的结果。

可选地,根据删除译码算法能够重构的删除位的个数确定该概率阈值,保证所述第一数据向量中错误概率大于概率阈值的数值小于或等于:删除译码算法能够重构的删除位的个数。

本实施例采用LDPC算法对从存储器读取的码向量译码,根据校验矩阵校验译码结果(第一数据向量)是否正确,如果校验结果为正确,代表译码结果与原始数据向量相等,译码成功;如果校验结果为不正确,代表译码结果与原始数据向量不相同,采用LDPC算法译码失败;采用LDPC算法译码失败后,将根据LDPC算法译码为所述第一数据向量时所述第一数据向量中错误概率大于概率阈值的数值,作为删除译码算法的删除位,采用删除译码算法计算出每个删除位的估计值,以估计值替换第一数据向量中删除位的数值并得到最终数据向量,将该最终数据向量作为译码结果。

可选地,对图2中步骤S201做一可选细化,参见图3,所述根据低密度奇偶校验码LDPC算法对所述码向量译码,得到第一数据向量,并确定根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率,具体包括步骤S2011和步骤S2012。

步骤S2011,根据所述LDPC算法对所述码向量译码,获取软判决所得的第二数据向量,对所述第二数据向量进行硬判决,得到所述第一数据向量;

步骤S2012,确定将所述第二数据向量中每个数值硬判决为所述第一数据向量中对应数值的错误概率,作为根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率。

具体地,所述LDPC算法对所述码向量译码包括软判决和硬判决;例如,为所述LDPC迭代译码算法预先设定最大迭代次数,所述LDPC迭代译码算法的每次迭代过程中,均包括依次执行的软判决、硬判决,步骤S2011是在最大迭代次数的迭代过程中,获取软判决的判决结果,将软判决的判决结果作为第二数据向量,将最大迭代次数的迭代过程中对第二数据向量进行硬判决,硬判决所得的判决结果为所述第一数据向量。所述第二数据向量不一定是由“1”和“0”这两个数值组成的,通常所述第二数据向量包括的数值为小数;对所述第二数据向量中每个数值作硬判决,将第二数据向量中每个数值按照取“1”的概率或取“0”的概率判定为“1”或者“0”,由硬判决得到的数值(为“1”或“0”)组成第一数据向量。在硬判决时,如果第二数据向量中的一个数值硬判决为“1”,步骤S2012确定将该数值硬判决为“1”的错误概率;如果第二数据向量中的一个数值硬判决为“0”,步骤S2012确定将该数值硬判决为“0”的错误概率;

举例说明,所述第二数据向量中每个数值为[0,1]这一区间内的数值,对所述第二数据向量中每个数值作硬判决时,将数值大于或等于0.5的数值硬判决为1,将数值小于0.5的数值硬判决为0;因此,对于大于或等于0.5的两个数值而言,两个数值中较大者硬判决为“1”的错误概率小于两个数值中较小者硬判决为“1”的错误概率;因此,对于小于0.5的两个数值而言,两个数值中较小者硬判决为“0”的错误概率小于两个数值中较大者硬判决为“0”的错误概率;从而,对接近“0.5”的数值作硬判决的错误概率大于对接近“0”的数值作硬判决的错误概率,对接近“0.5”的数值作硬判决的错误概率大于对接近“1”的数值作硬判决的错误概率。这样,在筛选所述第一数据向量中错误概率大于概率阈值的数值时,可以筛选出对第二数据向量中接近“0.5”的数值作硬判决所得的数值;继而,确定为删除译码算法中的删除位的,也是第一数据向量中错误概率相对较大的数值。

可选地,对图2中步骤S204做一可选细化,参见图4,所述如果校验结果为不正确,则将所述第一数据向量中错误概率大于概率阈值的数 值作为删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量,具体包括步骤S2041和步骤S2042。

步骤S2041,如果校验结果为不正确,则将所述第一数据向量中错误概率大于所述概率阈值的数值置为零,并得到第三数据向量;

步骤S2042,确定所述校验矩阵与所述第三数据向量的转置相乘所得的结果等于零向量,将所述第一数据向量中错误概率大于概率阈值的数值作为所述删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量。

具体地,如果步骤S203校验的校验结果为不正确,代表:采用LDPC算法对码向量译码,译码失败;但本实施例在采用LDPC算法译码失败后,将所述第一数据向量中错误概率大于所述概率阈值的数值置为零,得到第三数据向量,将所述校验矩阵与所述第三数据向量的转置相乘,针对不同相乘结果分别作如下处理:

如果相乘所得的结果不等于零向量,代表所述第一数据向量中除错误概率大于所述概率阈值的数值的其他数值也存在错误的数值,也代表所述第一数据向量包括的除错误概率大于所述概率阈值的数值的其他数值中存在与原始数据向量中相应数值不相同的数值,不再对第一数据向量进行删除译码,确定为采用本实施例提供的译码方法对码向量译码失败;

如果相乘所得的结果等于零向量,代表所述第一数据向量中除错误概率大于所述概率阈值的数值的其他数值都是正确的,也代表所述第一数据向量包括的除错误概率大于所述概率阈值的数值的其他数值与原始数据向量中相应数值是相同的;可将所述第一数据向量中错误概率大于概率阈值的数值作为删除译码算法的删除位,采用删除译码算法计算出该删除位的估计值,对于每个删除位,以估计值替换第一向量中对应的数值,得到最终数据向量;将该最终数据向量作为对码向量译码所得的译码结果。

这样,在采用LDPC算法译码失败后,在所述第一数据向量中除错 误概率大于所述概率阈值的数值的其他数值是正确的、与原始数据向量中相应数值是相同的,才进一步将错误概率大于概率阈值的数值作为删除译码算法的删除位并对所述第一数据向量执行删除译码,并得到最终数据向量;在所述第一数据向量中除错误概率大于所述概率阈值的数值的其他数值是不正确的、与原始数据向量中相应数值是不相同的,不再对第一数据向量进行删除译码,确定为采用本实施例提供的译码方法对码向量译码失败;增添步骤S2042这一校验环节,提高了译码效率,及时确定是否需要进行删除译码。

可选地,所述所述概率阈值根据预设个数确定,所述预设个数为删除译码时所述第一数据向量中作为删除位的数值个数。

具体地,参见上述,删除译码算法能够纠正的错误位的个数和删除位的个数需满足的关系,如下:

v+e/2≤r (1),

其中,删除位的个数为e,错误位的个数为v。

在满足(1)的条件下,可预设设定一个数值,该数值为所述预设个数。满足(1)的条件下,该预设个数可人为修改。确定该预设个数后,可根据该预设个数,相依计算出概率阈值,使得所述第一数据向量中错误概率大于概率阈值的数值的个数等于该预设个数。

这样,可人为在满足(1)的条件下设定该预设个数,以提高删除译码的效率。

本发明一实施例,提供一种译码器500,图5示出了依据本实施例提供的该译码器500的逻辑结构示意图,但为了便于描述,图5仅示出了与本发明实施例相关的部分。

参见图5,所述译码器500包括:

读取单元501,用于从存储器读取码向量,所述码向量根据生成矩阵对原始数据向量编码生成并写入所述存储器;

第一译码单元502,用于根据低密度奇偶校验码LDPC算法对所述码向量译码,得到第一数据向量,并确定根据所述LDPC算法译码为所述 第一数据向量包括的数值的错误概率;

校验单元503,用于根据校验矩阵校验所述第一数据向量是否正确,所述校验矩阵为与所述生成矩阵对应的校验矩阵;

第二译码单元504,用于如果校验结果为不正确,则将所述第一数据向量中错误概率大于概率阈值的数值作为删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量。

可选地,对图5中第一译码单元502做一可选细化,参见图6,所述第一译码单元502,用于根据低密度奇偶校验码LDPC算法对所述码向量译码,得到第一数据向量,并确定根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率,具体包括:

判决单元5021,用于根据所述LDPC算法对所述码向量译码,获取软判决所得的第二数据向量,对所述第二数据向量进行硬判决,得到所述第一数据向量;

错误概率确定单元5022,用于确定将所述第二数据向量中每个数值硬判决为所述第一数据向量中对应数值的错误概率,作为根据所述LDPC算法译码为所述第一数据向量包括的数值的错误概率。

可选地,所述第二译码单元504,用于如果校验结果为不正确,则将所述第一数据向量中错误概率大于概率阈值的数值作为删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量,具体包括:

所述第二译码单元504,用于如果校验结果为不正确,则将所述第一数据向量中错误概率大于所述概率阈值的数值置为零,并得到第三数据向量;

所述第二译码单元504,用于确定所述校验矩阵与所述第三数据向量的转置相乘所得的结果等于零向量,将所述第一数据向量中错误概率大于概率阈值的数值作为所述删除译码算法的删除位,对所述第一数据向量根据所述删除译码算法进行删除译码并得到最终数据向量。

可选地,所述校验单元503,用于根据校验矩阵校验所述第一数据 向量是否正确,具体为:

所述校验单元503,用于计算所述校验矩阵与所述第一数据向量的转置相乘所得的结果是否等于零向量;

如果所述校验矩阵与所述第一数据向量的转置相乘所得的结果等于零向量,则校验结果为正确;

如果所述校验矩阵与所述第一数据向量的转置相乘所得的结果不等于零向量,则校验结果为不正确。

可选地,所述概率阈值根据预设个数确定,所述预设个数为删除译码时所述第一数据向量中作为删除位的数值个数。

本发明一实施例,图7是本实施例提供的译码设备700的硬件结构示意图,示出了所述译码设备700的一种硬件结构。

如图7所示,所述译码设备700包括处理器701和存储器702,所述处理器701与所述存储器702通过总线703连接;

所述存储器702用于存储计算机执行指令,当所述译码设备700运行时,所述处理器701读取所述存储器702存储的所述计算机执行指令,以使所述译码设备700执行上述实施例提供的译码方法。该译码方法的具体实现,参见上述实施例提供的译码方法的相关描述,在此不再赘述。

其中,处理器701可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现上述方法实施例所提供的技术方案,包括执行上述实施例提供的译码方法。

其中,存储器702可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器702可以存储操作系统和其他应用程序。在通过软件或者固件来实现上述方法实施例提供的技术方案时,用于实现上述方法实施例提供的技术方案的程序代码保存在存储器702中,包括将应用于所述译码设备700的上述实施例提供的译码方法的程序代码保存在 存储器702中,并由处理器701来执行。

其中,总线703可包括一通路,用于在所述译码设备700中各个部件(例如处理器701和存储器702)之间传送信息。

可选地,所述译码设备700还包括输入/输出接口705,输入/输出接口705用于接收输入的数据和信息,输出操作结果等数据。

可选地,通信接口704使用例如但不限于收发器一类的收发装置,来实现所述译码设备700与其他设备或通信网络之间的网络通信;可选地,通信接口704可以是用于接入网络的各种接口,如用于接入以太网的以太网接口,该以太网接口包括但不限于RJ-45接口、RJ-11接口、SC光纤接口、FDDI接口、AUI接口、BNC接口和Console接口等。

应注意,尽管图7所示的所述译码设备700仅仅示出了处理器701、存储器702以及总线703,但是在具体实现过程中,本领域的技术人员应当明白,所述译码设备700还包含实现正常运行所必须的其他器件,例如通信接口704。同时,根据具体需要,本领域的技术人员应当明白,所述译码设备700还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,所述译码设备700也可仅仅包含实现上述方法实施例所必须的器件,而不必包含图7中所示的全部器件。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块和单元的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其 中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

上述以软件功能模块的形式实现集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器(英文:Read-Only Memory,简称ROM)、随机存取存储器(英文:Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1