检错与纠错
纠错码与检错码例子

码长:码字中码元的数目; 码重:码字中非0数字的数目; 码距:两个等长码字之间对应位不同的数目,有 时也称作这两个码字的汉明距离。 最小码距:在码字集合中全体码字之间距离的最 小数值。 纠错码的抗干扰能力完全取决于需用码字之间的 距离,码的最小距离越大,说明码字间的最小差 别越大,抗干扰能力就越强。
对于分组码,有如下结论: • 为了能检测e个错码,要求最小码距
d0 e 1
0 1 2 3 A B 汉明距 e 离 d0
码距等于3的两个码组
• 为了能纠正 t 个错码,要求最小码距
d 0 2t 1
0 1 A 2 3 4 5 B
t
d0
t
汉明距 离
码距等于5的两个码组
• 为了能纠正t个错码,同时检测e个错码,要求 最小码距
d0 e t 1 (e t )
A
t
B
t
e
汉明距离
1
码距等于(e+t+1)的两个码组
编码效率
编码效率定义为信息位 在编码序列中所占的比 例,即: k n 抗干扰能力与编码效率 相互矛盾。编码的任务 是在满足一定的误码率 的前提下,尽量提高编 码效率。
设:有一种由3个二进制码元构成的编码,它共有23 = 8种不同 的可能码组: 000 – 晴 001 – 云 010 – 阴 011 – 雨 100 – 雪 101 – 霜 110 – 雾 111 – 雹 这时,若一个码组中发生错码,则不能收到错误信息。 若在此8种码组中仅允许使用4种来传送天气,例如:令 000 – 晴 011 – 云 101 – 阴 110 – 雨 为许用码组,其他4种不允许使用,称为禁用码组。 这时,接收端有可能发现(检测到)码组中的一个错码。 • 这种编码只能检测错码,不能纠正错码。 若规定只许用两个码组:例如 000 – 晴 111 – 雨 就能检测两个以下错码,或纠正一个错码。
计算机网络 检错码与纠错码

计算机网络检错码与纠错码在通信系统中广泛应用的差错控制技术是差错控制编码技术。
而差错控制编码包括检错码和纠错码两种,其中检错码是为传输的数据信号增加冗余码,以便发现数据信号中的错码,但不能纠正错码;纠错码是为传输的数据信号增加冗余码,以便发现数据信号中的错码,并自动纠正这些错码。
下面介绍几种检错码和纠错码的校验方法。
1.奇偶校验码奇偶校验码是一种最简单的无纠错能力的检错码,其编码规则是先将数据代码分组,例如,将ASCⅡ码中的一个字符或若干个字符分为一组。
在各组数据后面附加一位校验位,使该数据连校验位在内的码元中1的个数恒为偶数则为偶校验,恒为奇数则为奇校验。
奇偶校验无纠错能力,它只能检测出码元中的任意奇数个错误,若有偶数个错误必定漏检。
由于奇偶校验码容易实现,所以当信道干扰较弱,并且数据码长较短时,使用奇偶校验码效果很好,在计算机网络的数据传输中经常使用该检错码。
根据数据代码的分组方法,奇偶校验码可以分为水平奇偶校验、垂直奇偶校验和垂直水平奇偶校验。
●水平奇偶校验如表3-1所示,在水平奇偶校验中,把数据先以适当的长度划分成小组,并把码元按表中所示的顺序一列一列地排列起来,然后对水平方向的码元进行奇偶校验,得到一列校验位,附加在其他各列之后,最后按行的顺序进行传输。
水平奇偶校验能查出水平方向上奇数个错误和不大于数据代码长度的突发错误,无纠错能力,但产生校验码及校验逻辑相对复杂。
表3-1 水平奇偶校验●垂直奇偶校验如表3-2所示,在垂直奇偶校验中,把数据先以适当的长度划分成小组,并把码元按表中所示的顺序一列一列地排列起来,然后对垂直方向的码元进行奇偶校验,得到一行校验位,附加在其他各行之后,然后按列的顺序进行传输。
垂直奇偶校验能够查出列上的奇数个错误,只能查处50%的突发错误,无纠错能力,但产生校验码及校验逻辑相对简单。
表3-2 垂直奇偶校验●垂直水平奇偶校验垂直水平奇偶校验是在水平奇偶校验和垂直奇偶校验的基础上,把两者结合起来对码元进行校验,如表3-3所示。
海明码纠错原理

海明码纠错原理海明码(Hamming Code)是一种用于检错和纠错的编码方式,由理查德·海明在1950年提出。
它可以发现并纠正单一位错误,也可以检测并纠正双位错误。
海明码的纠错原理是通过增加校验位来实现的,下面我们来详细了解一下海明码的纠错原理。
首先,海明码是一种线性分组码,它的编码方式是将数据位和校验位按照一定规则排列组合而成。
在传输数据时,发送端会对数据进行编码,添加校验位后发送出去;接收端收到数据后,会对接收到的数据进行解码,并根据校验位进行错误的检测和纠正。
其次,海明码的纠错原理是基于奇偶校验的。
在海明码中,校验位的位置是通过2的幂次方来确定的,例如第1、2、4、8、16位是校验位,其余位是数据位。
对于校验位而言,每一个校验位都负责一定范围内的数据位的奇偶校验。
当接收端接收到数据后,会对每个校验位进行奇偶校验,如果发现某个校验位的奇偶校验与接收到的数据不一致,就会根据校验位的位置确定出错的位置,并进行纠正。
最后,海明码的纠错原理可以通过一个简单的例子来说明。
假设发送端要发送一个4位的数据1010,按照海明码的规则,需要添加3个校验位。
经过编码后,发送的数据变为1010101。
在传输过程中,如果某一位发生了错误,例如1010101中的第4位发生了错误,接收端在接收到数据后,会对每个校验位进行奇偶校验,发现第2位和第4位的奇偶校验不一致,根据校验位的位置,可以确定出错的位置是第4位,然后进行纠正,将错误的位从0变为1。
最终,接收端得到的数据是1010,错误被成功纠正。
综上所述,海明码的纠错原理是通过增加校验位来实现的,通过对校验位的奇偶校验来检测错误,并根据校验位的位置进行错误的定位和纠正。
海明码在通信领域有着广泛的应用,能够有效地提高数据传输的可靠性和稳定性,是一种非常实用的纠错编码方式。
海明码

r 1 = I 0 + I 2 + I 3 + I 5 + I6 = 1 + 0 + 1 + 0 + 0 = 0
r2 = I1 + I2 + I3 = 0 +0 +1 = 1 r3 = I4 + I5 + I6 = 0 + 0 + 0 = 0
• 海明码为0011001000: r0 r1 I0 r2 I1 I2 I3 r3 I4 I5 I6
2.1 海明码
• 海明码是一种可以纠正一比特错误的编码。
• 基本设计思想:
–编码:在k比特信息上附加r比特的校验位,构成n=k+r 比特的码字,其中每个校验比特和某几个特定的信息比 特构成偶校验的关系。 –检验:接收端检验r个偶校验关系,即将每个校验比特 和与它关联的信息比特相加(异或),相加结果称为校 正因子。若r个校正因子全为0,认为没有错误;否则, 校正因子指出发生错误的比特位。
如何检测与纠正错误?
• 码字(codeword):由m比特的数据(消息)加上r比特的 冗余(校验位)构成。 • 有效编码集:由2m个(符合编码规则的)有效码字组成。 • 检错:当收到的码字为无效码字时,称检测出错误。 • 海明距离(Hamming Distance):两个码字的对应位上取 值不同的位数。 • 纠错:将收到的无效码字纠正到距其最近的有效码字。 • 检错码与纠错码的能力都是有限的。
校验比特的位数
• 为利用 r 个校正因子区分无差错和码字中n 个不同位置的一比特错(共n+1种情况), 校验比特的位数 r 应满足: 2r ≥ n + 1 = k + r + 1 • 比如:7-4海明码,11-7海明码。
数控车床碰撞检测系统中NC程序检错与纠错模块的开发

关 键 词 : 控 车 床 ;虚 拟 数 控 加 工 ;NC程 序 检 错 ;碰 撞 检 测 数 中图分类 号 :G 5 T 69 文 献 标 识 码 : A
De eo m e to r r Ch c i g a d Co r c i n M o u e o r g a v l p n fEr o e k n n r e t d l f NC P o r m o
为 了 防 止 在 加 工 过 程 中 刀 具 与 零 件 、 床 发 生 干 涉 和 车
碰 撞 , 而 导 致 刀 具 损 坏 或 设 备 事 故 , 实 际 加 工 之 前 进 在
都 要 进 行 NC程 序 可 靠 性 的 验 证 。 传 统 的 方 法 是 在 车 床 上 试 切 蜡 模 等 材 料 来 检 查 是 否 发 生 了 碰 撞 , 试 切 当 完 成后 , 通 过手 工 或 测 量 仪器 对 零 件 进 行 测 量 以检 再
Ab t a t sr c :Th sp p rd s u s d t e i o tn e o h c i gNC p o rm , n u o wad t e wh l c i c i a e i s e h c mp ra c fc e kn r ga a d p tf r r h o ea h t 。 r e t r fc l s n d tc in s tm ft e n me ia c n r ll h , n ld n t e ca p n p a a u t . - u e o o l i e e t yse o h u r l o to a e i c ig l h , r io o c t u a m i g a p t s e c Ac r c r ig t h h r c eit s o r g a , e e p d t e e r rc e k g a d c re t n mo u e o r 。 o d t e c a a t r i fNC p o r m d v l e h r h c i n o c i d l fNC p o n o s c o o n o rm i t e e v r me t o 6 0 Da a sr t r e in s l e h i u t r b e ga h n i n n f VC . . t t cu e d sg o v d t e df c l p o l t a h ie o r n o u i m h t t e s f wo k z p e e h n e c n t n l h ol in c e k g p o e s, sa l h gt e f u d t n f r t e f rh r rs a c . ic s c a g o s a t i t e c l s h c i r c s e tb i i h o n a i h u t e e e r h yn io n sn o o Ke r s u r a o to t e vru l u r a c n r l c i ig er rc e k g o r g a ; o l y wo d :n me i l n r l a h ; i a n mei l o to h n ; ro h c i fNC p o m c l - c c l t c ma n n r i so ee t n i n d t ci o
海明码校验和纠错原理详细

海明码校验和纠错原理详细海明纠错码当计算机存储或移动数据时,可能会产⽣数据位错误,这时可以利⽤汉明码来检测并纠错,简单的说,汉明码是⼀个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。
海明码(Hamming Code)是⼀个可以有多个校验位,具有检测并纠正⼀位错误的纠错码,所以它也仅⽤于通信特性较好的环境中,如以太局域⽹中,因为如果通道特性不好的情况下,出现的错通常也不是⼀位。
海明码的检错、纠错基本思想是将有效信息按某种规律分成若⼲组,每组安排⼀个校验位进⾏奇偶性测试,然后产⽣多位检测信息,并从中得出具体的出错位置,最后通过对错误位取反来将其纠正。
要采⽤海明码纠错,需要按以下⼏个步骤。
1计算校验位数2 确定校验码位置3 确定校验码4 实现校验和纠错1. 计算校验位数它是这样的规定的:假设⽤N表⽰添加了校验码位后整个信息的⼆进制位数,⽤K代表其中有效信息位数,r表⽰添加的校验码位,它们之间的关系应满⾜:N=K+r≤2r-1。
如K=5,则要求2r-r≥5+1=6,根据计算可以得知r的最⼩值为4,也就是要校验5位信息码,则要插⼊4位校验码。
如果信息码是8位,则要求2r-r≥8+1=9,根据计算可以得知r的最⼩值也为4。
根据经验总结,得出信息码和校验码位数之间的关系如表5-1所⽰。
2.确定校验码位置上⼀步我们确定了对应信息中要插⼊的校验码位数,但这还不够,因为这些校验码不是直接附加在信息码的前⾯、后⾯或中间的,⽽是分开插⼊到不同的位置。
但不⽤担⼼,校验码的位置很容易确定的,那就是校验码必须是在2n次⽅位置,如第1、2、4、8、16、32,……位(对应20、21、22、23、24、25,……,是从最左边的位数起的),这样⼀来就知道了信息码的分布位置,也就是⾮2n次⽅位置,如第3、5、6、7、9、10、11、12、13,……位(是从最左边的位数起的)。
举⼀个例⼦,假设现有⼀个8位信息码,即b1、b2、b3、b4、b5、b6、b7、b8,由表5-1得知,它需要插⼊4位校验码,即p1、p2、p3、p4,也就是整个经过编码后的数据码(称之为“码字”)共有12位。
检错纠错码

2章 章
用于多位串行数据传送中的检错纠错处理 用于多位串行数据传送中的检错纠错处理 串行数据
位数据位串行移位输出的过程中, 在 k 位数据位串行移位输出的过程中,用带有异或门控 个校验位的值, 制的移位寄存器形成 r 个校验位的值,跟随在数据位之后 传送走。 传送走。
10110100 110
4 2
信息科学与技术学 院
循环冗余码的实现电路
计 算 机 组 成 原 理
2章 章
线性分组( , ) 位数据加4位校验 线性分组(7,3)码,即3位数据加 位校验 位数据加 查表得到生成多项式: ( ) 查表得到生成多项式:G(X)=X4+X2&
T0
计 算 机 系 统 概 论
数只用本位相减,位间无借位。 数只用本位相减,位间无借位。
计 算 机 系 统 概 论
除运算, 模 2 除运算,可以用带有异或门控制的移位 寄存器实现,不用加法电路, 寄存器实现,不用加法电路,简单又速度 且可与串行数据移位输出用同一电路。 快,且可与串行数据移位输出用同一电路。
信息科学与技术学 院
计 算 机 组 成 原 理
计 算 机 系 统 概 论
P4 = P3 + P2 + P1 + D3 + D2 + D1 S1 = P1 + S2 = P2 + S3 = P3 + S4 = P4 + D2 + D1 D3 + D1 D3 + D2 P3 + P2 + P1 + D3 + D2 + D1
信息科学与技术学 院
循环冗余码 CRC
计 算 机 组 成 原 理
浅析信道编码检错纠错的原理及方法

( 1 ) 停发等 候重发 :发送 端每发送 一个码组 , 等候到接收端 的 确认信息后再发送下一个 ,等候到否认信息则重发 。原理简单 ,缓 存量小,常用于计算机通信。但等候时 间长 ,不利于高速传输和两 地延时较长的传输 返回重发 :发送端无需确认信息 ,不断发送码组 。直到 获得接 收端的否认信息 ,则从 出错的码组开始重发 。其码元速率 比停发等 候重发快得多。但因每次失误均要重发 出错码组之后 的全部码组 , 故当误码较为频繁时,重发太多,影响效率。 选择重发 :当接收方检测到某一组码元 出错 ,仅仅 告知发送方 重发该组码元。该系统重发效率高 , 但 接收方和发送方均 需要缓存 , 且还必须将重发码组插入正确的位置,故系统较为复杂 ,价格 昂贵。 A R Q的特 点:编码译码器较为简单,适应性较广,漏检概 率小。 需要反 向信道和缓存。
Hi g h& Ne w T e c h n o l o g y
浅析信道编码检 错 纠错 的原理及方法
பைடு நூலகம்鲁 吉斌
( 黑龙江省电力有限公 司信息通信分公司 。黑龙江 哈尔滨 1 5 0 0 9 0)
【 摘 要】 信道编码在信 息码元 中插入一些 冗余码元 ( 监督码
信道编码器把源信息变成编码序列 ,使其可用于信道传输 ,这 就是它处理数字信息源的方法 。检错码和纠错码有三种基本类型 : 分 组 码 、 卷 积码 和 T u r b o码 。 分组码是一种前 向纠错 ( F E C )编码。它是 一种不 需要重 复发送 就可 以检出并纠正有 限个错误 的编码 。在分组码 中,校验位被加 到 信息位之后 ,以形成新的码字 ( 或码组 ) 。在一个分组编码器 中,k 个信息位被编为 n个 比特, 而n — k个校验位 的作用就 是检错 和纠错 。 分组码 以 ( n ,k )表示 ,其编码速率定义为 R c = k / n ,这也是原始信 息速率与信道信息速率的 比值。 卷 积 码 与 分 组 码 有 根 本 的 区 别 ,它 不 是把 信 息序 列 分 组 后 再进 行单独编码 ,而是 由连续输入 的信 息序列得到连 续输 出的已编 码序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、常用检错码(1) 寄偶校验码寄偶校验码是一种最简单的校验码,其编码规则:先将所要要传送的数据码元分组,并在每组的数据后面附加一位冗余位即校验位,使该组包括冗余位在内的数据码元中“1”的个数保持为奇数(奇校验)或偶数(偶校验)。
在接收端按照同样的规则检查,如发现不符,说明有错误发生;只有“1”的个数仍然符合原定的规律时,认为传输正确。
实际数据传输中所采用的寄偶校验码分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验三种。
垂直奇偶校验是一字符为单位的校验方法。
例如,传输数据信息为“1010001”,采用偶校验时,附加位为“1”,则发送信息变为“10100011”;采用奇校验时,附加位为“0”,发送信息变为“10100010”;(2) 循环冗余校验码(CRC)循环冗余校验码CRC(Cyclic Redundancy Code)采用一种多项式的编码方法。
把要发送的数据位串看成是系数只能为“1”或为“0”的多项式。
一个k位的数据块可以看成Xk-1到X0的k项多项式的系数序列。
例如,“110001”有6位,表示多项式是“X5 + X4+ 1”。
多项式的运算是模2运算。
采用CRC码时,发方和收方必须事先约定一个生成多项式G(X),并且G(X)的最高位和最低必须是1。
要计算m位数据块的M(X)的校验和,生成多项式必须比该多项式短。
其基本思想是:将校验和附加在该数据块的末尾,使这个带校验和的多项式能被G(X)除尽。
当接收方收到带校验和的数据块时,用G(X)去除它,如果有余数,则传输有错误。
二、纠错码纠错码与检错码相比其功能更强,它不但能检错还能纠错。
海明码就是一种能够纠正一位错误的检错码。
海明码是海明(H.W.Hamming)于1950年提出的一种码制。
在发送数据之前将数据按照海明码制形成海明码,然后发送海明码,到达对方后根据接收到的海明码进行解释分析、判错、纠错。
(1) 海明码的形成①海明码的组合规则海明码是由数据与校验位组合而成的。
其组合规则为:将数据与校验码(寄偶校验)自左至右进行编码,其中编号为2的幂的位均为校验位,其余为数据位。
②校验位值的确定将每一数据位的编号展开成2的幂的和(每一项不可重复),则每一项所对应的位均为该数据位的校验位。
据此,按照寄偶校验规则确定各校验位的值。
例:要传送的数据为“11001100”则相应的海明码为:AB1C100D1100 其中A、B、C、D是加入的校验位。
将每一数据位的编号展开成2的幂的和:3=2+1 9=8+15=4+1 10=8+26=4+2 11=8+2+17=4+2+1 12=8+4从而得出校验位所负责校验的数据位:第1位即A是1,3,5,7,9……(所有奇数位数据)的校验位。
第2位即B是6,7,10,11……的校验位。
第4位即C是5,6,7,12……的校验位。
第8位即D是9,10,11,12……的校验位。
最终确定A、B、C、D的值分别为:1、0、1、0(这里采用偶校验),因此其海明码为“101110001100”(2) 检错与纠错过程当对方收到海明码后应进行以下检错和纠错:①将出错计数器置为0。
②依次对每个校验位进行寄偶校验,如果有错将校验位所对应的编码值加入计数器中。
直到每个校验位检查完为止。
③如果出错计数器值为0,则数据传输无错。
反之如果计数器值不为0,则数据传输有错,且出错计数器值即为出错数据位的编码。
④将出错数据位的数据取反即可。
注意:海明码只能纠正一位错,若多位出错则无能为力。
【例】已知数据“11001100”在发送前,编码后得到的海明码是“101110001100”(这里采用偶校验),经信道传输到达接收端后,设定由于噪声干扰或其它方面的原因,数据被改为“100110001100”,即第3位出错。
分析海明码检错与纠错过程。
按照上述海明码检错、纠错原理与过程,分析可得:①在目标节点,首先将计数器置为0。
②依次对每个校验位与对所负责的数据位进行偶校验,由于第1位校验位(负责1,3,5,7,9,11位数据)负责第3位数据的校验,所以对第1位校验位进行检查时,发现1,3,5,7,9,11这6位数据之和已不是偶数了(由于第3位由“1”变为“0”的缘故),故出错,因此将该校验位的编码“1”加入到出错计数器中,即此时出错计数器的值为“1”。
同理对第2位校验位检查时,发现3,6,7,10,11这5位数据之和也不是偶数了,故出错,因此将该校验位的编码“2”加入到出错计数器中。
此时出错计数器的值为“3”。
③其余检验位由于与第3位数据无关,因此等所有的校验位检验结束后,出错计数器的值仍为“3”,故可知海明码的第3位数据出错。
将第3位数据取反即可。
一、什么是码距?码距就是两个码字C1与C2之间不同的比特数。
如:1100与1010的码距为2;1111与0000的码距为4。
一个编码系统的码距就是整个编码系统中任意(所有)两个码字的最小距离。
若一个编码系统有四种编码分别为:0000,0011,1100,1111,此编码系统中0000与1111的码距为4;0000与0011的码距为2,是此编码系统的最小码距。
因此该编码系统的码距为2。
二、什么是检错与纠错?有很多网友和学员不明白,为什么有些编码能检查出错误,而不能纠正错误?下面来举一个生活当中简单的例子来说明这一点。
若希赛公司发出一个通知:“明天14:00~16:00开会”,但在通知过程中由于行政部工作人员疏忽,变成了“明天10:00~16:00开会”。
员工收到这个错误通知后由于无法判断其正确与否,就会按这个错误时间去安排与组织。
为了使接收者能判断正误,可以在通知内容中增加“下午”两个字,即改为:“明天下午14:00~16:00开会”。
这时,如果仍错为:“明天下午10:00~16:00开会,则收到此通知后,根据“下午”与“10:00”信息即可判断出通知发生了错误。
但仍不能纠正其错误,因为无法判断是“下午”与“10:00”哪一信息出错,即无法判断公司原来制定开会的具体时间。
这时,接收者可以告诉发送方再发一次通知(员工向行政部人员询问,行政部再次确认会议时间),这就是检错重发(这也就是我们所说的能检错,但无法纠错)。
为了实现不但能判断通知准确性(检错),同时还能正确判断会议开始的具体时间(纠错),行政部可以把通知内容再增加“两个小时”四个字,即改为:“明天下午14:00~16:00开会两个小时”。
这样,如果其中“14:00”错为“10:00”,不但能判断出错误,同时还能纠正错误,因为其中增加的“两个小时”这个标识可以判断出正确的时间为“14:00~16:00”。
当然,这显然也增加了信息的冗余,降低了数据处理的效率。
但随着带宽的不断提高,数据执行与处理的能力日益增强,可靠性与效率的均衡,这是值得的。
三、码距和检错纠错有何关联?首先大家要了解以下两个概念:1.在一个码组内为了检测e个误码,要求最小码距应该满足: d>=e+12.在一个码组内为了纠正t个误码,要求最小码距应该满足: d>=2t+1现在举个例子来说明这个问题:假如我们现在要对A,B两个字母进行编码。
我们可以选用不同长度的编码,以产生不同码距的编码,分析它们的检错纠错能力。
l 若用1位长度的二进制编码。
若A=1,B=0。
这样A,B之间的最小码距为1。
合法码:{0,1}; 非法码:{0,1};根据上面的规则可知此编码的检错纠错能力均为0,即无检错纠错能力。
其实道理很简单,这种编码无论由1错为0,或由0错为1,接收端都无法判断是否有错,因为1,0都是合法的编码。
l 若用2位长度的二进制编码,可选用11,00作为合法编码,也可以选用01,10作为合法编码。
若以A=11,B=00为例,A、B之间的最小码距为2。
合法码:{11,00}; 非法码:{01,10};根据上面的规则可知此编码的检错位数为1位,无法纠错。
因为无论A(11)或B(00),如果发生一位错码,必将变成01或10,这都禁用码组(非法码),故接收端可以判断为误码,却不能纠正其错误。
因为无法判断误码(01或10)是A(00)错误还是B(11)错误造成,即无法判断原信息是A或B,或说A与B形成误码(01或10)的可能性(概率)是相同的。
如果产生二位错码,即00错为11,或11错为00,结果将从一个合法编变成另一个合法编码,接收端就无法判断其是否有错。
所以此种编码的检错能力为1位,纠错能力为0位。
l 若用3位长度的二进制编码,可选用111,000作为合法编码。
A,B之间的最小码距为3。
合法码:{111,000}; 非法码:{001,010,011,100,101,110};根据上面的规则可知此编码的检错位数为2位,纠错位数为1位。
例如:当信息A(000)产生1位错误时,将有3种误码形式,即001或010或100,这些都是禁用码组,可确定是误码。
而有这3个误码与合法编码000的距离最近,与合编码111的距离较远,根据误码少的概率大于误码多的概率的规律,可以判定原来的正确码组为000,只要把误码中的1改为0即可得到纠正。
同理,如果信息B(111)产生1位错误时,则有另三种误码可能产生,即110,101,011,根据同样道理可以判定原来的正确码组是111,并能纠正错误。
但是,如果信息A(000)或信息B(111)产生两位错误时,虽然能根据禁用码组识别其错误,但纠错时去会做出错误的纠正而造成“误纠错”。
如果信息A(000)或信息B(111)产生三位错误时,将从一个合法编码A(或B)变成了另一个合法编码B(或A),这时既检不出错,更不会纠错了,因为误码已成为合法编码,译码后必然产生错误。
所以检错位数为2位,纠错位数为1位。
四、小结编码信息纠错和检错能力的进一步提高需要进一步增加码字间的最小距离。
下表概括了最小距离为1至7的码的纠错和检错能力。
增大编码信息的码距的一个基本缺点是,在任何给定的系统中,都会因而降低数据传输效率。
显然,这是由于增加的码位(为增大最小距离所需的)减小了有用的信息时间。
这就给每个信息增加了所谓多余度。
所以,选择最小距离要取决于特定系统的参数。
数字系统的设计者必须考虑信息发生差错的概率和该系统能容许的最小差错率等因素,这里不再介绍,大家也可以在辅导平台中与我进一步来讨论这些问题。