
海明码和CRC编码的图解和详细计算过程.docx
4页本文格式为Word版,下载可任意编辑海明码和CRC编码的图解和详细计算过程 一、CRC编码 1、已知多项式和原报文,求CRC编码,如:使用多项式G(x)=x^5 + x^4 + x +1,对报文10100110举行CRC编码,那么编码后的报文是什么? 方法与步骤: 步骤1:对报文10100110,在末尾添加所给多项式的最高次阶个0,如此题为x^5,那么添加5个0,变为:1010011000000 步骤2:由多项式G(x)=x^5 + x^4 + x +1,得其阶数为1的二进制编码为:110011 步骤3:步骤1中求得的1010011000000对步骤2中求得的110011举行模二除法,所得到的余数即为校验码,把校验码添加在原报文尾部即为所求的编码报文1010011011000,概括如下: 2.已知道接收到的CRC编码,求原编码或判断是否出错,如:已知G(x)=x^5 + x^4 + x +1,接收的为1010011011001,问是否出错? 步骤一:由多项式G(x)=x^5 + x^4 + x +1,得其阶数为1的二进制编码为:110011。
步骤二:用接收的报文1010011011001对步骤一的110011举行模二除法,看余数是否为0,如为0那么正确,如不为0,那么出错,计算余数为1,那么出错如下图: 二、海明码 1.求海明码,如:求1011海明码 步骤一:求校验码位数r,公式为:2^r ≥r+k+1的最小r题目中为2^3≥3+4+1,所以取r=3,即校验码为3位 步骤二:画图,并把原码的位编号写成2的指数求和的方式,其中位编号长度为原码和校验码个数之和,从1开头校验码插在2的阶码次方的位编号下,且阶小于r如下: 原码的位编号写成2的指数求和: 7=2^2+2^1+2^0; 6=2^2+2^1; 5=2^2+2^0; 3=2^1+2^0; 步骤三:求校验位,即每个校验位的值为步骤二中“原码的位编号写成2的指数求和”式子中相应2的阶展现的位编号下原码的值异或即: r0=I4异或I2异或I1=1; (2^0次展现在7,5,3位,其对应的值为I4,I2,I1) r1=I4异或I3异或I1=0; (2^1次展现在7,6,3位,其对应的值为I4,I3,I1) r2=I4异或I3异或I2=0; (2^0次展现在7,6,5位,其对应的值为I4,I3,I2) 把r0,r1,r2带入海明码,得所求的海明码为:1010101 2.已知海明码,求原码或判断是否出错并改正错位,如:信息位8位的海明码,接收110010100000时,判断是否出错,并求启程送端信息位。
步骤一:求校验码位数r,公式为:2^r ≥r+k+1的最小r题目中为2^4≥4+8+1,所以取k=4,即校验码为4位 步骤二:根据作图,求得信息位编码和发过来的校验码记为r,并由原编码从新计算出新的校验码与发来的校验码r举行异或运算,概括如下: 得到,原码11000100,发送来的校验码r为1000 再根据求R,把原码的位编号写成2的指数求和: 12=2^3+2^2; 11=2^3+2^1+2^0; 10=2^3+2^0; 9=2^3+2^0; 7=2^2+2^1+2^0; 6=2^2+2^1; 5=2^2+2^0; 3=2^1+2^0; 求得: S3=r3异或(I8异或I7异或I6异或I5) S2=r2异或(I8异或I4异或I3异或I2) S1=r1异或(I7异或I6异或I4异或I3异或I1) S0=r0异或(I7异或I5异或I4异或I2异或I1) S3S2S1S0,其十进制为0,表示没出错,假设不为零,那么其十进制数即为出错的位 此题S3S2S1S0=1001,十进制为9,即第九位出错更正来既为:11010100 — 4 —。
