编码理论(二)

本文深入探讨编码理论,重点关注循环冗余校验(CRC)及其在错误检测中的应用。CRC是一种基于多项式代数的高效错误检查协议,广泛用于调制解调器。同时,文章介绍了纠错码的概念,包括分组码和卷积码在太空探测器和通信系统中的使用。此外,还讨论了格雷码、Golay代码和Hadamard矩阵等编码技术。

给定传输中的数字总和以某个数为模。最简单形式的校验和是在7位数字(例如,ASCII字符)上附加的奇偶校验位,使得1的总数始终是偶数(“偶校验”)或奇数(“奇校验”)。一个明显更复杂的校验和是循环冗余校验(或CRC),它基于整数上的多项式代数(mod 2)。它在检测传输错误方面基本上更可靠,并且是调制解调器中使用的一种常见的错误检查协议。

循环冗余校验

 

复杂的校验和(通常缩写为CRC),它基于整数上的多项式代数(mod 2)。它在检测传输错误方面基本上更可靠,并且是调制解调器中使用的一种常见的错误检查协议。CRC是散列函数的一种形式。

要使用CRC比较大数据块,首先要为每个块预先计算CRC。然后可以通过查看它们的CRC是否相等来快速比较两个块,在大多数情况下节省了大量的计算时间。该方法不是绝对可靠的,因为对于ñ比特校验和,二分之一^ N随机块将对不等价数据块具有相同的校验和。但是,如果ñ很大,则可以使两个不等效块具有相同CRC的概率非常小。

纠错码

纠错码是用于表示数字序列的算法,使得可以基于剩余数量来检测和校正(在某些限制内)引入的任何错误。纠错码和相关数学的研究称为编码理论

错误检测比错误纠正简单得多,并且一个或多个“检查”数字通常嵌入在信用卡号中以便检测错误。像Mariner这样的早期太空探测器使用了一种称为分组码的纠错码,而最近的太空探测器使用了卷积码。纠错码也用于CD播放器,高速调制解调器和蜂窝电话。调制解调器在计算校验和时使用错误检测,校验和是给定传输中的数字的总和,模数为某个数字。 用于识别书籍的ISBN还包含校验

对13 数字的强大检查包括以下内容。将数字写为一串数字 a_1a_2a_3 ... A_(13)。拿走A_1 + A_3 + ... + A_(13)并加倍。现在添加的数量数字奇数 它们的位置> 4到这个号码。现在添加A_2 + A_4 + ... + A_(12)。然后,校验码是使最后一位数字为0 所需的数字。该方案检测所有单个数字错误和 除0和9之外的相邻数字的所有 转置

和)表示ñ具有任意两个集合在至少d位置上不同的属性的(0,1) - 向量的最大数量。相应的矢量可以纠正[(d-1)/ 2]错误。 A(N,d,w)的和)精确w ^1 秒的s 数(Sloane和Plouffe 1995)。因为ñ-vectors不可能在不同的d>Ñ地方有所不同,因为ñ在所有ñ地方都有不同的-vectors 分成不同的两个集合,

A(n,d)= {1 n <d;  2 n = d。
(1)

的值和)可以通过标记的发现2 ^ N- (0,1)ñ-载体,发现所有无序对(A_I,a_j)ñ-载体,其中彼此在至少不同 d的地方,形成了一个曲线图 ,从这些无序对,然后找到团数的这个图形。不幸的是,找到给定图形的团的大小 是NP完全问题

dOEIS和)
1A0000792,4,8,16,32,64,128 ......
2 1,2,4,8 ......
3 1,1,2,2 ......
4A0058641,1,1,2,4,8,16,20,40 ......
5 1,1,1,1,2 ......
6A0058651,1,1,1,1,2,2,2,4,6,12 ......
7 1,1,1,1,1,1,2 ......
8A0058661,1,1,1,1,1,1,2,2,2,2,4 ......

发电机矩阵

给定一个线性码 C,生成矩阵 GC是一个矩阵,它的行产生的所有元件C,即,如果G =(g_1 g_2 ... g_k)^(T),那么每一个码字 w ^C可表示为

W = c_1g_1 + c_2g_2 + ... + c_kg_k =鸟苷

以独特的方式,在哪里c =(c_1 c_2 ... c_k)

生成矩阵的一个例子是Golay码,它由2 ^(12)11行的所有可能的二进制和组成。

Golay代码

 

Golay代码是一个完美的 线性 纠错码。Golay代码有两个本质上不同的版本:二进制版本和三元版本。

二进制版本G_(23)是一个(23,12,7)二进制线性代码组成的2 ^(12)= 4096 码字长度23和最小距离7.第三元版本是一个(11,6,5)三元线性码,由3 ^ 6 = 729 码字长度11的s的最小距离5。

奇偶校验矩阵的二进制Golay码由给定的矩阵H =(M I_(11)),其中I_(11)11×11 单位矩阵 并且中号11×12矩阵

M = [1 0 0 1 1 1 0 0 0 1 1 1;  1 0 1 0 1 1 0 1 1 0 0 1;  1 0 1 1 0 1 1 0 1 0 1 0;  1 0 1 1 1 0 1 1 0 1 0 0;  1 1 0 0 1 1 1 0 1 1 0 0;  1 1 0 1 0 1 1 1 0 0 0 1;  1 1 0 1 1 0 0 1 1 0 1 0;  1 1 1 0 0 1 0 1 0 1 1 0;  1 1 1 0 1 0 1 0 0 0 1 1;  1 1 1 1 0 0 0 0 1 1 0 1;  0 1 1 1 1 1 1 1 1 1 1 1]。

通过添加奇偶校验位到每个码字G_(23),该扩展的格雷码G_(24),这是一种几乎完美的[24,12,8]二进制线性码,获得。该构群G_(24)马修组 M_(24)

第二个M_(24)发生器是邻接矩阵二十面体,具有J_(12)-I_(12)所附,其中J_(12)单位矩阵 并且I_(12)是一个单位矩阵

第三个M_(24)生成器以24位0字(000 ... 000)开始列表,并重复附加第一个24位字,该字与列表中的所有字有八个或更多差异。Conway和Sloane列出了许多其他方法。

令人惊讶的是,Golay的原始论文只有半页长,但已被证明与群论图论数论组合学, 博弈论,多维几何,甚至粒子物理学有着深刻的联系。

格雷码

格雷码是数字的编码,使得相邻数字具有相差1的单个数字。术语格雷码通常用于表示“反射”代码,或者更具体地,二进制反射格雷码。

要将二进制d_1d_2 ... D_(N-1)D_N 转换为其对应的二进制反射格雷码,请从右侧开始使用数字 D_Nñth或最后一位)。如果D_第(n-1)是1,则替换 D_N1-D_N; 否则,保持不变。然后继续D_第(n-1)。继续到第一个数字 D_1,保持相同,因为D_0假定为0.结果数字g_1g_2 ... G_(N-1)G_N是反射的二进制格雷码。

要将二进制反射格雷码g_1g_2 ... G_(N-1)G_N 转换为二进制数,请从ñ第二位开始,然后计算

Sigma_n = sum_(i = 1)^(n-1)g_i(mod 2)。

如果Sigma_n是1,则替换G_N1-G_N; 否则,保持不变。下次计算

Sigma_(n-1)= sum_(i = 1)^(n-2)g_i(mod 2),

等等。得到的数字d_1d_2 ... D_(N-1)D_N 是对应于初始二进制反射格雷码的二进制数。

代码被反映,因为它可以按以下方式生成。取灰色代码0,1。向前写入,然后向后写入:0,1,1,0。然后将0添加到前半部分,将1s添加到后半部分:00,01,11,10。继续,写入00,01,11,10,10,11,01,00获得:000,001,011,010,110,111,101,100 ......(OEIS A014550)。因此,每次迭代使代码数量翻倍。

 

上图显示了前255(上图)和前511(下图)格雷码的二进制表示。对应于前几个非负整数的格雷码在下表中给出。

00201111040111100
11211111141111101
211221110142111111
310231110043111110
4110241010044111010
5111251010145111011
6101261011146111001
7100271011047111000
81100281001048101000
91101291001149101001
101111301000150101011
111110311000051101010
1210103211000052101110
1310113311000153101111
1410013411001154101101
1510003511001055101100
16110003611011056100100
17110013711011157100101
18110113811010158100111
19110103911010059100110

二进制反射格雷码密切相关的解决方案河内的塔九连环,以及到哈密顿周期超立方体图表 S(包括方向反转; 1990 Skiena,第149页)。

 

Hadamard矩阵

HadamardMatrices

Hadamard矩阵是由西尔维斯特(Sylvester,1867)以剖析路面的名义发明的一种正方形 (-1,1)矩阵,在Hadamard(1893)认为它们之前26年。在Hadamard矩阵中,并排放置任意两列或多行,使相邻单元格的一半与相同的符号相同 ,另一半符号。当被视为路面时,具有1s的单元格被涂成黑色而具有-1s的单元格被涂成白色。因此,n×n的Hadamard矩阵H_n必须具有N(N-1)/ 2白色方块-1N(N + 1)/ 2黑色方块(1s)。

Hadamard有序矩阵ñ是 Hadamard最大行列式问题的解,即具有元素 的任何复矩阵(Brenner和Cummings 1972)的最大可能行列式(绝对值),即。Hadamard矩阵的等价定义由下式给出 n×n的 | A_(IJ)| <= 1N R个(N / 2)

H_nH_n ^(T)= nI_n,
(1)

其中在n×n的 单位矩阵

的顺序的Hadamard矩阵4N + 4对应于阿达玛设计4N + 32n + 1个ñ),和Hadamard矩阵H_n给出的曲线4N被称为顶点哈达玛图表

HadamardWalshArrays

一组完整的2 ^ N 沃尔什函数有序ñ给出了Hadamard矩阵H_(2 ^ n)的(Thompson 等, 1986,第204页; Wolfram,2002,第1073页  )。Hadamard矩阵可用于产生纠错码,特别是Reed-Muller纠错码

如果H_n并且H_m已知,则 H_(nm)的可以通过替换H_mby H_n和all -1s中的所有1来获得-H_n。因为N <= 100,具有20,28,36,44,52,60,68,76,84,92 N = 12和100的Hadamard矩阵不能由低阶Hadamard矩阵构建。

H_2=[1 1;  -1 1]
(2)
H_4=[H_2 H_2;  -H_2 H_2]
(3)
=[[1 1;  -1 1] [1 1;  -1 1];   -  [1 1;  -1 1] [1 1;  -1 1]]
(4)
=[1 1 1 1;  -1 1 -1 1;  -1 -1 1 1;  1 -1 -1 1]。
(5)

H_8可以类似地从中生成H_4

HadamardPaley

Hadamard(1893)指出,Hadamard矩阵存在的必要条件是n = 1的2,或4的正数倍(Brenner和Cummings 1972)。佩利定理保证总是存在哈马德矩阵H_n时,ñ由4整除的形式 2 ^ E(P ^ M + 1)对一些正整数米,非负整数Ë,和p一个奇素数。在这种情况下,矩阵可以使用Paley结构构建,如上所述(Wolfram 2002,第1073页  )。Paley类的数量为n = 4的8,...,分别为2,3,2,3,2,3,2,4,1 ......(OEIS A074070))。的值ñ对于其中没有佩利类(和因此不能使用佩利结构来构造)是92,116,156,172,184,188,232,236,260,268,...(OEIS A046116)。

Hadamard 428x428矩阵

据推测,H_n存在于所有ñ  被4 整除的人.Sawade(1985)构建H_(268)。截至1993年,Hadamard矩阵因所有ñ可被4整除而闻名Ñ<428(Brouwer 等, 1989,第20页; van Lint和Wilson,1993)。H_(428)随后构建了A (Kharaghani和Tayfeh-Rezaie 2004),如上所示,将最小的未知顺序保留为668.然而,一般猜想的证明 仍然是编码理论中的一个重要问题。订单的不同的Hadamard矩阵的数量4Nn = 1的,2,...是1,1,1,5,3,60,487,...(OEIS A007299 ;钨2002年,第  1073)。Djoković(2009)修正了Colbourn和Dinitz(2007)中的列表,发现了4个以前未知的Ñ<10 ^ 4可被4整除,可以构造Hadamard矩阵:764,23068,28324,32996。

转载于:https://my.oschina.net/lanhaikeji/blog/3083379

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值