学习笔记之——汉明码(Hamming Code)
差错控制编码
在通信系统中,信道通常是非理想的。信号经过信道时,一方面会受到噪声的干扰;另一方面,信道本身可能产生的复杂衰落变化也会对信号造成影响。这两种因素通常导致接收出现误码。
故此,在一个实际的数字通信系统中,应有某些措施将一个非理想的物理信道,改造成没有误码或可将误码控制到可接受范围的逻辑信道。这些措施中的基本手段,就是所谓的差错控制编码
差错控制的基本思想是在信息序列中加入进行差错控制所需的监督位,使信息序列与监督位构成某种关联关系。一旦传输过程中发生错误,这种关联关系就会被破坏,据此可以发现错误。监督位对于接收端来说,仅用于差错控制,不包含信源的信息,从这个意义上来说,监督位是冗余的成分。
与信源编码的区别:
信源编码主要作用时根据信源本身的统计特性和特定的应用要求等,通过有损或无损的压缩变换,减少传输的数据量,提高通信效率。
而差错控制编码,则是在待传输的码序列中建立某种关联关系,如果在传输过程中发生了错误,这种约束关系就会受到破坏,接收端可以据此检测在传输过程中是否出现了错误。而要建立这种关联关系,必须在待传输的序列中加入不包含信息的“冗余”码作为监督位。而差错控制编码理论,就是研究如何有效地建立这种官渡关系的。
分类:
1、检错重发。只具备检错功能的编码算法。如果有错就重新发送(只适合于有反向传输信道的场合)
2、前向纠错。通过较为复杂的编码译码算法,使接收端不仅能检测出错误,而且定位出码字中错误的位置并加以纠正。
3、混合差错控制。前向纠错编码算法。
Hamming Code
汉明码(Hamming Code),是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM)。
在线下分组码中,汉明码就是一种高效码。
汉明码的实现原则是在原来的数据的插入k位数据作为校验位,把原来的N为数据变为m(m = n +k)位编码。其中编码时要满足以下原则:
2^k - 1 >= m 其中(m = n + k)
这就是Hamming不等式,汉明码规定,我们所得到的m位编码的2^k ( k>=0 && 2^k < m)位上插入特殊的校验码,其余位把源码按顺序放置
参考资料
https://www.cnblogs.com/Philip-Tell-Truth/p/6669854.html
学习笔记之——汉明码(Hamming Code)相关推荐
- 【信道编码/Channel Coding】汉明码Hamming Code
简介: 这是本专栏信道编码/Channel Coding的第三站,想对信道编码有一个系统性的认识可以看本专栏的 信道编码的整体框架 一文.而在本篇文章中,将介绍汉明码(Hamming Code)的构成 ...
- 【通信系统仿真系列】基于Matlab的汉明码(Hamming Code)纠错传输以及交织编码(Interleaved coding)仿真
基于Matlab的汉明码纠错传输以及交织编码仿真 前言 原理 汉明码 编码过程 冗余位数量计算 校验位位置计算 计算校验相关位 开始编码 解码过程 实验结果 仿真代码 可以修改的参数 下载链接 主函数 ...
- 阮一峰react demo代码研究的学习笔记 - how is source code converted
Created by Wang, Jerry, last modified on Feb 21, 2016 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- amazeui学习笔记--css(HTML元素2)--代码Code
amazeui学习笔记--css(HTML元素2)--代码Code 一.总结 1.行内代码:code标签<code> 2.代码片段:pre标签<pre> 3.限制代码块高度:添 ...
- C语言学习笔记—code:blocks工具debug调试异常
C语言学习笔记-code:blocks工具debug调试异常 参考文章: (1)C语言学习笔记-code:blocks工具debug调试异常 (2)https://www.cnblogs.com/do ...
- iOS Code Signing 学习笔记转写
最近看了objc.io上第17期中的文章 <Inside Code Signing> 对应的中文翻译版 <代码签名探析> ,受益颇深,对iOS代码签名机制有了进一步的认识.想了 ...
- ESP32学习笔记(1)——搭建环境、编译烧写(Windows+VS Code)
Espressif-IDE 环境搭建参看 ESP32学习笔记(50)--搭建环境.编译烧写(Windows+Espressif-IDE) 一.搭建环境 1.1 官方资料 ESP-IDF 编程指南 1. ...
- 《VS Code 学习笔记 之 Open Live Server》
目录 VS Code 学习笔记 Open Live Server 代码分析 VS Code 学习笔记 Open Live Server Open Live Server : 开启 实时服务 代码分析 ...
- 学习笔记: 代码覆盖率-code coverage
由于<Pycharm学习笔记01:PyCharm介绍>提出此名词,比较陌生. Code coverage is a metric that can help you understand ...
最新文章
- java签名算法阻止 设置_java数字签名算法之RSA
- 体验Office 2013预览版
- xtraTabbedMdiManager 双击最大化和关闭后返回主界面 z
- vue实现移动端圆形旋钮插件
- python爬虫吧-Python爬虫案例集合
- Disruptor 源码阅读笔记--转
- linux上安装spark_hadoop_java_scala
- Java09-day09【ArrayList(概述、构造方法、常用方法、遍历)、简易学生管理系统】
- javascript 自定义对象的两种方法
- 操作系统 内存分配-分区
- SSRF利用 Gopher 协议拓展攻击面
- 官方完整HL7 ECG-XML例子及注释翻译(4)
- 【SQL Server学习笔记】12:用SQL创建和扩大数据库空间
- 运用C语言指针知识实现对一个二维数组转置
- RST报文以及产生场景
- flash人物原地走路_flash如何做人物走路
- 关于王者荣耀技术背景的文章
- 小学信息技术计算机教学反思,小学信息技术教学反思
- 2021/4/29刷题
- 学点SmallTalk