基于systemview实现差错控制编码的仿真内容摘要:
正是由于循环码具有码的代数结构清晰、性能较好、编译码简单和易于实现的特点,因此在目前的计算机纠错系统中所使用的线性分组码几乎都是循环码。 它不仅可以用于纠正独立的随机错误,而且也可以用于纠正突发错误。 在描述循环码之前,先看以下例子。 设( 7, 4)汉明码 C的生成矩阵和校验矩阵为: 于是可以得到相应的 16 个码组: ( 1000101)( 0001011)( 0010110)( 0101100)( 1011000)( 0110001)( 1100010)( 0100111)( 1001110)( 0011101)( 0111010)( 1110100)( 1101001)( 1010011)( 1111111)( 0000000) 由上述这些码组可以看到,如果 是 C的码组,则它的左右移位都是 C的码组,具有这种特性的线性分组码称为 循环码。 循环码具有以下一些性质: 封闭性(线性性)。 任何许用码组的线性和还是许用码组。 由此性质可以知:线性码都包含全零码。 且最小码重就是最小码距。 循环性。 任何许用的码组循环移位后的码组还是许用码组。 循环码可以用多项式来表示。 为了用代数理论的方法研究循环码的特性,我们经常将循环码表示成码多项式的形 式:通常将码 的码多项式定义如下: 其中, D、。 这里, GF( 2)表示 2元域,在 GF( 2)内只有两种元素 0, 1,且 0、 1 满足如下的加法和乘法运算规则: 1+1=0、 1+0= 0+1= 0+0=0; 1 1= 1 0=0、 00=0、 0 1=0。 例如( 1011000)码的多项式表 示为。 循环码的生成多项式: 循环码完全由其码长 n 和生成多项式构成。 其中 g( D)是一个能除尽 的nk 阶多项式。 阶数低于 n 并能被 g( D)除尽的一组多项式就构成一个( n, k)循环码。 也就是说,阶数小于 n1且能被 g( D)除尽的每个多项式都是循环码的许用码组。 例如,( 7, 4)循环码的生成多项式 ,则阶数低于 n1 能被 g( D)除尽的多项式为 ,其中。 假设 ,则对应的循环码多项式为 则对应的循环码组为( 1111111)。 我们知道,循环码中任何码组的循环移位还是许用码组。 用多项式的形式表示为: 码组 ,经过移位 位,可得到码组 则可以证明得到(证明略): ,即 例如,( 7, 4)循环码( 1000101)的码多项式为 ,移位 1位后变成 ,将它被 除,得到 因此,循环左移一位的余式为 ,其相对应的码组为( 0001011),正好是( 1000101)循环左移一位的结果。 另一个重要的结论是,( n, k)循环码的生成多项式 一定是的因式,即。 反之,如果 是一个 nk次多项式,且能除尽 ,则此 一定生成一个( n, k)循环码。 (证明略) 为寻找生成多项式,必须对 因式分解。 因式分解可以通过计算机分解的方式分解,也可以通过查表(通常一些参考书已给出了这种因式分解的表格)。 例如, 可分解为 ;( 7, 4)循环码的 生成多项式可以选择 或 ;而( 7, 3)循环码的生成多项式可以选择 或 ;( 7, 6)循环码的生成多项式为 D+1,实际上就是简单的偶校验码。 循环码的生成矩阵与监督矩阵: 循环码的生成矩阵可以很容易地由生成多项式得到。 我们知道,循环码的码组多项式是生成多项式 g( D)的倍式,且根据线性码的生成矩阵的特性,( n, k)码的生成矩阵实际上可以由( n, k)码中 k个不相关的码组构成。 因此,根据以上两 点,我们可以挑选出 k 个循环码组的码多项式如下: 非系统码的生成矩阵 (非系统码的生成矩阵) 输入信息码元为 时,相应的循环码组多项式为: 由上式得到的码组不是系统码。 系统码的生成矩阵必须为典型形式 [Ik,Q]。 其中Ik为单位矩阵。 例如,已知( 7, 4)循环码的生成多项式为 ,可按下面的推导过程求出非系统码生成矩阵。 因为, 所以, 系统码的生成矩阵 系统码可 定义为,( n, k)系统码的码组中前 k个比特是信息比特,后 nk 个比特是循环监督位。 那么在已知生成多项式 g( D)时,如何构造系统码的生成矩阵呢。 在系统码中,码组应该具备如下的形式: 其中, 的次数小于等于 n- k- 1。 实际上,上式表示了如何生成系统码,即将信息码多项式升 nk次,然后以 g( D)为模,求出余式 r( D)。 我们仍然以( 7, 4)码为例,已知( 7, 4)系统循环码的生成多项式为 ,求其系统码的生成矩阵。 系统码的生成矩阵形式肯定是典型形式 [Ik,Q],因此我们选择信息多项式为 、 1。 将 提升 n- k=3 次,得到 ,求 除以 g( D)的余式得到 因此,系统生成矩阵为 表示成矩阵形式,得到 循环码的监督矩阵可以由下述方法得到。 由于 g( D)能除尽 ,即 ( *) 这里, 称为生成多项式, 称为监督多项式。 由( *式)可知: 所以,如果生成矩阵是 则监督矩阵为: 它完全由 的系数确定。 可以看到,上述两者满足。 例如,已知( 7, 3)码的生成多项式为 ,求生成矩阵和监督矩阵如下: 因为监督多项式为 所以, 监督矩阵为 ,可以验证。 循环码的译码: 纠错码的译码是该编码能否得到实际应用的关键所在。 译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。 根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。 通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。 用于纠错目的的循环码的译码算法比较 复杂,感兴趣的话可以参考一些参考书。 而用于检错目的循环码,一般使用 ARQ通信方式。 检测过程也 是将接受到的码组进行除法运算,如果除尽,则说明传输无误;如果未除尽,则表明传输出现差错,要求发送端重发。 用于这种目的的循环码经常被成为循环冗余校验码,即 CRC 校验码。 CRC校验码由于编码电路、检错电路简单且易于实现,因此得到广泛的应用。 在通过 MODEM 传输文件的协议如ZMODEM、 XMODEM 协议中均用到了 CRC 校验技术。 在磁盘、光盘介质存储技术中也使用该方法。 在 SystemView 中没有提供专用的 CRC 循环冗余校验码编码器,读者可根据有关参考书设计一个相应的仿真电路。 如果不想亲自动手设计,。基于systemview实现差错控制编码的仿真
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。