曼彻斯特编码Word文档格式.docx
《曼彻斯特编码Word文档格式.docx》由会员分享,可在线阅读,更多相关《曼彻斯特编码Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,模拟卷中的答案也是如此,张友生写的考点分析中也是这样讲的,而《计算机网络(第4版)》中(P232页)则解释为高电平到低电平的转换为1,低电平到高电平的转换为0。
清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:
曼彻斯特编码从高到低的跳变是0从低到高的跳变是1。
两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。
但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的。
[编辑本段]
编码方式
就是说主要用在数据同步传输的一种编码方式。
【在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。
因此,这种编码也称为相位编码。
由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。
】
【关于数据表示的约定】
事实上存在两种相反的数据表示约定。
第一种是由G.
E.Thomas,AndrewS.Tanenbaum等人在1949年提出的,它规定0是由低-高的电平跳变表示,1是高-低的电平跳变。
第二种约定则是在I
EEE802.4(令牌总线)和低速版的I
EEE802.3(以太网)中规定,按照这样的说法,低-高电平跳变表示1,高-低的电平跳变表示0。
由于有以上两种不同的表示方法,所以有些地方会出现歧异。
当然,这可以在差分曼彻斯特编码(DifferentialManchesterencoding)方式中克服.
曼切斯特和差分曼切斯特编码是原理基本相同的两种编码,后者是前者的改进。
他们的特征是在传输的每一位信息中都带有位同步时钟,因此一次传输可以允许有很长的数据位。
曼切斯特编码的每个比特位在时钟周期内只占一半,当传输“1”时,在时钟周期的前一半为高电平,后一半为低电平;
而传输“0”时正相反。
这样,每个时钟周期内必有一次跳变,这种跳变就是位同步信号。
差分曼切斯特编码是曼切斯特编码的改进。
它在每个时钟位的中间都有一次跳变,传输的是“1”还是“0”,是在每个时钟位的开始有无跳变来区分的。
差分曼切斯特编码比曼切斯特编码的变化要少,因此更适合与传输高速的信息,被广泛用于宽带高速网中。
然而,由于每个时钟位都必须有一次变化,所以这两种编码的效率仅可达到50%左右
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.海明码的原理
在数据中间加入几个校验码,码距均匀拉大,将数据的每个二进制位分配在几个奇偶校验组里,当某一位出错,会引起几个校验位的值发生变化。
xx不等式:
校验码个数为K,2个信息,1个信息用来指出“没有错误”,其余2-1个指出错误发生在那一位,但也可能是校验位错误,故有N<
=2-1-K能被校验。
海明码的编码规则:
1.每个校验位Ri被分配在海明码的第2位置上,
2.海明码的每一位(Hi)是由多个/1个校验值进行校验的,被校验码的
位置码是所有校验这位的校验位位置码之和。
一个例题:
4个数据位d0,d1,d2,d3,3个校验位r0,r1,r2,对应的位置为:
d3d2d1r2d0r1r0======b7b6b5b4b3b2b1
校验位的取值,就是他所能校验的数据位的异或
海明v传送到接受方后,将上三式的右边(b1,b2,b4)的逻辑表达式分别
异或上左边的值就得到了校验方程,如果上题采用偶校验
G1=b1b3b5b7的异或
G2=b2b3b6b7的异或
b1为b3,b5,b7的异或,b2为b3,b6,b7b4为b5,b6,b7
G3=b4b5b6b7的异或
若G1G2G3为001是第一位错
若为011是第三位错
3.海明码的生成与接收
特注:
以下的+均代表异或
方法一:
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
因此,海明码码字为:
00101"
2)海明码的接收。
例2.已知:
接收码字为:
(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位取反得正确码字:
0010101"
5)把冗余码a2a1a0删除得发送端的信息码:
方法二:
(不用查表,方便编程)
1)海明码的生成(顺序生成法)。
例3.已知:
11001100"
(k=8)
1)把冗余码
A、B、
C、„,顺序插入信息码中,得海明码
码字:
AB1C100D1100"
码位:
123456789101112
其中A,B,C,D分别插于2的k次方位(k=0,1,2,3)。
码位分别为1,2,4,8。
2)冗余码A,B,C,D的线性码位是:
(相当于监督关系式)
监督关系式的推导:
DCBA
10001
20010
30011
40100
50101
60110
70111
81000
91001
101010
111011
121100
根据上面表格得到ABCD
需要说明的是公式中参与计算的是表格中出现"
的那个位右边是数据位的二进制数,公式中的"
+"
表示异或
故此有如下表达式:
A->
1,3,5,7,9,11;
(这里的1357911均为A那一列出现1的位)
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.已知:
接收的码字为:
100110001100"
(k=8)
1)设错误累加器(err)初值=0
4)海明码为:
101110001100"
2)求出冗余码的偶校验和,并按码位累加到err中:
A=∑(1,0,1,0,1,0)=1err=err+2^0=1
B=∑(0,0,0,0,1,0)=1err=err+2^1=3
C=∑(1,1,0,0,0)=0err=err+0=3
D=∑(0,1,1,0,0)=0err=err+0=3
由err≠0可知接收码字有错,
3)码字的错误位置就是错误累加器(err)的值3。
4)纠错--对码字的第3位值取反得正确码字:
5)把位于2的k次方位的冗余码删除得信息码:
11001100"