精华内容
下载资源
问答
  • 循环码的多项式述循环码的生成多项式系统循环.ppt
    千次阅读
    2021-05-25 03:21:02

    循环码的多项式述循环码的生成多项式系统循环

    6.1 循环码的多项式描述 6.2 循环码的生成多项式 6.3 系统循环码 6.4 多项式运算电路 6.5 循环码的编码电路 6.6 循环码的译码 6.7 循环汉明码 6.8 缩短循环码 (1) 循环码的性质 循环码是线性分组码的一个重要子类; 由于循环码具有优良的代数结构,使得可用简单的反馈移位寄存器实现编码和伴随式计算,并可使用多种简单而有效的译码方法; 循环码是研究最深入、理论最成熟、应用最广泛的一类线性分组码。 (2) 循环码的定义 循环码:如果 (n,k) 线性分组码的任意码矢 C=(Cn-1,Cn-2,…,C0) 的 i 次循环移位,所得矢量 C(i)=(Cn-1-i,Cn-2-i,…,C0,Cn-1,…,Cn-i) 仍是一个码矢,则称此线性码为 (n,k) 循环码。 (3) 码多项式 码多项式:为了运算的方便,将码矢的各分量作为多项式的系数,把码矢表示成多项式,称为码多项式。其一般表示式为 C(x)=Cn-1xn-1+Cn-2xn-2+…+C0) 码多项式 i 次循环移位的表示方法 记码多项式C(x)的一次左移循环为 C(1)(x) ,i 次左移循环为 C(i)(x) 码多项式的模 (xn+1) 运算 0和1两个元素模2运算下构成域。 若 p 为素数,则整数全体在模 p 运算下的剩余类全体 在模 p 下构成域。 以 p=3 为模的剩余类全体 模2运算的规则如下: 码矢 C 循环 i 次所得码矢的码多项式 C(x) 乘以 x,再除以 (xn+1),得 上式表明:码矢循环一次的码多项式 C(1)(x) 是原码多项式 C(x)乘以 x 除以 (xn+1) 的余式。写作 因此, C(x) 的 i 次循环移位 C(i)(x) 是 C(x) 乘以 xi 除以 (xn+1) 的余式,即 结论:循环码的码矢的 i 次循环移位等效于将码多项式乘 xi 后再模 (xn+1)。 (4) 举例:(7,3) 循环码, 可由任一个码矢,比如 (0011101) 经过循环移位,得到其它6个非0码矢; 也可由相应的码多项式(x4+x3+x2+1),乘以xi(i=1,2,…,6),再模(x7+1)运算得到其它6个非0码多项式。移位过程和相应的多项式运算如表6.1所示。 (1) 循环码的生成矩阵 根据循环码的循环特性,可由一个码字的循环移位得到其它的非0码字。在 (n,k) 循环码的 2k 个码字中,取前 (k-1) 位皆为0的码字 g(x)(其次数r=n-k),再经 (k-1) 次循环移位,共得到 k 个码字: g(x),xg(x),…,xk-1 g(x) (2) 循环码的生成多项式 码的生成矩阵一旦确定,码就确定了; 这就说明: (n,k) 循环码可由它的一个 (n-k) 次码多项式 g(x) 来确定; 所以说 g(x) 生成了 (n,k) 循环码,因此称 g(x) 为码的生成多项式。 (3) 生成多项式和码多项式的关系 定理6.1:在 (n,k) 循环码中,生成多项式 g(x) 是惟一的 (n-k) 次码多项式,且次数是最低的。 [证明]: 先证在 (n,k) 循环码系统中存在 (n-k) 次码多项式。 因为在 2k 个信息组中,有一个信息组为 ,它的对应码多项式的次数为 n-1-(k-1)=n-k (n-k) 次码多项式是最低次码多项式。 若 g(x) 不是最低次码多项式,那么设更低次的码多项式为g’(x) ,其次数为 (n-k-1)。 g’(x) 的前面 k 位为0,即 k个信息位全为0,而监督位不为0,这对线性码来说是不可能的,因此 g(x) 是最低次的码多项式,即 gn-k 必为1。 g0=1,否则经 (n-1) 次左移循环后将得到低于 (n-k) 次的码多项式。 g(x) 是惟一的 (n-k) 次多项式。 如果存在另一个 (n-k) 次码多项式,设为 g’’(x) ,根据线性码的封闭性,则 g(x) + g’’(x) 也必为一个码多项式。由于 g(x)和 g’’(x) 的次数相同,它们的和式的 (n-k) 次项系数为0,那么 g(x) + g’’(x) 是一个次数低于 (n-k) 次的码多项式,前面已证明 g(x) 的次数是最低的,因此 g’’(x) 不能存在,所以 g(x) 是惟一的 (n-k) 次码多项式。 定理6.2:在 (n,k) 循环码中,每个码多项式 C(x) 都是 g(x) 的倍式;而每个为 g(x)

    更多相关内容
  • MATLAB实现循环码编译码过程,有文档介绍,简单易懂
  • 循环码编解码.zip

    2020-06-20 21:14:24
    本设计要求利用MATLAB或其他编程语言生成信号源序列,信道噪声,实现循环码编解码过程。 (1)已知(10,6)系统循环码的生成多项式为:g(x)=x4+x+1,请设计该循环码的编码器。 (2)输入随机码元序列长度至少1000位...
  • 编码原理 :(n,k)循环码的生成多项式g(x)一定是 (xn-1)的因式,即一定存在一个多项式h(x),满足: (xn-1)=g(x) h(x) 或 g(x)| (xn-1) 反之,如果g(x)是(xn-1)的(n-k)次因式,g(x)一定是 某(n,k)循环码的生成...
  • 本文件为循环码编码和译码的m文件,里面含有关键性注释,方便学习和参考
  • 资源名:循环码性能的MATLAB仿真程序源码.zip 资源类型:程序源代码 源码说明: 基于MATLAB仿真的循环码性能程序源码,包含完整代码和注释,非常适合借鉴学习 适合人群:新手及有一定经验的开发人员
  • (15,10)循环码的编解码

    2018-11-09 20:32:42
    该C语言程序实现了通信原理中关于纠错码章节,(15,10)循环码的编码和解码。
  • matlab循环码编码实现

    2016-12-01 23:25:14
    matlab循环码编码实现
  • 利用(7,4)系统循环码的生成多项式,设计该循环码的编码器等
  • 论文+代码+实验结果
  • 循环码_lzw_

    2021-10-03 13:28:12
    本文件中,利用了lzw以及循环码的原理,对数据进行了加密解密的功能实现。
  • 利用这一联系,提出了GF(4)上的经典常数循环码满足迹内积自正交的充要条件,从而构造出了对应的量子常数循环码。最后给出了该类码的一些例子,特别是利用该方法可以构造出量子汉明码。常见的量子循环码实际上是...
  • 包含源码,实验报告,实现信息序列的循环编译,实现加错和纠错。
  • 实验三 信道编码一 一实验目的 1通过实验掌握循环码的编码原理 2通过实验掌握循环码的译码原理 3了解编码与检错能力之间的关系 二实验内容 1自行设置循环码计算所设计出的循环码的所有码字集合 3整理好所有的程序...
  • 用模奇数n的4-分圆陪集和生成多项式刻划四元循环码,得到一般四元循环码的对偶码为自正交码的充要性判别准则,将前人关于自正交四元单根循环码和四元BCH码的对偶码为自正交判别准则推广到任意四元循环码,包括四元...
  • 基于MATLAB通过对未编码,汉明码 ,循环码及卷积码的信噪比进行比较,比较它们之间的性能
  • 循环码编译码matlab程序 循环码编码程序 function [ C ] = cyclic_encoder( Si ) %C为循环编码的输出编码结果 %对x^8+1进行模2因式分解得到x^8+1=(x^3+x^2+x+1(x^5+x^4+x+1) y=size(Si,2%y表示Si的列数即输入码元的...
  • 在等汉明距离线性分组码定义基础上,依据其可编为循环码的特性,对该码及其对偶码的生成矩阵构造方式以及主要参数进行了进一步的研究。
  • 从图像可以得出,循环码在干扰下性能不理想,循环码加交织会改善性能等。从霍夫曼传输结果和传输差错曲线上来看,霍夫曼码在理想条件下可以无失真传输,遇到干扰后就会产生差错的扩散,造成一系列错误
  • 摘要:循环码作为线性码的一个子类,由于具有高效的编码和解码算法,因此在消费类电子产品,数据存储系统和通信系统中得到了应用。 本文介绍了五族三重三元...
  • 循环码编码

    2018-06-20 17:32:17
    循环码是线性码的一个重要的子类,它有以下两大特点:第一,码的结构可以用代数方法来构造和分析,并且可以找到各种实用的译码方法;第二,由于其循环特性,编码运算和伴随式计算,可用反馈移位寄存器来实现,硬件实现...
  • 循环码编码与解码

    2014-04-21 22:08:29
    循环码编码与解码,并用MATLAB对其实现。
  • 循环码的C++实现

    2017-07-06 15:07:18
    信息论里面循环码的编程实现(信息论实验C++版)
  • 数据结构-循环码的编码与译码-实验报告.docx
  • 基于循环码的短块非二进制LDPC码的构造
  • 有限域Fq上λ-常循环码是商环R=Fq[x]/
  • 基于正交循环码的M-ary扩频解扩新算法及FPGA实现.pdf
  • 循环码与bch码

    2012-10-15 15:00:22
    内含循环码、bch码的原理和编码器译码器的设计。属于ppt,供学习使用。
  • 循环码

    万次阅读 2016-09-19 13:47:34
    循环码     循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,这些 性质有助于按所要求的纠错能力系统地构造这类码,且易于实现;同时循环码的性能也较好,具有较强的...

     

    循环码    

     

        循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,这些

    性质有助于按所要求的纠错能力系统地构造这类码,且易于实现;同时循环码的性能也较好,具有较强的检错

    和纠错能力。

        一、 循环码的特点

        循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所

    得到的码组仍然是许用码组。若(  …  )为一循环码组,则(  )、(

     … )、……还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循

    环码组。表8-7给出了一种(7,3)循环码的全部码字。由此表可以直观地看出这种码的循环特性。例如,表中

    的第2码字向右移一位,即得到第5码字;第6码字组向右移一位,即得到第3码字。
     

        为了利用代数理论研究循环码,可以将码组用代数多项是来表示,这个多项式被称为码多项式,对于许用循

    环码A=(  …  ),可以将它的码多项式表示为:

      (8-20)

    对于二进制码组,多项式的每个系数不是0就是1,x仅是码元位置的标志。因此,这里并不关心x的取值。而

    表8-7中的任一码组可以表示为:

    (8-20)

    对于二进制码组,多项式的每个系数不是0就是1,x仅是码元位置的标志。因此,这里并不关心x的取值。

        而表8-7中的任一码组可以表示为:(8-21)

                         表8-7一种(7,3)循环码的全部码字

    序号

    码字

     

    序号

    码字

    信息位

    a6 a5 a4

    监督位

    a3 a2 a1 a0

    信息位

    a6 a5 a4

    监督位

    a3 a2 a1 a0

    1

    0  0  0

    0  0  0  0

    5

    1  0  0

    1  0  1  1

    2

    0  0  1

    0  1  1  1

    6

    1  0  1

    1  1  0  0

    3

    0  1  0

    1  1  1  0

    7

    1  1  0

    0  1  0  1

    4

    0  1  1

    1  0  0  1

    8

    1  1  1

    0  0  1  0

      例如,表中的第7码字可以表示为:

                (8-22)                      

     在整数运算中,有模n运算。例如,在模2运算中,有1+1=2≡0(模2),1+2=3≡1(模2),2×3=6≡0

    (模2)等。因此,若一个整数m可以表示为:

                                                 (8-23)
     

    则在模n运算下,有mp(模n),也就是说,在模n运算下,一整数m等于其被n除所得的余数。
        在码多项式运算中也有类似的按模运算法则。若一任意多项式F(x)被一个n次多项式N(x)除,得到商式Q(x)

    和一个次数小于n的余式R(x),也就是:                        

                    (8-24)

        
        则可以写为:F(x)≡R(x)(模N(x))。
        这时,码多项式系数仍按模2运算,即只取值0和1,假设:计算x4+x2+1除以x3+1的值可得:             
     

                        (8-25)


             (8-27)
     

        其对应的码组为0101110,它正是表8-7中第3码字。
        通过上述分析和演算可以得到了一个重要的结论:一个长度为n的循环码,它必为按模()运算的一

    个余式。

         二、 循环码的生成多项式和生成矩阵

        (全0码字除外)称为生成多项式,用g(x)表示。可以证明生成多项式g(x)具有以下特性: 
        (1)g(x)是一个常数项为1的r=n-k次多项式;
        (2)g(x)是的一个因式;
        (3)该循环码中其它码多项式都是g(x)的倍式。

         为了保证构成的生成矩阵G的各行线性不相关,通常用g(x)来构造生成矩阵,这时,生成矩阵G可以表示为:

                                                      (8-28)
     

          其中,因此,一旦生成多项式g(x)确定以后,该循环码的生成矩阵就可以

    确定,进而该循环码的所有码字就可以确定。显然,式(8-28)不符合形式,所以此生成矩阵不是典

    型形式,不过,可以通过简单的代数变换将它变成典型矩阵。
        现在以表8-7的(7,3)循环码为例,来构造它的生成矩阵和生成多项式,这个循环码主要参数为,n=7,

    k=3,r=4。从表中可以看到,其生成多项式可以用第1码字构造: 
     

                         (8-29)

                          (8-30)

                             

                      

        在上面的例子中,是利用表8-7给出的(7,3)循环码的所有码字,构造了它的生成多项式和生成矩阵。但

    在实际循环码设计过程中,通常只给出码长和信息位数,这就需要,这时可以利用设计生成多项式和生成矩阵g(x)所具有基本特性进行设计。

        首先,生成多项式g(x)是的一个因式,其次g(x)是一个r次因式。因此,就可以先对进行因式分

    解,找到它的r次因式。下面仍以(7,3)循环码为例进行分析。
        第一步:对进行因式分解得:

                             (8-31)

     第二步:构造生成多项式g(x
        为了求(7,3)循环码的生成多项式g(x),要从式(8-31)中找到r=n-k次的因子。不难看出,这样的因子

    有两个,即:

     

                                               (8-32)

                                               (8-33) 
     

        以上两式都可作为生成多项式用。不过,选用的生成多项式不同,产生出的循环码码组就不同。用式(8-32

    作为生成多项式产生的循环码即为表8-7所列。
        当然,在利用式(8-30)得到生成矩阵G以后,可以通过线性变化,使之成为典型矩阵,这时就可以采用类似监督矩阵H
        由于(n,k)循环码中g(x)是的因式,因此可令:

                    (8-34)

                                          
          这里h(x)称为监督多项式。与式(8-28)所表示的G(x)相对应,监督矩阵表

          示为: 
     

          其中逆多项式。 

     

                           (8-36)

     

          对于表8-7中的(7,3)循环码,,则: 

     

           

          

        8.4.3 循环码的编、译码方法

        1.编码过程 
        在编码时,首先需要根据给定循环码的参数确定生成多项式g(x),也就是从的因子中选一个(n-k)次

    多项式作为g(x);然后,利用循环码的编码特点,即所有循环码多项式A(x)都可以被g(x)整除,来定义生成多项

    g(x)。 
        根据上述原理可以得到一个较简单的系统:设要产生(n,k)循环码,m(x)表示信息多项式,循环码编码方法

    则其次数必小于k,而·m(x)的次数必小于n,用·m(x)除以g(x),可得余数r(x),r(x)的次数必小于

    n-k),将r(x)加到信息位后作监督位,就得到了系统循环码。下面就将以上各步处理加以解释。
        (1)用m(x)。这一运算实际上是把信息码后附加上(n-k)个“0”。例如,信息码为110,它相当

    m(x)=+x。当n-k=7-3=4时,·mx)=+,它相当于1100000。而希望的到得系统循环码多项

    式应当是A(x) = ·m(x) + r(x)。
        (2)求r(x)。由于循环码多项式A(x)都可以被g(x)整除,也就是: 

     

                         (8-37) 

     

           因此,用·m(x)除以g(x),就得到商Q(x)和余式r(x),即

                             (8-38)

         这样就得到了r(x)。
        (3)编码输出系统循环码多项式A(x)为: 

     

                                      (8-39)

        例如,对于(7,3)循环码,若选用,信息码110时,则:

              (8-40)

       上式相当于              

        这时的编码输出为:1100101。
        上述三步编码过程,在硬件实现时,可以利用除法电路来实现,这里的除法电路采用一些移位寄存器和模2

    加法器来构成。下面将以(7,3)循环码为例,来说明其具体实现过程。设该(7,3)循环码的生成多项式为:,则构成的系统循环码编码器如图8-6所示,图中有4个移位寄存器,一个双刀双掷开关。

        当信息位输入时,开关位置接“2”,输入的信息码一方面送到除法器进行运算,一方面直接输出;当信息位全部

    输出后,开关位置接“1”,这时输出端接到移位寄存器的输出,这时除法的余项,也就是监督位依次输出。当信

    息码为110时,编码器的工作过程如表8-8: 
                                     

                                               图8-6 (7,3)循环码编码器

                           
         顺便指出,由于数字信号处理器(DSP)和大规模可编程逻辑器件(CPLD和FPGA)的广泛应用,目前已多采

        用这些先进器件和相应的软件来实现上述编码。

                表8-8 编码器工作过程

    输入 (m)

    移位寄存器 (abcd)

    反馈 (e)

    输出 (f)

    0

    0   0   0   0

    0

    0

    1
    1
    0
     

    1   1   1   0
    1   0   0   1
    1   0   1   0

    1
    1
    1
     

    1
    1
    0
     

    0
    0
    0
    0

    0   1   0   1
    0   0   1   0
    0   0   0   1
    0   0   0   0

    0
    1
    0
    1

    0
    1
    0
    1

    2.译码过程 
        对于接收端译码的要求通常有两个:检错与纠错。达到检错目的的译码十分简单,可以由式(8-37),通过

    判断接收到的码组多项式B(x)是否能被生成多项式g(x)整除作为依据。当传输中未发生错误时,也就是接收的码

    组与发送的码组相同,即A(x)=B(x),则接收的码组B(x)必能被g(x)整除;若传输中发生了错误,则A(x)≠B(x)

    B(x)不能被g(x)整除。因此,可以根据余项是否为零来判断码组中有无错码。
        需要指出的是,有错码的接收码组也有可能被g(x)整除,这时的错码就不能检出了。这种错误被称为不可检

    错误,不可检错误中的错码数必将超过这种编码的检错能力。
        在接收端为纠错而采用的译码方法自然比检错要复杂许多,因此,对纠错码的研究大都集中在译码算法上。

    我们知道,校正子与错误图样之间存在某种对应关系。如同其它线性分组码,循环编码和译码可以分三步进行:
        (1)由接收到的码多项式B(x)计算校正子(伴随式)多项式S(x);
        (2)由校正子S(x)确定错误图样E(x);
        (3)将错误图样E(x)与B(x)相加,纠正错误。
        上述第(1)步运算和检错译码类似,也就是求解B(x)整除g(x)的余式,第(3)步也很简单。因此,纠错码

    译码器的复杂性主要取决于译码过程的第(2)步。
        基于错误图样识别的译码器称为
    梅吉特译码器,它的原理图如图8-7所示。错误图样识别器是一个具有(n-k

    个输入端的逻辑电路,原则上可以采用查表的方法,根据校正子找到错误图样,利用循环码的上述特性可以简化识

    别电路。梅吉特译码器特别适合于纠正2个以下的随机独立错误。
        图8-7中k级缓存器用于存储系统循环码的信息码元,模2加电路用于纠正错误。当校正子为0时,模2加来自错

    误图样识别电路的输入端为0,输出缓存器的内容;当校正子不为0时,模2加来自错误图样识别电路的输入端在第

    i位输出为1,它可以使缓存器输出取补,即纠正错误。
        循环码的译码方法除了
    梅吉特译码器以外,还有补错编译码、大数逻辑编译码等方法。捕错译码是梅吉特译码的一种

    变形,也可以用较简单的组合逻辑电路实现,它特别适合于纠正突发错误、单个随机错误和两个错误的码字。大数

    逻辑译码也称为门限译码,这种译码方法也很简单,但它只能用于有一定结构的为数不多的大数逻辑可译码,虽然

    在一般情形下,大数逻辑可译码的纠错能力和编码效率比有相同参数的其它循环码(如BCH码)稍差,但它的译码

    算法和硬件比较简单,因此在实际中有较广泛的应用。


                                           

                                     图8-7 梅吉特译码器原理


    http://www.jlrtvu.jl.cn/wlkc/course/180002088-1/203-03.htm

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 590,664
精华内容 236,265
关键字:

循环码

友情链接: 工程备份.zip