信息论循环码报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三级项目报告

课程名称:信息论与编码__________ 课程设计题目:循环码的编码和译码程序设计______

合作者

完成时间: 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)= 1

k m -1

k x

-+……+0m 其中高幂次为

k-1; (2) 用n k

x

-乘以信息多项式m(x),得到的n k

x

- m(x)最高幂次为n-1,该

过程相当于把信息吗(1k m -,2k m -,……,1m ,0m )移位到了码字德前k 个信息位,其后是r 个全为零的监督位; (3) 用g(x)除n k

x

- m(x)得到余式r(x),其次数必小于g(x)的次数,即小

于(n-k ),将此r(x)加于信息位后做监督位,即将r(x)于n k

x m(x)

相加,得到的多项式必为一码多项式。

根据上面的讨论,可得到在(7,4)循环码编码的程序框图如图 1 所下图示:

图2 编码程序框图 循环码的译码原理

纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比编码

较难实现,对于纠错能力强的纠错码更复杂。根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。 通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。用于纠错目的的循环码的译码算法比较复杂,感兴趣的话可以参考一些参考书。而用于检错目的循环码,一般使用ARQ 通信方式。检测过程也是将接受到的码组进行除法运算,如果除尽,则说明传输无误;如果未除尽,则表明传输出现差错,要求发送端重发。用于这种目的的循环码经常被成为循环冗余校验码,即CRC 校验码。CRC 校验码由于编码电路、检错电路简单且易于实现,因此得到广

储存c(x)

初始化

确定余式r(x):

确定c(x):

泛的应用。在通过MODEM 传输文件的协议如ZMODEM 、XMODEM 协议中均用到了CRC 校验技术。在磁盘、光盘介质存储技术中也使用该方法。

在SystemView 中没有提供专用的CRC 循环冗余校验码编码器,读者可根据有关参考书设计一个相应的仿真电路。如果不想亲自动手设计,可以在CDMA 库(IS95)中找到一个现成的专用的CRC 编码器和译码器。该图符(FrameQ )是的接入信道的数据帧品质指示编码器,其中使用了多种不同比特率的数据模型,通过CRC 校验来判断接入信道的质量好坏。其中规定每一帧的长度为20ms 的数据。一个典型IS-95-A 标准规定的9600信道的CRC 测试码的长度为192比特,其中信息位172位、校验位12比特、尾部全零8比特。感兴趣的读者可以加入一个速率为860bps (192bit/0.2ms =860)的PN 数据,然后观察经过CRC 编码后的波形。并可用对应的译码器译码观察输出波形是否与输入的PN 码一致。

当码字c 通过噪声信道传送时,会受到干扰而产生错误。如果信道产生的错误图样是e ,译码器收到的n 重接受矢量是y,则表示为: y=c+e (13) 上式也可以写成多项式形式:y(x)=c(x)+e(x) (14) 译码器的任务就是从y(x)中得到()e x ∧

,然后求的估值码字

()c x ∧= y(x)+ ()e x ∧

(15)

并从中得到信息组()m x ∧

循环码译码可按以下三个步骤进行: (1)有接收到的y(x)计算伴随式s(x);

(2)根据伴随式s(x)找出对应的估值错误图样()e x ∧

(3)计算()c x ∧

= y(x)+ ()e x ∧

,得到估计码字()c x ∧

。若()c x ∧

=c(x),则

译码正确,否则,若()c x ∧

≠c(x),则译码错误。

由于g(x) 的次数为n - k 次,g(x) 除E(x) 后得余式(即伴随式)的最高次数为n-k-1次,故S(x) 共有2n-k 个可能的表达式,每一个表达式对应一个错误格式。可以知道(7,4)循环码的S(x) 共有2(7-4) = 8个可能的表达式,可根据错误图样表来纠正(7,4)循环码中的一位错误,其伴随式如表1所示。

相关文档
最新文档