《信息论循环码报告》由会员分享,可在线阅读,更多相关《信息论循环码报告(22页珍藏版)》请在人人文库网上搜索。

1、三级项目报告课程名称: 信息论与编码__________ 课程设计题目: 循环码的编码和译码程序设计______ 合 作 者 完成时间: 2012 年 5 月 18 日至 5 月 21 日成绩: 评阅人:摘 要循环码是线性分组码中一个重要的子类,具有检错纠错能力强,实现方便等特点。它具有严密的代数学理论,封闭性与循环性。(n,k)循环码表示信息位为k位,监督位为(n-k)位。本次设计实验首先分析了(7,4)循环码的编码与译码原理,然后,用C语言实现其编码与译码功能。 通过C语言平台运行所编写的程序,观察了在输入信息码情况下输出对应的编码结果以及相反的译码功能。通过多组的对比验证了该(7,4)循。

2、环码的编译码程序的正确性。最后,在程序运行的过程中进一步分析循环码的编译码原理,并通过比较仿真模型与理论计算的性能,证明了仿真模型的可行性。关键词:循环码,编码与译码,C程序。n 循环码的原理与特点循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个。

3、特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码( Grey Code )。循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组。若( )为一循环码组,则()、( )、还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环。

4、码组。循环码编码原理(1) 有信息码构成信息多项式m(x)= +其中高幂次为k-1;(2) 用乘以信息多项式m(x),得到的 m(x)最高幂次为n-1,该过程相当于把信息吗(,)移位到了码字德前k个信息位,其后是r个全为零的监督位;(3) 用g(x)除 m(x)得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此r(x)加于信息位后做监督位,即将r(x)于 m(x)相加,得到的多项式必为一码多项式。初始化根据上面的讨论,可得到在(7,4)循环码编码的程序框图如图1 所下图示:确定余式r(x): 确定c(x): 储存c(x)图2 编码程序框图循环码的译码原理纠错码的译码是该编码能。

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

6、被成为循环冗余校验码,即CRC校验码。CRC校验码由于编码电路、检错电路简单且易于实现,因此得到广泛的应用。在通过MODEM传输文件的协议如ZMODEM、XMODEM协议中均用到了CRC校验技术。在磁盘、光盘介质存储技术中也使用该方法。 在SystemView中没有提供专用的CRC循环冗余校验码编码器,读者可根据有关参考书设计一个相应的仿真电路。如果不想亲自动手设计,可以在CDMA库(IS95)中找到一个现成的专用的CRC编码器和译码器。该图符(FrameQ)是的接入信道的数据帧品质指示编码器,其中使用了多种不同比特率的数据模型,通过CRC校验来判断接入信道的质量好坏。其中规定每一帧的长度为2。

7、0ms的数据。一个典型IS-95-A标准规定的9600信道的CRC测试码的长度为192比特,其中信息位172位、校验位12比特、尾部全零8比特。感兴趣的读者可以加入一个速率为860bps(192bit/0.2ms860)的PN数据,然后观察经过CRC编码后的波形。并可用对应的译码器译码观察输出波形是否与输入的PN码一致。当码字c通过噪声信道传送时,会受到干扰而产生错误。如果信道产生的错误图样是e,译码器收到的n重接受矢量是y,则表示为: y=c+e (13)上式也可以写成多项式形式:y(x)=c(x)+e(x) (14)译码器的任务就是从y(x)中得到,然后求的估值码字= y(x)+ (15)。

8、 并从中得到信息组。循环码译码可按以下三个步骤进行:(1)有接收到的y(x)计算伴随式s(x);(2)根据伴随式s(x)找出对应的估值错误图样;(3)计算= y(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所示。BCH(7,4)循环码错误图样表。

9、:错误图样错误图样码字伴随式S(x)伴随式E6(x)=x61000000x2100E5(x)=x50100000x2+x110E4(x)=x40010000x2+x+1111E3(x)=x30001000x+1011E2(x)=x20000100x2+1101E1(x)=x10000010x010E0(x)=x000000011001E(x)=000000000000表1 BCH(7,4)循环码错误图样表上式指出了系统循环码的译码方法:将收到的码字R(x) 用g(x) 去除,如果除尽则无错;否则有错。如果有错,可由余式S(x) 一一找出对应图样,然后将错误图样E(x) 与R(x) 模2 和,即。

10、为所求码字C(x) ,从而实现纠错目的。根据前面的讨论,可得(7,4)循环码译码的程序框图如图2 所示初始化由R(x)确定S(x):S(x)=0,无误码误码是否 由S(x)确定错误图样E(x)否纠错C(x)=E(x)+R(x)存储C(x)图 2 译码程序框图基于C语言程序编写就74循环码的编码与译码程序如附录所示:运行及分析运行结果理论分析由循环码性质我们可以知道,对于(7,4)循环码来说,最小码距d0=4,可以检测出3 位错误,纠正1 位错误,编码效率为4 7 100% = 57.1%。设传输信道的误码率为p ,据此设定信道模型存在如下关系:传输正确概率为(1 p)n,信息帧传输错误概率为P。

11、e=1-(1-p) n,每帧仅发生1 位错误的概率为Pe=Cn1p(1-p) n-1=np(1-p) n-1, 则1 位错误帧在总的错误帧中的概率为表2 为其Pe,Pe1,R 的模拟结果PPePe1R/%10-10.5217030.37200971.3010-20.06793470.065903697.0110-30.006979030.006958199.7010-40.000699790.0006995899.9710-50.0000699790.0006995899.97表2 Pe,Pe1,R的模拟结果(n=7)综合表2 的模拟结果和理论分析可知,通信系统的帧传输具有下列性质:(1) 在。

12、n 一定的条件下,信息帧错误概率随着比特误码率p 的增加而增加,最坏条件下帧错误 概率几乎为100%,此时系统失去通信能力。(2) 在典型的通信环境下( p为10-3 10-5 5,帧长n =128 1024,np #include#include/*函数声明*/void Begin();void Code();void Decoding();/*主函数*/main()printf(nThis software main function is carries on the code and the decoding to (7,3) cyclic code.n );Begin();/*进行编。

13、码*/void Code()int Input4;int Output7;int reg3=0,0,0;int temp,i,j,t;printf(Please input the information code :);for(i=0;i0;j-)regj=regj-1;reg0=0;Outputi=temp;printf(________________________________________);printf(n);printf( The information code output is: n);for(i=0;i=2 n);getchar();exit(0);printf(_。

14、__________________________________________n);printf(s(x)=);for(i=2;i=0;i-)printf( %d,regi);printf(n);for(i=0;i7;i+) /*纠正一位错误*/d=reg2*reg1*(!reg0);Outputi=d+Inputi;if(Outputi=2) Outputi=0;temp=reg2;x=0; /*S(x)进行自发运算以求得错误位数*/reg2=temp+reg1;if(reg2=2)reg2=0;reg1=reg0;reg0=temp+x; /*输出4位信息源*/printf(The 。

15、decoding bit4 is:);for(i=0;i4;i+)printf( %d ,Outputi);printf(n);printf(The Decoding bit7 is:); /*输出7位译码结果*/for(i=0;i7;i+)printf( %d ,Outputi);printf(n);printf(___________________________________________n);Begin(); /*选择操作*/void Begin() fflush(stdin); char ch;printf( -);printf(n);printf( - input c to 。

16、carry on the code -);printf(n);printf( - input d to carry on the decoding code -);printf(n);printf( - input e to exit please to -);printf(n);printf( -);printf(n);ch=getchar();if(ch=c) Code();else if(ch=d) Decoding();else if(ch=n) Begin(); else if(ch=e) exit(0);else printf(input errorn); fflush(stdin);Begin(); /*输入错误提示*/ 22 / 22文档可自由编辑。

c语言编码7 3循环码码组,信息论循环码报告相关推荐

  1. c语言中二进制用什么字母表示方法,看C语言编码转换--------负数的二进制表示方法...

    今天在看C语言编码转换时,既然对负数的二进制表示有些遗忘,查了下网上的资料,他们说的是个P!误人子弟!和大家讨论了下,贴出来已备在此遗忘: 假设有一个 int 类型的数,值为5,那么,我们知道它在计算 ...

  2. 来自 Google 的 R 语言编码风格指南

    来自 Google 的 R 语言编码风格指南 R 语言是一门主要用于统计计算和绘图的高级编程语言. 这份 R 语言编码风格指南旨在让我们的 R 代码更容易阅读.分享和检查. 以下规则系与 Google ...

  3. Java语言编码规范(1)

    Java语言编码规范 原文出处http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html 2 文件名(File Names) 这部分列出了常 ...

  4. c语言编码风格,讲嵌入式C语言编码风格.ppt

    讲嵌入式C语言编码风格 目 录 简介及说明 语言规则 1.基础 2.数据 3.说明与表达式 4.函数 5.内存及资源 6.源文件 风格指导 7.程序书写 8.命名 9.文档 简介及说明 正确性 易维护 ...

  5. c语言把一段编码注释,C语言编码规范——着重注意点整理

    C语言编码规范--着重注意点整理 发布时间:2018-05-26 21:50, 浏览次数:260 C语言编码规范--着重注意点整理 编码规范的目的: 保证不同背景和经历的开发同学可以良好的协同开发 保 ...

  6. 【转】嵌入式软件:C语言编码规范

    引  言 嵌入式系统是指以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积和功耗严格要求的专门计算机系统.嵌入式技术并不是一个独立的学科,它是伴随着微电子技术和计算 ...

  7. 如何查看笔记本的语言编码_在编码笔记本电脑中寻找什么

    如何查看笔记本的语言编码 Did you just graduate from your coding bootcamp and now have to return your loaner lapt ...

  8. android国际化语言编码对照表

    android国际化语言编码对照表 (查询整理以备不时之需,以下内容均已附原文连接) 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values-z ...

  9. 国际标准之语言编码 - ISO-639

    ISO-639-1是两个字母的语言编码,ISO-639-2和ISO-639-3是3个字母的编码. 在我们在软件配置或相关开发时需要对语言进行操作,作为参数或进行识别时,就需要用到这个语言编码了. IS ...

最新文章

  1. 微软压力测试工具 web application stress
  2. activeMQ - 消息重发策略和DLQ死信队列
  3. 【ES6】JS的Set和Map数据结构
  4. 机器学习笔记:线性回归
  5. python标准库和第三方库_python常用标准库及三方库
  6. 基础练习 01字串(取位操作)
  7. 什么是ETL?一文掌握ETL设计过程
  8. 多模块顺序_国考要上岸,每个模块要对多少题?
  9. 基于Givens变换的QR分解
  10. JDK、Neo4j下载、安装、运行及问题
  11. 蓝牙耳机的两种通讯协议及奥秘
  12. 【5G核心网】 NGAP 消息
  13. 新型肺炎疫情蔓延下的游戏行业会更火爆吗?
  14. PV UV 日活 月活
  15. 中国废弃资源市场现状趋势与发展方向分析报告2022-2027年
  16. 测试使用linux日志定位BUG,Web测试中定位bug方法
  17. MySQL索引背后的数据结构及算法原理
  18. linux下载并安装rpm包
  19. 2023最新世界大学排名,重磅发布!
  20. Windows 11 消费者版 (含家庭版 / 专业版 / 专业工作站 / 家庭单语言版)

热门文章

  1. 艾默生质量流量计因测量原理不同可分为多种系列
  2. 药检实验室如何规划设计
  3. 1.巴特沃斯模拟滤波器(低通,高通,带通,带阻)设计-MATLAB实现
  4. 数字图像处理学习笔记 离散傅里叶变换
  5. MJKDZ PS2手柄控制OskarBot小车(三):STM32接收无线串口模块的数据并处理
  6. Spring Boot实现发送QQ邮件
  7. 测试版本大全 (转)
  8. 一个产品经理,对积分商城的灵魂四问
  9. HTML下拉选框加倒三角,CSS给选中元素增加倒三角形
  10. Discuz 二次开发 (一) 目录结构和运行逻辑