信息论与编码课程设计报告

设计题目: 统计信源熵与香农编码

专业班级 电 信 12-06

学 号

学生姓名

指导教师

教师评分

2015 年 3 月 30 日

目 录

- 0 -

一、设计任务与要求

1.统计信源熵

要求:统计任意文本文件中各字符(不区分大小写)数量,计算字符概率,

并计算信源熵。

2.香农编码

要求:任意输入消息概率,利用香农编码方法进行编码,并计算信源熵和编

码效率。

二、设计思路

本次课程设计中主要运用 C 语言编程以实现任务要求,分析所需要的统计量

以及相关变量,依据具体公式和计算步骤编写语句,组成完整C 程序。

1、信源熵

定义:信源各个离散消息的自信息量的数学期望为信源的平均信息量,一般

称为信源的信息熵,也叫信源熵或香农熵,有时称为无条件熵或熵函数,简称熵,

记为 H ()。

计算公式:

2、香农编码过程:

(1)将信源消息符号按其出现的概率大小依次排列为

p 1  p2    p n

K

(2)确定满足下列不等式的整数码长 i 为

 lb(p )  K  lb(p )  1

i i i

(3)为了编成唯一可译码,计算第 i 个消息的累加概率

i1

P  p (a )

i k

k 1

P

i

(4)将累计概率 变换成二进制数。

P K

i i

(5)取 二进制数的小数点后 位即为该消息符号的二进制码字。

- 1 -

三、设计流程图

1、统计信源熵

开始

读取给定文件

判断文件是否打开 否

并且不为空

统计文本字符,直 关闭文件

至文本字符读完。

统计同一字符(不分

大小写)出现的次

计算字符概率

计算信源熵

输出

结束

- 2 -

2、香农编码

开始

计算信源熵和香农编码C语言,信息论与编码课程设计报告-统计信源熵与香农编码.pdf...相关推荐

  1. c语言小数表达式运算课程设计,数据结构课程设计表达式计算.doc

    数据结构课程设计表达式计算 福建农林大学计算机与信息学院 计算机类 课程设计报告 课程名称:算法与数据结构课程设计题目:表达式计算姓 名:系:数学系专 业:数学与应用数学年 级:学 号:指导教师:宁正 ...

  2. c语言实现一元多项式程序报告设计,数据结构课程设计报告一元多项式的计算..doc...

    数据结构课程设计报告一元多项式的计算. 题目:一元多项式的计算 --链表 摘要(题目) 一元多项式计算 任务:能够按照指数降序排列建立并输出多项式: 能够完成两个多项式的相加.相减,并将结果输入: 目 ...

  3. 数据结构课程设计报告——Huffman编码

    目录 一. 问题描述与要求 二. 需求分析 三. 设计 3.1 设计思想 3.1.1 数据与操作的特性 3.1.2 数据结构设计 3.1.3 算法设计 3.2 设计表示 3.2.1 函数调用关系图 3 ...

  4. C语言课程设计报告税,c语言编写程序,输入月薪数a,计算并输出税率、应缴税款和实得奖金数。工薪所得扣除标 请编写一个个人所得税...

    if(a>4500&&a<9000)下面的代码行缺少分号: if(a>9000&&a<18000)下面的代码段中(a-)减号后面缺少一个数值: ...

  5. 计算机网络课程设计报告 计算校验和 湖南文理学院,湖南文理学院课程设计 计算机网络实验室综合布线系统的设计与测试...

    内容简介: 湖南文理学院课程设计 计算机网络实验室综合布线系统的设计与测试 共23页,6337字. 摘 要 计算机网络技术与综合布线系统息息相关.计算机和通信技术的飞速发展,网络应用已成为人们日益增长 ...

  6. C语言课程设计报告税,第十周—C语言 个人所得税的计算

    #include int main() { double dsalary,dtax=0,dnetlncome=0; printf("请输入您本月的收入总额(元):"); scanf ...

  7. 喷泉编码 c语言,51单片机音乐喷泉设计音乐盒源代码

    功能实现通过ADC0832芯片对音频信号的采集,转换为数字信号给单片机,然后PWM脉冲宽度调制控制水泵水柱对的高低 //请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解, ...

  8. java编码规范文档 下载_软件项目实训及课程设计指导——制定待开发项目中各种文档的规范...

    软件项目实训及课程设计指导--制定待开发项目中各种形式文档的规范 1.制定对课程设计项目开发过程中的规范性要求 (1)从"形式"到"内容"两个方面控制和要求开发 ...

  9. c语言课程设计简易年月历计算,c语言课程设计《打印月历》.docx

    <打印月历>年月日 <打印月历> 年月日 <C语言课程设计> 课程设计报告 题 目 学 号 姓 名 年级专业 指导教师 完成日期 安徽师范大学物理与电子信息学院 . ...

最新文章

  1. ASP.NET防伪令牌与JSON有效载荷
  2. jsp servlet示例_Servlet和JSP中的文件上传示例
  3. vs android 压缩,Android Studio是否压缩classes.dex文件?
  4. php 内部异步执行顺序,event_loop中不同异步操作的执行顺序
  5. java comparator排序顺序_Java 集合排序策略接口 Comparator
  6. 读书节来当当薅羊毛!170买400/240买600
  7. 用matlab实现灰色预测gm11模型,用MATLAB实现灰色预测GM11模型
  8. 常见文件文件头文件尾格式总结及各类文件头
  9. Win10桌面极简美化
  10. 一把剪刀完成iphone4剪卡
  11. python简单速成,一行代码写爬虫
  12. 【转】《仙剑奇侠传6》将更换全新引擎
  13. PHP求两个数据的交集,php计算两数组交集两个函数_PHP教程
  14. 爬虫时候遇到python connection error max retries exceeded whith url 怎么解决?
  15. 【PID】数字式 PID 控制算法、程序结构
  16. Spine动画动态切换模型显示
  17. 浅析医院信息集成平台现状
  18. TKinterDesigner界面背景和操作界面调试,TKinterDesigner教程(3)
  19. OpenStack_Rocky版-8.安装Dashboard面板服务
  20. 国内最具权威性的广告管理系统——知客CRM传媒版

热门文章

  1. mysql指数函数_SQL语言参考大全的目录
  2. java清屏_【图片】请问java编写中如何做到清屏啊。。。_java吧_百度贴吧
  3. Aroma's Search(暴力)
  4. 猜数大小编程c语言_猜数正确编程
  5. linux 安装jeakens_Chapter 2. OpenSSL的安装和配置学习笔记
  6. c++如何获取文件时间_如何在Windows 10上获取文件或文件夹的所有权
  7. java个人支付系统(springboot)
  8. 低成本DIY视频预览遥控小车
  9. 如何理解和分析linux系统的CPU平均负载情况(load average)
  10. linux-shell命令之date【显示/设置系统日期/时间】