汉明码编译码软件设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(-)汉明码编译码软件设计
————————————————————————————————作者:————————————————————————————————日期:
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2012年秋季学期
计算机通信课程设计
题目:(7,4)汉明码编译码软件设计专业班级: 11级通信工程二班
姓名:王海霞
学号: 11250231 指导教师:王维芳
成绩:
摘要
汉明码是一种能自动检错并纠正一位错码的线性纠错码,用于信道编码与译码中,高通信系统抗干扰的能力。本次课设主要是(7,4)汉明码的编译码软件设计,该软件可以对输入的多个四位信息码进行编码,对于接收的多个七位信息码可以进行译码,从而译出四位信息位.当接收到的信息码有一位错误时,可以纠正这一位错码,进而译出正确的信息码组,整个程序使用C语言编写.
关键词:汉明码、编码、译码、检错、纠错
目录
一、C语言简介 (1)
1.1什么是C语言 (1)
1.2 C语言的特点 (1)
1.3 运行C程序的步骤与方法 (2)
二、汉明码编码 (4)
2.1汉明码编码原理 (4)
2.2监督矩阵 (6)
2.3生成矩阵 (7)
三、汉明码纠错检错 (9)
3.1 汉明距离 (9)
3.2 汉明码纠错原理 (9)
四、汉明码编译码的实现过程 (10)
4.1编码过程 (10)
4.2译码过程 (10)
五、软件设计及测试分析 (12)
5.1程序流程图 (12)
5.1.2 编码程序流程图 (12)
5.1.3 译码程序流程图 (13)
5.2 软件运行分析 (15)
5.2.1主程序运行分析 (15)
5.2.2 编码运行分析 (17)
5.2.3 译码运行分析 (18)
5.3 软件分析 (20)
总结 (21)
参考文献 (22)
附录 (23)
一、C语言简介
1.1什么是C语言
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。
1.2 C语言的特点
一种语言之所以能存在和发展,并具有较强的生命力,总是有不同于其他语言的特点。主要的优缺点介绍如下。
优点
●简洁紧凑、灵活方便。C语言一共只有32个关键字,9种控制语句,程序书写
形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结
合起来。C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是
计算机最基本的工作单元。
●运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符。C语言把
括号、赋值。强制类型转换等都作为运算符处理。从而使C语言的运算类型极
其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中
难以实现的运算。
●数据类型丰富。C语言的数据类型有:整型、实型、字符型、数组类型、指针
类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构运算。并
引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多
种显示器和驱动器。且计算功能、逻辑判断功能强大。
●C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各
个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,
便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方
便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
●语法限制不太严格,程序设计自由度大。虽然C语言也是强类型语言,但它的
语法比较灵活,允许程序编写者有较大的自由度。
●允许直接访问物理地址,对硬件进行操作。由于C语言允许直接访问物理地址,
可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的
许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算
机最基本的工作单元,可用来写系统软件。
●生成目标代码质量高,程序执行效率高。一般只比汇编程序生成的目标代码效
率低10へ20%。
●适用范围大,可移植性好。C语言有一个突出的优点就是适合于多种操作系统,
如DOS、UNIX、windows 98.windows NT;也适用于多种机型。C语言具有强大
的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软
件,三维,二维图形和动画,它也是数值计算的高级语言。
缺点
●C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有
很大缺陷,这也是C和C++的一大区别。
●C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组
下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
1.3 运行C程序的步骤与方法
为了使计算机能按照人的意志进行工作,必须根据问题的要求,编写出相应的程序。为了使计算机能执行高级语言源程序,必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”,然后再将该目标程序与系统的函数库以及其他目标程序连接起来,形成可执行的目标程序。
在编好一个C源程序后如何上机运行呢?在纸上写好一个程序后,要经过这样几个步骤:上机输入与编辑源程序→对源程序进行编译→与库函数连接→运行目标程序。以上过程如图2所示。图中实线表示操作流程,虚线表示文件的输入输出。例如,编辑后得到源程序文件f.c,然后在进行编译时再将源程序文件f.c输入,经过编译得到目标程序文件f.obj,再将目标程序f.obj输入内存,与系统提供的库函数等连接,得到可执行的目标程序f.exe,最后把f.exe调入内存再使之运行。