编码理论(二)

给定传输中的数字总和以某个数为模。最简单形式的校验和是在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完全问题。

d OEIS 和)
1 A000079 2,4,8,16,32,64,128 ......
2   1,2,4,8 ......
3   1,1,2,2 ......
4 A005864 1,1,1,2,4,8,16,20,40 ......
5   1,1,1,1,2 ......
6 A005865 1,1,1,1,1,2,2,2,4,6,12 ......
7   1,1,1,1,1,1,2 ......
8 A005866 1,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矩阵

编码理论(二)_第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(下图)格雷码的二进制表示。对应于前几个非负整数的格雷码在下表中给出。

0 0 20 11110 40 111100
1 1 21 11111 41 111101
2 11 22 11101 42 111111
3 10 23 11100 43 111110
4 110 24 10100 44 111010
5 111 25 10101 45 111011
6 101 26 10111 46 111001
7 100 27 10110 47 111000
8 1100 28 10010 48 101000
9 1101 29 10011 49 101001
10 1111 30 10001 50 101011
11 1110 31 10000 51 101010
12 1010 32 110000 52 101110
13 1011 33 110001 53 101111
14 1001 34 110011 54 101101
15 1000 35 110010 55 101100
16 11000 36 110110 56 100100
17 11001 37 110111 57 100101
18 11011 38 110101 58 100111
19 11010 39 110100 59 100110

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

 

Hadamard矩阵

编码理论(二)_第2张图片

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被称为顶点哈达玛图表

编码理论(二)_第3张图片

一组完整的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

编码理论(二)_第4张图片

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)。

编码理论(二)_第5张图片

据推测,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

你可能感兴趣的:(编码理论(二))