留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

定向距离为d的Gray码

上一篇

下一篇

刘菲, 瞿云云, 包小敏, 等. 定向距离为d的Gray码[J]. 西南大学学报(自然科学版), 2018, 40(3): 89-94. doi: 10.13718/j.cnki.xdzk.2018.03.013
引用本文: 刘菲, 瞿云云, 包小敏, 等. 定向距离为d的Gray码[J]. 西南大学学报(自然科学版), 2018, 40(3): 89-94. doi: 10.13718/j.cnki.xdzk.2018.03.013
Fei LIU, Yun-yun QU, Xiao-min BAO, et al. Gray Codes with a Directional Distance of d[J]. Journal of Southwest University Natural Science Edition, 2018, 40(3): 89-94. doi: 10.13718/j.cnki.xdzk.2018.03.013
Citation: Fei LIU, Yun-yun QU, Xiao-min BAO, et al. Gray Codes with a Directional Distance of d[J]. Journal of Southwest University Natural Science Edition, 2018, 40(3): 89-94. doi: 10.13718/j.cnki.xdzk.2018.03.013

定向距离为d的Gray码

  • 基金项目: 国家自然科学基金项目(61462016);贵州省科学技术基金项目(黔科合J字[2014]2125号);贵州师范大学博士启动项目(0514021);贵州省教育厅青年科技人才成长项目(黔教合KY字[2016]130)
详细信息
    作者简介:

    刘菲(1992-),女,山东东营人,硕士研究生,主要从事编码理论和密码学的研究 .

    通讯作者: 包小敏, 博士,教授; 
  • 中图分类号: O211.4

Gray Codes with a Directional Distance of d

  • 摘要: 本文给出定向距离为d(≥1)的Gray码的定义,并给出了两个生成定向距离为d的循环Gray码的方法.
  • 加载中
  • 表 1  3个不同的3进制3位Gray码

    第1类 第2类 第3类
    000 120 210 000 122 200 000 210 120
    001 121 211 001 121 201 002 212 122
    002 122 212 002 120 202 001 211 121
    012 102 222 012 110 212 021 201 111
    010 100 220 011 111 211 020 200 110
    011 101 221 010 112 210 022 202 112
    021 111 201 020 102 220 012 222 102
    022 112 202 021 101 221 011 221 101
    020 110 200 022 100 222 010 220 100
    下载: 导出CSV

    表 2  (3,4,3)循环Gray码G(3,4,3)

    b1b2b3 g1g2g3 b1b2b3 g1g2g3 b1b2b3 g1g2g3 b1b2b3 g1g2g3 b1b2b3 g1g2g3
    333 000 302 012 211 330 120 212 023 121
    332 003 301 011 210 333 113 202 022 120
    331 002 300 010 203 323 112 201 021 123
    330 001 233 310 202 322 111 200 020 122
    323 031 232 313 201 321 110 203 013 112
    322 030 231 312 200 320 103 233 012 111
    321 033 230 311 133 220 102 232 011 110
    320 032 223 301 132 223 101 231 010 113
    313 022 222 300 131 222 100 230 003 103
    312 021 221 303 130 221 033 130 002 102
    311 020 220 302 123 211 032 133 001 101
    310 023 213 332 122 210 031 132 000 100
    303 013 212 331 121 213 030 131
    下载: 导出CSV
  • [1] doi: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5219803 FLORES I. Reflected Number Systems[J]. IRE Transactions on Electronic Computers, 1992, 5(2): 79-82.
    [2] doi: http://ieeexplore.ieee.org/document/5009360/ ER M C. On Generating the N-ary Reflected Gray Codes[J]. IEEE Transactions on Computers, 2009, 33(8): 739-741.
    [3] SANKAR K J, PANDHARIPANDE V M, MOHARIR P S. Generalized Gray Codes[C]. Proceedings of 2004 International Symposium on IEEE, Intelligent Signal Processing and Communication Systems. New York: IEEE Ress, 2004: 654-659.
    [4] doi: http://en.cnki.com.cn/article_en/cjfdtotal-gxyz200203017.htm ZOU J C, LI J F, QI D X. Generalized Gray Code and Its Application in the Scrambling Technology of Digital Images[J]. Applied Mathematics A Journal of Chinese Universities, 2002, 3(3): 363-370.
    [5] COHN M. Affine M-ary Gray Codes[J]. Inform Control, 1963, 6(1): 70-78. doi: 10.1016/S0019-9958(63)90119-0
    [6] SHARMA B D, KHANN R K. On M-ary Gray Codes[J]. Information Sciences, 1978, 15(1): 31-43. doi: 10.1016/0020-0255(78)90020-8
    [7] GUPTA S. Advanced Level Cyclic Gray Codes with Application[J]. International Journal of Electronics Communication and Computer Technology(IJECCT), 2014, 4(3): 619-622.
    [8] doi: http://en.cnki.com.cn/article_en/cjfdtotal-jsjk200501021.htm WANG D, CHEN S M, MA J W. The Interface Technology of Asynchronous FIFOs Based on Gray Code and Its Application[J]. Computer Engineering Science, 2005, 27(1): 58-60.
    [9] OUDJIDA A K, TAGZOUT S, BOUZOUIA B, et al. A Reconfigurable Counter Controller for Digital Motion Control Applications[J]. Microelectronics Journal, 1997, 28(6-7): 683-690. doi: 10.1016/S0026-2692(97)00009-8
  • 加载中
表( 2)
计量
  • 文章访问数:  1097
  • HTML全文浏览数:  771
  • PDF下载数:  98
  • 施引文献:  0
出版历程
  • 收稿日期:  2016-10-17
  • 刊出日期:  2018-03-20

定向距离为d的Gray码

    通讯作者: 包小敏, 博士,教授; 
    作者简介: 刘菲(1992-),女,山东东营人,硕士研究生,主要从事编码理论和密码学的研究
  • 1. 西南大学 数学与统计学院,重庆 400715
  • 2. 贵州师范大学 数学科学学院,贵阳 550001
基金项目:  国家自然科学基金项目(61462016);贵州省科学技术基金项目(黔科合J字[2014]2125号);贵州师范大学博士启动项目(0514021);贵州省教育厅青年科技人才成长项目(黔教合KY字[2016]130)

摘要: 本文给出定向距离为d(≥1)的Gray码的定义,并给出了两个生成定向距离为d的循环Gray码的方法.

English Abstract

  • Gray码的编码规则是使任何两个相邻代码只有一个位的状态不同,其余位必须有相同状态.它的好处在于从某一编码变到下一个编码时只有一位状态发生变化,有利于得到更好的译码波形. Gray码的类型很多,表 1列举的是3种长度为3的3进制Gray码.

    第一种类型的Gray码是从全零码字开始,指针在最右边,指针所指的数字加1,其余数字保持不变.如果得到的码字与前面的码字不同,则这是新的码字;如果得到的码字与前面的码字相同,则指针左移.重复上述过程,得到如表 1所示第1类中的Gray码. 表 1所示第2类中的Gray码,也叫反射Gray码[1-3]. 表 1中第3类也是Gray码的一种.这种类型的Gray码与表 1的第1类中的Gray码,不仅具有Gray码的所有特性,而且Gray序中后一个码字与前一个码字不同位置处的数字之间有相同的规律:第1类中后一个码字减去前一个码字得到的数字模3都余1,这种类型的Gray码本文称之为定向距离为1的Gray码;第3类中后一个码字减去前一个码字得到的数字模3都余2,这种类型的Gray码本文称之为定向距离为2的Gray码.

    Gray码除了在通信、硬件设计领域中应用以外,在计算机相关科学的其他方面也有广泛的应用[4-9].对Gray码进行详细分类,并给出其生成算法,对Gray码的研究及更广泛的应用有着积极的作用.本文给出定向距离为d的循环Gray码的定义,并给出了两种生成定向距离为d的循环Gray码的方法.

    本文中nmd都是正整数,a mod m表示ma的余数.

    定义1(nm进制Gray码)  所有mnnm进制向量的一个排列称为(nm)Gray码,此排列遵循的规则是:任意两个相邻向量只有一个位置上的值不一样.若最后一个向量和第一个向量也只有一个位置上的值不一样,则称此Gray码为(nm)循环Gray码.

    m是一个正整数,任意一个非负整数都可表示成一个m进制的数.将一个m进制的数看成一个向量,则有下面的定义.

    定义2(自然序)  将整数0,1,…,mn-1按顺序分别表示成长为nm进制向量,就得到所有mnnm进制向量的一个排列,这个排列称为所有mnnm进制向量的自然序.

    定义3(定向距离)  对于abZm={0,1,…,m-1},定义从ab的定向距离为(b-a) mod m.对U=(a1a2,…,an),V=(b1b2,…,bn)∈Zmn,定义从向量U到向量V的定向距离为$ \sum\limits_{\mathit{i} = 1}^\mathit{n} {\left( {{\mathit{b}_\mathit{i}} - {\mathit{a}_\mathit{i}}} \right){\rm{mod}}\;\mathit{m}} $.

    定义4(定向距离为d的Gray码)  一个(nm)Gray码称为定向距离为d的(nm)Gray码,简称为(nmd)Gray码,若此Gray码中任一向量到后一个向量的定向距离为d.若最后一个向量到第一个向量的定向距离也为d,则称此Gray码为(nmd)循环Gray码.

    对于m进制Gary码来说,定向距离最大为m-1,最小为1,不可能出现定向距离为0的情形.下面我们总假设dm.

    文献[5]将二进制Gray码的概念推广到m进制Gray码,给出了一种生成m进制Gray码的方法;文献[6]给出m进制自然序与m进制Gray码(定向距离为1时)的转换方法,这也是利用自然序来生成定向距离为1的Gray码的一种生成方法.本文对任意正整数d,考虑定向距离为d的Gray码.

  • 首先证明下面的引理.

    引理1  集合{dt mod m | t=0,1,…,m-1}包含m个元当且仅当gcd(dm)=1.

      当gcd(dm)=1时,若存在0≤t1t2m-1使得dt1 mod m=dt2 mod m成立,则有m整除d(t2-t1),因此m整除(t2-t1),但这是不可能的,因为0<t2-t1m.

    当gcd(dm)>1时,设m=qgcd(dm),则1≤qm,而dq mod m=0.此时形如

    的元中至少有两个相同:0和qd mod m.

    定理1  当gcd(dm)>1时不存在(nmd)Gary码.

      当gcd(dm)>1时,由引理1知,集合{dt mod m | t=0,1,…,m-1}包含元素的个数少于m,即从0到m-1的数字不可能全部出现.而(nmd)Gray码若排成一个矩阵,则每一列上的数字都要包含从0到m-1这m个数字,否则矩阵的行数将少于qk.所以当gcd(dm)>1时不存在(nmd)Gray码.

    下面利用递归的方法来构造(nmd)循环Gray码.由定理1,我们假设gcd(dm)=1.

    定义G(1,md)=(0,d,2d mod m,…,(m-1)d mod m)T,则由引理1知G(1,md)是(1,md)循环Gray码.

    对0≤im-1,定义G(i)(1,md)如下:

    由于G(1,md)是(1,md)循环Gray码,所以G(i)(1,md)也是(1,md)循环Gray码.

    对整数jt,记$ {{\mathit{\boldsymbol{j}}}_{\mathit{t}}}={{\overbrace{\left( \mathit{j}\rm{, }\mathit{j}\rm{, }\cdots, \mathit{j} \right)}^{{}}}^{\rm{T}}}$.令

    G(2,md)中相邻的两行同时出现在子阵((dt mod m)mG(t)(1,md))中,其中0≤tm-1,则这两行的第一个分量都为dt mod m,而它们的第二个分量则是G(t)(1,md))中的相邻两行,故这两行的定向距离是d.若G(2,md)中相邻的两行一个是子阵((dt mod m)mG(t)(1,md))的最后一行,另一个是子阵((d(t+1) mod m)mG(t+1)(1,md))的第一行,则它们的第二个分量都为(m-t-1) mod m,而它们的第一个分量分别是dt mod m和d(t+1) mod m,因此这两行的定向距离为(d(t+1)-dt) mod m=d,所以G(2,md)是(2,md)循环Gray码.

    对0≤im-1,定义G(i)(2,md)如下:

    显然G(0)(2,md)=G(2,md).可以验证G(i)(2,md)是(2,md)循环Gray码.令

    对0≤im-1,定义G(i)(3,md)如下:

    可以验证G(i)(3,md)是(3,md)循环Gray码.

    对0≤im-1,若m个(n-1,md)循环Gray码G(i)(n-1,md)已经得到,其中G(n-1,md)=G(0)(n-1,md),令

    则同样可以验证G(nmd)是(nmd)循环Gray码.

    例1  对m=3,d=2,按上面的方法得(1,3,2)Gray码和G(1)(1,3,2),G(2)(1,3,2):

    进而又可得(2,3,2)Gray码如下:

    再由G(2,3,2)=G(0)(2,3,2),G(1)(2,3,2)和G(2)(2,3,2)又可得到表 1中第3类的G(3,3,2).

    文献[6]中研究的Gray码是本文的一个特例:(nm,1)循环Gray码.

  • 第1节给出的构造G(nmd)的方法是个递归的方法,效率较低,在实际应用中不方便.本节给出一个直接的方法.

    算法1  DirectionalGrayCodeGen(nmd)

    输入:整数m≥2,n≥1,1≤dm且gcd(dm)=1

    输出:mn×n矩阵G

      (g1g2,…,gn)←(0,0,…,0)n//1×n零矩阵

      G←(g1g2,…,gn)

      (b1b2,…,bn)←(m-1,m-1,…,m-1)n //计数器向量初始化

      p=n //指针初始化

      while (b1b2,…,bn)≠(0,0,…,0)n do

       while bp=0 and p>1 do

        p=p-1 //指针左移一位

       end while

       gp←(gp+d) (mod m)

       RowAppend (g1g2,…,gn) toG

       bpbp-1 //p位的计数器减1

       if pn then

        (bp+1,…,bn)←(m-1,…,m-1)1×(n-p) //还原p+1到n位的计数器

        p=n //指针复位

       end if

      end while

    return G

    定理2  设mnd都是正整数.若1≤dm,则算法1生成G(nmd).

      当n=1时,易知算法1生成G(1,md).当(g1)初始化为G(0)(1,md)的最后一个行向量((m-1)d mod m)时,算法生成G(1)(1,md).一般地,当(g1)初始化为G(i)(1,md)的最后一个行向量((m-i-1)d mod m)时,算法生成G(i+1)(1,md).设n>1,假设当n-1,且对0≤im-1,(g1,…,gn-1)初始化为G(i)(n-1,md)的最后一个行向量时,算法生成G(i+1)(n-1,md).

    对输入nmd,随着算法1的运行,当计数器向量由初始值(m-1,m-1,…,m-1)n顺序变为(m-1,0,…,0)n时,由归纳假设,算法1将生成(0mn-1G(0)(n-1,md)).由于(m-1,0,…,0)n≠(0,0,…,0)n,外部的while循环将继续进行.此时p=2,经过内部的while循环后p=1.此时算法将当前向量,即(0mn-1G(0)(n-1,md))的最后一个行向量,(0,g2,…,gn)的第一个分量加d,生成新的当前向量(dg2,…,gn).之后计数器向量的第一个分量变为m-2,后面的分量还原,计数器向量更新为(m-2,m-1,…,m-1)n.由于(g2,…,gn)是G(0)(n-1,md)的最后一个行向量,在经过外部while的mn-1-1次循环后算法将生成(dmn-1G(1)(n-1,md)).此时的计数器向量为(m-2,0,…,0)n.这样,经过两轮的mn-1次while循环,算法内部的G

    再经过一次循环,计数器向量更新为(m-3,m-1,…,m-1)n,而当前向量为

    其中(g2,…,gn)是G(1)(n-1,md)的最后一个行向量.

    一般地,对1≤im-1,经过i轮的mn-1次while循环,算法内部的G

    再经过一次循环,计数器向量更新为(m-i-1,m-1,…,m-1)n,而当前向量为

    其中(g2,…,gn)是G(i-1)(n-1,md)的最后一个行向量.由归纳假设,经过又一轮mn-1次while循环,算法将生成((id mod m)mn-1G(i)(n-1,md)).因此经过m轮的mn-1次while循环,算法将生成

    此时的计数器向量为(0,0,…,0)n,满足while循环的终止条件,算法输出G,而G=G(nmd).

    表 2是输入m=4,n=3,d=3时的一个例子.

  • 本文提出定向距离为d(≥1)的概念,并给出了两个生成定向距离为d的循环Gray码的方法,其中一个是用递归的方法生成G(nmd),但递归的方法效率较低,实际使用起来不够方便,本文又给出直接生成G(nmd)的算法,对于任意d,只要满足算法的条件,都能生成定向距离为d的Gray码.对于每一种方法,后面都有详细的例子可供理解.

参考文献 (9)

目录

/

返回文章
返回