汉明码译码的快速性及纠错特点与应用

更新时间:2023-10-04 16:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

浙 江 理 工 大 学 信 息 电 子 学 院

毕业论文(设计)诚信声明

我谨在此保证:本人所写的毕业论文(设计),凡引用他人的

研究成果均已在参考文献或注释中列出。论文(设计)主体均由本人独立完成,没有抄袭、剽窃他人已经发表或未发表的研究成果行为。如出现以上违反知识产权的情况,本人愿意承担相应的责任。

声明人(签名):

年 月 日

摘 要

数字信号在传输过程中,由于受到干扰的影响,码元波形可能会被变坏。接收端收到后可能发生错误判决。由乘性干扰引起的码间串扰,可以采用均衡的办法纠正,而加性干扰的影响可以采用差错控制的措施来解决。应运差错控制的需要,已成为信道传输过程中抗干扰的有效手段,其中较为成熟的编码方法如汉明码、奇偶校验码、循环冗余码等编码技术,被广泛应用于计算机、电子通信、控制等各个领域。

汉明码是线性分组码,它能纠正一个错码和检测两个错码,在原编码的基础上附加一部分代码,使其满足纠错码的条件,由于线性码的编码和译码容易实现,且编码效率较高,所以至今仍是应用最广泛的一类码。

本文提出一种采用汉明码的伴随式译码方法。在介绍原理的基础上,通过对(15 ,11)汉明码的设计及生成矩阵、校验矩阵的C语言编写,并使用VC++6.0软件进行仿真验证,使其在虚拟信道中输入一系列码组,实现对错误码字的纠正并显示出该码组在编译码时的伴随式、差错图案、发码和收码、及纠正后的码字等。进而说明汉明码译码的快速性,并进而分析它的纠错特点及其在电子、通信等领域上的应用。并实现了在proteus上绘制编码电路与译码电路,实现硬件仿真。

关键词:汉明码,(15,11)汉明码,编码,伴随式译码,纠错应用

ABSTRACT

In the process of the digital signal transmission, due to the impact of interference, the symbol wave will be deteriorated. The receiver may receive an error judgement. If the intersymbol interference is caused by multiplicative, it can be corrected by the balance measures, and the impact of additive crosstalk can use the error control measures to solve. As the demand of the error control and the rapid development of error control coding technology, it became an effective means of anti-jamming in Channel transmission process. There are many encoding methods, such as Hamming code, parity bits, cyclical redundancy coding and so on, which are widelyused in computers, electronic communications, control and other fields.

Hamming code is a kind of linear block code, it can correct one wrong code and find two wrong code, as the basis of the original encode, it adds some codes to meet the conditions for error-correcting codes. As the coding and decode of linear code is not difficult to realise, and the efficiency of coding is rather high, so till now it is still one of the most commun code.

In the article, I get out one mean of syndrome decoding, it is implementated on the base of C language hamming encoding and decoding. On the basis of the principle, by designing (15, 11) Hamming code, generating matrix and calibration matrix by C language, and simulating the program on VC++6.0 software, realise the purpose of correcting an error code. Then explain the fast decoding, and illustrate its ability of error correction, which is used in several systems. And complay to draw the encoding circuit and decoding circuit by proteus, to simulate it on hardware.

Key words:hamming code,(15,11)Hamming code,coding, syndrome decoding, Application Error Correction

目 录

摘要 Abstract

第一章 绪论 ················································································································· 1 1.1 发展背景及国内外研究现状 ··················· 1 1.2 本课题研究的意义 ······················· 3 1.3问题的研究及解决 ······················· 3 1.4本文的构架描述 ························ 4 第二章 汉明码的原理与(15,11)汉明码的设计 ··············································· 5 2.1 汉明码的原理及特点介绍 ···················· 5 2.1.1 汉明码概念 ······························································································· 5 2.1.2 汉明码的生成矩阵 ··················································································· 6 2.1.3 汉明码的校验矩阵 ··················································································· 7 2.2 (15,11)汉明码生成矩阵和校验矩阵的设计 ··········· 8 2.2.1

(15,11)汉明码的校验矩阵H ·························································· 8

2.2.2 (15,11)汉明码的生成矩阵G ··························································· 9 2.3 (15,11)汉明码标准阵列译码表的设计 ············ 10 2.3.1 伴随式S及差错图案E的关系 ···························································· 10 2.3.2 伴随式译码法 ························································································· 10 2.3.3 (15,11)汉明码标准阵列译码表设计过程 ····································· 11 2.4 (15,11)汉明码编码电路和译码电路的设计 ·········· 14 2.4.1 (15,11)汉明码的编码原理及程序设计思路分析 ························· 15 2.4.2 (15,11)汉明码的译码及程序设计思路分析 ································· 17 2.4.3 (15,11)汉明码编码、译码电路的设计 ········································· 19 第三章 (15,11)汉明码C语言编辑及软件仿真结果分析 ······························· 28 3.1 VC++6.0软件介绍 ······················ 28 3.2 C语言软件仿真分析 ···················· 29 3.2.1 仿真过程及结果显示 ············································································· 29 3.2.2 调试过程中遇到的几个问题及解决方案 ············································· 33

第四章 分析汉明码译码的快速性及纠错特点与应用 ··········································· 35 4.1 汉明码译码的快速性分析 ············································································ 35 4.2 汉明码的纠错特点分析总结 ········································································ 36 4.3 汉明码译码纠错能力在日常中的应用 ························································ 38 第五章 总结与展望 ··································································································· 40 5.1 总结 ···························· 40 5.2 展望 ···························· 41 参考文献 ····················································································································· 43 致 谢 ························································································································· 45 附 录 ························································································································· 46

浙江理工大学信息电子学院本科毕业论文(设计)

第二章 汉明码的原理与(15,11)汉明码的设计

2.1 汉明码的原理及特点介绍

2.1.1 汉明码概念

在(n,k)分组码中,若监督元是按线性关系相加而得到的,则称其为线性分组码。设原代码的码长为k比特,附加纠错编码部分为r比特,则合成后的纠错码为n=k+r比特(如下图2-1所示)。

信息码元k 监督码元r 发现误码纠正

规则 图2-1 汉明码码字组成

如果这种纠错码的纠错能力为纠正1个差错,则应满足如下基本条件:

2n?k?k?r?1 (2-1)

当上式取等号时则称汉明码(Hamming Code)。干扰不仅使原代码的每一位(k比特)可能出错,而且附加纠错位(r比特)也可能出错,故“一个差错”的情况共有k+r种,加上“正常”状态共有k+r+l种状态,而r比特的附加纠错位要能分辨这k+r+l种状态。。

汉明码作为第一个设计为用来纠错的线性分组码,可以检两位错,纠一位错的纠错码。二进制汉明码n和k服从以下规律:

(n,k)?(2m?1,2m?1?m) (2-2)

式中m=n-k,当m=3,4,5……时,有(7,4),(15,11),(31,26)……汉明码。汉明码是完备码,它满足下式:

?n?mmn?k?1?n?1?(2?1)?2?2??? (2-3)

i?0?i?1同时汉明码也是一种多重(复式)奇偶检错系统,将信息用逻辑形式编码,以便能够检错和纠错。用在汉明码中的全部传输码字是由原来的信息和附加的奇偶监督位组成的。每一个这种奇偶位被编在传输码字的特定比特位置上。实现得

5

汉明码译码的快速性及纠错特点与应用

合适时,这个系统对于错误的数位无论是原有信息位中的,还是附加监督位中的都能把它分离出来。在原编码的基础上附加一部分代码,使其满足纠错码的条件,受其抗干扰能力较强,所以至今仍是应用比较广泛的一类码[3-4]。 2.1.2 汉明码的生成矩阵

码长为n,信息元长度为k,2k个码字构成n维线性空间中的一个k维子空间,编码的实质就是要在n维空间中,找出一组长为n的k个线性无关的矢量gk-1 gk-2 gk-3 ……g0,使得每个码字C都可以表示为k个矢量的线性组合,即

(2-4)

其中ci∈{0,1},i=0,1,2,3,……,k-1这种线性组合正是线性分组码名称的来历。

C??cn?1,cn?2,......c1,c0??mk?1gk?1?...?migi?...?m1g1?m0g0?MG其中M??mk?1,...,m1,m0?是1*k的信息元矩阵。将上式2-4写成矩阵形式得:

?g0??g??1??g3???C??ck?1ck?2......c1c0??.???ck?1ck?2......c0?G(2-5)

?.????gk?2??g??k?1?由此我们可以知道?ck?1ck?2......c1c0?是带编码信息的信息组,G是一个n*k阶矩阵,而G称为(n,k)汉明码的生成矩阵。因此,只有当G确定后,编码问题也就能解决了。因为基底不是唯一的,所以生成矩阵也不是唯一的。将k个基底排列成k行n列的G矩阵,可以得:G??gk?1,gk?2,......g1g0?。不过基底的线性组合等效于生成矩阵G的行运算,可以产生一组新的基底[5]。利用这点可使生成矩阵具有如下的“系统形式”

TC?6

浙江理工大学信息电子学院本科毕业论文(设计)

?1 0 ......0 1 P(k-1)(n-k-1) ......P(k-1)1 P(k-1)0???0 1 ......0 1 P.......P P(k-1)(n-k-1)(k-2)1(k-2)0??G?[Ix P]=?. . . . ??? (2-6) ?. . . . ??0 0 0 1 1 P?..........P P0(n-k-1)0100????

信息组m乘以系统形式的生成矩阵G后所得的码字,其前k位由单位矩阵Ik决定,一定与信息组各码元相同,而其余的n-k位是k个信息位的线性组合,叫做校验位。这种把信息组原封不动地搬到码字前k位的码叫系统码,其码字C[6]。 2.1.3 汉明码的校验矩阵

与任何一个(n,k)线性分组码的码空间C相对应,一定存在一个对偶空间D。因为基底数k只是n维n重空间全部n个基底的一部分,若能找出另外n-k个基底,也就找到了对偶空间D。将D空间的n-k个基底排列起来可构成一个(n-k)*n矩阵,将这个矩阵就称为校验矩阵H,而它正是(n,n-k)对偶码的生成矩阵,它的每一行是对偶码的一个码字。

由C的基底和D的基底正交,空间C和空间D也正交,它们互为零空间。因此,(n,k)线性码的任意码字c一定正交于其对偶码的任意一个码字,也必定正交于校验矩阵H的任意一个行矢量,即为C?H?=0或H?C?=0,由于生成矩阵的

TT每个行矢量都是一个码字,因此必有G?H?=0。

T[n,k]线性分组码的编码设计就是在满足给定条件(如码距)下,如何从已知的k个信息元中求出r=n-k个校验元。要计算出校验元,就要先求出校验矩阵。我们可以从线性空间的角度去分析,推出一致校验矩阵。其编、译码实现可分别采用生成矩阵和伴随式译码方案来实现。

同时,汉明码的校验矩阵H也具有特殊的性质,这使得以相对简单的方法来构建该码。一个(n,k)码的校验矩阵有n-k行和n列,二进制时n-k个码元所能组成的列矢量总数(全零矢量除外)是

2n?k?1,恰好和校验矩阵的列数

n?2m?1相等,只要排列所有列,通过列置换将矩阵H转换成系统形式,

7

汉明码译码的快速性及纠错特点与应用

就可以进一步得到相应的生成矩阵G。

2.2 (15,11)汉明码生成矩阵和校验矩阵的设计

现在以(15,11)汉明码为例,设其码字为A=[a15,a14,a13,a12,a11,a10,a9,a8,a7,a6,a5,a4,a3,a2,a1],其中前11位(a15,a14,a13,a12,a11,a10,a9,a8,a7,a6,a5)是信息元,后4位(a4,a3,a2,a1)是监督元,所以其编码长度为n=k+r=l1+4=15。可用下列线性方程组来描述该分组码,产生监督元:

?a15+ a14+ a13+a12 +a10 +a8+a7+ a4 =0? a+ a+a+ a +a+ a+ a + a =0?141312119763? (2-7) a+a+a+a +a + a+a+ a =0131211108652???a15+ a14+ a13+ a11+ a9+a8+ a5+ a1=0

则可化得4个线性无关的方程组:

?a4?a?3??a2??a1? a15?a14? a13?a12?a10?a8? a7? a14? a13?a12? a11? a9?a7?a6? a13?a12? a11?a10?a8? a6?a5? a15? a14?a13? a11?a9?a8?a5 (2-8)

2.2.1 (15,11)汉明码的校验矩阵H

?a15??0??a??0??14????a13??0??????a12??0??a??0??11????a10??0??1 1 1 1 0 1 0 1 1 0 0.1 0 0 0????0??0 1 1 1 1 0 1 0 1 1 0.0 1 0 0??a9?????.?a???0??0 0 1 1 1 1 0 1 0 1 1.0 0 1 0??8??0????a7????1 1 1 0 1 0 1 1 0 0 1.0 0 0 1????0?a?6????a5??0??a??0??4????a3??0????0?a2??????(2-9) ??0?? ?a1?8

浙江理工大学信息电子学院本科毕业论文(设计)

并简记为:H·AT=0T 或 A·HT=0,其中H即为校验矩阵。故可得校验矩阵H为:

?11110101100.1000??01111010110.0100??H?[P Ix]=? ?00111101011.0010? (2-10)

??11101011001.0001??2.2.2 (15,11)汉明码的生成矩阵G 由上面所求得的公式得生成矩阵:

?1 0 ......0 1 P(k-1)(n-k-1) ......P(k-1)1 P(k-1)0??0 1 ......0 1 P(k-2)(n-k-1) ......P(k-2)1 P(k-2)0???G?[Ix P]=?. . . . . ? (2-11)

??. . . . .????0 0 0 1 1 P0(n-k-1) ................P01 P00??

又由A = [a15,a14,a13,a12,a11,a10,a9,a8,a7,a6,a5] ·G 且G?H?=0。

T故(15,11)汉明码的生成矩阵可写为:

?1 0 0 0 0 0 0 0 0 0 0.1 0 0 1??0 1 0 0 0 0 0 0 0 0 0.1 1 0 1????0 0 1 0 0 0 0 0 0 0 0.1 1 1 1???0 0 0 1 0 0 0 0 0 0 0.1 1 1 0???0 0 0 0 1 0 0 0 0 0 0.0 1 1 1? (2-12) ??G??0 0 0 0 0 1 0 0 0 0 0.1 0 1 0??0 0 0 0 0 0 1 0 0 0 0.0 1 0 1???0 0 0 0 0 0 0 1 0 0 0.1 0 1 1???0 0 0 0 0 0 0 0 1 0 0.1 1 0 0????0 0 0 0 0 0 0 0 0 1 0.0 1 1 0????0 0 0 0 0 0 0 0 0 0 1.0 0 1 1?其中G = [Ik Q],且Q= PT

H·AT=0T,可以用来作为判断接收码字A是否出错的依据。

9

汉明码译码的快速性及纠错特点与应用

2.3 (15,11)汉明码标准阵列译码表的设计

2.3.1 伴随式S及差错图案E的关系

码字C??cn?1,cn?2,......c1,c0?传输过程中,在信道由于受到各种干扰,可能会引起一定的误码,故接收端的收码R??rn?1,rn?2,......r1,r0?已不一定等于发码C,两者间的差异就是差错。差错是多样化的,我们就定义差错的样式为差错图案E,即可定义E为:

E=R-C=[en-1,en-2,…, e1,e0] (2-13) 对于二进制码,模2减等同模2加,所以式2-13也可写作R=C+E或R=C+E。这样就可以看出,在收码跟发码之间的之差为0时(即ri= ci)则说明经信道后的收码是无误的;若不为0时,ri≠ci,可知有误码; 通过在接收端计算

S=R?H?=(C+ E) ?H?= C?H?+ E?H?=0+ E?H?= E?H? (2-14)

TTTTTT所以可以知道S=E?H?,S就称为接收码组R的校验子或伴随式。

T2.3.2 伴随式译码法

伴随式译码就是由检验矩阵H进行译码,由收码R和已知的校验矩阵H来算出S,再根据所得的伴随式S就可算出差错图案E,便可判断码字中哪一位码元发生了错误,就可纠正一位随机错误。伴随式只与错误图样E有关,可以用S作为判别错误的参量,如果S=0(E=0),则接收到的是正确码字;若S≠0(E≠0),则说明R中存在着差错,根据S查处相应的错误形式[5-7]。

译码时为了得到E,可以通过解线性方程来得到求解,由下式(2-15)可得:

?h(n?k?1)(n?1)......h(n?k?1)1h(n?k?1)0????.??.?T?S=(sn-k-1,...,s1,s0)?EH?(en?1,...e1,e0)?.?? ?h?1(n?1)......h11h10?????h0(n?1)......h01h00?10

T浙江理工大学信息电子学院本科毕业论文(设计)

(2-15)

则通过上式展开可得伴随式s的线性方程组形式为:

?sn?k?1?en?1h(n?k?1)(n?1)?en?2h(n?k?1)(n?2)?......?e1h(n?k?1)1?e0h(n?k?1)0??.....................................................? (2-16) ?s1?en?1h1(n?1)?en?2h1(n?2)?......?e1h11?e0h10?s?eh?0n?10(n?1)?en?2h0(n?2)?......?e1h01?e0h00利用伴随式译码法,在伴随式中,若S全为0时,说明无错误码;若错误图样E中含有奇数个1,则认为是产生了单位错;若错误图样E中含有偶数个1(全0除外),则认为是产生了两位错[8];

2.3.3 (15,11)汉明码标准阵列译码表设计过程

伴随式译码过程就是一个找错误图样E的过程。译码正确与否,表示找的错误图样E是否恰好与消息经过信道真正发生的错误一致。标准阵列译码法是一种非常直观的方法,它是其他所有译码法的基础。构成的标准阵列A,有2n?k?2r行,

2k列,包含了所有2n种可能的n维二元矢量。其中标准阵列的第一行上排列着全

部2个码字,全零码字排在第一行第一列。然后在除去码字后余下的n维二元矢量中寻找最小重量矢量,比如为e1,把e1列放在第二行第一列,再把e1与全部码字一一相加,所得的矢量列在第二行。就这样,然后继续寻找最小重量矢量[5]。

在判断错误码的位置上,可以先订好监督位与信息位的码字位置,根据偶监督测试原理,可知道监督位D参与了哪几位码位上的测试,结合伴随式,然后再计算出错误图案E。这样(15,11)汉明码的标准阵列译码表也可实现,不过在译码表上没有的伴随式S,则说明该收码的误码个数超过了上限。 2.3.3.1 (15,11)汉明码码字占位表设计 (15,11)汉明码的码字占位表如下表2-1所示:

表2-1 (15,11)汉明码码字占位

码字位置 数字型 1 2 3 4 5 6 7 8 9 10 11 m7 12 m8 13 14 15 D1 D2 m1 D3 m2 m3 m4 D4 m5 m6 11

km9 m10 m11

汉明码译码的快速性及纠错特点与应用

2.3.3.2 (15,11)汉明码错位检验表设计 根据可以知道(15,11)汉明码的伴随式有2出(15,11)汉明码的错位检验表如2-2所示:

表2-2 (15,11)汉明码错位检验表 伴随式S S3 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 S2 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 S1 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 S0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 错误码位 无误 D1位错 D2位错 D3位错 D4位错 m1位错 m2位错 m3位错 m4位错 m5位错 m6位错 m7位错 m8位错 m9位错 m10位错 m11位错 n-k?24?16种组合,则可得

根据错位校检表,监督位D1参与了1—3—5—7—9—11—13—15码位上的偶监督测试,可表示为:D1?m1?m2?m4?m5?m7?m9?m11,同理可得[9]:

?D1?m1?m2?m4?m5?m7?m9?m11?D?m?m?m?m?m?m?m?2134671011? (2-17) D?m?m?m?m?m?m?m234891011?3??D4?m5?m6?m7?m8?m9?m10?m1112

浙江理工大学信息电子学院本科毕业论文(设计)

根据校正子S与错误图样E之间有确定的线性变换关系。而E

=[ en-1,en-2,…,e1,e0 ],这样就可以算出校正子S与(15,11)汉明码各位之间的关系,即

?s3?a15?a14?a13?a12?a11?a10?a9?a4?s?a?a?a?a?a?a?a?a?2151413128763? (2-18) s?a?a?a?a?a?a?a?a151411108752?1??s0?a15?a13?a11?a9?a8?a6?a5?a12.3.3.3 (15,11)汉明码错位检验表设计

由上面就可以得到(15,11)汉明码的错误图案E如下表2-3所示:

表2-3 (15,11)汉明码错误图案表

伴随式S3 S2 S1 S0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 错误图案Ei 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.3.3.4 (15,11)汉明码标准阵列译码表设计

现在就随机选三个发送码组C0=000000000000000;C1=001000110110100;C2=101010110011100为例,设计(15,11)汉明码的标准阵列译码表如下表2-4所示[10-11]:(表中只是列了三个发送码的,若还有其他的发生码组Ci还可以在表中再加)

13

汉明码译码的快速性及纠错特点与应用 表2-4 (15,11)汉明码标准阵列译码表

S0=0000 S1=0001 S2=0010 S3=0100 S4=1000 S5=0011 S6=0101 S7=0110 S8=0111 S9=1001 S10=1010 S11=1011 S12=1100 S13=1101 S14=1110 S15=1111 E0 +C0=000000000000000 E1 =000000000000001 E2 =000000000000010 E3 =000000000000100 E4 =000000000001000 E5 =000000000010000 E6=000000000100000 E7 =000000001000000 E8 =000000010000000 E9 =000000100000000 E10 =000001000000000 E11 =000010000000000 E12 =000100000000000 E13 =001000000000000 E14 =010000000000000 E15 =100000000000000 C1=001000110110100 001000110110101 001000110110110 001000110110000 001000110111100 001000110100100 001000110010100 001000111110100 001000100110100 001000010110100 001001110110100 001010110110100 001100110110100 000000110110100 011000110110100 101000110110100 C2=101010110011100 101010110011101 101010110011110 101010110011000 101010110010100 101010110001100 101010110111100 101010111011100 101010100011100 101010010011100 101011110011100 101000110011100 101110110011100 100010110011100 111010110011100 001010110011100 2.4 (15,11)汉明码编码电路和译码电路的设计

(15,11)基本原理是将一系列周期为11的m序列的信息码元与4位监督码元通过线性方程式联系起来,每一个监督位被编在传输码字的特定比特位置上。系统对于错误的数位无论是原有信息位中的,还是附加监督位中的都能把它分离出来,再经过信道传输得到码组,再由汉明码译码系统检错纠错接收到的码字,得到输出正确的信息码,也是一个m序列[12]。如下图2-2所示的设计框图 级m序11列发生器 串并 转换并输入 汉明码编码系统 发送 信道 接收 汉明码译码系统 正确信息码 并串 转换并输出 m序列 码组 图2-2 汉明码编码/译码系统方框图

14

汉明码译码的快速性及纠错特点与应用

第五章 总结与展望

5.1 总结

根据设计要求,我按时完成此次毕业设计跟毕业论文,在编译码系统的C语言仿真上,也达到了设计的要求,通过调试仿真也验证了汉明码编码只能纠正一位错误码的认证,在仿真过程中同时计算出了误码率。本课题的主要工作设计内容包括:

① 实现(15,11)汉明码的生成矩阵和校验矩阵的设计。 ② 实现(15,11)汉明码的编码电路和译码电路的设计。 ③ 实现(15,11)汉明码的标准阵列及译码表的设计。

④ 根据生成矩阵和校验矩阵用C语言编辑程序对其进行软件仿真,实现输入错误码字经纠正后输出正确的码字。

⑤ 通过proteus实现汉明码编译码的硬件电路仿真的设计。

⑥ 分析汉明码译码的快速性能以及(15,11)汉明码偶性测试校验的特点。 ⑦ 举例分析说明汉明码译码的应用。

其中编译码硬件电路是基于AT89C51单片机的,系统主要包括基于单片机的控制部分、编码和译码开关控制部分、显示模块部分、键盘输入部分等几个模块。 本文的创新在于采用了对(15,11)汉明码进行设计,这与先前网络上、书上都使用的(7,4)汉明码相比,加大了一定的难度。使用VC++6.0软件进行仿真,很好地对一系列11级的信息码序列同时进行译码检错纠错,而且在电路设计上也有了自己的独特之处。

通过此次毕业设计我有了以下几方面的心得体会:

① 通过这次的设计,将大学所学的课程(通信原理、C语言程序设计、信息论与编码、单片机等),融会贯通在一起,可谓是一次真正意义的知识应用与实践。与此同时,还加深了对所学知识的进一步理解,对以前学习过程遇到的模糊的概念,疑难问题也迎刃而解,可谓是一次知识的升华。

② 我个人认为在这次设计中最重要的收获是无形中理顺了一套信道编码理论和电子电路方面的知识体系,并掌握了设计思路。知识体系的理顺和设计思路的形成也真正地达到了大学学习的目的:学会学习。这为以后无论是继续学习,

40

浙江理工大学信息电子学院本科毕业论文(设计)

还是从事相关工作都奠定了基础。

③通过这次设计我也发现了很多不足之处:比如知识欠缺还不够完善,还有很多需要去认真学习、钻研。对设计过程中的很多部分还只停留在定性分析阶段,不能进行定量分析。

5.2 展望

随着信息技术的发展,数据的传输或存储越来越大,与此同时,数据的出错概率也大大增加。保持数据的正确性,仅依赖于器件和设备的可靠运算是不行的,那么编码理论的需求越来越重要,因此纠错编码中的典型代表——汉明码也越来越得到了广泛的应用。最常见的是在计算机、电子通信、控制等各个领域得到广泛的应用,相信随着科学技术的发展,编码技术将会运用到更多的领域。 在此次毕业设计中虽然软件仿真得到很好的实现,但电路的实际调试中还存在一定的问题,需要进一步深化,在结构上也需要再进一步优化。不过在本论文中提到的电路设计外,在上面论文中未提到的,我还另外参考了由高军礼、卢卓权所著的《步进电机一体化控制系统设计》的文章中,设计了另外一个电路,其基本思路是51单片机联合Proteus,产生的信号经过(15,11)汉明码编码后发送,接收端译码得到发送端坐标[22]。如下图5-2所示:

41

汉明码译码的快速性及纠错特点与应用

图5-2 汉明码在步进电机上的应用图

通过此次的设计,我也看到了汉明码的不足,希望随着社会的发展,编码技术的日益完善提高,有一天能看到升级的汉明码。就像植物嫁接技术一样,让汉明码与其他纠错编码相结合,取其各方面的优点,使汉明码译码技术不单纯的检两位纠一位功能,希望有一天能同时实现检多位纠多位、译码更快速的本领,使其能够在更多的领域中应用。

42

浙江理工大学信息电子学院本科毕业论文(设计)

参考文献

[1] 任文卿,王泳.Cable Modem系统的差错控制编码技术研究[J].有限电视技术,

2008(2) :20~22

[2] 王新梅,肖国政.纠错码一原理与方法[M].西安:西安电子科技大学出版社,

2001 (6) :15~22

[3] 江苏技术师范学院一老师.(7,4)汉明码编解码器的设计报告[EB/OL].

http://blog.sina.com.cn/s/blog_4d0106b101000ao5.html~type=v5_one&label=rela_nextarticle

[4] 赵建武,周航慈.提高汉明码对突发干扰的纠错能力[J].东华理工学

院,2003:15~16

[5] 曹雪虹,张宗橙.信息论与编码[M].清华大学出版社,2005 (5) :109~190 [6] 刘燎原.基于VHDL语言的汉明码编码器和译码器的设计[J],安徽职业技术学

院学报,2006 (5):5~7

[7] 章学静,李金平,王淑英.汉明码及其编译码的算法的研究与实现[J],北京联合大

学学报,2008 (22):46~49

[8] 辛英.汉明码纠错检错能力分析与应用[J],盐城工学院,2008 (21):34~36 [9] 阎华,范宇.差错控制编码技术应用研究[J],中国空空导弹研究院,2005

(4):30~34

[10] 胡康秀,王兵贤.线性分组码中标准阵列的进一步改进[J],重庆科技学院学

报,2007 (9):111~112

[11] 牛芳琳,纪占北.线性分组码译码电路实验在EWB中的实现[J],计算机与现代

化,2007 (12):96~98

[12] 盛孟刚.汉明码编译码的VHDL设计与实现[J],湘潭大学信息工程学院,2007

(6):43~47

[13] 阮宜武.汉明码检验系统的电路实现[J],郑州大学信息工程学院,2006:53~55 [14] 贾培军,杨世平.用MCS-51实现(7,4)汉明码的译码方法[J],现代电子技

术,2006 (11):59~60

[15] 王爱珍.扩展汉明码的编解码器设计及其FPGA实现[J],现代电子技术,2008

(19):187~190

43

汉明码译码的快速性及纠错特点与应用

[16] 甘家宝.汉明码校验原理解析[J],微型电脑应用学习园地,2007(23):58~61 [17] 陈海丽.数据存储系统中的安全卫士——汉明码编码[J],广东省高级技工学

校,2007:85~86

[18] 巴桑卓玛.线性码在数字信道编码中的应用[J].西藏大学理学院,2008:70~72 [19] 吴子文.基于纠错码的水印技术研究[D].福建:福建师范大学数学与计算机科

学学院,2006:27~41

[20] 陈微,戴葵,王志英.改进汉明码检错纠错技术的设计与实现[J],国防科学技术

大学计算机学院,2007:193~201

[21] 梁贵毅,王莹等.汉明码在飞机重心调控系统通信部分的应用[J],西北工业大

学自动化学院,2008(31):40~42

[22] 高军礼,卢卓权.步进电机一体化控制系统设计[A].中国论文下载中心,2008 [23] 聂阳,王新智.CRC-4编码电路的设计[J].集宁师专学报,2007(29):33~36 [24] 刘玉君.信道编码[M].郑州:河南科学技术出版社,1999

[25] 洪云飞.二元汉明码及其对偶码的性质研究[J].长江大学学报,2006(3):5~7 [26] 潘桔,关红钧.q-循环码的生成矩阵和校验矩阵[J].沈阳大学学报,

2008(20) :6~8

[27] Ernst M. Gabidulin · Nina I. Pilipchuk,Error and erasure correcting algorithms

for rank codes[J],Springer Science+Business Media,2008,105~122. [28] Sapna Jain.Campopiano-type bounds in non-Hamming array coding, www.

sciencedirect. com,2007,135~159.

[29] D. Divsalar,S. Dolinar. Concatenation of Hamming Codes and Accumulator

Codes with High-Order Modulations for High-Speed Decoding[C]., IPN Progress Report,2005,1~13.

[30] Pierre Peterlongo, Nadia Pisanti, Marie-France Sagot. Lossless filter for multiple

repetitions with Hamming distance, www.sciencedirect.com,2008,497~509. [31] Eltayeb S. Abuelyaman , Abdul-Aziz S. Al-Sehibani. Optimization of the

Hamming Code for Error Prone Media[C].. International Journal of Computer Science and Network Security,2008,278~285.

44

浙江理工大学信息电子学院本科毕业论文(设计)

译码程序: CLR A CLR B 检测程序: START:MOV B,P3 JZ GOON 主程序: MAIN:M0V B,A PUSH BCLR,A M0V A,#15H M0V B,P3.15 MUL AB a15(1111) PUSH A M0V A, #14H M0V B, P3.14 MUL AB a14(1110) M0V B, A POP A XRL AB PUSH A M0V A,#13H M0V B,P3.13 MULL AB a13(1101) M0V B, A POP A XRL AB PUSH A M0V A,#12H M0V B,P3.12 MULL AB a12(1100) M0V B, A P0P A XRL AB PUSH A M0V A,#11H MoV B,P3.11 MUL AB a11(1011) M0V B,A P0P A XRL AB PUSH A M0V A,#10H M0V B,P3.10 MUL AB a10(1010) M0V B,A P0P A XRL AB PUSH A M0V A,#09H M0V B,P3.09 MUL AB a9(1001) M0V B, A POP A XRL AB PUSH A M0V A,#08H M0V B,P3.08 MUL AB a8(0111) M0V B, A POP A XRL AB PUSH A M0V A,#07H M0V B,P3.07 MULL AB a7(0110) M0V B, A P0P A XRL AB PUSH A M0V A,#06H M0V B,P3.06 MULL AB a6(0101) M0V B, A P0P A XRL AB PUSH A M0V A,#05H MoV B,P3.05 MUL AB 5(0011) M0V B,A P0P A XRL AB PUSH A M0V A,#04H M0V B,P3.04 25

汉明码译码的快速性及纠错特点与应用

MULL AB a4(1000) M0V B, A P0P A XRL AB PUSH A M0V A,#03H M0V B,P3.03 MUL AB a3(0100) PUSH A M0V A, #02H M0V B, P3.02 MUL AB a2(0010) M0V B, A POP A XRL AB PUSH A M0V A,#01H M0V B,P3.01 MULL AB a1(0001) M0V B, A POP A XRL AB PUSH A ************************************** // 延时程序 ************************************** DEL:M0V R15,#3200 DELl;M0V R14,#130 DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 ************************************** // 查表程序 ************************************** M0V DPTR,#TABLE P0P A M0V A,@DPTR+A P0P B XRL AB RR A RR A RR A CLR ACC.8 CLR ACC.7 CLR ACC.6 CLR ACC.5 GOON;MoV P1,A JZ START TABLE a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 DB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 DB 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 DB 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 DB 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 DB 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 DB 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 DB 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 DB 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 DB 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 DB 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 DB 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 DB 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 DB 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 DB 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 DB 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RET 图2-13 (15,11)汉明码的译码实现

26

浙江理工大学信息电子学院本科毕业论文(设计)

[14]

上面所述是(15,11)汉明码编译码系统的总图跟基于单片机上的汇编程

序,具体原理是利用伴随式译码法,定义发送码组为A,它在传送过程中可能会出现误码,接收码组定义为B。发送码组跟接收码组之差定义为E,有E=B-A。接收端译码器的任务就是从伴随式中确定错误图样,然后从接收到的码字中减去错误图样。

27

汉明码译码的快速性及纠错特点与应用

第三章 (15,11)汉明码C语言编辑及软件仿真结果分析

根据生成矩阵和校验矩阵用C语言程序来实现对汉明码编码与译码的编辑,并在VC++6.0软件上进行仿真,输入100组码字后,实现输入错误码字经纠正后输出正确的码字的效果。并通过编程,来实现其编译码前跟编译码后误码率计算,同时可以说明经过汉明码编译码后的信源经过模拟信道后可以降低的误码率正是一位随机错误码率,所以可以证明汉明码只能纠正一位随机错误码的认证。

3.1 VC++6.0软件介绍

Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。它不仅是一个C编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。

Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。

Visual C++它大概可以分成三个主要的部分:

1.Developer Studio。这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Microsoft Visual C++”,所以很多人理所当然的认为,那就是Visual C++了。其实不然,虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,Developer Studio并不是专门用于VC的,它也同样用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer Studio当成Visual C++,它充其量只是Visual C++的一个壳子而已。

2.MFC。从理论上来讲,MFC也不是专用于Visual C++,Borland C++,

28

浙江理工大学信息电子学院本科毕业论文(设计)

C++Builder和Symantec C++同样可以处理MFC。同时,用Visual C++编写代码也并不意味着一定要用MFC,只要愿意,用Visual C++来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,Visual C++本来就是为MFC打造的,Visual C++中的许多特征和语言扩展也是为MFC而设计的,所以用Visual C++而不用MFC就等于抛弃了Visual C++中很大的一部分功能。但是,Visual C++也不等于MFC。

3.Platform SDK。这才是Visual C++和整个Visual Studio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,Platform SDK是以Microsoft C/C++编译器为核心(不是Visual C++,看清楚了),配合MASM,辅以其他一些工具和文档资料。上面说到Developer Studio没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成Visual Studio的基石。

3.2 C语言软件仿真分析

该仿真是在VC++6.0软件上实现,通过C语言编程,在这样一个虚拟信道中,通过设计好的生成矩阵和校验矩阵,利用伴随式译码法,在仿真结果界面上得到一系列信息码组的要传输的码字、接收到的码字、伴随式、差错图案及纠正后的码字,均得到一一的显现。并通过计算,在程序中设的100组传输的(15,11)汉明码信源通过模拟信道后得到编译码前的误码率、编译码后的误码率及一位随机错误码率。

3.2.1 仿真过程及结果显示 1、将程序输入vc++6.0软件

29

浙江理工大学信息电子学院本科毕业论文(设计)

第四章 分析汉明码译码的快速性及纠错特点与应用

4.1 汉明码译码的快速性分析

汉明码的译码就是一个在原有数据插入若干校验冗余码来进行错误校正的编码技术。由于其实现简单,检错纠正能力强,是进行数据传输差错检测纠正地一种很好的手段。

它占用的系统资源跟其他编码如HDB3相比来说还是比较少的,为译码所要的时间、空间节省了许多。就HDB3码而言,它的编码系统需要经过插V模块、插B模块、双/单极性变换等来实现,译码系统还要经双/单极性变换、V码检测、时钟提取、扣V扣B等四部分模块来实现。就如在扣V扣B模块的建模中,它是用V码检测模块所检测出的V码信号去控制一个四位移位寄存器,而这四位移位寄存器还要起到延时四位时钟周期,主要是为了使检测出的V脉冲与信号流中的V脉冲位置对齐,从而保证V码清零。而汉明码的编码系统、译码系统可以只要在一个C51单片机内便可实现其检错纠错功能。当然在使用度上,汉明码还是不及HDB3码的,主要是它能实现多位纠错功能,因此各有千秋,不能说谁好用谁不好用。

在前面的C语言仿真上也可以看出,汉明码是将一系列K位一组的信息序列一起进行译码,实现其检错纠错,译码的速度极快,效率较高。而且它的所有码元均是原始信息元的线性组合,其编码系统中不带反馈回路,这样编译码的快速性也得到了很好的体现。这跟非线性码有所不同,它的码元并不都是信息元的线性组合,可能还与前面已编的码元有关,其编码系统可能含有反馈回路。对于汉明码,它属于前向纠错系统,发送端信息经纠错编码后实行传送,而接收端通过纠错译码自动纠正传递过程中的差错,其译码纠错过程在收端独立进行,不存在差错信息的反馈,无需反向信道,时延较小,实时性较好,特别是在点对点通信和点对多点组播或广播式通信中得到很好的适用,很好的体现出了它译码延时小的快速性[5]。

相比之下,如循环冗余校验码,它的发送端发送检错码,接收端通过检测接收码是否符合编码规律来判断该码是否存在差错。若判断码组有错,它先不立即进行译码,而是通过反向信道通知发端重发该码,如此反复,直到收端认为正确

35

汉明码译码的快速性及纠错特点与应用

接收为止,这样一来它的译码时间就延长了许多。就围绕如何重发、由谁来重发等问题,也要采取一定的重发策略,它的回音在一条反馈信道上传输,而该反馈信道要求发送和接收端装备有大容量的存储器以及复杂的控制设备,而且循环冗余校验码它的反馈重发的次数要与信道干扰密切相关,当信道误码率很高时,重发将过于频繁而使效率大大降低甚至使系统阻塞,此外被传输信息的连贯性和实时性也会变差,这样也就影响了译码效率,大大提高了它的译码用时。

4.2 汉明码的偶性测试纠错特点分析

由上面的所述,利用汉明码对网络传输数据进行校验时,被传送的数据由两部分组成,一部分是原始信息,另一部分是监督位信息。

具体实施过程是:

(1)、首先根据原始信息的码长来确定需要多少个监督位,一般地,如果原始信息位长度为m,设监督位长度为K,则应有:2?k?m?1;

(2)、再根据监督位长度k来占位,监督位必须设在第1,2,4,8,16,……这些2的整次幂的位置(用D来表示);再根据偶性测试(或奇性测试)的原理对监督位填写适当的0或1,确保发送出去的信息各位上的“1”的个数为偶数,故再将待发送的原始信息按规律占到信息位的位置;例如一个(15,11)汉明码待发送的原始信息为:11101011001

表4-1 (15,11)汉明码监督位位置占位

码字位置 监督数字 原始信息 复合码字 1 D 2 D 3 1 4 D 5 1 6 1 7 0 8 D 9 1 10 0 11 1 12 1 13 0 14 0 15 1 k

(3)、进入编码系统,实现(15,11)汉明码的编码计算,加入监督位。按照以下顺序对各监督位填写0或1就可以了,1,3,5,7,9,11,13,15,……、2,3,6,7,10,11,14,15,……、4,5,6,7,12,13,14,15,……、8,9,10,11,12,13,14,15,……等等;若1,3,5,7,9,11,13,15位置上有偶数个“1”,则第一个监督位上填0,否则填1;再看2,3,6,7,10,11,14,15,位置上有偶数个“1”的话,则在第二个监督位上填0,否则填1;

36

浙江理工大学信息电子学院本科毕业论文(设计)

然后看4,5,6,7,12,13,14,15位置上“1”的个数,偶数的话则在4号位置(即第三个监督位上填写0,否则就填写1;……依此类推而算,知道所有监督位填满为止。如下表4-2所示:

表4-2 (15,11)汉明码编码计算

码字位置 监督数字 原始信息 复合码字 1 D 1 2 D 0 3 1 4 D 0 5 1 6 1 7 0 8 D 0 9 1 10 0 11 1 12 1 13 0 14 0 15 1 实现编码后为101011001011001,进入信道。

(4)、通过信道后,进入译码系统。最后就是接收方解码,接收方在收到发送方的一系列“01\串后,首先对收到的字串进行偶性测试,检验传输过程是否正确,如果正确,则剔除第1,2,4,8,16??等位置上的监督位,来获取正确信息;如果经过编码后的信息,在信道中若受噪声等因素的影响,而经过偶性测试发现有错码,则进入译码系统进行译码纠错[16-17]。

我们就假设上面(15,11)汉明码经信道后第12位出现了错误,由1变成了0,则进入译码系统的信息变为了101011001010001,具体译码过程如下所述: 步骤一:按原位置对号入座,如表4-3所示:

表4-3 (15,11)汉明码经信道后进入译码系统的码字

码字位置 复合码字 1 1 2 0 3 1 4 0 5 1 6 1 7 0 8 0 9 1 10 0 11 1 12 0 13 0 14 0 15 1

步骤二:检查第1,3,5,7,9,11,13,15位置上的“1”的个数。发现有6个“1”,为偶数。则在4位二进制数的右起第1位记为0,即XXX0

步骤三:检查第2,3,6,7,10,11,14,15位置上的“1”的个数。发现有4个“1”,为偶数。则在4位二进制数的右起第2位记为0,即XX00

步骤四:检查第4,5,6,7,12,13,14,15位置上的“1”的个数。发现有3个“1”,为寄数。则在4位二进制数的右起第3位记为1,即X100

步骤五:检查第8,9,10,11,12,13,14,15位置上的“1”的个数。发现有3个“1”,为寄数。则在4位二进制数的右起第4位记为1,即1100

37

汉明码译码的快速性及纠错特点与应用

步骤六:将这1100二进制数转化成十进制数得,(1100)=(12)。就证实第12位确实有误,只要将0改为1即得正确的信息

问题总结,通过以上分析,还有几点比较迷惑不懂之处:

问题一、为什么监督位必须设在第1,2,4,8,16,32??这些2的整数幂的位置?

问题二、为什么监督位的内容需要根据这些数组列1,3,5,7,9,11,13,15,……、2,3,6,7,10,11,14,15,……、4,5,6,7,12,13,14,15,……、8,9,10,11,12,13,14,15,……等等对应位置上的内容来确定?

问题三、在译码检错纠错中,为什么通过将这1100二进制数转化成十进制数12就可证实是12位有误?

4.3 汉明码译码纠错能力在日常中的应用

汉明码的应用领域已经越来越多,得到了各业内人士的普遍运用。在数字化遥测遥控系统、电气通信、数字通信、图像通信、卫星通信、深空通信、计算技术、数据处理、图像处理、自动控制、人工智能和模式识别等方面都有很好的体现。下面就列举汉明码在水印系统、计算机上、通信系统上的应用。 一、汉明码在FEC水印系统中的应用

在FEC水印系统中,水印的容量、扩频增益、水印的嵌入强度和纠错码的码率都会影响提取水印的误码率。在水印信道中,受水印不可察觉性的限制,纠错码带来的信息冗余导致水印嵌入强度降低。而在水印系统中,很多处理过程是作品的决策函数。如幅度变化。在缩放因子较低时因图像质量的变化较大而导致提取水印的误码率增多外,水印在经过亮度缩放变化后基本保持不变。此时,若是加入汉明码的使用,使缩放因子在较低时水印的误码也降低许多,通过前辈们的实验发现,在缩放因子为0.1、0.2时,汉明码提取水印的误码率由原本的0.09降至0.06以下,降幅到33%左右。但在缩放因子大于0.3时,汉明码纠错译码的作用就降低了,因为汉明码利于纠正随机错误,在一个分组中若错误位数多于一位,则无法纠正多位错[18-19]。

从上面可以看出,汉明码译码应用在水印系统中,这对降低误码率,抵御幅度

38

浙江理工大学信息电子学院本科毕业论文(设计)

攻击的效果是非常好的,使提取水印的质量显著提高。

二、汉明码在计算机微处理器中的应用

由于计算机技术的广泛应用,计算机的使用场所逐渐从条件优越的机房转到工厂、野外、海上、天空、宇宙等复杂的环境,其气候、力学、电磁和辐射等应力条件往往比标准机房恶劣。恶劣的环境导致计算机及其应用系统出错的概率增加,这使得作为计算机系统核心的微处理器的可靠性面临着严峻的考验。 在微处理器芯片中,各种存储器(数据存储器、程序存储器)和寄存器占据了大约40%~70%的芯片面积,是微处理器中对单粒子翻转效应最为敏感的部分。在高可靠微处理器的设计中,必须考虑存储系统的可靠性加固策略,从而提高微处理器整体的可靠性。若将汉明码这个纠错算法用于提高微处理器存储系统可靠性是比较常见的,它适用于同一码字中单位出错的情况[17] [18] [20]。其具体实现如下图4-1所示: 数据输入

三、汉明码在飞机重心调控系统通信部分中的应用

飞机重心调节系统通过改变飞机的纵向质量分布来达到飞机定型试飞过程中所需要的试飞重心位置,以便验证不同重心状态下飞机的操纵稳定特性。由于空中环境复杂,机体内部电子设备繁多,这些对通信都会存在一定的干扰。在对重心调节系统进行实验测试过程中,发现工业控制计算机从串口读取燃油数据时偶尔会出现数据跃变,这些跃变对整个系统影响重大,甚至威胁飞机安全。为了保证工控机与机载测试系统通信的稳定性、正确性,通常在飞机重心调控系统的通信部分采用了汉明码纠正技术[21]。对于检测到的出现错误的码元,只要令其取反,便实现了自动纠错的功能,也就很好的实现了抗干扰编码。

数据输出 汉明码编码器 寄存器/存储器单元 汉明码译码器 错误发生信号 图4-1 汉明码编译码在计算机微处理器中应用

39

本文来源:https://www.bwwdw.com/article/gaad.html

Top