一、手工解海明码


二、电路解海明码



要纠正某位的数据,根据校验组G5G4G3G2G1的值得出哪一位出错,直接变反。这里我们使用5-32译码器,即把G5G4G3G2G1代表的二进制数,转化为对应的十进制数,对应的输出端口为1(高电平),其他端口皆为0(低电平)
当G5G4G3G2G1 = 00000,输出:第0位上输出1,其余位输出0。G5G4G3G2G1 = 00010,输出:第2位上输出1,其余位输出0。
G6为总偶校验组,等于22位海明编码的异或。因为是偶校验,偶数个1,全部异或值为0.为了计算方便,再取一次非, 应该为1。如果G6=0时,表示总偶校验错误。当G5G4G3G2G1 = 00000,表示校验数据正确,记为 R = 1,
当G5G4G3G2G1 != 00000,表示校验数据出错,记为 R = 0。
由此,可知
当 R = 1,G6 = 1时,表示无错误。
当 R = 0,G6 = 0时,表示总偶校验位错误(G6),1位出错。
当 R = 1,G6 = 0时,表示1位出错。
当 R = 0,G6 = 1时,表示2位出错。
I was very pleased to search out this internet-site.I wished to thanks on your time for this glorious learn!! I undoubtedly having fun with every little little bit of it and I’ve you bookmarked to take a look at new stuff you blog post.