海明码与循环冗余码

海明码

  • 海明码是一种多重奇偶检错码,具有检错和纠错的功能。
  • 码距(海明码距):两个码元对应位不同的个数。如10101101和10011101的码距为2,因为它们只有两个位不同。

一、海明码的求解过程

1.准备

题目给定原始信息,设m为原始信息长度,根据公式gif.latex?m+k+1%5Cleq%202%5E%7Bk%7D,求出校验位长度k的最小值。在纸上画出m+k个格子(从1开始编号),设校验位为gif.latex?P_%7Bi%7D(i从1开始),将校验位从左至右填入gif.latex?2%5E%7B0%7D%2C2%5E%7B1%7D%2C2%5E%7B2%7D%2C2%5E%7B3%7D%2C...的位置上,剩下的为原始信息位,从左至右将原始信息填入。表格如下图,黄色区域为校验位,蓝色区域为原始信息位。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemhlbmd5YW55YW4xMjM=,size_17,color_FFFFFF,t_70,g_se,x_16 2.计算校验位(也叫冗余位)

将原始信息位的位置编号值转换为二进制,则gif.latex?P_%7Bi%7D等于满足“二进制位第i位为1”的所有信息位进行异或操作后得到的值。将gif.latex?P_%7Bi%7D算出后就得到了加入校验位后的信息。

3.校验

将所有位置(包括原始信息位和校验位)的位置编号值转换为二进制,则gif.latex?X_%7B2%5E%7Bi%7D%7D(i从0开始)等于满足“二进制位第i位为1”的所有信息位进行异或操作后得到的值,将X按下标从大到小排列,得到一个形如gif.latex?X_%7B2%5E%7Bi%7D%7DX_%7B2%5E%7Bi-1%7D%7D...X_%7B1%7D的二进制串,将其转换为十进制后,若结果为0,则未发生差错;若不为0(假设为Y),则错误发生在第Y位。

二、海明码求解示例

以原始信息101101为例。

1.准备

原始信息长度m=6,根据公式gif.latex?m+k+1%5Cleq%202%5E%7Bk%7D求得校验位长度k=4。则信息位加校验位总长度为10位。信息填入如下。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemhlbmd5YW55YW4xMjM=,size_17,color_FFFFFF,t_70,g_se,x_16

2.计算校验位

将原始信息位的位置编号值转换为二进制,如下表。则

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemhlbmd5YW55YW4xMjM=,size_17,color_FFFFFF,t_70,g_se,x_16

gif.latex?P_%7B1%7D%3DB_%7B3%7D%5Cbigoplus%20B_%7B5%7D%5Cbigoplus%20B_%7B7%7D%5Cbigoplus%20B_%7B9%7D%3D1%5Cbigoplus%200%5Cbigoplus%201%5Cbigoplus%200%3D0

gif.latex?P_%7B2%7D%3DB_%7B3%7D%5Cbigoplus%20B_%7B6%7D%5Cbigoplus%20B_%7B7%7D%5Cbigoplus%20B_%7B10%7D%3D1%5Cbigoplus%201%5Cbigoplus%201%5Cbigoplus%201%3D0

gif.latex?P_%7B3%7D%3DB_%7B5%7D%5Cbigoplus%20B_%7B6%7D%5Cbigoplus%20B_%7B7%7D%3D0%5Cbigoplus%201%5Cbigoplus%201%3D0

gif.latex?P_%7B4%7D%3DB_%7B9%7D%5Cbigoplus%20B_%7B10%7D%3D0%5Cbigoplus%201%3D1

将校验位填入表格,就得到了加入校验位后的信息。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemhlbmd5YW55YW4xMjM=,size_17,color_FFFFFF,t_70,g_se,x_16

3.校验

假设发送方发送了上述校验码信息后,接收端收到的信息为0010111101,如下图

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemhlbmd5YW55YW4xMjM=,size_17,color_FFFFFF,t_70,g_se,x_16

将所有位置(包括原始信息位和校验位)的位置编号值转换为二进制,如下表,则

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemhlbmd5YW55YW4xMjM=,size_17,color_FFFFFF,t_70,g_se,x_16

 gif.latex?X_%7B1%7D%3DB_%7B1%7D%5Cbigoplus%20B_%7B3%7D%5Cbigoplus%20B_%7B5%7D%5Cbigoplus%20B_%7B7%7D%5Cbigoplus%20B_%7B9%7D%3D0%5Cbigoplus%201%5Cbigoplus%201%5Cbigoplus%201%5Cbigoplus%200%3D1

gif.latex?X_%7B2%7D%3DB_%7B2%7D%5Cbigoplus%20B_%7B3%7D%5Cbigoplus%20B_%7B6%7D%5Cbigoplus%20B_%7B7%7D%5Cbigoplus%20B_%7B10%7D%3D0%5Cbigoplus%201%5Cbigoplus%201%5Cbigoplus%201%5Cbigoplus%201%3D0

gif.latex?X_%7B4%7D%3DB_%7B4%7D%5Cbigoplus%20B_%7B5%7D%5Cbigoplus%20B_%7B6%7D%5Cbigoplus%20B_%7B7%7D%3D0%5Cbigoplus%201%5Cbigoplus%201%5Cbigoplus%201%3D1

gif.latex?X_%7B8%7D%3DB_%7B8%7D%5Cbigoplus%20B_%7B9%7D%5Cbigoplus%20B_%7B10%7D%3D1%5Cbigoplus%200%5Cbigoplus%201%3D0

gif.latex?X_%7B8%7DX_%7B4%7DX_%7B2%7DX_%7B1%7D%3D0101的二进制转换为十进制为5,结果非0,则错误发生在第5位。

 

循环冗余码

一、循环冗余码的求解过程

1.准备

给定原始信息串和生成多项式G(x)

2.原始信息后“添0”

设G(x)的最高阶数为r,则在原始信息后添上r个0,得F(x)。

3.计算r位校验码

将F(x)与G(x)逐位异或,得到r位校验码。

4.校验

在G(x)后加上得到的r位校验码,记为P(x),将P(x)与G(x)逐位异或,若结果为0,则信息无错;否则,信息有错,要求发送方进行重传。

二、循环冗余码求解示例

以原始信息串为10110,生成多项式为gif.latex?G%28x%29%3Dx%5E%7B4%7D+x+1为例。

1.原始信息后“添0”

G(x)的最高阶数为4,则在原始信息后添上4个0,得到F(x)=101100000。

2.计算r位校验码

将F(x)与G(x)逐位异或,得到r位校验码,结果如下图,r位校验码为1111,则P(x)=101101111。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemhlbmd5YW55YW4xMjM=,size_4,color_FFFFFF,t_70,g_se,x_16 

3.校验

将P(x)与G(x)逐位异或,若结果为0,则信息无错;否则,信息有错,要求发送方进行重传。结果如下图,结果为0,信息无错。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAemhlbmd5YW55YW4xMjM=,size_4,color_FFFFFF,t_70,g_se,x_16

至此,海明码和循环冗余码的求解过程就结束了。为查阅方便,做个整理,供大家参考学习。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhengyanyan123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值