香农编码实验报告 下载本文

内容发布更新时间 : 2024/6/30 14:58:54星期一 下面是文章的全部内容请认真阅读。

中南大学

《信息论与编码》实验报告

题 目 信源编码实验 指导教师 学 院 专业班级

姓名 学号 日期

目录

一、香农编码……………………………………….....3

实验目的.................................................................................3 实验要求.................................................................................3 编码算法.................................................................................3 调试过程.................................................................................3 参考代码.................................................................................4 调试验证.................................................................................7 实验总结.................................................................................7

二、哈夫曼编码……………………………………….8

实验目的.................................................................................8 实验原理.................................................................................8 数据记录.................................................................................9 实验心得................................................................................10

一、香农编码

1、实验目的

(1)进一步熟悉Shannon编码算法; (2)掌握C语言程序设计和调试过程中数值的进制转换、数值与字符串之间

的转换等技术。

2、实验要求

(1)输入:信源符号个数q、信源的概率分布p;

(2)输出:每个信源符号对应的Shannon编码的码字。 3、Shannon编码算法

1:procedure SHANNON(q,{Pi})

2: 降序排列{Pi} 3: for i=1 q do 4: F(si) ?p(sk)i?1k?15:li[1/p(si)]log

26:将累加概率F(si)(十进制小数)变换成二进制小数。 7:取小数点后li个二进制数字作为第i个消息的码字。

8:end for

9:end procedure

------------------------------------------------------------------------------------------------------------------ 4、调试过程

1、fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory

fatal error C1083: Cannot open include file: 'values.h': No such file or directory

原因:unistd.h和values.h是Unix操作系统下所使用的头文件 纠错:删去即可

2、error C2144: syntax error : missing ')' before type 'int' error C2064: term does not evaluate to a function

原因:l_i(int *)calloc(n,sizeof(int)); l_i后缺少赋值符号使之不能通过编译

纠错:添加上赋值符号