请问有什么校验的算法可以发现错误,也能恢复数据的错误

[复制链接]
3401|7
 楼主| 将军令 发表于 2007-10-16 08:40 | 显示全部楼层 |阅读模式
j今天花了N个小时,总算看明白了CRC校验的运算原理<br />不过最后我发现这个算法只能发现数据是否有错误,却不能恢复错误<br /><br />请问有什么校验的算法可以发现错误,也能恢复数据的错误?
HWM 发表于 2007-10-16 09:10 | 显示全部楼层

不能完全恢复的,只能在一定的限定下恢复。

理论上是用加大冗余的方法来检验或恢复错误代码。<br />所谓冗余就是加大代码的信息占用空间,每个正确代码间都有一定的“间隔距离”,如果假设代码在相当大的概率下不会跳出“间隔距离”的一半,那就可以将它恢复成“有条件的正确代码”。
computer00 发表于 2007-10-16 09:10 | 显示全部楼层

找本通信原理的书看看,要实现多少位检错和多少位纠错

需要的校验码长是可以计算出来的。<br /><br />最简单的方法就是出错重发,或者重发几次,取多的为正确。<br /><br />另外还有一种就是使用行和列的奇偶校验,但只能纠正一位错。<br /><br />像那些循环码,交织码等都比较麻烦的。
兰天白云 发表于 2007-10-16 09:51 | 显示全部楼层

以前学过冗余校验纠错

后来听说过6级纠错VCD,问问他们?<br /><br />例:<br />如果要发101,使用冗余编码,如发1则连发5个1<br />101=111110000011111<br />如果接收方收到111110000011111则表示101,<br />如果传输过程出错,出现111001000010101<br />按照少数服从多数的原则,前5位=11100则=1<br />中5位=10000则=0,后5位=10101则=1<br />纠正后=101<br />错了这么多位还能纠正回来,爽啊!!!!!!!
HWM 发表于 2007-10-16 09:59 | 显示全部楼层

楼上:爽是爽了,但空间占用得也够爽的。

  
yewuyi 发表于 2007-10-16 11:26 | 显示全部楼层

只要物理层没有损坏,通过查错重发的方式基本都能解决问

除非要求实时性,但发那么多数据,实时性也没有了哦
guosr 发表于 2007-10-16 13:23 | 显示全部楼层

纠错码

汉明码:可以纠正1bit错误<br />BCH码:采用不同的码长,可以纠正多个bits的错误<br /><br />还有李德-所罗门码、tubor吗、卷积码等等,纠错码是专门的一门学科。
chunyang 发表于 2007-10-16 15:28 | 显示全部楼层

任何纠错编码都是采用冗余技术为前提的

&nbsp;&nbsp;&nbsp;&nbsp;代价是用空间换取,在低数据量通讯时还不如采用校验+重发机制。<br />&nbsp;&nbsp;&nbsp;&nbsp;一直以来,特别是在短距无线数传领域,有不少厂家采用纠错编码的设计并以此来误导用户。直接看确实有用,在同一条件下,纠错编码的引入可以增加增益,但代价是降低了实际传输带宽,所以直接比较是不公正的,要比较必须在同一实际传输率下进行比较,这时香农定律又发挥了作用,比如纠错编码采用3倍冗余,那就应该和同条件下传输率1/3的信道做比较,其综合的结果是采用纠错编码的实际增益几乎不明显。<br />&nbsp;&nbsp;&nbsp;&nbsp;纠错编码的最大应用领域是在不准许重发的应用场合特别是在单向传输中以及高带宽传输应用中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

180

主题

937

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部