本发明涉及通信编码,具体为一种基于德布鲁因序列的非二进制删除错误的纠错方法。
背景技术:
1、在一些高密度存储器例如赛道存储技术中,数据读取是由多个读取端口或读取头执行的,其中信息存储的基本单位被称为“单元”。在读取信息的过程中,每个单元都会被移动到最近的读取头位置。然而,一旦一个单元开始移动,其他所有单元也会同步进行移动。这就意味着在单元移动的过程中,多个读取头可能会同时并行读取一个块位,即非二进制符号。然而,如果一个单元的移动距离超过了一个单元的位置,那么就有可能出现一个或多个单元未被每个读取头读取的情况。这种现象可能导致非二进制符号的删除,甚至可能导致连续的非二进制符号(即突发)的删除。
2、为了解决非二进制删除错误问题,当前的工作提出了一些修正方法,例如可以引入额外的读写头来重构数据,但这会导致编码效率的降低;或者利用“猜测与检查”编码方案来定位错误并对其进行纠错。然而,这种方法假设接收器已知码字的边界,并不能应用于实际场景。
技术实现思路
1、本发明提供了一种基于德布鲁因序列的非二进制删除错误的纠错方法,可以对不超过给定数目的非二进制删除错误进行完全纠错;同时本方法在纠错过程中无须知道码字边界即可完成错误的定位和纠错;另外还具有较高的编码效率,在删除错误数量一定的情况下,编码效率随着码长的增加趋近最优。
2、本技术提供如下技术方案:
3、一种基于德布鲁因序列的非二进制删除错误的纠错方法,其特征在于,包括:
4、s1、对原始二进制信息u进行编码,得到由db-mds码字符号xi构成的码字x以及进一步由码字x构成的db-mds码字序列x;
5、s2、码字序列x经过非二进制删除错误信道,得到发生删除错误的码字序列y;
6、s3、对码字序列y进行错误定位和序列同步,得到含有擦除错误的码字序列所述码字序列由含有擦除错误的码字构成;
7、s4、将码字中的db符号进行移除,得到含有擦除错误的mds码字
8、s5、将含有擦除错误的mds码字通过mds码纠错得到二进制信息序列
9、进一步,所述对原始二进制信息i进行编码包括:
10、s11、将长度为k的非二进制消息块u,即u=[u1,u2,…,uk]编码为一个码率为长度为n的mds码字c,即c=[c1,c2,…,cn],其中且将多个mds码字c串联形成一个mds码字层即其中qc为mds码字符号的域;
11、s12、将db码π*=[π1,π2,…,πb]进行重复和串联得到一层db码序列π=[π*,π*,…]=[π1,π2,…,πi,…],其中并将db码层放在mds码层之下或之上,则每一个mds码字符号ci都与一个db符号πi,构成一个db-mds码符号其中qπ为db符号的域;
12、s13、每n个db-mds码符号xi构成一个db-mds(n,k,πl)码,每个db-mds(n,k,πl)码由一个mds(n,k)码以及一个周期为πl长度为n的db序列构成,每个db-mds(n,k,πl)码能纠正一段长度不超过πl-1的删除错误,其中πl-1≤n-k。
13、进一步,所述s3包括:
14、s31、观察每个接收到的含有删除错误码字中的剩余的db序列的样式,确定yj中是否有删除错误发生,其中δj-1表示序列同步补偿系数,即第j个码字yj之前所有删除错误的总长度;
15、s32、若确定yj中有删除错误发生,通过yj中剩余的db序列样式定位删除错误的位置;
16、s33、对yj中删除错误所在的位置随机插入符号使得yj变为
17、进一步,所使用的mds码字c为rs码。
18、本发明的原理和优点:
19、mds码(maximum distance separable)码是一种具有最大可能最小汉明距离的线性编码方案,作为一种最常见的mds码,reed-solomon码被广泛应用于数字通信系统中以对抗非二进制的突发错误。
20、德布鲁因序列(de bruijn sequence)是一种特殊的序列,它在数学、计算机科学和密码学等多个领域都有应用。德布鲁因序列db(k,n)是一个由k个不同符号组成的序列,其长度为kn,并且在该序列的所有长度为n的连续子序列中,包含了所有可能的kn个不同的n-元组恰好一次。因其具有紧凑性、周期性和唯一性的特点,常用于在通信领域中设计高效的编码和解码方案。
21、本发明将mds码的纠错能力与德布鲁因序列的紧凑性和完整性相结合,构造出一种非二进制删除错误纠错码,首先对非二进制信消息块编码得到mds码字,再由mds码字符号和db码字符号构成dm-mds码字符号,将n个db-mds码字符合构成一个db-mds(n,k,πl)码,也就是码字x。这种db-mds编码可以满足数据存储中(由于机械振动或者干扰所产生的)非二进制删除错误纠错的需求,确保数据能够被准确无误地恢复。德布鲁因序列保证了数据的完整覆盖,而mds码则提供了强大的错误检测和纠正功能。
22、将rs(n,k)定义为伽罗华域gf(2m)上的reed-solomon(rs)码,码率为k/n,其中2m-1=n+σ,σ≠0表示缩短的rs码,σ=0表示标准rs码。系统rs码的生成矩阵,表示为gk×n,可以写为:
23、
24、其中ek×k表示维度为k的单位矩阵。
25、令mj×k为消息矩阵,其中j是码字的数量,k是码字的消息长度。令cj×n为码字(组)矩阵。rs码的编码过程可以简单表示为:
26、cj×n=mj×kgk×n (2)
27、令表示g(k,:),g(:,n)和g(k,n)分别表示矩阵gk×n的第k行,第n列,和在第k行第n列的元素。令为一个待编码的信息符号块,将mi进行rs编码之后可以得到:
28、
29、令2t=n-k。由于rs码是循环码,rs(n,k)码的生成多项式可以写成:
30、g(x)=(x-α)(x-α2)…(x-α2t)=g0+g1x+…+g2t-1x2t-1+g2tx2t (4)
31、其中α,α2,…,α2t是伽罗华域gf(2m)上的本原元,并且i=0,…,2t。需要说明的是,生成多项式也同时是码字多项式。
32、由于rs码是最大距离可分(maximum distance separable,mds)码,则rs码可以达到singleton界。如果c是一个线性码,其中码长为n,维度为k,包含q个元素的伽罗华域上的最小的距离为d,那么最多的码字个数为qk。
33、singleton界可表示为以下不等式:
34、qk≤qn-d+1, (5)
35、也就是
36、k≤n-d+1 (6)
37、singleton界还能被等价表示为:
38、d≤n-k+1, (7)
39、即最大距离d为n-k+1,也就是mds码的最小距离为:
40、d=n-k+1 (8)
41、这就意味着rs(n,k)可以纠正个错误,或者n-k个擦除错误,其中擦除错误是已知错误位置的一种错误。
42、由以上分析可知,通过本发明的实施,能在未知码字边界的情况下对不超过给定数目的非二进制删除错误进行完全纠错,编译码构造简单。即每个db-mds(n,k,πl)码能纠正一段长度不超过πl-1的删除错误,其中πl-1≤n-k。
43、本方法还具有较高的编码效率,db-mds(n,k,πl)总体码率为在删除错误一定的情况下,即给定qπ情况下,编码效率(总体码率)随着码长n的增加趋近最优,即其中limn→∞log2qc=limn→∞log2qπqc,因为
1.一种基于德布鲁因序列的非二进制删除错误的纠错方法,其特征在于,包括:
2.根据权利要求1所述的一种基于德布鲁因序列的非二进制删除错误的纠错方法,其特征在于,所述对原始二进制信息u进行编码包括:
3.根据权利要求2所述的一种基于德布鲁因序列的非二进制删除错误的纠错方法,其特征在于,所述s3包括:
4.根据权利要求2所述的一种基于德布鲁因序列的非二进制删除错误的纠错方法,其特征在于:所述的mds码字c为rs码。