信源熵值计算实验报告(成型)(2).doc_第1页
信源熵值计算实验报告(成型)(2).doc_第2页
信源熵值计算实验报告(成型)(2).doc_第3页
信源熵值计算实验报告(成型)(2).doc_第4页
信源熵值计算实验报告(成型)(2).doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息论与编码课程设计报告设计题目: 专业班级 学 号 学生姓名 指导教师 教师评分 年 月 日目 录目录一、设计任务与要求1二、设计思路1三、设计流程图2四、程序运行及结果3五、心得体会3参考文献3附录:源程序46设计一.信源熵值计算一、 设计任务与要求任务与要求:统计任意文本文件中各字符(不区分大小写)数量,计算字符概率,并计算信源熵。二、 设计思路由于能力有限,该程序统计只含有字母文档与空格的文档,下面对程序进行讲解:第一步:打开一个名为“text”的TXT文档,并判断文档是否为空,读入一篇英文文章存入一个数组temp,为了程序准确性将所读内容转存到另一个数组S,计算该数组中每个字母与空格的出现次数(遇到小写字母都将其转化为大写字母进行计数),每出现一次该字符的计数器+1;第二步:计算信源总大小计算出每个字母和空格出现的概率;第三步:通过统计数据和信息熵公式计算出所求信源熵值并计算文档长度。三、 设计流程图开始判断是否为 空文档 是否文件打开失败! 打开一个文档文件,将其中的英文字母读入数组 计算每个字母以及空格出现的次数以及进而算出频率 利用信息熵公式求出信息熵 字符长度输出结果四、 程序运行及结果建立文件夹,输入文字,编写好程序并运行,查看结果输入测试文档“text2”There is no hate without fear. Hate is crystallized fear, fears dividend, fear objectivized. We hate what we fear and so where hate is, fear is lurking. Thus we hate what threatens our person, our vanity and our dreams and plans for ourselves. If we can isolate this element in what we hate we may be able to cease from hating.结果:五、 心得体会信息论与编码是我们电子信息工程的一门重要的专业课,通过对本次课程设计,学习将学到的理论知识用于实践,同时也学习了用软件编写程序,进一步对本课程知识的巩固和理解。学习分析问题,解决问题的方法和途径,提高对本专业的学习兴趣。进一步熟悉信源熵值的计算,掌握编程语言字符处理程序的设计和调试技术。参考文献1 谭浩强. C程序设计,1991年7月2 陈朔鹰等编著. C语言程序设计基础教程. 兵器工业出版社,1994年9月3 姜仲秋等主编,C语言程序设计,南京大学出版社,1998年1月。 4盛骤,谢式千,潘承毅.概率论与数理统计M.高等教育出版.1989.附录:源程序#include #include #include #include #define N 1000 int main(void) char sN,MN; int i = 0,j=0,n=0,L=0; int len, num27 = 0; double result=0,p27= 0; FILE *f; char tempN; /*以下是打开一个指定文件的过程*/ if(!(f = fopen(C:test2.txt,rb) printf(文件打开失败!n);return 0; while(!feof(f) /feof输入输出函数,检查文件是否结束,如结束,则返回非 零值,否则返回0 .函数原型为:int feof(FILE *fp) len = fread(temp,1,486,f); /fread返回读取的字符个数 temp为内存区域首地址 1 为每次读入字节数 486读入次数 f指针 fclose(f); /关闭文件 templen = 0; /方便统计字符总数 memcpy(s, temp, sizeof(temp); /从temp中拷贝sizeof个字节到目标s中 /*统计26个字母及空格出现次数*/ for(i=0; i=a&si=A&si=Z) numsi-65+; printf(文档中各个字母出现的次数:n); for(j=0; j26; j+)Mj=numj; printf(%3c:%dt,j+65,Mj);L+; if(L=3) printf(n); L=0; printf(空格:%dt,num26); /*统计26个字母或者空格出现概率*/ printf(n文档中各个字母出现的概率:n); for(i=0; i26; i+) pi=(double)numi/strlen(s); printf(%3c:%ft,i+65,pi); n+; if(n=3) printf(n); n=0; p26=(double)num26/strlen(s); printf(空格:%ft,p26); printf(n);/*计算信源熵*/ for(i=0; i27; i+) if (pi!=0) result=result+pi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论