- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
没实验一 绘制二进熵函数曲线(2个学时)
一、实验目的:
掌握Excel的数据填充、公式运算和图表制作
掌握Matlab绘图函数
掌握、理解熵函数表达式及其性质
二、实验要求:
提前预习实验,认真阅读实验原理以及相应的参考书。
在实验报告中给出二进制熵函数曲线图
三、实验原理:
Excel的图表功能
信源熵的概念及性质
四、实验内容:
用Excel或Matlab软件制作二进熵函数曲线。
具体步骤如下:
1、启动Excel应用程序。
2、准备一组数据p。在Excel的一个工作表的A列(或其它列)输入一组p,取步长为0.01,从0至100产生101个p(利用Excel填充功能)。
3、取定对数底c,在B列计算H(x) ,注意对p=0与p=1两处,在B列对应位置直接输入0。Excel中提供了三种对数函数LN(x),LOG10(x)和LOG(x,c),其中LN(x)是求自然对数,LOG10(x)是求以10为底的对数,LOG(x,c)表示求对数。选用c=2,则应用函数LOG(x,2)。
在单元格B2中输入公式:=-A2*LOG(A2,2)-(1-A2)*LOG(1-A2,2)
双击B2的填充柄,即可完成H(p)的计算。
4、使用Excel的图表向导,图表类型选“XY散点图”,子图表类型选“无数据点平滑散点图”,数据区域用计算出的H(p)数据所在列范围,即$B$1:$B$101。在“系列”中输入X值(即p值)范围,即$A$1:$A$101。在X轴输入标题概率,在Y轴输入标题信源熵。
实验二:香农编码软件实现(2个学时)
1、实验目的
(1)了解香农编码的基本原理及其特点;
(2)熟悉掌握香农编码的方法和步骤;
(3)掌握C语言或者Matlab编写香农编码的程序。
2、实验报告要求
(1)简要总结香农编码的基本原理与特点
(2)写出香农编码的基本步骤,画出实现香农编码的程序流程图
(3)实现香农编码的Matlab或者C源程序
3、实验内容
(1)根据香农编码的方法和步骤,用香农编码编写程序
(2)用编写的源程序验证书中例题的正确性。
实验三:Huffman编码软件实现(2个学时)
1、实验目的
(1)进一步熟悉Huffman编码过程;
(2)掌握C语言递归程序的设计和调试技术(或者使用Matlab)。
2、实验要求
(1)输入:信源符号个数r、信源的概率分布P;
(2)输出:每个信源符号对应的Huffman编码的码字。
3、实验内容
(1)算法
1、从键盘输入组成信源C的字符个数N;
2、从键盘输入信源C和组成信源的字符所对应的概率数组P;
3、用函数来对信源进行二进制编码;先对P按从大到小进行排序,与此同时要把C中相应的字符的位置做相应的调换;用数组来记录编码:在进行记录编码时是从数组的最后一个开始存储的,而且,每进行一次编码所记录下来的两个编码是按从数组的最后一个元素开始服从count[m-k-j]、count[m-k-j-1],其中k表示编码所进行的次数,j表示每次编码都只有;最后用函数来输出编码。
(2)部分伪代码:
(一)节点信息结构体
struct HuffNode
{
int weight;//信源符号的概率
int parent;
int lchild;
int rchild;
};
(二)算法
void Huffman(int weight[], int n, HuffNode hn[], HuffCode hc[])
{
for(i = 0; i != 2*n - 1; ++i) //create Huffman Node,step 1
{}
for(i = 0; i != n-1; ++i) //create Huffman Node, step 2
{
for(j = 0; j != n+i; j++)
{ if(hn[j].weight min1 hn[j].parent == 0)
{}
else if(hn[j].weight min2 hn[j].parent == 0)
{}else ;
}}
在此逆序存储Huffman编码
int temp[maxlen];
for(i = 0; i != n; ++i)
{
int parent = hn[i].parent;
while(hn[child].parent != 0)
{}
4、实验报告
(1)简要总结Huffman编码的原理与特点
(2)写出Huffman编码的基本步骤,画出实现Huffman编码的程序流程图
(3)给出Huffman编码的源程序,并给出实验过程中的测试结果
(4)总结实验过程遇到的问题及解决方法
实验四 循
文档评论(0)