计算机网络纠错码,纠错码

纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。仅用来发现错误的码一般常称为检错码。为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别 ,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程称为译码。检错码与其他手段结合使用,可以纠错。

中文名

纠错码

外文名

error correcting code实    质

在收端自行发现或纠正的码

别    名

应用学科

计算机、通信

纠错码简介

语音

纠错码(error correcting code) ,是在接收端能自动地纠正数据传输中所发生差错的码。纠错码的基本思路是在所有的由发送符号组成的序列中,仅挑出其中一部分做为信息的代表向信道发送,并使得所挑出的这些序列之间有尽可能多的差异。每个被挑出的允许发送的序列被称为一个码字,而码字的总合称为码。在发送端把信息变换成码字的过程称为编码;在接收端从接收到的信号判定所发码字、从而恢复信息的过程称为解码(或译码)。在解码时,若收到的信号不是码中的一个码字,则可以肯定在传输中出现了差错,从而着手对差错进行纠正。纠错的方法是找到与接收到的信号最接近的码字,并将其判定为发送信号。一般采用“距离”来度量信号间的接近程度,一种常用的“距离”称为汉明距离,它被定义为两码字间对应位不同的个数总和。一个给定码,其全部码字两两之间距离的最小值被称为这个码的码距。码距是一个码纠错能力的重要参数,例如在汉明距离下,若接收到的信号出错的位数不多于码距的一半,则接收端总能正确地恢复所发送的码字,从而正确地恢复所发送的信息。

纠错编码又称信道编码,它与信源编码是信息传输的两个方面。它们之间存在对偶的关系。应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。

为了使一种码具有检错或纠错能力,必须对原码字增加多余的码元,以扩大码字之间的差别,使一个码字在一定数目内的码元上发生错误时,不致错成另一个码字。准确地说,即把原码字按某种规则变成有一定剩余度的码字,并使每个码字的码元间有一定的关系。关系的建立称为编码。码字到达收端后,用编码时所用的规则去检验。如果没有错误,则原规则一定满足,否则就不满足。由此可以根据编码规则是否满足以判定有无错误。当不能满足时,在可纠能力之内按一定的规则确定错误所在的位置,并予以纠正。纠错并恢复原码字的过程称为译码;码元间的关系为线性时,称为线性码;否则称为非线性码。检错码与其他手段结合使用,可以纠错。检错反馈重发系统(ARQ系统)就是一例。

在构造纠错码时,将输入信息分成k位一组以进行编码。若编出的校验位仅与本组的信息位有关,则称这样的码为分组码。若不仅与本组的k个信息位有关,而且与前若干组的信息位有关,则称为格码。这种码之所以称为格码,是因为用图形分析时它象篱笆或格架。线性格码在运算时为卷积运算,所以叫卷积码。

纠错码发展过程

C.E.仙农在1948年发表在《通信的数学理论》一文中的信道编码定理指出:只要采用适当的纠错码,就可在多类信道上传输消息,其误码率pe可以任意小 (1)式中n为码长;Er(R)为信息率R的函数,与信道有关。当R小于信道容量C时,Er(R)为正值。可惜的是这一定理仅仅指出理论上可以达到的目标,而未能给出构造性的实现方法。自仙农的论文发表以来,人们经过持续不懈的努力已找到多种好码,可以满足许多实用要求。但在理论上,仍存在一些问题未能解决。

纠错码汉明码

R.W.汉明于1950年首先给出可以纠正一个独立错误的线性分组码──汉明码。差不多与此同时E.戈雷给出一种可以纠正三个错误的完备码。完备码虽然十分罕见,但有较大实用意义。1954年D.E.莫勒提出一种能纠正多个错误的码;I.S.里德则立即给出它的译码方法,用的是择多判决法,这种码常称为RM码。1957年,E.普勒齐引入了循环码的概念。1959~1960年出现了BCH码,引进有限域的概念,解决了循环码的构造和性能估计等基本问题。后来成为线性分组码中最重要的一类码。它能纠正多个错误,且在实用范围内接近信道编码定理所指出的误码率值。但当n增大时,其误码率不能呈指数下降。BCH码的译码问题是W.W.彼得森解决的;钱天闻则提供了一种系统地搜索根的方法。1967年,E.R.伯利坎普提出一种迭代算法,大大简化了译码,使纠错码趋于实用。1970年В.Д.戈帕提出一种线性分组码的构造方法,原则上它可以达到吉尔伯特限,实现了理论上预期的目标。但至今仍未解决如何具体构造这种码的问题。

卷积码最早由P.伊莱亚斯于1955年提出。它的纠错能力较强,设备复杂程度与分组码大体相当。首先获得成功的译码方法是序列译码。1967年A.J.维特比提出的译码算法,能较好地按最大似然准则译码,且在许多领域中均可应用。卷积码还可用代数方法译码。它的设备虽较简单,但性能较差。卷积码在理论上不如分组码成熟,所用的工具也比较多样,尚缺乏系统的、统一的方法处理。

分组码和卷积码不但可以用来纠正独立错误,而且可以用来恢复删除错误和纠正突发错误。如分组码中有里德-索洛蒙码,法尔码等;卷积码中有岩垂码及扩散卷积码等。

为了实现低的误码率,根据式(1),要求码长n较大。但已知的大多数码,当n变大时不是性能欠佳或者难以构造,就是译码过分复杂,不容易实现。但是,可以利用好的码进行级连,以得到性能更好的码。级连码的内码和外码,用分组码和卷积码都可以。这在深空通信中应用较多。

纠错码基本原理和性能参数

语音

纠错码能够检错或纠错,主要是靠码字之间有较大的差别。这可用码字之间的汉明距离d(x,y)来衡量。它的定义为码字x与y之间的对应位取不同值的码元个数。一种纠错码的最小距离d定义为该种码中任两个码字之间的距离的最小值。一种码要能发现e个错误,它的最小距离d应不小于e+1。若要能纠正t个错误,则d应不小于2t+1。一个码字中非零码元的个数,称为此码字的汉明重量。一种码中非零码字的重量的最小值,称为该码的最小重量。对线性码来说,一种码的最小重量与其最小距离在数值上是相等的。

在构造线性码时,数字上是从n维空间中选一k维子空间,且使此子空间内各非零码字的重量尽可能大。当构造循环码时,可进一步将每一码字看成一多项式,将整个码看成是多项式环中的理想,这一理想是主理想,故可由生成多项式决定;而多项式完全可由它的根规定。这样,就容易对码进行构造和分析。这是BCH码等循环码构造的出发点。一般地说,构造一种码时,均设法将它与某种代数结构相联系,以便对它进行描述,进而推导它的性质,估计它的性能和给出它的译码方法。若一种码的码长为n,码字数为M,或信息位为h,以及最小距离为d,则可把此码记作【n,M,d】码。若此码为线性码,常简记作(n,k)或(n,k,d)码。人们还常用R=log2M/n表示码的信息率或简称码率,单位为比特/码元。R越大,则每个码元所携带的信息量越大,编码效率越高。

纠错码实现

纠错码实现中最复杂的部分是译码。它是纠错码能否应用的关键。根据式(1),采用的码长n越大,则误码率越小。但n越大,编译码设备也越复杂,且延迟也越大。人们希望找到的译码方法是:误码率随码长n的增加按指数规律下降;译码的复杂程度随码长n的增加接近线性地增加;译码的计算量则与码长n基本无关。可惜,已经找到的码能满足这样要求的很少。不过由于大规模集成电路的发展,即使应用比较复杂的但性能良好的码,成本也并不太高。因此,纠错码的应用越来越广泛。

纠错码传输的都是数字信号。这既可用硬件实现,也可用软件实现。前者主要用各种数字电路,主要是采用大规模集成电路。软件实现特别适合计算机通信网等场合。因为这时可以直接利用网中的计算机进行编码和译码,不需要另加专用设备。硬件实现的速度较高,比软件可快几个数量级。

在传信率一定的情况下,如果采用纠错码提高可靠性,要求信道的传输率增加,带宽加大。因此,纠错码主要用于功率受限制而带宽较大的信道,如卫星、散射等系统中。纠错码还用在一些可靠性要求较高,但设备或器件的可靠性较差,而余量较大的场合,如磁带、磁盘和半导体存储器等。

在分组码的研究中,谱分析的方法受到人们的重视。纠同步错误码、算术码、不对称码、不等错误纠正码等,也得到较多的研究。

纠错码分组码

分组码是对信源待发的信息序列进行分组(每组K位)编码,它的校验位仅同本组的信息位有关。自20世纪50年代分组码的理论获得发展以来,分组码在数字通信和数据存储系统中已被广泛应用。

分组码的码长n和码字个数M是一个码的主要构造参数。码长为n的码中所有码字的位数均为n;若要用一个码传送k比特信息,则码字的个数M必须满足639e630ec31d1160e66e5ed513920f6f.svg。典型的分组码是由k位信息位和r位监督位组成的,这样构成的码一般称为系统码。

分组码中应用最广的线性分组码。线性分组码中的M个码字之间具有一定线性约束关系,即这些码字总体构成了n维线性空间的一个k维子空间。称此k维子空间为(n,k)线性分组码。线性系统码的特点是每个码字的前k位均由这个码字所对应的信息位组成,并通过对这k位信息位的线性运算得到后面n—k是位监督位。

线性分组码中应用最广的是循环码,循环码的主要特征是任何码字在循环移位后个码字。循环码的优点在于其编码和解码手续比一般线性码简单,因而易于在设备上实现。在循环码中,码字745377709ec500b972de52c9394d31cd.svg可表示为多项式f2c6755b48efe21a5b766506f3a076c2.svg。循环码的码字多项式都可表示成为循环码的生成多项式8403a4445457e8c80601c2244f21e427.svg与这个码字所代表的信息多项式6e19f57bf58b5deadb29a1794ecf2e39.svg的乘积,即52b1e6b5ea2ea08a89ff30c3af78004b.svg,因此一个循环码可以通过给出其生成多项式8403a4445457e8c80601c2244f21e427.svg来规定。常用的循环码有BCH码和RS码。

19b7082768bf31716744b74afeee06a1.png

图1 码率为1/2、四种状态的网格码的网格图

网格码有多种描述方法,网格图是常用方法之一,它能表示出编码过程。一个码率为1/2、包含四种状态的网格码的网格图如图所示。图1中00,01,10,11表示编码器所具有的四种状态,以“·”示出,从每一状态出发都存在两条支路,位于上面的一条支路对应于编码器输入为“0”的情况,位于下面的一条支路对应于编码器输入为“1”的情况,而每一支路上所列出的两个二进位码则表示相应的编码输出。因而可知,编码输出不仅决定于编码器的当前输入,还决定于编码器的状态,例如在图中从“00”状态出发;,若输入的二进制数据序列为1011,则编码器的状态转移过程为00→01→10→01→11,而相应的编码输出序列为11010010。在网格图中任意两条从同一状态出发;,经不同的状态转移过程后又归于另一相同状态(该状态也可与初始状态相同)的路径间的距离的最小值称为码的自由距离c5e072c3a8b8f838ac07351d2cf79803.svg。如该图中的c5e072c3a8b8f838ac07351d2cf79803.svg为5。对于卷积码来说,c5e072c3a8b8f838ac07351d2cf79803.svg的计算可简化为始于且终于零状态的非全零路径与全零路径间距离的最小值。c5e072c3a8b8f838ac07351d2cf79803.svg是表征网格码纠错能力的重要参数。维特比算法是广泛采用的网格码的译码方法。由于网格码的状态越多,译码越复杂,所以状态个数是度量网格码译码复杂性的重要参数。一般说来可以通过增大译码复杂性来增加c5e072c3a8b8f838ac07351d2cf79803.svg,从而提高码的纠错能力。

BCH码、网格码已被广泛地应用于移动通信、卫星通信和频带数据传输中。RS码也被广泛应用于光盘的存储中。

大多数纠错码是设计来纠随机误码的,可以通过交织的方法使它适用于对突发误码的纠错。交织是一种使得集中出现的突发误码在解码时进行分散化的措施,从而使其不超出纠错码的纠错能力范围。

纠错码卷积码

卷积码不对信息序列进行分组编码,它的校验元不仅与当前的信息元有关,而且同以前有限时间段上的信息元有关。卷积码在编码方法上尚未找到像分组码那样有效的数学工具和系统的理论。但在译码方面,不论在理论上还是实用上都超过了分组码,因而在差错控制和数据压缩系统中得到广泛应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fopen_s不接受两个参数_如何利用SPC来管理制造过程,不懂SPC还敢混“质”场?

请点击上面  免费关注本账号!必读 → 2019年4-5月开课计划(IASC-CN俱乐部)PC是汽车行业品质管理的重要工具之一,AIAG为此写了一整本书。这篇文章略去SPC一些基础知识的介绍,直接来讲一下应如何利用SPC来管理一个制造过程。I. SPC的应用范围…

台式计算机装系统,教你台式电脑重装系统方法

台式电脑重装系统对于大部分用户都会因为台式电脑重装系统一般都不需要修改设置,所以重装系统就不那么麻烦了,通常情况下大家都会使用下面教你们的第一种台式电脑重装系统方法,因为这种方法是傻瓜式的重装教程,所以小编在下文中就…

江苏师范大学计算机全国排名,国内131所二本师范大学最新排名(按录取分数线)...

每年高考录取结束后,“文科生可以考哪些师范大学,这些学校的排名怎么样”都是大家关注的热门问题,小编根据安徽省考试院与圆梦志愿的数据,整理出所有二本师范大学2020年在安徽省文科的分数线排名,希望能够给大家带来参…

3w最简单led灯电路图_Mixly 第19课 光感应灯——光敏电阻使用

第19课 光感应灯——光敏电阻使用光敏电阻器又叫光感电阻,是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电…

arcgis xml 下载 切片_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...

内容概览1.openlayers6结合geoserver利用WFS服务实现图层编辑功能2.源代码demo下载效果图如下:本篇主要是参照openlayers6结合geoserver利用WFS服务实现图层新增功能(附源码下载)基础上实现的,openlayers6通过调用geoserver发布的地图服务WFS来达到图层编…

存储性能测试软件怎么用的,《杉岩两语》:Vdbench在分布式存储性能测试中的使用方法...

Vdbench是Oracle编写的一款应用广泛的存储性能测试工具,既支持块设备的性能测试,也支持文件系统性能测试。Vdbench使用java编写,兼容linux和windows的操作系统,使用方便。1、Vdbench使用及结果参看使用vdbench时需要先安装java的j…

计算机键盘练习,电脑键盘指法练习

电脑键盘指法练习就像使用筷子,只有掌握了正确的指法,夹东西才稳。对于电脑键盘也一样,只有掌握了正确的指法,打字速度才会快。以下百分网小编整理的电脑键盘指法练习介绍,希望对大家有所帮助,更多信息请关…

c语言 数组、字符串的形参格式_华中师范大学计算机考研874C语言笔记(一)

运算符优先级自右向左记忆口诀条件赋值自增减(?: //- -- )指针取址按位反 (* & ~)内存非负强制转 (sizeof ! - (type))define 前面的#标志着define是一个【预处理命令】而不是C语句。高字节在【高地址】存储单元,低字节在【低地址】存储…

前端分页_前端分页

1、适合情形前端分页一般用于数据量较小的情况,一次请求把数据全部从后端请求回来。2、前端分页例子前端分页代码示例​github.comcd front-end-page 进入front-end-page 文件夹下npm install 安装依赖npm run dev …

服务器分发系统如何做性能测试,怎么做软件性能测试,完整的性能测试流程有哪些内容?...

原标题:怎么做软件性能测试,完整的性能测试流程有哪些内容?一、做性能测试前的准备工作1.要清楚服务器的ip地址和账号密码(目的是用于监控)2.服务器的系统是什么3.是否需要多级联合4.服务器一共有几台5.了解服务器的配置情况6.本机的配置(16g…

cocos怎么把res文件夹放服务器上,cocos2d 三合一跑胡子房卡+服务器组件+后台控制+安装教程+棋牌完整源码...

cocos2d 三合一跑胡子房卡服务器组件后台控制棋牌完整源码安装方法:1将工程下的res和src目录复制到version/fromSource 目录中2使用cocos2dx命令 把src目录下的js文件转换成jsc文件在fromSource目录下执行cocos jscompile -s . -d .3删除掉src目录下的js 文件 只保留…

优秀自我简介200字_急需稿件,稿费200元起/篇 | 公众号【深夜秘杏酱】长期征稿(可签约)...

“深夜秘杏酱”征稿函新号大量收稿 欢迎写手大大们踊跃投稿哦Hi!我们是一个专注女生性知识科普及女生情感生活的新号——深夜秘杏酱!我们希望能在这个新成立的公众号上跟各位小姐姐分享各种搞怪有趣但又干货满满的性知识,一起偷摸“开车”,顺…

kafka中topic默认属性_分享:Kafka 的 Lag 计算误区及正确实现

前言消息堆积是消息中间件的一大特色,消息中间件的流量削峰、冗余存储等功能正是得益于消息中间件的消息堆积能力。然而消息堆积其实是一把亦正亦邪的双刃剑,如果应用场合不恰当反而会对上下游的业务造成不必要的麻烦,比如消息堆积势必会影响…

手机系统安装打印机服务器错误代码,OKI打印机报错?各型号代码故障解决方法...

原标题:OKI打印机报错?各型号代码故障解决方法这一期干货贴邀请大家一起看看OKI打印机常见报错代码↓↓↓1、报错代码 610/611/612/613黄色/品红色/青色/黑色碳粉盒未安装产生原因:◆可替代芯片安装不正确、芯片触点上有异物遮挡、鼓组件探针…

python3 批量定义多个变量_Python 3.8 新功能大揭秘

Python 3.8是Python语言的最新版本,它适合用于编写脚本、自动化以及机器学习和Web开发等各种任务。现在Python 3.8已经进入官方的beta阶段,这个版本带来了许多语法改变、内存共享、更有效的序列化和反序列化、改进的字典和更多新功能。Python 3.8还引入了…

div独占一行 html_web前端基础-HTML及CSS选择器

HTML及CSS选择器一、html基本结构二、html标签1、标题标签2、a标签3、img标签4、div和span标签5、列表标签6、表格标签7、form表单8、select下拉框标签9、textarea标签三、CSS1、css样式引入方式2、标签嵌套3、css选择器一、html基本结构html是一种超文本标记语言,进…

监控系统服务器如何配置,监控系统服务器的配置

监控系统服务器的配置 内容精选换一换裸金属服务器安装Agent后,裸金属实例出现在云监控服务管理控制台的“主机监控 > 弹性云服务器”列表中。主机监控Agent根据169.254.169.254提供的服务来判断是弹性云服务器还是裸金属服务器。如果该地址的路由被修改&#xf…

解析markdown_markdown-it 原理浅析

前言最近使用 markdown-it 比较多,也开发了一些插件,在这个过程中对源码进行了研读,最终写了这篇文章。需要了解细节的读者可以自行阅读文档。此文分为两个部分:原理剖析和原理应用(编写插件)。markdown-it…

第一次失效_特斯拉螺栓腐蚀失效分析_搜狐汽车

本文车型速览除了文章作者的主观观点外,我们正尝试基于全网可查的客观数据,为您提供中立、客观的参考依据:本文部分车型速览:展开微信扫码,直接一次看完附近所有城市低价(附近城市均有经销商可售卖至本市) 提交成功&am…

c#计算长方形的周长和面积公式_Java面向对象练习题之计算圆的面积和周长

创建一个圆Circle类。为该类提供一个变量r表示半径,一个常量PI表示圆周率;同时为该类提供两个方法:方法一用于求圆的面积,方法二用于求圆的周长;为该类提供一个无参的构造方法,用于初始化r的值为4。在main方…