信息论编码与实验大纲PDF
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
close all; clc; n=input('输入信源符号个数:'); p=zeros(1,n); for i=1:n p(1,i)=input('输入信源符号概率:'); end if sum(p)<1||sum(p)>1 error('输入概率不符合概率分布') end
5
香农编码
y=fliplr(sort(p)); D=zeros(n,4); D(:,1)=y'; for i=2:n D(1,2)=0; D(i,2)=D(i-1,1)+D(i-1,2); end for i=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)
close all; clc; I=imread('图片的路径'); img=rgb2gray(I); imview(I),imview(img); [ix,iy]=size(img); P1=imhist(img)/(ix*iy); temp=double(img); temp=[temp,temp(:,1)]; CoefficientMat=zeros(256,256); for x=1:ix for y=1:iy i=temp(x,y); j=temp(x,y+1); CoefficientMat(i+1,j+1)=CoefficientMat(i+1,j+1)+1; end end P2 = CoefficientMat./(ix*iy); H1=0; H2=0; for i=1:256 if P1(i)~=0 H1=H1-P1(i)*log2(P1(i)); end for j=1:256 if P2(i,j)~=0 H2=H2-P2(i,j)*log2(P2(i,j)); end end end H2=H2/2; sprintf('1 ord image entropy is:%d',H1) sprintf('2 ord image entropy is:%d',H2)
3.为了编成唯一可译码,计算第 i 个消息的累加概率;
pi p( xk )
k 1 i 1
4.将累加概率 Pi 变成二进制数; 5.取 Pi 二进制数的小数点后 K i 位即为该消息符号的二进制码字。 五、实验步骤 1.根据实验原理,设计香农编码程序; 2.输入一组信源消息符号概率,可以求香农编码、平均码长和编码效率。 六、实验报告要求
A:累加概率;B:码子长度。
function [C]=deczbin(A,B) C=zeros(1,B); temp=A; for i=1:B temp=temp*2; if temp>1 temp=temp-1; C(1,i)=1; else C(1,i)=0; end end
6
实验三 费诺编码(2 学时)
255 i 0
H pi log pi
图像的一维熵可以表示图像灰度分布的聚集特征, 却不能反映图像灰度分布 的空间特征, 为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度 分布空间特征的特征量来组成图像的二维熵。 选择图像的邻域灰度均值作为灰度
1
分布的空间特征量,与图像的像素灰度组成特征二元组,记为(i,j),其中 i 表示 像素的灰度值(0<=i<=255),j 表示邻域灰度(0<=j<=255),
I ( X i ) K I ( X i ) 1, i
就可以得到这种码,这种编码方法就是香农编码。 2.香农编码算法: 1.将信源消息符号按其出现的概率大小依次排列:
P( X1 ) P( X 2 ) ,, P( X n )
2.确定满足下列不等式整数码长 K i ;
log2p(xi ) Ki log 2 p( xi ) 1
pij f (i, j ) / N 2
上式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征, 其中 f(i,j)为特征二元组(i,j)出现的频数,N 为图像的尺度,定义离散的图像二维熵为:
255 i 0
H pij log pij
构造的图像二维熵可以在图像所包含信息量的前提下, 突出反映图像中像素 位置的灰度信息和像素邻域内灰度分布的综合特征。 五、实验步骤 1.求解信息熵过程: (1)输入一个离散信源,并检查该信源是否是完备集; (2)去除信源中符号分布概率为零的元素; (3)根据平均信息量公式,求出离散信源的熵。 2.图像熵计算过程: (1)输入一幅图像,并将其转换成灰度图像; (2)统计出图像中每个灰度阶象素概率; (3)统计出图像中相邻两象素的灰度阶联合分布矩阵; (4)根据图像熵和二阶熵公式,计算出一幅图像的熵。 六、实验报告要求 1.按照本节内容后实验报告形式书写; 2.实验总结和心得要详细,可以根据自己实验情况,写出建议。 七、实验注意事项 1.MATLAB 语言课下多复习, 尽量采用模块化编程方法, 通过函数调用形式 运行程序。 2.仔细理解、体会图像熵的概念,能够将其联合熵的概念理解透彻。 八、思考题 举例说明图像熵、信息熵在现实中有何实践指导意义? 附录 1:实验报告样式: 实 验 报 告 班级: 姓名: 学号: 组别: 课程名称: 实验室: 实验时间: 同组人:
3
实验二 香农编码(2 个学时)
一、实验目的 1.了解香农编码的基本原理及其特点; 2.熟悉掌握香农编码的方法和步骤; 3.掌握 MATLAB 编写香农编码的程序。 二、实验内容 1.根据香农编码的方法和步骤,用香农编码编写程序; 2.用编写的源程序验证书中例题的正确性。 三、实验仪器、设备 1.计算机-系统最低配置 256M 内存、P4 CPU; 2. MATLAB 编程软件。 四、实验原理 1.香农编码原理: 香农第一定理指出了平均码长与信源之间的关系, 同时也指出了可以通过编 码使平均码长达到极限值,这是一个很重要的极限定理。香农第一定理指出,选 择每个码字的长度 K i 满足下式:
一、实验目的 掌握费诺编码方法的基本步骤及优缺点。 二、实验内容 对于给定的信源的概率分布,按照费诺编码的方法进行计算机实现。 三、实验仪器、设备 1.计算机-系统最低配置 256M 内存、P4 CPU; 2.MATLAB 编程软件。 四、实验原理 1.费诺编码原理: 费诺编码就是通过使编码中各个句号出现的概率大致相等, 实现概率均匀化, 从而减少冗余度,提高编码效率。凡是能载荷一定的信息量,且码字的平均长度 最短,可分离的变长码的码字集合称为最佳变长码。在编 N 进制码时首先将信 源消息符号按其出现的额概率一次又小到大排列开来, 并将排列好的心愿符号按 概率值分 N 大组,使 N 组的概率之和近似相同,并对各组赋予一个 N 进制码元 0、1...N-1。之后再针对每一个大组内的心愿符号做如上处理,即再分为概率相 同的 N 组,赋予 N 进制码元。如此重复,直到每组只剩下一个心愿符号为止。 此时每个信源符号所对应的码字即为费诺码。针对同一个心愿,费诺码比香农码 平均码长小,消息出书速率大,编码效率高。费诺编码是一种信源编码,它编码 后的费诺码要比香农码的平均码长小,消息传输速率大,编码效率高。但它属于 概率匹配编码它不是最佳的编码方法。 2.费诺编码算法: (1)将信源消息符号按其出现的概率大小依次排列:
4
1.按照本节内容后实验报告形式书写; 2.实验总结和心得要详细,可以根据自己实验情况,写出建议。 七、实验注意事项 1.香农编码是码符号概率大的用短码表示,概率小的是用长码表示,程序中 需要对概率进行排序,对此我们调用 MATLAB 的库函数; 2.最后需要注意的是,求得的码字依次与排序后的符号概率对应; 3.向无穷方向取最小正整数位 ceil 函数。 八、思考题 举例说明香农编码在现实中有实际作用,列举一个例子,并简要说明? 附录 1:实验报告样式: 实 验 报 告 班级: 姓名: 学号: 组别: 课程名称: 实验室: 实验时间: 同组人:
1
实验一 信息熵与图像熵计算(2 学时)
一、实验目的 1.复习 MATLAB 的基本命令,熟悉 MATLAB 下的基本函数; 2.复习信息熵基本定义,能够自学图像熵定义和基本概念。 二、实验内容 1.能够写出 MATLAB 源代码,求信源的信息熵; 2.根据图像熵基本知识,综合设计出 MATLAB 程序,求出给定图像的图像 熵。 三、实验仪器、设备 1.计算机-系统最低配置 256M 内存、P4 CPU; 2.MATLAB 编程软件。 四、实验原理 1.MATLAB 中数据类型、矩阵运算、图像文件输入与输出知识复习。 2.利用信息论中信息熵概念, 求出任意一个离散信源的熵 (平均自信息量) 。 自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。所发出 的消息不同, 它们所含有的信息量也就不同。任何一个消息的自信息量都代表不 了信源所包含的平均自信息量。 不能作为整个信源的信息测度,因此定义自信息 量的数学期望为信源的平均自信息量:
(使用实验报告纸的,以上内容可按照实验报告纸格式填写) 实验二 一、实验目的: 二、实验内容与原理: 三、实验器材(设备、元器件、软件工具、平台): 四、实验步骤: 五、程序流程图: 六、实验数据及结果分析: 七、实验结论: 八、思考题: 九、编程、调试过程中遇到的问题及解决方法: 十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 附录 2:香农编码程序:
《信息论与编码》实验指导书
1
目 录 实验一 信息熵与图像熵计算(2 学时) .................................................................. 1 实验二 香农编码(2 个学时) .................................................................................. 4 实验三 费诺编码(2 学时) ...................................................................................... 6 实验四 哈夫曼编码(2 学时) ................................................................................ 11 实验五 算术编码(2 学时) .................................................................................... 13 实验六 线性分组码的信道编码和译码(2 学时) ................................................ 19
n
H ( X) E[log
1 p ( ai )
Fra Baidu bibliotek
] p(ai ) log p (ai )
i 1
信息熵的意义:信源的信息熵 H 是从整个信源的统计特性来考虑的。它是 从平均意义上来表征信源的总体特性的。 对于某特定的信源, 其信息熵只有一个。 不同的信源因统计特性不同,其熵也不同。 3.学习图像熵基本概念,能够求出图像一维熵和二维熵。 图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。图像的 一维熵表示图像中灰度分布的聚集特征所包含的信息量,令 Pi 表示图像中灰度 值为 i 的像素所占的比例,则定义灰度图像的一元灰度熵为:
(使用实验报告纸的,以上内容可按照实验报告纸格式填写) 实验一 信息熵与图像熵计算
2
一、实验目的: 二、实验内容与原理: 三、实验器材(设备、元器件、软件工具、平台): 四、实验步骤: 五、程序流程图: 六、实验数据及结果分析: 七、实验结论: 八、思考题: 九、编程、调试过程中遇到的问题及解决方法: 十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 附录 2:图像一维二维熵程序:
5
香农编码
y=fliplr(sort(p)); D=zeros(n,4); D(:,1)=y'; for i=2:n D(1,2)=0; D(i,2)=D(i-1,1)+D(i-1,2); end for i=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)
close all; clc; I=imread('图片的路径'); img=rgb2gray(I); imview(I),imview(img); [ix,iy]=size(img); P1=imhist(img)/(ix*iy); temp=double(img); temp=[temp,temp(:,1)]; CoefficientMat=zeros(256,256); for x=1:ix for y=1:iy i=temp(x,y); j=temp(x,y+1); CoefficientMat(i+1,j+1)=CoefficientMat(i+1,j+1)+1; end end P2 = CoefficientMat./(ix*iy); H1=0; H2=0; for i=1:256 if P1(i)~=0 H1=H1-P1(i)*log2(P1(i)); end for j=1:256 if P2(i,j)~=0 H2=H2-P2(i,j)*log2(P2(i,j)); end end end H2=H2/2; sprintf('1 ord image entropy is:%d',H1) sprintf('2 ord image entropy is:%d',H2)
3.为了编成唯一可译码,计算第 i 个消息的累加概率;
pi p( xk )
k 1 i 1
4.将累加概率 Pi 变成二进制数; 5.取 Pi 二进制数的小数点后 K i 位即为该消息符号的二进制码字。 五、实验步骤 1.根据实验原理,设计香农编码程序; 2.输入一组信源消息符号概率,可以求香农编码、平均码长和编码效率。 六、实验报告要求
A:累加概率;B:码子长度。
function [C]=deczbin(A,B) C=zeros(1,B); temp=A; for i=1:B temp=temp*2; if temp>1 temp=temp-1; C(1,i)=1; else C(1,i)=0; end end
6
实验三 费诺编码(2 学时)
255 i 0
H pi log pi
图像的一维熵可以表示图像灰度分布的聚集特征, 却不能反映图像灰度分布 的空间特征, 为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度 分布空间特征的特征量来组成图像的二维熵。 选择图像的邻域灰度均值作为灰度
1
分布的空间特征量,与图像的像素灰度组成特征二元组,记为(i,j),其中 i 表示 像素的灰度值(0<=i<=255),j 表示邻域灰度(0<=j<=255),
I ( X i ) K I ( X i ) 1, i
就可以得到这种码,这种编码方法就是香农编码。 2.香农编码算法: 1.将信源消息符号按其出现的概率大小依次排列:
P( X1 ) P( X 2 ) ,, P( X n )
2.确定满足下列不等式整数码长 K i ;
log2p(xi ) Ki log 2 p( xi ) 1
pij f (i, j ) / N 2
上式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征, 其中 f(i,j)为特征二元组(i,j)出现的频数,N 为图像的尺度,定义离散的图像二维熵为:
255 i 0
H pij log pij
构造的图像二维熵可以在图像所包含信息量的前提下, 突出反映图像中像素 位置的灰度信息和像素邻域内灰度分布的综合特征。 五、实验步骤 1.求解信息熵过程: (1)输入一个离散信源,并检查该信源是否是完备集; (2)去除信源中符号分布概率为零的元素; (3)根据平均信息量公式,求出离散信源的熵。 2.图像熵计算过程: (1)输入一幅图像,并将其转换成灰度图像; (2)统计出图像中每个灰度阶象素概率; (3)统计出图像中相邻两象素的灰度阶联合分布矩阵; (4)根据图像熵和二阶熵公式,计算出一幅图像的熵。 六、实验报告要求 1.按照本节内容后实验报告形式书写; 2.实验总结和心得要详细,可以根据自己实验情况,写出建议。 七、实验注意事项 1.MATLAB 语言课下多复习, 尽量采用模块化编程方法, 通过函数调用形式 运行程序。 2.仔细理解、体会图像熵的概念,能够将其联合熵的概念理解透彻。 八、思考题 举例说明图像熵、信息熵在现实中有何实践指导意义? 附录 1:实验报告样式: 实 验 报 告 班级: 姓名: 学号: 组别: 课程名称: 实验室: 实验时间: 同组人:
3
实验二 香农编码(2 个学时)
一、实验目的 1.了解香农编码的基本原理及其特点; 2.熟悉掌握香农编码的方法和步骤; 3.掌握 MATLAB 编写香农编码的程序。 二、实验内容 1.根据香农编码的方法和步骤,用香农编码编写程序; 2.用编写的源程序验证书中例题的正确性。 三、实验仪器、设备 1.计算机-系统最低配置 256M 内存、P4 CPU; 2. MATLAB 编程软件。 四、实验原理 1.香农编码原理: 香农第一定理指出了平均码长与信源之间的关系, 同时也指出了可以通过编 码使平均码长达到极限值,这是一个很重要的极限定理。香农第一定理指出,选 择每个码字的长度 K i 满足下式:
一、实验目的 掌握费诺编码方法的基本步骤及优缺点。 二、实验内容 对于给定的信源的概率分布,按照费诺编码的方法进行计算机实现。 三、实验仪器、设备 1.计算机-系统最低配置 256M 内存、P4 CPU; 2.MATLAB 编程软件。 四、实验原理 1.费诺编码原理: 费诺编码就是通过使编码中各个句号出现的概率大致相等, 实现概率均匀化, 从而减少冗余度,提高编码效率。凡是能载荷一定的信息量,且码字的平均长度 最短,可分离的变长码的码字集合称为最佳变长码。在编 N 进制码时首先将信 源消息符号按其出现的额概率一次又小到大排列开来, 并将排列好的心愿符号按 概率值分 N 大组,使 N 组的概率之和近似相同,并对各组赋予一个 N 进制码元 0、1...N-1。之后再针对每一个大组内的心愿符号做如上处理,即再分为概率相 同的 N 组,赋予 N 进制码元。如此重复,直到每组只剩下一个心愿符号为止。 此时每个信源符号所对应的码字即为费诺码。针对同一个心愿,费诺码比香农码 平均码长小,消息出书速率大,编码效率高。费诺编码是一种信源编码,它编码 后的费诺码要比香农码的平均码长小,消息传输速率大,编码效率高。但它属于 概率匹配编码它不是最佳的编码方法。 2.费诺编码算法: (1)将信源消息符号按其出现的概率大小依次排列:
4
1.按照本节内容后实验报告形式书写; 2.实验总结和心得要详细,可以根据自己实验情况,写出建议。 七、实验注意事项 1.香农编码是码符号概率大的用短码表示,概率小的是用长码表示,程序中 需要对概率进行排序,对此我们调用 MATLAB 的库函数; 2.最后需要注意的是,求得的码字依次与排序后的符号概率对应; 3.向无穷方向取最小正整数位 ceil 函数。 八、思考题 举例说明香农编码在现实中有实际作用,列举一个例子,并简要说明? 附录 1:实验报告样式: 实 验 报 告 班级: 姓名: 学号: 组别: 课程名称: 实验室: 实验时间: 同组人:
1
实验一 信息熵与图像熵计算(2 学时)
一、实验目的 1.复习 MATLAB 的基本命令,熟悉 MATLAB 下的基本函数; 2.复习信息熵基本定义,能够自学图像熵定义和基本概念。 二、实验内容 1.能够写出 MATLAB 源代码,求信源的信息熵; 2.根据图像熵基本知识,综合设计出 MATLAB 程序,求出给定图像的图像 熵。 三、实验仪器、设备 1.计算机-系统最低配置 256M 内存、P4 CPU; 2.MATLAB 编程软件。 四、实验原理 1.MATLAB 中数据类型、矩阵运算、图像文件输入与输出知识复习。 2.利用信息论中信息熵概念, 求出任意一个离散信源的熵 (平均自信息量) 。 自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。所发出 的消息不同, 它们所含有的信息量也就不同。任何一个消息的自信息量都代表不 了信源所包含的平均自信息量。 不能作为整个信源的信息测度,因此定义自信息 量的数学期望为信源的平均自信息量:
(使用实验报告纸的,以上内容可按照实验报告纸格式填写) 实验二 一、实验目的: 二、实验内容与原理: 三、实验器材(设备、元器件、软件工具、平台): 四、实验步骤: 五、程序流程图: 六、实验数据及结果分析: 七、实验结论: 八、思考题: 九、编程、调试过程中遇到的问题及解决方法: 十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 附录 2:香农编码程序:
《信息论与编码》实验指导书
1
目 录 实验一 信息熵与图像熵计算(2 学时) .................................................................. 1 实验二 香农编码(2 个学时) .................................................................................. 4 实验三 费诺编码(2 学时) ...................................................................................... 6 实验四 哈夫曼编码(2 学时) ................................................................................ 11 实验五 算术编码(2 学时) .................................................................................... 13 实验六 线性分组码的信道编码和译码(2 学时) ................................................ 19
n
H ( X) E[log
1 p ( ai )
Fra Baidu bibliotek
] p(ai ) log p (ai )
i 1
信息熵的意义:信源的信息熵 H 是从整个信源的统计特性来考虑的。它是 从平均意义上来表征信源的总体特性的。 对于某特定的信源, 其信息熵只有一个。 不同的信源因统计特性不同,其熵也不同。 3.学习图像熵基本概念,能够求出图像一维熵和二维熵。 图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。图像的 一维熵表示图像中灰度分布的聚集特征所包含的信息量,令 Pi 表示图像中灰度 值为 i 的像素所占的比例,则定义灰度图像的一元灰度熵为:
(使用实验报告纸的,以上内容可按照实验报告纸格式填写) 实验一 信息熵与图像熵计算
2
一、实验目的: 二、实验内容与原理: 三、实验器材(设备、元器件、软件工具、平台): 四、实验步骤: 五、程序流程图: 六、实验数据及结果分析: 七、实验结论: 八、思考题: 九、编程、调试过程中遇到的问题及解决方法: 十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 附录 2:图像一维二维熵程序: