信息论编码实验报告费诺编码附源代码.

中南大学

信息论与编码实验报告

选 题: 费诺编码

学生姓名:

学 号:

专业班级: 通信工程

指导老师:

学 院: 信息科学与工程学院

时 间: 2015

目录

实验目的

实验原理

2.1 费诺编码思想

2.2 费诺编码流程图

实验内容

实验要求

代码调试结果

六、心得体会

七、程序源代码

一实验目的

?掌握费诺编码的原理和过程。??

2.?熟悉?C/C++语言,练习使用C/C++实现香农码和Huffman?编码。???

二、实验原理

2.1 费诺编码思想

设有离散无记忆信源

1.按信源符号的概率从大到小的顺序排队

不妨设

2.将依次排列的信源符号按概率值分为两大组,使两个组的概率之和近似相同,并对各组赋予一个二进制码元“0”和“1”。

3.将每一大组的信源符号再分为两组,使划分后的两个组的概率之和近似相同,并对各组赋予一个二进制符号“0”和“1”。

4.如此重复,直至每个组只剩下一个信源符号为止。

5.信源符号所对应的码字即为费诺码。

例:有一单符号离散无记忆信源

对该信源编二进制费诺码

2.2 费诺编码流程图

三、实验内容

使用C\C++实现费诺编码,并自己设计测试案例。??

四、实验要求

1.提前预习实验,认真阅读实验原理以及相应的参考书。??

2.认真高效的完成实验,实验中服从实验室管理人员以及实验指导老师的管理。??

3.认真撰写实验报告,内容可以自己编排,可以考虑包括以下一些方面:原理概述、程序设计与算法描述、源程序及注释(程序太长可以只选取重要部分)、运行输出结果实例、调试和运行程序过程中产生的问题及采取的措施、对实验的讨论分析、总结。???

五、代码调试结果

六、心得体会

通过本次试验,熟悉了c++的使用方法以及在信息论中的使用方法,加强了课程框架的理解。在这次实验中,再次对信息论与编码有了更深层的理解,以前只是通过书上的理论推导,对相关的计算不是特别理解,通过这次的上机实际操作,以及函数图形的绘制,让我对熵函数有了更多的感性认识。对费诺编码的理论了解得更透彻。

总的来说,不仅是实验的结果,更重要的是过程和思考,是我学到了很多的知识,真的是受益匪浅。

七、实验代码

#include

#include

#include

#define N 15

int pa[N][N];

void fano(float p[],int a[N][N],int n,int m,int k) //fano编码算法

{

float g=0.0,h=0.0,d,b,c;

int i,j;

if(n

{

for(i=n;i<=m;i++)

{

g=p[i]+g;

}

g=g/2;

for(i=n;i<=m;i++)

{

h=h+p[i];

if(h>g)

{

d=h-p[i];

b=h-g;

c=g-d;

if(c>b)

{

for(j=n;j<=i;j++) a[j][k]=0;

fano(p,a,n,i,k+1);

for(j=i+1;j<=m;j++) a[j][k]=1;

fano(p,a,i+1,m,k+1);

}

else

{

for(j=n;j<=i-1;j++) a[j][k]=0;

fano(p,a,n,i-1,k+1);

for(j=i;j<=m;j++) a[j][k]=1;

fano(p,a,i,m,k+1);

}

break;

}

}

}

}

void select() //初始化选择,实现编码

{

void display(); //函数声明

void choose(); //函数声明

int i,j,k[N],n,flase=0;

费诺编码实验报告c语言,信息论编码实验报告费诺编码附源代码..doc相关推荐

  1. C语言二叉树实验报告流程图,二叉树的建立与遍历实验报告(c语言编写,附源代码).doc...

    二叉树的建立与遍历实验报告(c语言编写,附源代码).doc 第 1 页,共 9 页二叉树的建立与遍历实验报告级 班 年 月 日 姓名 学号_ 1实验题目建立一棵二叉树,并对其进行遍历(先序.中序.后序 ...

  2. c语言贪吃蛇大作业报告,C语言贪吃蛇实验报告

    C语言贪吃蛇实验报告 C 语言程序设计实训报告姓 名 专 业 班 级 指导教师 二 011 年 7 月 14 日I I目录1 实训目的和要求 11.1 实训目的和任务 11.2 实训要求 12 实训任 ...

  3. 橘子苹果问题代码linux,多进程同步橘子苹果问题完整报告(附源代码).doc

    多进程同步橘子苹果问题完整报告(附源代码).doc 一. 课程设计目的 本次实验进行操作系统课程设计的主要任务是模拟生产者和消费者的一个衍生, 即实现"橘子-苹果问题" .这个问题 ...

  4. c语言程序设计机房机位预约系统,c语言课程设计 机房机位预定系统 绝对正确,附源代码.doc...

    c语言课程设计 机房机位预定系统 绝对正确,附源代码.doc 还剩 16页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: C 语言课程设计第 16 页共 ...

  5. c语言词法分析器报告,C语言词法分析器构造实验报告.doc

    C语言词法分析器构造实验报告 02计算机(2) 2002374203 冯绍欣 一.题目要求: 完成一个C语言的词法分析器的构造.此词法分析器能识别附值语句.循环语句.条件语句.并能处理注释. 二.设计 ...

  6. 拼图游戏C语言课设实验报告,C语言拼图游戏实验报告.doc

    C语言拼图游戏实验报告 课程设计实验报告 班级:光电104-2 姓名:刘云龙 学号:201058501220 一.实验题目:使用C语言编写一个小游戏(拼图游戏) 二.实验目的:C语言是每一个通信学生的 ...

  7. 藏头诗c语言实验报告,c语言程序设计期末实验报告

    c语言程序设计期末实验报告 (23页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 实验报告实验项目名称:高级语言编程实验 实验学时:3实验 ...

  8. 大学生上机报告C语言,大学生计算机实验总结报告.doc

    大学生计算机实验总结报告 实验相对于每个人来说都有着特殊的意义,一般意义上来说他肯定是都会有不一样的心得体会,对于那些学习过实验后的人来说记录下这些心得体会是十分重要的,写一份实验心得体会他不仅仅能抒 ...

  9. C语言程序设计基础实验教程,C语言程序设计基础实验教程

    本书是教育科学"十五"国家规划课题的研究成果,是<C语言程序设计基础>一书的实验配套教程,它为C语言初学者上机实验提供指导.全书提供了13个方面的验证性.设计性实验,对 ...

最新文章

  1. Codeforces Round #369 (Div. 2)
  2. 演硬汉才是布鲁斯威利斯的正事 --- 我看《虎胆追凶》
  3. php回调函数如何执行顺序,PHP回调函数调用方式
  4. Java并发编程实战_一线大厂架构师整理:java并发编程实践教程
  5. 如何将catia装配件附材料_在网上买的快餐桌椅如何安装?餐厅快餐桌椅安装顺序与流程知识...
  6. Python二级基础知识点
  7. jquery 选择器之children与find
  8. 数据库管理软件的由来
  9. 单片机c语言视频教程bd,单片机C语言教程五
  10. 震惊·X话最少的~“原理图更新到PCB时出现Unknown Pin: PinXXX 问题解决方案”
  11. 5421. 【NOIP2017提高A组集训10.25】嘟嘟噜—mayuri
  12. Android Studio4.0|XXX keeps stopping
  13. 【公告】淘宝 npm 域名即将切换 npmmirror 重构升级
  14. 3.1 YOLO系列理论(YOLOV1、YOLOV2、YOLOV3)
  15. QT:黑白棋的吃子规则(七)
  16. 【PHP】获取浏览器HTTP请求header信息、获取服务器HTTP响应header信息
  17. 2022起重机械指挥考试题库模拟考试平台操作
  18. oracle报错——字符集不匹配
  19. 交换式多兆位数据服务(SMDS)--网络大典
  20. 计算机安全知识策划书,安全知识竞赛策划书模板

热门文章

  1. 数据库MySQL-查询语句
  2. html转换成pdf在线转换器,pdf转换成HTML转换器
  3. 【暑假实践总结】大学生暑假社会实践-关于社区人口老龄化的实践报告
  4. 详解CSS3中新增的内容属性:content
  5. 达芬奇密码 第八十五章
  6. 美的合肥荆州工厂均入选全球“灯塔工厂”;美国运通新版百夫长白金、黑金人民币卡将上市 | 美通企业日报...
  7. 中国保健品市场供需规模与投资前景预测分析报告2022-2027年版
  8. 白侠机器人_白侠微信多群直播机器人,引领全新直播潮流
  9. 计算机切换输入法Word关闭,电脑office编辑文字输入法快捷键不能切换怎么办
  10. 第36课:kaishi 彻底解密Spark 2.1.X中Sort Shuffle中Reducer端源码内幕