欢迎光临散文网 会员登陆 & 注册

网络传输中一个海明码纠错实例

2022-04-18 23:34 作者:我爱计算机科学  | 我要投稿

网络传输时要通过编码纠错,需完成以下步骤:

第一步:海明码需要添加几位纠错码?按公式:

图1

这里的n代表要传输的信息多少位,k代表要添加多少位纠错码。比如,要传输4位二进制编码,那么k至少要等于3才能符合图1的要求。

第二步:纠错码应该放在什么位置?按如下公式:

图2

也就是说,纠错码的位置按照1,2,4,8,......的顺序放置。

第三步:检测位(纠错码)如何取值?

要确定每位检测码的取值,首先需要确定每位检测码负责检测哪些位,按如下原则确定:


图4

图3和图4的意思就是,比如添加的第一位检测码,它负责检测第1位,第3位等等,注意,这里已经是相对于添加了检测位以后的信息而言。为什么这么规定,由严格的理论证明,这样的规定可以检测到每一位的差错。

比如,现在要对被传输的信息0101进行校验,那么,

第一步,确定要添加几位校验码。按照图1,由于n=4,可以确定k最少是3。

第二步,确定校验码添加的位置

图5

第三步,确定校验码每一位的取值。

以C1为例,它负责1,3,5,7位。那么,它的取值就由这些位共同确定,确定值的规则可以是偶校验,也可以是奇校验。以偶校验为例,就是要求

图6

包括添加的这位检测位在内,与它所负责检测的其它位,它们的异或运算的结果要等于0。按照异或运算的规则

图7

所以,要使得图6的结果为0,那就必须

图8

图8是把

图9

当作一个整体看待,从而符合相同为0的异或运算规则。

同样可以确定

图10

从而可以得到添加了检测位的海明码为

图11

现在假设收到一串海明码0100111,按上述规则进行检测,得到结果

图12

图12中,由于P1的结果是0,所以符合偶校验规则,是正确的,从而确定了接收到的码串中第1,3,5,7位是正确的。而P2为1,则出现了错误,由于P1已经确定第3,7位是正确的,从而出错的只可能是第2,6位。而P4也的错的,判断出错的是第4,6位。因为P2和P4都共同判断第6位出错(只考虑一位出错的情况),从而确定出错的是第6位。

从而把收到的海明码0100111改为0100101,去除添加的1,2,4位校验位,可以确定传输的正确信息为0101。


网络传输中一个海明码纠错实例的评论 (共 条)

分享到微博请遵守国家法律