当前位置:文档之家› 曼彻斯特编码

曼彻斯特编码

曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个曼彻斯特编码同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。

曼彻斯特编码被用在以太网媒介系统中。

曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。

在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑1或0来发送的(技术上叫做反向不归零制(NRZ))。

相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。

曼彻斯特编码,常用于局域网传输。

在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。

还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。

对于以上电平跳变观点有歧义:关于曼彻斯特编码电平跳变,在雷振甲编写的<<网络工程师教程>>中对曼彻斯特编码的解释为:从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,模拟卷中的答案也是如此,张友生写的考点分析中也是这样讲的,而《计算机网络(第4版)》中(P232页)则解释为高电平到低电平的转换为1,低电平到高电平的转换为0。

清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:曼彻斯特编码从高到低的跳变是 0 从低到高的跳变是 1。

两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。

但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。

[编辑本段]编码方式就是说主要用在数据同步传输的一种编码方式。

【在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。

因此,这种编码也称为相位编码。

由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。

】【关于数据表示的约定】事实上存在两种相反的数据表示约定。

第一种是由G. E. Thomas, Andrew S. Tanenbaum等人在1949年提出的,它规定0是由低-高的电平跳变表示,1是高-低的电平跳变。

第二种约定则是在IEEE 802.4(令牌总线)和低速版的IEEE 802.3 (以太网)中规定, 按照这样的说法, 低-高电平跳变表示1, 高-低的电平跳变表示0。

由于有以上两种不同的表示方法,所以有些地方会出现歧异。

当然,这可以在差分曼彻斯特编码(Differential Manchester encoding)方式中克服.曼切斯特和差分曼切斯特编码是原理基本相同的两种编码,后者是前者的改进。

他们的特征是在传输的每一位信息中都带有位同步时钟,因此一次传输可以允许有很长的数据位。

曼切斯特编码的每个比特位在时钟周期内只占一半,当传输“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.海明码的原理在数据中间加入几个校验码,码距均匀拉大,将数据的每个二进制位分配在几个奇偶校验组里,当某一位出错,会引起几个校验位的值发生变化。

海明不等式:校验码个数为K,2个信息,1个信息用来指出“没有错误”,其余2-1个指出错误发生在那一位,但也可能是校验位错误,故有N<=2-1-K能被校验。

海明码的编码规则:1.每个校验位Ri被分配在海明码的第2位置上,2.海明码的每一位(Hi)是由多个/1个校验值进行校验的,被校验码的位置码是所有校验这位的校验位位置码之和。

一个例题:4个数据位d0,d1,d2,d3, 3个校验位r0,r1,r2,对应的位置为:d3 d2 d1 r2 d0 r1 r0 ======b7 b6 b5 b4 b3 b2 b1校验位的取值,就是他所能校验的数据位的异或b1为b3,b5,b7的异或,b2为b3,b6,b7 b4为b5,b6,b7海明v传送到接受方后,将上三式的右边(b1,b2,b4)的逻辑表达式分别异或上左边的值就得到了校验方程,如果上题采用偶校验G1=b1 b3 b5 b7的异或G2=b2 b3 b6 b7的异或G3=b4 b5 b6 b7的异或若G1G2G3为001是第一位错若为011是第三位错[编辑本段]3.海明码的生成与接收特注:以下的+均代表异或方法一: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"方法二:(不用查表,方便编程)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分别插于2的k次方位(k=0,1,2,3)。

码位分别为1,2,4,8。

2)冗余码A,B,C,D的线性码位是:(相当于监督关系式)监督关系式的推导:D C B A1 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 18 1 0 0 09 1 0 0 110 1 0 1 011 1 0 1 112 1 1 0 0根据上面表格得到 A B C D需要说明的是公式中参与计算的是表格中出现"1"的那个位右边是数据位的二进制数,公式中的"+"表示异或故此有如下表达式:A->1,3,5,7,9,11;(这里的1 3 5 7 9 11均为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)=1B=∑(0,1,0,0,1,0)=0C=∑(0,1,0,0,0) =1D=∑(0,1,1,0,0) =04)海明码为:"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)初值=02)求出冗余码的偶校验和,并按码位累加到err中:A=∑(1,0,1,0,1,0)=1 err=err+2^0=1B=∑(0,0,0,0,1,0)=1 err=err+2^1=3C=∑(1,1,0,0,0) =0 err=err+0 =3D=∑(0,1,1,0,0) =0 err=er r+0 =3由err≠0可知接收码字有错,3)码字的错误位置就是错误累加器(err)的值3。

4)纠错--对码字的第3位值取反得正确码字:"1 0 1 1 1 0 0 0 1 1 0 0"5)把位于2的k次方位的冗余码删除得信息码:"1 1 0 0 1 1 0 0"。

相关主题