海明码的监督关系海明码的信息位加数据位 是从右往左写吗 比如 7 6 5 4 3 2 1 其中124为校验位 然后写成

Hwuang2022-10-04 11:39:541条回答

海明码的监督关系
海明码的信息位加数据位 是从右往左写吗 比如 7 6 5 4 3 2 1 其中124为校验位 然后写成 反向排列的信息位+反向排列的冗余位?
还有就是 监督关系式有些是 S0=a0 a3 a4 a6 有些是 S0=a0 a3 a4 a5 为什么监督关系不是应该都是一样的吗 对于4位信息位 冗余位的第一位由数据位的1,2,4位参加偶校验不是吗

已提交,审核后显示!提交回复

共1条回复
ght1111 共回答了20个问题 | 采纳率95%
写不写成成反向排列的信息位+反向排列的冗余位和单纯的编码没多大关系,可能会和具体的数据传输要求有关.
监督关系式和一致校验矩阵的选择有关.
对于4位信息位 冗余位的第一位即7 6 5 4 3 2 1 中的7的确是由数据位的1,2,4位进行异或(偶校验)编码得到的.
1年前

相关推荐

1.已知信息码为“11001100”(k=8),求海明码码子 2.已知接受的码子为100110001100(k=8)求发
1.已知信息码为“11001100”(k=8),求海明码码子 2.已知接受的码子为100110001100(k=8)求发送端信息码
落花飘飞1年前1
coldair0 共回答了14个问题 | 采纳率85.7%
信息码为8位,8+n+1小于等于2的n次方,所以n=4,有4位校验位
假设4位校验位分别是a1a2a4a8,11001100对应b1b2b3b4b5b6b7b8,则海明码为
a1a2b1a4b2b3b4a8b5b6b7b8
a1=b1+b2+b4+b5+b7=1+1+0+1+0=1
a2=b1+b3+b4+b6+b7=1+0+0+1+0=0
a4=b2+b3+b4+b8=1+0+0+0=1
a8=b5+b6+b7+b8=1+1+0+0=0
所以海明码是101110001100
接收的100110001100是错误的,正确的是101110001100,所以发送端应该是11001100
海明码 计算若海明码的监督关系为:S0=a0+a3+a4+a6 ;S1=a1+a3+a5+a6 ;S2=a2+a4+a5
海明码 计算
若海明码的监督关系为:S0=a0+a3+a4+a6 ;S1=a1+a3+a5+a6 ;S2=a2+a4+a5+a6 .若需发送的信息为1101,则信道中传输的码字为 () .
A.1101001 B.1101011 C.1101010 D.1101111
饼M1年前1
gaoping711 共回答了10个问题 | 采纳率80%
貌似没答案吧,确定没写错?就吧答案往里代就好,比如
对于A:S0=1+1+0+1=1,S1=1+1+0+1=1.
海明码纠错运算有人在吗?问大家个问题啊使用海明码进行纠错,7位码长(X7……X1),其中4位数据,监督关系为C0=X1+
海明码纠错运算
有人在吗?问大家个问题啊
使用海明码进行纠错,7位码长(X7……X1),其中4位数据,监督关系为
C0=X1+X3+X5+X7
C1=X2+X3+X6+X7
C2=X4+X5+X6+X7
如果接受到的码字为1000101,那么纠错后的是?
不要正确的答案,求详细的过程,包括那个监督关系是什么意思,谢谢了
答案是1001101啊,难道答案错了?
小小标题1年前1
mason_w 共回答了14个问题 | 采纳率92.9%
根据你所给出的信息,X1...X7对应的位为:
X7 X6 X5 X4 X3 X2 X1
1 0 0 0 1 0 1
这样,C0=1♁1♁0♁1=1;
C2=0♁1♁0♁1=0;
C3=0♁0♁0♁1=1
结果为1表示这几项中有一项出现错误,所以(X1+X3+X5+X7)有一项错误,(X2+X3+X6+X7)没有项错误,(X4+X5+X6+X7)中有一项错误,综合分析得X5项出现错误,纠错应该把其值由0纠正为1,那么纠错后的码是:1010101 .很遗憾,与你给的答案好像有点出入.
还有另一种方法,不用管什么监督式,根据接受到的码字为1000101直接纠错,
X7 X6 X5 X4 X3 X2 X1
1 0 0 0 1 0 1
X1、X2、X4位为冗余位,根据给出的码字计算:
X1=X3+X5+X7=0
X2=X3+X6+X7=0
X4=X5+X6+X7=1
可以看出X1和X4位值与码字中的值不一样,所以1+4=5,第5(X5)位出现了错误,正确的码字应该是:1010101,
除去冗余的校验位,原码应该是:1011 .
海明码怎么计算的?海明码的生成..已知:信息码为:"0010".海明码的监督关系式为:S2=a2+a4+a5+a6S1=
海明码怎么计算的?
海明码的生成..已知:信息码为:"0010".海明码的监督关系式为:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
由监督关系式知冗余码为a2a1a0.
第一个问题:请问这个a2a1a0是怎么得来的,请给出推导过程
第二个问题:冗余码与信息码合成的海明码是:"0010a2a1a0".为什么a2a1a0直接加在信息码后面,而不是按照1,2,4,8位的顺序加在信息码后面(例如:001(a2)0(a1)(a0)
sammel1年前1
kredlsf 共回答了19个问题 | 采纳率89.5%
海明码的计算方法
海明码是一种具有纠错功能的校验码.本文简单地介绍海明码的计算方法.
海明码的目的是能够纠正一位误码.假设信息码共有 n 位,海明码共有 h 位,那么总共的码长为 n + h 位.为能检测出 n + h 位编码中其中一位的错误,海明码必须能够表示至少 n + h + 1 种状态,其中 n + h 种表示 n + h 位编码中有一位错误,另外还需要一种来表示整个编码正确无误.则海明码的长度需要满足下列关系:
2 h >= n + h + 1
于是根据这个式子我们可以得出以下的关系表:
h 2 3 4 5 6 7 8
n 1 4 11 12~26 27~57 58~120 121~247
以 4 位信息位为例,由上表可以看出需要的海明码长度为 3.
设信息位为 x4x3x2x1,添加的 3 位海明码为 a3a2a1,信息码和海明码组合之后得到的码为 H7H6H5H4H3H2H1.
错误 无 H1 H2 H3 H4 H5 H6 H7
C1 0 1 0 1 0 1 0 1 C1 = H1 + H3 + H5 + H7 = 0
C2 0 0 1 1 0 0 1 1 C2 = H2 + H3 + H6 + H7 = 0
C3 0 0 0 0 1 1 1 1 C3 = H4 + H5 + H6 + H7 = 0
如上表,在H1~H7中添加的 3 位海明码使得 C1~C3 的值为零.其中C1~C3为校验和.这样当 Hn 传输出错时,有 (C3C2C1)2 = n.
令 H1 = a1,H2 = a2,H4 = a3,则得出
H7H6H5H4H3H2H1 = x4x3x2a3x1a2a1
将上面的关系代入C1~C3的计算公式,得到C1 = H1 + H3 + H5 + H7 = a1 + x1 + x2 + x4 = 0 C2 = H2 + H3 + H6 + H7 = a2 + x1 + x3 + x4 = 0 C3 = H4 + H5 + H6 + H7 = a3 + x2 + x3 + x4 = 0
即a1 + x1 + x2 + x4 = 0 a2 + x1 + x3 + x4 = 0 a3 + x2 + x3 + x4 = 0
即a3 = x4 + x3 + x2a2 = x4 + x3 + x1a1 = x4 + x2 + x1
海明码1.海明码的概念海明码是一种可以纠正一位差错的编码.它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错.它必需满足以下关系式:2^r>=n+1  或  2^r>=k+r+1海明码的编码效率为:R=k/(k+r)式中 k为信息位位数r为增加冗余位位数 2.海明码的生成与接收方法一:1)海明码的生成.例1.已知:信息码为:"0010".海明码的监督关系式为:S2=a2+a4+a5+a6S1=a1+a3+a5+a6S0=a0+a3+a4+a6求:海明码码字.1)由监督关系式知冗余码为a2a1a0.2)冗余码与信息码合成的海明码是:"0010a2a1a0".设S2=S1=S0=0,由监督关系式得:a2=a4+a5+a6=1a1=a3+a5+a6=0a0=a3+a4+a6=1因此,海明码码字为:"0010101"2)海明码的接收.例2.已知:海明码的监督关系式为:S2=a2+a4+a5+a6S1=a1+a3+a5+a6S0=a0+a3+a4+a6接收码字为:"0011101"(n=7)求:发送端的信息码.1)由海明码的监督关系式计算得S2S1S0=011.2)由监督关系式可构造出下面错码位置关系表:S2S1S0000001010100011101110111错码位置无错a0a1a2a3a4a5a63)由S2S1S0=011查表得知错码位置是a3.4)纠错--对码字的a3位取反得正确码字:"0 0 1 0 1 0 1"5)把冗余码a2a1a0删除得发送端的信息码:"0010"
采用海明码纠正一位差错,若信息位为6位,则冗余位至少应为()位?
采用海明码纠正一位差错,若信息位为6位,则冗余位至少应为()位?
A.6位 B.7位
keitasina1年前1
yy塘里 共回答了16个问题 | 采纳率93.8%
B.7位 求给分!校验位比数据位多一位
计算机组成 海明码问题,P1=D0 xor D1 xor D3 xor D4 xor D6 为什么这样求
计算机组成 海明码问题,P1=D0 xor D1 xor D3 xor D4 xor D6 为什么这样求
海明校验码
海明码也是利用奇偶性来校验数据的.它是一种多重奇偶校验检错系统,它通过在数据位之间插入k个校验位,来扩大码距,从而实现检错和纠错.
设原来数据有n位,要加入k位校验码.怎么确定k的大小呢?k个校验位可以有pow(2,k) (代表2的k次方) 个编码,其中有一个代表是否出错.剩下pow(2,k)-1个编码则用来表示到底是哪一位出错.因为n个数据位和k个校验位都可能出错,所以k满足pow(2,k)-1 >= n+k.
设 k个校验码为 P1,P2...Pk,n个数据位为D0,D1...Dn 产生的海明码为 H1,H2...H(n+k) .如有8个数据位,根据pow(2,k)-1 >= n+k可以知道k最小是4.那么得到的海明码是:
H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1
D7 D6 D5 D4 P4 D3 D2 D1 P3 D0 P2 P1
然后怎么知道Pi校验哪个位呢.自己可以列个校验关系表
海明码 下标 校验位组
H1(P1) 1 P1
H2(P2) 2 P2
H3(D0) 1+2 P1,P2
H4(P3) 4 P3
H5(D1) 1+4 P1,P2
H6(D2) 2+4 P2,P3
H7(D3) 1+2+4 P1,P2,P3
H8(P4) 8 P4
H9(D4) 1+8 P1,P4
H10(D5) 2+8 P2,P4
H11(D6) 1+2+8 P1,P2,P4
H12(D7) 4+8 P3,P4
从表中可以看出
P1校验 P1,D0,D1,D3,D4,D6
P2校验 P2,D0,D1,D2,D3,D5,D6
P3校验 P3,D2,D3,D7
P4校验 P4,D4,D5,D6,D7
其实上表很有规律很容易记,要知道海明码Hi由哪些校验组校验,可以把i化成 二进制数 数中哪些位k是1,就有哪些Pk校验
如H7 7=0111 所以由P1,P2,P3 H11 11=1011 所以由P1,P2,P4 H3 3=0011 所以由P1,P2
那看看Pi的值怎么确定,如果使用偶校验,则
P1=D0 xor D1 xor D3 xor D4 xor D6
P2=D0 xor D1 xor D2 xor D3 xor D5 xor D6
P3=D1 xor D2 xor D3 xor D7
P4=D4 xor D5 xor D6 xor D7
栀子花开11271年前1
枕畔蝴蝶 共回答了18个问题 | 采纳率88.9%
p1处在第一个位置,所以位置码是0001,只要后面的数据位的位置码的最低位是1的都异或起来.比如说D0位置号是3也就是0011,D1位置号是5也就是0101,D3位置号是7也就是0111,D4位置号是9也就是1001,D6位置号是11也就是1011,这些数据位的位置号最低位都是1所以都异或在P1里面.P2位置号是0010,依次找到位置号倒数第二位是1的数据位全部异或在P2.P3P4类似,又不懂可以Q我,272406172
采用海明码纠正一位差错,若信息位为4位,则冗余位至少应为?
difiofe1年前1
sango2 共回答了19个问题 | 采纳率84.2%
冗余位至少应为3位.
解析:对于纠正一位差错的海明码,必须满足如下条件:记冗余位长度为r,那么总的码长为:2^r-1,信息位长度为:2^r-r-1.
所以依题设 2^r-r-1=4,r=3,即冗余位至少应为3位
1)海明码的生成.已知:信息码为:"0010".海明码的监督关系式为:S2=a2+a4+a5+a6 S1=a1+a3+a
1)海明码的生成.
已知:信息码为:"0010".
海明码的监督关系式为:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
求:海明码码字
1)由监督关系式知冗余码为a2a1a0.
2)冗余码与信息码合成的海明码是:"0010a2a1a0".
设S2=S1=S0=0,由监督关系式得:
a2=a4+a5+a6=1
a1=a3+a5+a6=0
a0=a3+a4+a6=1
因此,海明码码字为:"0010101"
在(1)中,从哪里可以看出由监督关系式知冗余码为a2a1a0?
(2)中,为什么冗余码与信息码合成的海明码是:"0010a2a1a0",而不是a2a1a00010?
还有 S2=a2+a4+a5+a6为什么就等于a2=a4+a5+a6=1,这里面是怎么转换的?
最后问下 0010 和a3,a4,a5,a6有什么关系?是不是a3=0,a4=0,a5=1,a6=0?
卓卓少爷1年前1
小鸟爱大树 共回答了15个问题 | 采纳率86.7%
已知信息码i1,i2,i3,i4,i5,i6,与p1.p2,p3,p4有如下关系
i1+i2+ +i5 +p1=0 mod 2
i1 +i3+i4 +i6+p2=0 mod 2
+i2+i3+i4 +p3=0 mod 2
i4+i5+i6+p4=0 mod 2
编码 011 110
上面的不是等号,都是同余号.
已知有效信息位为01101110,求海明码的生成和校验过程?
风芦草1年前1
万花筒看世界 共回答了19个问题 | 采纳率89.5%
将K位检测位记作Ci(i=1,2,4,8...)分别安插在n+k位代码编号的第1,2,4,8,16...位上.
01101110(n=8)根据2的k次方大于等于n+k+1,可求出配置成海明码需增添检测位k=4,
原码01101110记作B8,B7,B6,B5,B4,B3,B2,B1.
则原码同检测位的位置安排如下:
二进制序号:1 2 3 4 5 6 7 8 9 10 11 12
名称 C1 C2 B8 C4 B7 B6 B5 C8 B4 B3 B2 B1
如果按配偶原则来配置海明码,则
C1应使1,3,5,7,9,11位中的“1”的个数为偶数;
C2应使2,3,6,7,10,11位中的“1”的个数为偶数;
C4应使4,5,6,7,12位中的“1”的个数为偶数;
C8应使8,9,10,11,12位中的“1”的个数为偶数;
故C1应为3位⊕5位⊕7位⊕9位⊕11位,即C1=B8⊕B7⊕B5⊕B4⊕B2
故C2应为3位⊕6位⊕7位⊕10位⊕11位,即C2=B8⊕B6⊕B5⊕B3⊕B2
故C4应为5位⊕6位⊕7位⊕12位,即C4=B7⊕B6⊕B5⊕B1
故C8应为9位⊕10位⊕11位⊕12位,即C8=B4⊕B3⊕B2⊕B1
即,
C1=B8⊕B7⊕B5⊕B4⊕B2=0⊕1⊕0⊕1⊕1=1
C2=B8⊕B6⊕B5⊕B3⊕B2=0⊕1⊕0⊕1⊕1=1
C4=B7⊕B6⊕B5⊕B1=1⊕1⊕0⊕0=0
C8=B4⊕B3⊕B2⊕B1=1⊕1⊕1⊕0=1
故01101110的海明校验码为C1 C2 B8 C4 B7 B6 B5 C8 B4 B3 B2 B1=110011011110
这是一道例题:例1.已知:信息码为:"0010".海明码的监督关系式为:S2=a2+a4+a5+a6 S1=a1+a3+
这是一道例题:例1.已知:信息码为:"0010".海明码的监督关系式为:S2=a2+a4+a5+a6 S1=a1+a3+a5+a6 S0=
这是一道例题:
例1.已知:信息码为:"0010".海明码的监督关系式为:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
求:海明码码字.
1)由监督关系式知冗余码为a2a1a0.
2)冗余码与信息码合成的海明码是:"0010a2a1a0".
设S2=S1=S0=0,由监督关系式得:
a2=a4+a5+a6=1
a1=a3+a5+a6=0
a0=a3+a4+a6=1
因此,海明码码字为:"0010101"
----------------------------
我的疑问是:
"冗余码与信息码合成的海明码是:"0010a2a1a0"."
为什么不是0 0 1 a2 0 a1 a0
我在书上看到:传送的数据流为D7,D6,D5,D4,P4,D3,D2,D1,P3,D0,P2,P1
649381331年前1
edwinwu310 共回答了17个问题 | 采纳率100%
若海明码的监督关系为:S0=a0+a3+a4+a6 ;S1=a1+a3+a5+a6 ;S2=a2+a4+a5+a6 .
已知海明码的监督关系式为:S2=a2+a3+a4+a6 S1=a1+a4+a5+a6 S0=a0+a3+a4+a5
已知海明码的监督关系式为:S2=a2+a3+a4+a6 S1=a1+a4+a5+a6 S0=a0+a3+a4+a5
接收端收到的码字为a6a5a4a3a2a1a0=1010100,问在最多一位错的情况下发送端发送的码字是什么?(写出推演过程).
但是不知道为什么这么做,请高手一步步教我
tytg1年前1
charlieboo 共回答了17个问题 | 采纳率88.2%
.(1)根据海明码的监督关系式
S2=a2+a3+a4+a6
S1=a1+a4+a5+a6
S0=a0+a3+a4+a5,得下表:
S2S1S0
000
001
010
011
100
101
110
111
错误位置
无错
a0
A1
a5
a2
a3
a6
a4
(2)将a6a5a4a3a2a1a0=1010100分别代入海明码的监督关系式
得:(其中“+”号表示异或运算);
s2=1+0+1+1=1
s1=0+1=0+1=0
s0=0+0+1+0=1
即s2s1s0=101
(3)查表可知:接收到的比特序列第4位有错,正确的应是:
a6a5a4a3a2a1a0=1011100
海明码公式公式中有 m+k+1s2=a2+a4+a5+a6s1=a1+a3+a5+a6s0=a0+a3+a4+a6不懂
帅肚兜1年前3
xiaowenfeng 共回答了20个问题 | 采纳率100%
当然是 m+k+1
海明码的监督位计算我知道海明码的推算公式2^r>=r+k+1但不清楚每一位冗余位他所监督的位,比如第一个冗余位,监督a1
海明码的监督位计算
我知道海明码的推算公式2^r>=r+k+1
但不清楚每一位冗余位他所监督的位,比如第一个冗余位,监督a1,a3,.
想问这些位怎么知道的.不要复制,不是答的多我就给分的.
葉子格格1年前1
年少不知狂 共回答了13个问题 | 采纳率92.3%
海明码
1.海明码的概念
海明码是一种可以纠正一位差错的编码.它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错.它必需满足以下关系式:
2^r>=n+1 或 2^r>=k+r+1
海明码的编码效率为:
R=k/(k+r)
式中 k为信息位位数
r为增加冗余位位数
2.海明码的生成与接收
方法一:
1)海明码的生成.
例1.已知:信息码为:"0010".海明码的监督关系式为:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
求:海明码码字.
1)由监督关系式知冗余码为a2a1a0.
2)冗余码与信息码合成的海明码是:"0010a2a1a0".
设S2=S1=S0=0,由监督关系式得:
a2=a4+a5+a6=1
a1=a3+a5+a6=0
a0=a3+a4+a6=1
因此,海明码码字为:"0010101"
2)海明码的接收.
例2.已知:海明码的监督关系式为:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
接收码字为:"0011101"(n=7)
求:发送端的信息码.
1)由海明码的监督关系式计算得S2S1S0=011.
2)由监督关系式可构造出下面错码位置关系表:
S2S1S0
000
001
010
100
011
101
110
111
错码位置
无错
a0
a1
a2
a3
a4
a5
a6
3)由S2S1S0=011查表得知错码位置是a3.
4)纠错--对码字的a3位取反得正确码字:"0 0 1 0 1 0 1"
5)把冗余码a2a1a0删除得发送端的信息码:"0010"
方法二:(不用查表,方便编程)
1)海明码的生成(顺序生成法).
例3.已知:信息码为:" 1 1 0 0 1 1 0 0 " (k=8)
求:海明码码字.
1)把冗余码A、B、C、…,顺序插入信息码中,得海明码
码字:" A B 1 C 1 0 0 D 1 1 0 0 "
码位:1 2 3 4 5 6 7 8 9 10 11 12
其中A,B,C,D分别插于2k位(k=0,1,2,3).码位分别为1,2,4,8.
2)冗余码A,B,C,D的线性码位是:(相当于监督关系式)
A->1,3,5,7,9,11;
B->2,3,6,7,10,11;
C->4,5,6,7,12;(注 5=4+1;6=4+2;7=4+2+1;12=8+4)
D->8,9,10,11,12.
3)把线性码位的值的偶校验作为冗余码的值(设冗余码初值为0):
A=∑(0,1,1,0,1,0)=1
B=∑(0,1,0,0,1,0)=0
C=∑(0,1,0,0,0) =1
D=∑(0,1,1,0,0) =0
4)海明码为:"1 0 1 1 1 0 0 0 1 1 0 0"
2)海明码的接收.
例4.已知:接收的码字为:"1 0 0 1 1 0 0 0 1 1 0 0"(k=8)
求:发送端的信息码.
1)设错误累加器(err)初值=0
2)求出冗余码的偶校验和,并按码位累加到err中:
A=∑(1,0,1,0,1,0)=1 err=err+20=1
B=∑(0,0,0,0,1,0)=1 err=err+21=3
C=∑(1,1,0,0,0) =0 err=err+0 =3
D=∑(0,1,1,0,0) =0 err=err+0 =3
由err≠0可知接收码字有错,
3)码字的错误位置就是错误累加器(err)的值3.
4)纠错--对码字的第3位值取反得正确码字:
"1 0 1 1 1 0 0 0 1 1 0 0"
5)把位于2k位的冗余码删除得信息码:"1 1 0 0 1 1 0 0"
在线等————急.海明码题海明码是一种可以纠正单个位差错的高效率线性分组码,已知信息码为0110,求海明码,
mzh53271年前1
bjdsjcj6822793 共回答了14个问题 | 采纳率78.6%
海明码的目的是能够纠正一位误码.假设信息码共有 n 位,海明码共有 h 位,那么总共的码长为 n + h 位.为能检测出 n + h 位编码中其中一位的错误,海明码必须能够表示至少 n + h + 1 种状态,其中 n + h 种表示 n + h 位编码中有一位错误,另外还需要一种来表示整个编码正确无误.则海明码的长度需要满足下列关系:
2 h >= n + h + 1
于是根据这个式子我们可以得出以下的关系表:
h 2 3 4 5 6 7 8
n 1 4 11 12~26 27~57 58~120 121~247
以 4 位信息位为例,由上表可以看出需要的海明码长度为 3.
设信息位为 x4x3x2x1,添加的 3 位海明码为 a3a2a1,信息码和海明码组合之后得到的码为 H7H6H5H4H3H2H1.
错误 无 H1 H2 H3 H4 H5 H6 H7
C1 0 1 0 1 0 1 0 1 C1 = H1 + H3 + H5 + H7 = 0
C2 0 0 1 1 0 0 1 1 C2 = H2 + H3 + H6 + H7 = 0
C3 0 0 0 0 1 1 1 1 C3 = H4 + H5 + H6 + H7 = 0
如上表,在H1~H7中添加的 3 位海明码使得 C1~C3 的值为零.其中C1~C3为校验和.这样当 Hn 传输出错时,有 (C3C2C1)2 = n.
令 H1 = a1,H2 = a2,H4 = a3,
则得出
H7H6H5H4H3H2H1 = x4x3x2a3x1a2a1
将上面的关系代入C1~C3的计算公式,得到
C1 = H1 + H3 + H5 + H7 = a1 + x1 + x2 + x4 = 0
C2 = H2 + H3 + H6 + H7 = a2 + x1 + x3 + x4 = 0
C3 = H4 + H5 + H6 + H7 = a3 + x2 + x3 + x4 = 0

a1 + x1 + x2 + x4 = 0
a2 + x1 + x3 + x4 = 0
a3 + x2 + x3 + x4 = 0

a3 = x4 + x3 + x2
a2 = x4 + x3 + x1
a1 = x4 + x2 + x1
为何选择H1、H2、H4作为校验码而不是H1H2H3?
这是因为校验码必须使C3C2C1都为0,而根据公式
C1 = H1 + H3 + H5 + H7 = 0
C2 = H2 + H3 + H6 + H7 = 0
C3 = H4 + H5 + H6 + H7 = 0
要想使得对任何x4×3×2×1都能求出唯一的a3a2a1,
那么只能选择H4H2H1.
假设选择H3=a3,那么H3是等于H7+H5+H1,还是H7+H6+H2呢?
所以只能选择在三个式子中各出现一次的H4H2H1.
海明码是什么样编码的?H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 D7 D6 D5 D
海明码是什么样编码的?
H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 D7 D6 D5 D4 P4 D3 D2 D1 P3 D0 P2 P1
Bluer_蓝血人1年前1
蜡烛无心 共回答了17个问题 | 采纳率82.4%
我在网上面帮你找到以个,可以参考一下 #include #include #include #define N 1270 #define K 1200 #define G 70 //#define HAIMING using namespace std; int len[N]; int i_2_r(int a) //求一个2^n次方的数的幂 { int count=0; if(a==1) return 0; while(a>1) { a=a/2; count++; } return count; } void in_to_Group(int a[],int b,int n) //添加到各组中 { int i; for(i=1;i= k+r+1 { int i,s = 1; for(i = 1;i = k+r+1) return 1; else return 0; } int is_i_2_r(int i) //判断 i 是否为 2^n 位 { if(i == 1) return 1; if(i%2 != 0) return 0; while(i%2 == 0 && i != 1) i=i/2; if(i==1) return 1; return 0; } int int_to_invdec(int a[],int n) //求一个整数的逆序的二进制码 { int i=1; //以计算校验位号 while(n) { a[i++]=n%2; n/=2; } return i-1; //返回位数 } int count1(int a[],int n) //计算 1 的个数 { int i,count = 0; for(i = 1;i
采用海明码纠正一位差错,若信息位为7位,则冗余位至少应为
LAYSAN1年前1
hfdf31 共回答了16个问题 | 采纳率93.8%
海明码是一种可以纠正一位差错的编码.它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错.它必需满足以下关系式:
2^r>=k+r+1
所以当k=7时,r=4,即冗余位至少为4位
在海明码编码中,设K为数据位,R为校验位,当R=6时,求最大编码效率和最小编码效率?
睡觉穿袜子1年前1
mrkg 共回答了15个问题 | 采纳率93.3%
根据2^r>=k+r+1,由r=6,知k的最大值为2^6-6-1=57,k的最小值为使2^5>=k+5+1不成立的值,即27.
故编码效率最大值为57/(57+6)=90.48%;
编码效率的最小值为27/(27+5)=84.38%.
例1.已知:信息码为:"0010".海明码的监督关系式为:S2=a2+a4+a5+a6 S1=a1+a3+a5+a6 S
例1.已知:信息码为:"0010".海明码的监督关系式为:S2=a2+a4+a5+a6 S1=a1+a3+a5+a6 S0=a0+a3+a4+a6 求
navig1年前1
jun3691 共回答了12个问题 | 采纳率91.7%
其实这个问题在百度百科上面有写,可能提问者有不太理解,那我再具体解释一下,要求的是海明码的码字吧,什么叫海明码码字呢,就是数据位加上校验位.所谓信息码就是数据,校验位就是a2a1a0(校验格式都是这样的就是把校验位放在数据位的前面,例如S2=a2+a4+a5+a6 其中a2即使校验位).之后再讲点基础的怎么排放数据位和校验位形成海明码字呢,举个例子4个数据位d0,d1,d2,d3,3个校验位r0,r1,r2,对应的位置为:d3 d2 d1 r2 d0 r1 r0 ======b7 b6 b5 b4 b3 b2 b1 .
那么上题中的海明码字就是0010a2a1a0 因为我们正确的数据 所以我们假定s2s1s0=000.然后就可以求出a2a1a0=101,所以海明码字位0010101

大家在问