三级项目报告 课程名称: 信息论与编码__________ 课程设计题目: 循环码的编码和译码程序设计______
合 作 者 完成时间: 2012 年 5 月 18 日至 5 月 21 日
成绩: 评阅人:
摘 要
循环码是线性分组码中一个重要的子类,具有检错纠错能力强,实现方便等特点。它具有严密的代数学理论,封闭性与循环性。(n,k)循环码表示信息位为k位,监督位为(n-k)位。本次设计实验首先分析了(7,4)循环码的编码与译码原理,然后,用C语言实现其编码与译码功能。 通过C语言平台运行所编写的程序,观察了在输入信息码情况下输出对应的编码结果以及相反的译码功能。通过多组的对比验证了该(7,4)循环码的编译码程序的正确性。最后,在程序运行的过程中进一步分析循环码的编译码原理,并通过比较仿真模型与理论计算的性能,证明了仿真模型的可行性。
关键词:循环码,编码与译码,C程序。
?
循环码的原理与特点
循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还
具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。
循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码( Grey Code )。
循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组。若(
)为一循环码组,则(
…
… …
)、(
)、……还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。
循环码编码原理
(1) 有信息码构成信息多项式m(x)= mk?1k-1; (2) 用xn?kxk?1+……+m0其中高幂次为
乘以信息多项式m(x),得到的xn?k m(x)最高幂次为n-1,该
过程相当于把信息吗(mk?1,mk?2,……,m1,m0)移位到了码字德前k个信息位,其后是r个全为零的监督位; (3) 用g(x)除xn?k m(x)得到余式r(x),其次数必小于g(x)的次数,即小
于(n-k),将此r(x)加于信息位后做监督位,即将r(x)于x相加,得到的多项式必为一码多项式。
n?k m(x)
根据上面的讨论,可得到在(7,4)循环码编码的程序框图如图1 所下图示:
储存c(x) 图2 编码程序框图 确定c(x): 确定余式r(x): 初始化 循环码的译码原理
纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比编码
较难实现,对于纠错能力强的纠错码更复杂。根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。 通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。用于纠错目的的循环码的译码算法比较复杂,感兴趣的话可以参考一些参考书。而用于检错目的循环码,一般使用ARQ通信方式。检测过程也是将接受到的码组进行除法运算,如果除尽,则说明传输无误;如果未除尽,则表明传输出现差错,要求发送端重发。用于这种目的的循环码经常被成为循环冗余校验码,即CRC校验码。CRC校验码由于编码电路、检错电路简单且易于实现,因此得到广
相关推荐: