一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种译码方法、译码装置、设备及存储装置与流程

2022-06-16 01:16:05 来源:中国专利 TAG:


1.本技术涉及编解码技术领域,具体涉及一种译码方法、译码装置、设备及存储装置。


背景技术:

2.低密度奇偶校验(ldpc,low density parity check)码是通过校验矩阵定义的一类线性码,已广泛应用于深空通信、光纤通信、卫星数字视频和音频广播等领域。
3.比特翻转(bf,bit flipping)译码是由gallager提出的一种硬判决译码方法,被应用于ldpc码译码,该译码方法在每次迭代过程中,仅翻转具有最大翻转权重的一个比特位。在有限的迭代次数下,bf译码能够纠正的比特数十分有限,算法收敛慢,导致译码效率不高。


技术实现要素:

4.鉴于此,本技术提供一种译码方法、译码装置、设备及存储介质,以解决现有的译码方法译码效率不高的问题。
5.本技术实施例提供的一种译码方法,包括:
6.对待译码码字进行预设处理后得到硬判决序列z=[z0,z1,

,z
n-1
];
[0007]
根据所述硬判决序列和所述待译码码字的校验矩阵h,计算伴随式向量s,其中,h=[h
m,n
]m×n,h
m,n
为所述校验矩阵第m行第n列的元素,m=0,1,...m-1,n=0,1,...n-1;
[0008]
s=(s0,s1,...,s
m-1
)
t

[0009][0010]
若所述伴随式向量等于全零向量,则输出所述硬判决序列;否则,统计与元素h
m,n
=1所对应的比特zn参与计算并使sm≠0的个数fn;
[0011]
若fn大于或等于翻转门限,则将所述比特zn的电平进行翻转,得到新的硬判决序列,其中,所述翻转门限根据连续未翻转的比特数量或连续翻转的比特数量进行调整;
[0012]
将迭代次数加1,并返回至所述根据所述硬判决序列和所述待译码码字的校验矩阵h,计算伴随式向量s;以将更新后的硬判决序列进行下一轮迭代计算。
[0013]
可选的,所述翻转门限根据连续未翻转的比特数量进行调整,包括:
[0014]
若连续未翻转的比特数量大于或等于第一预设阈值,则将所述翻转门限调小。
[0015]
可选的,所述若连续未翻转的比特数量大于或等于第一预设阈值,则将所述翻转门限调小,包括:
[0016]
若连续未翻转的比特数量大于或等于第一预设阈值,则将所述翻转门限减1。
[0017]
可选的,所述翻转门限根据连续翻转的比特数量进行调整,还包括:
[0018]
若连续翻转的比特数量大于或等于第二预设阈值,则将所述翻转门限调大。
[0019]
可选的,所述若连续翻转的比特数量大于或等于第二预设阈值,则将所述翻转门限调大,包括:
[0020]
若连续翻转的比特数量大于或等于第二预设阈值,则将所述翻转门限加1。
[0021]
可选的,所述校验矩阵包括多个循环矩阵,其中,所述循环矩阵由基矩阵中的元素循环移位得到,所述基矩阵中的元素由单位矩阵位移得到。
[0022]
可选的,所述对待译码码字进行预设处理后得到硬判决序列,包括:
[0023]
对所述待译码码字进行调制得到第一序列;
[0024]
获取所述第一序列通过信道处理后的第二序列;
[0025]
根据所述第二序列得到所述硬判决序列。
[0026]
本技术实施例还提供一种译码装置,包括:
[0027]
预处理模块,用于对待译码码字进行预设处理后得到硬判决序列z=[z0,z1,

,z
n-1
];
[0028]
计算模块,用于根据所述硬判决序列和所述待译码码字的校验矩阵h,计算伴随式向量s,其中,h=[h
m,n
]m×n,h
m,n
为所述校验矩阵第m行第n列的元素,m=0,1,...m-1,n=0,1,...n-1;
[0029]
s=(s0,s1,...,s
m-1
)
t

[0030][0031]
统计模块,用于若所述伴随式向量等于全零向量,则输出所述硬判决序列;否则,统计与元素h
m,n
=1所对应的比特zn参与计算并使sm≠0的个数fn;
[0032]
翻转模块,用于若fn大于或等于翻转门限,则将所述比特zn的电平进行翻转,得到新的硬判决序列,所述翻转门限根据连续未翻转的比特数量或连续翻转的比特数量进行调整;
[0033]
计数模块,用于将迭代次数加1,并返回至所述根据所述硬判决序列和所述待译码码字的校验矩阵h,计算伴随式向量s;以将更新后的硬判决序列进行下一轮迭代计算。
[0034]
本技术实施例还提供一种设备,所述设备包括:存储器和处理器,其中,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现本技术提供的所述的译码方法中的流程。
[0035]
本技术还提供了一种计算机可读的存储介质,其上存储有计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行本技术提供的所述译码方法中的流程。
[0036]
如上所述,本技术实施例的译码方法,将达到翻转门限的比特均进行翻转,算法收敛快,译码效率高。此外由于本技术实施例的翻转门限根据连续未翻转的比特数量或连续翻转的比特数量进行动态调整,该调整策略下,既能根据待译码码字各段的被污染情况实时调整翻转门限,在提高译码效率的情况下,兼顾了译码准确率,而且不需要针对每一组比特的翻转数量判断一次是否调整翻转门限,减少了计算量。
附图说明
[0037]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]
图1是本技术实施例的一种译码方法的流程示意图;
[0039]
图2是一种译码过程示意图;
[0040]
图3是一种译码原理图;
[0041]
图4是本技术实施例的另一种译码方法的流程示意图;
[0042]
图5是本技术实施例的一种译码方法的门限调整示意图;
[0043]
图6是本技术一实施例的译码方法与传统译码方法的效果对比图;
[0044]
图7是本技术一实施例的译码装置的结构示意图;
[0045]
图8是本技术一实施例的设备的结构示意图。
具体实施方式
[0046]
下面通过实施例对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而非全部实施例。在不冲突的情况下,下述各个实施例及其技术特征可以相互组合。
[0047]
本技术实施例提供一种译码方法,应用于ldpc码译码,流程示意图如图1所示,该译码方法包括:
[0048]
s101,对待译码码字进行预设处理后得到硬判决序列z=[z0,z1,

,z
n-1
]。
[0049]
ldpc码作为线性分组码中的一种,是一种二进制码字。待译码码字在传输的过程中,信道会对其进行预处理,并且在预处理的过程中会使待译码码字受到不同程度的噪声污染。
[0050]
在一个实施例中,对信道输出的序列进行硬判决,例如,输出的序列中,大于0元素的判1,小于0的判0,从而得到硬判决序列z=[z0,z1,

,z
n-1
]。可以理解的是,硬判决序列为二进制序列。
[0051]
s102,根据硬判决序列和待译码码字的校验矩阵h,计算伴随式向量s,其中,h=[h
m,n
]m×n,h
m,n
为校验矩阵第m行第n列的元素,m=0,1,...m-1;n=0,1,...n-1。
[0052]
s=(s0,s1,...,s
m-1
)
t

[0053][0054]
ldpc码的组成如图2所示,发送的n位ldpc待译码码字c是由信息位(k位信息码元)和校验位(m位校验码元)组成的,在接收端利用校验位与信息位之间的规律来进行纠错和译码。
[0055]
ldpc码由其稀疏的校验矩阵h所决定,校验矩阵h的维数为m
×
n,即h=[h
m,n
]m×n,h
m,n
为所述校验矩阵第m行第n列的元素,其中h的每一列均有γ个“1”,每一行均有ρ个“1”,其余元素均为“0”,即校验矩阵h的列重为γ,行重为ρ。校验矩阵h的每一行代表一个校验约束方程,行数代表校验方程的个数。
[0056]
如果一个ldpc码的长度为几千比特甚至更长,那么校验矩阵需要占用较大的存储
空间,因此校验矩阵需要进行构造。在一些实施例中,校验矩阵可以通过gallager随机构造法进行构造,具体是使用确定的固定行重和列重的稀疏矩阵进行随机置换和组合来构造ldpc码的校验矩阵。校验矩阵还可以采用准循环构造法进行构造,具体是使用一组循环矩阵构造ldpc码的校验矩阵,例如选用单位阵为准循环ldpc码(qc-ldpc)。在一个实施例中,由单位矩阵通过元素的位移得到基矩阵,然后将基矩阵向左循环移位形成循环矩阵,各循环矩阵构成最终的校验矩阵,只用存储基矩阵就行,大大减少了存储空间。假如每个子矩阵的维数为d
×
d,校验矩阵列重为γ,行重为ρ,则校验矩阵的维数m=d
×
γ,n=d
×
ρ。
[0057]
一个ldpc码迭代译码过程可以采用图3所示的tanner图来表示,校验码元和信息码元之间通过前述的校验方程在变量节点与校验节点之间不停进行消息迭代,每次迭代纠错后得到的序列即为新的硬判决序列。若经过一次译码后没有得到正确的码字,则要将本次得到的新的硬判决序列进行下一轮迭代,直至找到满足z*h
t
=0
t
(全0向量)的码字,即码字满足所有的校验方程,则输出信息z即为译码后的码字。
[0058]
在一个实施例中,迭代计算过程如下:根据ldpc码的硬判决序列z=[z0,z1,

,z
n-1
]和ldpc码的校验矩阵h,计算伴随式向量s。校验矩阵h=[h
m,n
]m×n,h
m,n
为校验矩阵第m行第n列的元素;
[0059]
s=(s0,s1,...,s
m-1
)
t
=zh
t
[0060]
其中,sm的具体计算方法如下:
[0061][0062]
即伴随式向量s中的每一个元素的值sm,等于硬判决序列z与校验矩阵h对应的行(第m行)向量[h
m,1
,h
m,2
,...,h
m,n
]的内积除以2取余。伴随式向量s中的元素为0或者1。
[0063]
s103,若伴随式向量等于全零向量,则输出硬判决序列;否则,统计与元素h
m,n
=1所对应的比特zn参与计算并使sm≠0的个数fn。
[0064]
sm的计算结果表征第m个校验方程是否得到满足,若sm=0,则表示硬判决序列z满足第m个校验方程,若sm≠0,则表示硬判决序列z不满足第m个校验方程。当s=0
t
时,即伴随式向量s的计算结果为全零向量时,则硬判决序列z满足校验矩阵中的全部约束关系,表明译码成功,可以输出硬判决序列z。
[0065]
当伴随式向量s中出现sm≠0时,并且伴随式向量s中可能存在多个不等于0的元素。统计硬判决序列中的每一比特zn参与计算并使sm≠0的个数fn;
[0066][0067]
例如,若s
10
≠0,并且校验矩阵中第10行中n=3和n=5的元素均为1,则硬判决序列z中的z3和z5参与计算了s
10
,对应的f3和f5分别增加1。若s
15
≠0,并且校验矩阵第15行中n=3的元素为1,则z3参与计算了s
15
,对应的f3算继续增加1。此时,z3不满足的校验方程个数f3=2,分别为第10个校验方程和第15个校验方程,z5不满足的的校验方程个数f5=1,即第10个校验方程。
[0068]
s104,若fn大于或等于翻转门限,则将比特zn的电平进行翻转,得到新的硬判决序
列,其中,翻转门限根据连续未翻转的比特数量或连续翻转的比特数量进行调整。
[0069]
将比特zn参与计算并使sm≠0的个数fn与翻转门限t1进行比较,若fn大于或等于翻转门限,则将比特zn的电平进行翻转。当按照该翻转规则完成翻转后,得到新的硬判决序列。其中,翻转门限根据连续未翻转的比特数量或连续翻转的比特数量进行调整。
[0070]
例如,当连续翻转的比特数量相对较多时,例如大于或等于第二预设阈值,可以降低灵敏度,适当将翻转门限调大,避免误翻转,提高译码准确率;再比如,当连续翻转的比特数量小于第二预设阈值,可以保持当前翻转门限不变;还比如,若连续未翻转的比特数量大于或等于第一预设阈值,可以按照预定方式调小翻转门限,从而可以增加收敛速度,提高译码效率,在其他实施例中,若连续未翻转的比特数量小于第一预设阈值,可以保持当前翻转门限不变。
[0071]
在一个具体实施例中,例如比特z
75
参与计算了多个校验方程,即校验矩阵中第74列(n=75)中含有多个元素1,其中第1、第5、第19、第31、第55和第89个校验方程的计算结果s1,s5,s
19
,s
31
,s
55
,s
89
不等于零,则z
75
不满足的校验方程数fn=6,如果当前的翻转门限t1=5,即fn>t1,则翻转比特z
75
,将1翻转为0。按照该方法,若z
75
~z
85
均进行了电平翻转,即连续翻转的比特数量为11,若第二预设值阈值为10,此时连续翻转的比特数量大于第二预设阈值,则将翻转门限t1=5调大,例如可以将t1加1。
[0072]
s105,将迭代次数加1,并返回至s102,以将更新后的硬判决序列进行下一轮迭代计算。
[0073]
在对硬判决序列z进行翻转得到新的硬判决序列后,返回s102,将新的硬判决序列代入校验方程sm进行新一轮的迭代计算。
[0074]
在一个实施例中,若迭代次数k小于预设的迭代次数阈值k
max
,则令k=k 1,返回s102,进行新一轮的迭代计算。若k≥k
max
,可以终止译码,表示译码失败。
[0075]
在迭代译码过程中,仅翻转具有最大翻转权重的一个比特位,会导致在有限的迭代次数下,翻转译码能够纠正的比特数十分有限,算法收敛慢,导致译码效率不高。本技术实施例的译码方法,将达到翻转门限的比特均进行翻转,算法收敛快,译码效率高。并且由于本技术实施例的翻转门限根据连续未翻转的比特数量或连续翻转的比特数量进行动态调整,该调整策略下,既能根据待译码码字各段的被污染情况实时调整翻转门限,在提高译码效率的情况下,兼顾了译码准确率,而且不需要针对每一组比特的翻转数量判断一次是否调整翻转门限,减少了计算量。
[0076]
本技术实施例提供另一种译码方法,流程示意图如图4所示,该译码方法包括:
[0077]
s401,对待译码码字进行调制得到第一序列。
[0078]
参考图2,通过信道发送信息位为k、校验位为m、总长度为n的二进制待译码码字c=[c0,c1,

,c
n-1
]。在一个实施例中,信道采用均值为0、方差为σ2=n0/2的加性高斯白噪声信道(awgn),调制方式为二进制相移键控(bpsk)调制。待译码码字经调制后得到第一序列x=[x0,x1,

,x
n-1
],其中xn=1-2cn,0≤n≤n-1。
[0079]
s402,获取第一序列通过信道处理后的第二序列。
[0080]
在一个实施例中,第一序列x经过信道传输后受到高斯噪声污染,若高斯噪声变量为vn,则第一序列x经过加性高斯白噪声信道输出第二序列r=[r0,r1,

,r
n-1
],其中rn=xn vn,0≤n≤n-1。
[0081]
s403,根据第二序列得到硬判决序列,并将硬判决序列中的比特参照校验矩阵的结构按顺序分为q组,q≥2。
[0082]
对第二序列进行硬判决。在一个实施例中,硬判决规则为:若rn≥0,则zn=0,若rn<0,则zn=1,0≤n≤n-1,第二序列经过硬判决后得到硬判决序列z=[z0,z1,

,z
n-1
]。
[0083]
在一个实施例中,可以预先将ldpc码字c进行分组,例如分成q组,在ldpc码字c被信道输出并经过硬判决后,得到包括对应顺序的q组硬判决序列z。例如,可以是前q-1组的比特长度相同,均为l0,最后一组的比特长度为n-(q-1)l0。
[0084]
s404,初始化迭代次数以及翻转门限,并设置迭代次数阈值,以及设置与连续未翻转的比特数量对应的第一预设阈值t2、与连续翻转的比特数量对应的第二预设阈值t3。
[0085]
在一个实施例中,可以设置初始迭代次数为k=1,最大迭代次数阈值k
max
=50,可以设置初始翻转门限t1=5,第一预设阈值t2=35,第二预设阈值t3=30。
[0086]
s405,根据硬判决序列z=[z0,z1,

,z
n-1
]和校验矩阵h,计算伴随式向量s,h=[h
m,n
]m×n,h
m,n
为校验矩阵第m行第n列的元素。
[0087]
本步骤可以参照s102,本实施例不再赘述。
[0088]
s406,若伴随式向量等于全零向量,则输出硬判决序列;否则,统计与元素h
m,n
=1所对应的比特zn参与计算并使sm≠0的个数fn。
[0089]
本步骤可以参照s103,本实施例不再赘述。
[0090]
s407,若fn大于或等于翻转门限,则将比特zn的电平进行翻转,得到新的硬判决序列,其中,所述翻转门限根据硬判决序列中连续未翻转的比特数量或连续翻转的比特数量进行调整。
[0091]
在对硬判决序列中的元素依次进行校验,对符合翻转条件的比特进行翻转,并实时统计连续翻转的比特数量n1和连续未翻转的比特数量n2。
[0092]
在一个实施例中,当连续未翻转的比特数量大于或等于第一预设阈值,则将翻转门限减1,并将减1后的翻转门限作为后续比特校验时的翻转门限;在一个实施例中,当连续翻转的比特数量大于或等于第二预设阈值,则将翻转门限加1,并将加1后的翻转门限作为后续比特校验的翻转门限;在一个实施例中,当连续未翻转的比特数量小于第一预设阈值,或者连续翻转的比特数量小于第二预设阈值可以保持翻转门限不变,后续比特校验采用该相同的翻转门限。
[0093]
s408,迭代次数加1,并返回步骤s405,将新的硬判决序列进行迭代计算。
[0094]
本步骤可以参照步骤s105,本实施例不再赘述。
[0095]
本技术实施例的译码方法,为提高存储空间,将待译码码字或者硬判决序列按照校验矩阵的结构进行分组,对硬判决序列进行校验和迭代的过程中,根据连续未翻转的比特数量或连续翻转的比特数量调整翻转门限,使每一轮迭代,翻转门限都处于动态调整中,每一轮迭代都能够以较优的方式对相应的比特进行翻转,不仅算法收敛快,而且译码效率和译码准确率高,同时本方法不需要针对每一组比特的翻转数量判断一次是否调整翻转门限,减少了计算量。
[0096]
下面以一具体实施例对本技术作进一步详细说明。
[0097]
以包含4
×
40个子矩阵的校验矩阵h为例,其中子矩阵维数为45
×
45,则h的维数为:m=4
×
45=180,n=40
×
45=1800,二进制ldpc码字长度为1800,校验方程的个数m=
180,译码过程如下:
[0098]
s501,初始化,当前迭代次数k=1,最大迭代次数k
max
=50,翻转门限t1=5,第一预设阈值t2=35,第二预设阈值t3=30。
[0099]
s502,将初始硬判决序列z1=[z0,z1,

,z
1800
]按顺序分为40组,每组45比特,对初始硬判决序列进行迭代译码。
[0100]
s502,计算伴随式向量s,若s1=0
t
,则译码成功,输出z1。否则执行s503。
[0101]
s503,统计每一比特zn参与计算并使sm≠0的个数fn,参考图5,横坐标表示比特长度,纵坐标表示门限,图中每一个峰代表一个比特翻转,仅是示意图,本实施例中,具体的比特翻转数量与峰的数量并不一致。
[0102]
对于每一比特,若fn≥5,则对该比特进行翻转。从z0开始,初始化连续未翻转的比特数量n1=0,初始化连续翻转的比特数量n2=0,当z5为第一个进行电平翻转的比特时,连续未翻转的比特数量n1由5(z0~z4未翻转)变为0,重新开始计数,连续翻转的比特数量n2由0变为1,并且当z6~z
15
均需要进行翻转,则n2由1逐渐递增至11,并且在z
16
未翻转时,n2由11变至0,n1则由0变至1。
[0103]
在图5中a点(假如对应z
85
)之前,由于连续未翻转的比特数量未超过第一预设阈值35,并且连续翻转的数量也未超过第二预设阈值30,因此,翻转门限t1=5保持不变。当z
87
未翻转,并且连续未翻转的比特数量达到35,此时,将翻转门限减1,t1=4。
[0104]
按照上述规律,在图5中b点(假如对应z
186
),连续未翻转的比特数量达到35,此时,将翻转门限减1,t1=3;在图5中c点(假如对应z
231
),连续翻转数量达到30,,将翻转门限加1,t1=4。
[0105]
依次类推,对剩余组进行译码并输出翻转后的新的硬判决序列z2。
[0106]
s504,执行k=k 1=2,返回步骤s502,将硬判决序列z2代入公式进行下一次迭代译码。
[0107]
本技术的译码方法与固定翻转门限的传统方法效果对照图如图6所示,在经过相同迭代次数的情况下,本方法能够纠正的比特数更多,译码效率更高。并且翻转门限按照连续翻转的比特数量或者连续未翻转的比特数量进行调整,翻转门限的改变可能出现在每一组内,而不一定是出现每组的最后一比特处,翻转门限调整更实时。由于不需要针对每一组比特的翻转数量判断一次是否调整翻转门限,可以减少计算量。
[0108]
本技术实施例还提供一种译码装置700,如图7所示,码译码装置700包括预处理模块701、计算模块702、统计模块703、翻转模块704和计数模块705。
[0109]
预处理模块701,用于对待译码码字进行预设处理后得到硬判决序列z=[z0,z1,

,z
n-1
];
[0110]
计算模块702,用于根据所述硬判决序列和所述待译码码字的校验矩阵h,计算伴随式向量s,其中,h=[h
m,n
]m
×n,h
m,n
为所述校验矩阵第m行第n列的元素,m=0,1,...m-1,n=0,1,...n-1;
[0111]
s=(s0,s1,...,s
m-1
)
t

[0112]
[0113]
统计模块703,用于若所述伴随式向量等于全零向量,则输出所述硬判决序列;否则,统计与元素h
m,n
=1所对应的比特zn参与计算并使sm≠0的个数fn;
[0114]
翻转模块704,用于若fn大于或等于翻转门限,则将所述比特zn的电平进行翻转,得到新的硬判决序列,所述翻转门限根据连续未翻转的比特数量或连续翻转的比特数量进行调整;
[0115]
计数模块705,用于将迭代次数加1,并返回至所述根据所述硬判决序列和所述待译码码字的校验矩阵h,计算伴随式向量s;以将更新后的硬判决序列进行下一轮迭代计算。
[0116]
本技术实施例还提供一种设备,其结构示意图如图8所示,设备800包括:存储器801和处理器802,其中,所述存储器801上存储有计算机程序,所述计算机程序被所述处理器802执行时实现如本实施例提供的译码方法中的流程。
[0117]
本技术实施例还提供一种可读存储介质,其上存储有计算机程序,当计算机程序在计算机上执行时,使得计算机执行本技术提供的译码方法中的流程。
[0118]
以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献