嵌入式系统设计师学习笔记⑨:校验码

嵌入式系统设计师学习笔记⑨:校验码

码距的定义
一个编码系统的码距就是整个编码系统中任意(所有)两个码字(合法编码)的最小距离。
例如:要对A,B两个字母进行编码

若用1位长度的二进制编码,若A=1,B=0。这样A,B之间的最小码距为1。(因为只有1位不同)
若用2位长度的二进制编码,若A=11,B=00。这样A,B之间的最小码距为2。(因为有2位不同)

若A=11,B=01,则A,B之间的码距为1。(因为只有一位不同)
用竖式分析: A = 1 1
		   B =  0 1 
		   对应位只有最高位不同(1位不同) 所以是1位码距
若A=100,B=011,则AA,B之间的码距为3。(因为有3位不同)
用竖式分析: A = 1 0 0
		   B =  0 1 1
		   对应位各不相同  所以是3位码距

码距存在的意义是为了检错和纠错。

若甲乙通信,采用A=1,B=0的编码方式
甲发送给乙:AB→1,0,由于出错,编码变成了1,1或者0,0,此时乙方收到的信息就可能是AA或BB。
由于是1位码制,1,0在此系统中均合法,所以乙不知道系统出错,仍接收。
(无法检错和纠错)

若甲乙通信,采用A=11,B=00的编码方式
甲发送给乙:AB→11,00,由于出错,编码变成了10,01。
由于是2位码制,10,01编码在此系统中均非法,所以乙知道系统出错了,但是乙不知道是A的编码出错还是B的编码出错,因为对于10来说A的第二位出错可以变成10,B的第一位出错也可以变成10。
(码距为2时,能够检1位错误,但是无法纠错即不知道是哪位出错)

若甲乙通信,采用A=111,B=000的编码方式
甲发送给乙:AB→111,000,由于出错,编码可能变成了110,101,100,001,010,011。
由于是3位码制,110,101,100,001,010,011编码在此系统中均非法,所以乙知道系统出错了会丢弃该数据包,由于出错2位的概率较小,因此110,101,011码制都可被纠正为111码,100,001,010码制都可被纠正为000码。
(码距为3时,能够检1位错误,同时可以纠错1位)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

奇偶校验码
通过在编码中增加一位校验码来使编码中的1的个数增加为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2

仅可检错,可检测1(奇数)位错

CRC(循环冗余校验码)
利用生成多项式为K个数据位产生r个校验位来进行编码其编码长度为:k + r
在这里插入图片描述

仅可检错,可检测多位错误
用到了模2运算法

海明码(汉明码)
①在数据位之间插入K个校验位,通过扩大码距来实现检查和纠错
②设数据位是n位,校验码是k位,则n和k必须满足以下关系:

2^k -1 >= n +k 

可检错,且可纠1位错

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值