差错控制编码

在通信系统中,信道通常是非理想的。信号经过信道时,一方面会受到噪声的干扰;另一方面,信道本身可能产生的复杂衰落变化也会对信号造成影响。这两种因素通常导致接收出现误码。

故此,在一个实际的数字通信系统中,应有某些措施将一个非理想的物理信道,改造成没有误码或可将误码控制到可接受范围的逻辑信道。这些措施中的基本手段,就是所谓的差错控制编码

差错控制的基本思想是在信息序列中加入进行差错控制所需的监督位,使信息序列与监督位构成某种关联关系。一旦传输过程中发生错误,这种关联关系就会被破坏,据此可以发现错误。监督位对于接收端来说,仅用于差错控制,不包含信源的信息,从这个意义上来说,监督位是冗余的成分。

与信源编码的区别:

信源编码主要作用时根据信源本身的统计特性和特定的应用要求等,通过有损或无损的压缩变换,减少传输的数据量,提高通信效率。

而差错控制编码,则是在待传输的码序列中建立某种关联关系,如果在传输过程中发生了错误,这种约束关系就会受到破坏,接收端可以据此检测在传输过程中是否出现了错误。而要建立这种关联关系,必须在待传输的序列中加入不包含信息的“冗余”码作为监督位。而差错控制编码理论,就是研究如何有效地建立这种官渡关系的。

分类:

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)相关推荐

  1. 【信道编码/Channel Coding】汉明码Hamming Code

    简介: 这是本专栏信道编码/Channel Coding的第三站,想对信道编码有一个系统性的认识可以看本专栏的 信道编码的整体框架 一文.而在本篇文章中,将介绍汉明码(Hamming Code)的构成 ...

  2. 【通信系统仿真系列】基于Matlab的汉明码(Hamming Code)纠错传输以及交织编码(Interleaved coding)仿真

    基于Matlab的汉明码纠错传输以及交织编码仿真 前言 原理 汉明码 编码过程 冗余位数量计算 校验位位置计算 计算校验相关位 开始编码 解码过程 实验结果 仿真代码 可以修改的参数 下载链接 主函数 ...

  3. 阮一峰react demo代码研究的学习笔记 - how is source code converted

    Created by Wang, Jerry, last modified on Feb 21, 2016 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  4. amazeui学习笔记--css(HTML元素2)--代码Code

    amazeui学习笔记--css(HTML元素2)--代码Code 一.总结 1.行内代码:code标签<code> 2.代码片段:pre标签<pre> 3.限制代码块高度:添 ...

  5. C语言学习笔记—code:blocks工具debug调试异常

    C语言学习笔记-code:blocks工具debug调试异常 参考文章: (1)C语言学习笔记-code:blocks工具debug调试异常 (2)https://www.cnblogs.com/do ...

  6. iOS Code Signing 学习笔记转写

    最近看了objc.io上第17期中的文章 <Inside Code Signing> 对应的中文翻译版 <代码签名探析> ,受益颇深,对iOS代码签名机制有了进一步的认识.想了 ...

  7. ESP32学习笔记(1)——搭建环境、编译烧写(Windows+VS Code)

    Espressif-IDE 环境搭建参看 ESP32学习笔记(50)--搭建环境.编译烧写(Windows+Espressif-IDE) 一.搭建环境 1.1 官方资料 ESP-IDF 编程指南 1. ...

  8. 《VS Code 学习笔记 之 Open Live Server》

    目录 VS Code 学习笔记 Open Live Server 代码分析 VS Code 学习笔记 Open Live Server Open Live Server : 开启 实时服务 代码分析 ...

  9. 学习笔记: 代码覆盖率-code coverage

    由于<Pycharm学习笔记01:PyCharm介绍>提出此名词,比较陌生. Code coverage is a metric that can help you understand ...

最新文章

  1. 常考数据结构与算法:求平方根
  2. Linux下远程连接断开后如何让程序继续运行
  3. 安装搜狗输入法之后 Linux Mint 19.1 字体发虚解决方案
  4. 网络请求中的cookie与set-Cookie的交互模式和作用
  5. (转载)spring配置hibernate 事务。
  6. bert 多义词_自然语言处理:Bert及其他
  7. Spring mvc 中 DispatcherServlet 的学习和理解
  8. net2.0如何修改用户密码的解决
  9. 用《只狼》教你学会Git(中)
  10. php命令行生成文件,php命令行生成与读取配置文件
  11. 彭聃龄普通心理学第5版笔记和课后习题答案
  12. SCI期刊分区-JCR分区 中科院分区
  13. python菜单翻译成中文_Python编辑器英文菜单的中文翻译及解释,看看吧,磨刀不误砍柴工...
  14. Google Earth Engine——美国人口数据可视化分析
  15. 《你是我的荣耀》制片人张萌犯受贿罪:被判处有期徒刑三年
  16. 通信原理包络是什么意思_什么是PFC稳压开关电源?
  17. Mac M1配置Apache Tomcat
  18. 【RT-ThreadART-PI】RGB565_LCD显示屏的使用
  19. BDD100k数据集训练YOLOv5
  20. 【Python 初学者】从零开始构建自己的神经网络

热门文章

  1. python在循环中创建dataframe(如df1、df2……)
  2. FFmpeg解码视频并保存为图片
  3. 计算机毕业设计 SSM校园拼车系统 拼车出行管理系统 滴滴打车管理系统Java Vue MySQL数据库 远程调试 代码讲解
  4. 【数据分析】基于matlab GUI学生成绩管理系统【含Matlab源码 1981期】
  5. Co掺杂Fe3O4@MnO2/PDMS-TEOS@Fe3O4 聚二甲基硅氧烷修饰正硅酸四乙酯@四氧化三铁
  6. c语言 is函数,关于C语言回调函数的详解~
  7. 复姓宇文,全国只有3万人,我们找你好久了,你是那一个吗?
  8. 燕十八 php经典,燕十八PHP传世经典第1部视频教程(后半部分)_PHP教程
  9. 基于51单片机蓝牙小车
  10. iphone x/xr/xs/xs max 微信input输入框和吸底兼容问题