有权码和无权码区别是每一位是否有权值。
\r\n如典型的8421码为有权码,“8421”表示从高到低各位二进制位对应的权值分别为8、4、2、1,将各二进制位与权值相乘,并将乘积相加就得相应的十进制数。
例如,8421BCD码“0111”,0×8+1×4+1×2+1×1=7D,其中D表示十进制(Decimal)数。
\r\n格雷码为典型的无权码,雷码的编码规则是相邻的两代码之间只有一位二进制位不同,每位并没有权值,对应的十进制数是规定的,并不是如8421码能算出来的。
\r\n\r\n有权BCD码,如:8421(最常用)、2421、5421?00\r\n无权BCD码,如:余3码、格雷码?
格雷码怎么计算
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(GrayCode)。
典型的二进制格雷码简称格雷码,因1953年公开的弗兰克·格雷专利“PulseCodeCommunication”而得名,当初是为了通信,现在则常用于模拟-数字转换和位置-数字转换中。
法国电讯工程师波特在1880年曾用过的波特码相当于它的一种变形。
1941年GeorgeStibitz设计的一种8元二进制机械计数器正好符合格雷码计数器的计数规律。
一.格雷码的编码规则
格雷码母线位置检测单元包括地址发射单元、天线箱、地址检测单元、格雷码母线及安装辅件等部分。
利用最简单的单匝线圈的感应原理,当天线箱线圈中通进交变电流时,在天线箱四周会产生交变磁场。
格雷码母线近似处在一个交变的、均匀分布的磁场中,每对格雷码母线芯线会产生感应电动势。
发射单元地址信号通过电磁耦合方式传送到格雷码母线的感应环线上。
地址检测单元对接收到的信号进行相位比较。
交叉线的信号相位与平行线的信号相位相同,地址为“0”;交叉线的信号相位与平行线的信号相位相反,地址为“1”,这样感应的地址信息是格雷码排列,永不重复,由此确定移动站在格雷码母线长度方向上的位置。
二.格雷码有的规律
在数字系统中只能识别0和1,各种数据要转换为二进制代码才能进行处理,格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。
格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,自然二进制码可以直接由数模转换器转换成模拟信号,但某些情况,例如从十进制的3转换成4时二进制码的每一位都要变,使数字电路产生很大的尖峰电流脉冲。
而格雷码则没有这一缺点,它是一种数字排序系统,其中的所有相邻整数在它们的数字表示中只有一个数字不同。
它在任意两个相邻的数之间转换时,只有一个数位发生变化。
它大大地减少了由一个状态到下一个状态时逻辑的混淆。
另外由于最大数与最小数之间也仅一个数不同,故通常又叫格雷反射码或循环码。
下表为几种自然二进制码与格雷码的对照表:
┌────┬──────┬───┬────┬──────┬────┐。
│十进制数│自然二进制数│格雷码│十进制数│自然二进制数│格雷码│
├────┼──────┼───┼────┼──────┼────┤。
│0│0000│0000│8│1000│1100│
├────┼──────┼───┼────┼──────┼────┤。
│1│0001│0001│9│1001│1101│
├────┼──────┼───┼────┼──────┼────┤。
│2│0010│0011│10│1010│1111│
├────┼──────┼───┼────┼──────┼────┤。
│3│0011│0010│11│1011│1110│
├────┼──────┼───┼────┼──────┼────┤。
│4│0100│0110│12│1100│1010│
├────┼──────┼───┼────┼──────┼────┤。
│5│0101│0111│13│1101│1011│
├────┼──────┼───┼────┼──────┼────┤。
│6│0110│0101│14│1110│1001│
├────┼──────┼───┼────┼──────┼────┤。
│7│0111│0100│15│1111│1000│
└────┴──────┴───┴────┴──────┴────┘。
一般的,普通二进制码与格雷码可以按以下方法互相转换:
二进制码-格雷码(编码):从最右边一位起,依次将每一位与左边一位异或(XOR)(),作为对应格雷码该位的值,最左边一位不变(相当于左边是0);
格雷码-〉二进制码(解码):从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变)。
数学(计算机)描述:
原码:p[0~n];格雷码:c[0~n](n∈N);编码:c=G(p);解码:p=F(c);书写时从左向右标号依次减小。
编码:c=pXORp[i+1](i∈N,0≤i≤n-1),c[n]=p[n];
解码:p[n]=c[n],p=cXORp[i+1](i∈N,0≤i≤n-1)。
GayCode是由贝尔实验室的FankGay在20世纪40年代提出的(是1880年由法国工程师Jean-Mauice-EmlleBaudot发明的),用来在使用PCM(PusleCodeModulation)方法传送讯号时避免出错,并于1953年3月17日取得美国专利。
由定义可知,GayCode的编码方式不是唯一的,这里讨论的是最常用的一种。
还没有评论,来说两句吧...