海明码编码原理及其解释

一.纠正一位错的海明码的位数k的选取必须符合下式:

                             

当信息位为8位时,海明码校验码共有4位,而当信息位为20位时,其校验码需要5位。这是理论上进行纠错需要用到的最少位。解释:k位的纠错码能指明的位置最多为个,即从0...01...1,除去0...0表示第0位出错(没有错误),再减去纠错码本身占用k位,则其能编码的最大位数m满足

二.海明码编码的基本思想就是利用纠错码的变化情况指明具体是哪一位编码在传输过程中出错。那么怎样实现这个目标呢?我们考虑到利用二进制来传输的数据每一位的具体位置,然后通过观察描述位置的二进制编码的变化情况就可以检测出具体是哪一位错误了。可能这样子说很抽象那么我们看一下信息位为8位,海明校验码为四位时的具体情况。海明码和信息位的放置规律如图所示


海明码(i=1,2,...,k)排在第位,然后将数据位依照从低到高的顺序填在剩余的空间里,构成H1~H12。其中Ci的确定方法如下:


三.当接收方收到信息T`后,对T`依据同样的异或规则重新计算校验码。然后对接收到的C1C2C3C4和新计算出的C1`C2`C3`C4`进行按位异或运算,如果结果全为0,则传输无误,如果结果不为0,则计算的结果对应的十进制就表明了错误发生的位置,如结果为0101这表示第5位出错也就是D2出错。

四.解释

1).C1C1`进行异或如果传输过程中H3,H5,H7,H9,H11均没出错那么结果一定为0,如果H3,H5,H7,H9,H11中有一位传输过程中出错那么结果一定为1。因为我们假设的前提是传输过程中只能发生一位出错的情况。如果传输过程中没有出错那么就相当于,由于其每一个数字均出现两次那么异或结果一定为0,但是一位出错则单了一位那么结果一定为1,于是便能检测出H3H5H7H9H11中必有一位错误。

2).我们观察C1,H3的二进制编码0011H5的二进制编码0101H7的二进制编码0111H9的二进制编码1001H11的二进制编码1011。发现表示其位置的二进制码最后一位均为1,那么是不是就意味着位置编码最后一位为1的出错时我们能通过检测C1异或C1`发现呢。同理看C2标记的位置0011,0110,0111,1010,1011。意味着表示位置的二进制编码倒数第二位为1的出错时我们能通过检测C2异或C2`发现。

3).于是乎我们能得到这样一个结论对于位置的二进制编码第K位出错则CK异或CK`1,没错就为0。那么我们得到的Cn异或Cn` Cn-1异或Cn-1` ....C1异或C1`这一串数字就表示具体的那个位置出错。


  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会根据你的要求为你解答这个问题,以下是我的回答: 1. 纠错编码原理及MATLAB实现 纠错编码是一种能够在数据传输过程中检错和纠错的技术。其主要原理是在发送数据时添加冗余信息,使接收端能够检测并纠正误差。常见的纠错编码海明码、卷积码、LDPC码、polar码等。 MATLAB是一种强大的工具,可以用于实现各种数字信号处理算法。在MATLAB中,可以使用通信工具箱中的函数来实现纠错编码。例如,使用comm.HammingEncoder和comm.HammingDecoder函数实现海明编码编码和解码。 2. polar码和LDPC码的概述、原理、方法 Polar码是一种新兴的纠错编码技术,由土耳其学者Arikan于2008年提出。Polar码通过对信道进行判决,选择合适的信道来进行编码和解码。其原理是通过将多个信道变成一个好的信道和一个坏的信道,以此来达到纠错的目的。Polar码的方法包括信道极化和编解码算法。 LDPC码是一种基于图论的纠错编码技术。其原理是将编码信息通过一个稠密图传输,然后通过迭代译码的方式进行解码。LDPC码的方法包括生成矩阵法和校验矩阵法。 3. 通过matlab进行polar码和LDPC码的性能比较 在MATLAB中,可以使用通信工具箱中的函数来实现polar码和LDPC码的编码和解码。可以使用comm.PolarEncoder和comm.PolarDecoder函数来实现Polar码的编码和解码,使用comm.LDPCEncoder和comm.LDPCDecoder函数来实现LDPC码的编码和解码。 性能比较可以通过比较两种编码的误码率来实现。可以使用MATLAB中的BERTool函数来计算误码率,并通过绘制误码率曲线来比较两种编码的性能。 总的来说,Polar码和LDPC码都是目前比较流行的纠错编码技术,它们的性能比较取决于具体的应用场景和参数设置。在实际应用中,需要根据具体情况选择合适的编码方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值