实验一 信息熵与图像熵计算(2)

2019-09-02 19:03

二、实验内容

1.根据香农编码的方法和步骤,用香农编码编写程序; 2.用编写的源程序验证书中例题的正确性。 三、实验仪器、设备

1.计算机-系统最低配置256M 内存、P4 CPU; 2. MATLAB 编程软件。 四、实验原理 1.香农编码原理:

香农第一定理指出了平均码长与信源之间的关系,同时也指出了可以通过编 码使平均码长达到极限值,这是一个很重要的极限定理。香农第一定理指出,选 择每个码字的长度i K 满足下式: I (Xi )?K ?I (Xi ) ?1,?i

就可以得到这种码,这种编码方法就是香农编码。 2.香农编码算法:

1.将信源消息符号按其出现的概率大小依次排列: 1 2 n P(X )?P(X ) ?, ,?P(X ) 2.确定满足下列不等式整数码长i K ; log2p( ) log2 ( ) 1 iii?x ?K ??p x ?

3.为了编成唯一可译码,计算第i个消息的累加概率; 1 1 ( ) i i k k pp x ? ? ??

4.将累加概率i P变成二进制数; 5.取i P

二进制数的小数点后i K 位即为该消息符号的二进制码字。 五、实验步骤

1.根据实验原理,设计香农编码程序;

2.输入一组信源消息符号概率,可以求香农编码、平均码长和编码效率。 六、实验报告要求 5

1. 按照本节内容后实验报告形式书写;

2. 实验总结和心得要详细,可以根据自己情况写出建议。 七、实验注意事项

1.香农编码是符号概率大的用短表示,小长程序中 香农编码是符号概率大的用短表示,小长程序中 香农编码是符号概率大的用短表示,小长程序中 需要对概率进行排序,此我们调用 MATLAB MATLABMATLABMATLABMATLAB的库函数; 2.最后需要注意的是,求得码字依次与排序符号概率对应 ;

3.向无穷方取最小正整数位 ceilceilceil 函数。 八、思考题

举例说明香农编码在现实中有际作用, 列一个子并简要说明? 附录 1:实验报告样式: 实验报告

班级:姓名:学号:组别:同组人: 课程名称:实验室:实验时间:

(使用实验报告纸的,以上内容可按照实验报告纸格式填写)

实验二香农编码 一、实验目的:

二、实验内容与原理:

三、实验器材(设备、元器件、软件工具、平台): 四、实验步骤: 五、程序流程图:

六、实验数据及结果分析: 七、实验结论: 八、思考题:

九、编程、调试过程中遇到的问题及解决方法:

十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 附录 2:香农编码 程序 : close all; clc;

n=input('输入信源符号个数:'); p=zeros(1,n); fori=1:n

p(1,i)=input('输入信源符号概率:'); end

if sum(p)<1||sum(p)>1

error('输入概率不符合概率分布') end 6

y=fliplr(sort(p)); D=zeros(n,4); D(:,1)=y'; fori=2:n D(1,2)=0;

D(i,2)=D(i-1,1)+D(i-1,2); end

fori=1:n

D(i,3)=-log2(D(i,1)); D(i,4)=ceil(D(i,3)); end D

A=D(:,2)'; B=D(:,4)'; Code_length=0; for j=1:n

Code_length=Code_length+p(j)*D(j,4); end H=0;

for j=1:n

H=H+p(j)*log2(1/p(j)); end

for j=1:n

fprintf('输入信源符号概率为%f的码字为:',p(1,j)); C=deczbin(A(j),B(j)); disp(C) end

Efficiency=H/(Code_length) fprintf('平均码长:\\n'); disp(Code_length)

fprintf('\\n 香农编码效率:\\n'); disp(Efficiency)

A:累加概率; B:码子长度。 :码子长度。 function [C]=deczbin(A,B) C=zeros(1,B); temp=A; fori=1:B temp=temp*2; if temp>1 temp=temp-1; C(1,i)=1; else

C(1,i)=0; end end 7

实验三费诺编码(2 学时)

一、实验目的

掌握费诺编码方法的基本步骤及优缺点。 二、实验内容

对于给定的信源的概率分布,按照费诺编码的方法进行计算机实现。 三、实验仪器、设备

1.计算机-系统最低配置256M 内存、P4 CPU; 2.MATLAB 编程软件。 四、实验原理 1.费诺编码原理:

费诺编码就是通过使编码中各个句号出现的概率大致相等,实现概率均匀化, 从而减少冗余度,提高编码效率。凡是能载荷一定的信息量,且码字的平均长度 最短,可分离的变长码的码字集合称为最佳变长码。在编N 进制码时首先将信 源消息符号按其出现的额概率一次又小到大排列开来,并将排列好的心愿符号按 概率值分N 大组,使N 组的概率之和近似相同,并对各组赋予一个N 进制码元 0、1...N-1。之后再针对每一个大组内的心愿符号做如上处理,即再分为概率相 同的N 组,赋予N 进制码元。如此重复,直到每组只剩下一个心愿符号为止。 此时每个信源符号所对应的码字即为费诺码。针对同一个心愿,费诺码比香农码 平均码长小,消息出书速率大,编码效率高。费诺编码是一种信源编码,它编码 后的费诺码要比香农码的平均码长小,消息传输速率大,编码效率高。但它属于 概率匹配编码它不是最佳的编码方法。 2.费诺编码算法:

(1)将信源消息符号按其出现的概率大小依次排列: 1 2 ( ) ( ) ... ( ) n P X ?P X ?P X

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

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

(4)如此重复,直至每个组只剩下一个信源符号为止; (5)信源符号所对应的码子即为费诺码。 五、实验步骤

1.根据实验原理,设计费诺编码程序;

2.输入一组信源消息符号概率,可以求费诺编码,平均码长和编码效率。 8

六、实验报告要求

1. 按照本节内容后实验报告形式书写;

2. 实验总结和心得要详细,可以根据自己情况写出建议。 七、实验注意事项 1.MATLAB 1.MATLAB1.MATLAB1.MATLAB1.MATLAB语言课下多复习,尽量采用模块化编程方法通过函数调形式 语言课下多复习,尽量采用模块化编程方法通过函数调形式 语言课下多复习,尽量采用模块化编程方法通过函数调形式 语言课下多复习,尽量采用模块化编程方法通过函数调形式 运行程序; 2. 仔细理解、体会费诺编码。 八、思考题

举例说明 费诺编码 在现实中际应用, 列举一个例子并简要说明? 附录 1:实验报告样式: 实验报告

班级:姓名:学号:组别:同组人: 课程名称:实验室:实验时间:

(使用实验报告纸的,以上内容可按照实验报告纸格式填写) 实验三费诺编码 一、实验目的:

二、实验内容与原理:

三、实验器材(设备、元器件、软件工具、平台): 四、实验步骤: 五、程序流程图:

六、实验数据及结果分析: 七、实验结论: 八、思考题:

九、编程、调试过程中遇到的问题及解决方法:

十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 附录2:费诺编程程序: clc;

clear all;

N=input('输入信源符号的个数:'); s=0; l=0; H=0; fori=1:N

fprintf('第%d个',i); p(i)=input('p=');

if (p(i)<=0)||(p(i)>=1) error('不符合分布概率'); end


实验一 信息熵与图像熵计算(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:视频会商系统试运行工作报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: