汉明码
时间:2021-09-05
本文章向大家介绍汉明码,主要包括汉明码使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
汉明码
编码过程
- 先根据信息位位数确定校验位个数
- 按规则排列信息位与校验位
- 给信息位分组并且分配一个相应的校验位
- 根据分组中的信息位确定校验位的取值
校验位个数的确信
k个校验位必须能确定n个信息位和k个校验位传输时是否发生bit跳变
k个校验位能表示2k种情况,其中1种为无错误,剩下的2k-1种情况要能表示n个信息位和k个校验位哪一个出错了
因此校验位的位数k必须满足下面的公式
\[2^{k} - 1 \ge n + k
\]
信息位与校验位的位置
- 将校验位放入2k(k>=0)的位置其余位置依次放入信息位
分组规则
- 将所有序号写成2k(k>=0)之和(如 15=8+4+2+1),其中含有相同的2k(k>=0)的为一组(如下图)
- 也可以这样理解 将序号转为k位(k为校验位个数)2进制数, 第i位为1的分到第i分组
校验位的取值
由于海明(汉明)码采用的是偶校验的策略, 所以每个分组中1的个数为偶数个
- 肉眼观察分组中1的个数, 然后判断校验位为1还是0
- 或者将分组中的信息位相异或
纠错
1bit发生错误可以纠错 2bit发生错误可以发现但无法纠错
将P1,P2,P3……所在的分组中的bit位相异或得到S1,S2,S3……
将S1,S2,S3……按照低位到高位的顺序组成二进制数,若为0则无错,若不为零则其对应的十进制数就是发生bit跳变的bit的序号
原文地址:https://www.cnblogs.com/konojojoda/p/15230723.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法