信息论与编码实验报告

中南大学

信息论编码实验报告

题    目        信息论编码    

学生姓名          汤思远           

指导教师          张祖平           

学    院          信息院           

学    号        090912052          

专业班级         电子1班          

完成时间          14/12/5         

实验一  关于信源熵的实验

一、实验目的

1.        掌握离散信源熵的原理和计算方法。

2.        熟悉matlab软件的基本操作,练习使用matlab求解信源的信息熵。

3.        自学图像熵的相关概念,并应用所学知识,使用matlab或其他开发工具求解图像熵。

4.        掌握Excel的绘图功能,使用Excel绘制散点图、直方图。

二、实验原理

1.        离散信源相关的基本概念、原理和计算公式

产生离散信息的信源称为离散信源。离散信源只能产生有限种符号。

随机事件的自信息量Ixi)为其对应的随机变量xi出现概率对数的负值。即:

Ixi)= -log2p(xi)

随机事件X的平均不确定度(信源熵)HX)为离散随机变量xi出现概率的数学期望,即:

2.        信源的信息熵

设信源符号集X={a1,a2,…,ar},每个符号发生的概率分别为p(a1)=p1,p(a2)=p2,…,p(ar),即信源的概率空间为

则该信源的信源熵为:

H(X) = - p(a1) log p(a1)p(a2)log p(a2)–…–p(ar)log p(ar)

3.        信道的数学模型与相关熵的计算

 

 

?    单符号离散无噪声无损信道的信道容量

4.        MATLAB二维绘图

用matlab中的命令plot(x, y)就可以自动绘制出二维图来。

例1-2,在matlab上绘制余弦曲线图,y = cos x,其中0 ≤ x ≤ 2p。

>>x=0:0.1:2*pi; %生成横坐标向量,使其为0,0.1,0.2,…,6.2

>>y=cos(x);  %计算余弦向量

>>plot(x,y)   %绘制图形

5.        MATLAB求解离散信源熵

求解信息熵过程:

1) 输入一个离散信源,并检查该信源是否是完备集。

2) 根据H(X)公式,求出离散信源的熵。

6.        图像熵的相关知识

图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi 表示图像中灰度值为i的像素所占的比例,则定义灰度图像的一元灰度熵为:

图像熵计算过程:

1) 输入一幅图像,并将其转换成灰度图像。

2) 统计出图像中每个灰度阶象素概率。

3) 计算出一幅图像的一维熵。

7.        Excel的绘图功能

比如:用Excel或制作二元熵函数曲线。具体步骤如下:

1)启动Excel应用程序。

2)准备一组数据p。在Excel的一个工作表的A列(或其它列)输入一组p,取步长为0.01,从0至100产生101个p(利用Excel填充功能)。

3)使用Excel的计算功能,在B列中用二元熵函数计算公式,求得A列中各数值对应的二元熵值。比如:在单元格B2中输入公式:=-A2*LOG(A2,2)-(1-A2)*LOG(1-A2,2)。

4)使用Excel的图表向导,图表类型选“XY散点图”,子图表类型选“无数据点平滑散点图”,绘制二元熵函数散点图。

三、实验内容

1、使用matlab软件绘制信源熵函数曲线。

输入不少于6个符号的信源及其概率(可以界面交互式输入,也可以以数据文件直接输入);判断是否符合完备概率空间,如否则提示重新输入,如是则计算每个符号的自信量与信源熵(可以直接在界面上显示,也可以存储为一个数据文件);将自信量用线连接,信源熵表示一条直线,即最终图上将显示2条线,分别用不同的颜色与标签标识其自信量或信源熵。

1)实验代码:

x=[1:6]

x1=[1,1,1,1,1,1]

%为了能顺利将H作为直线打印,将H乘上一个序列后打印,不然无法画出

p=[0.1 0.1 0.1 0.2 0.2 0.3]

if sum(p)==1

I=-log2(p)

H=sum(-p.*log2(p));

H1=x1*H;

plot(x,H1,x,I,'r')

else

    disp('信源空间概率和不为一,请检查并重录');

end

figure

期间难点:如何将Hx做成序列打印成线,如果只是简单的plot(x,H)无法得出图像

2)实验结果:

f1.png

2、使用matlab软件求解离散单符号信源的熵与信道相关熵。

在信源空间的基础上,再输入转移概率矩阵(可以界面交互式输入,也可以以数据文件直接输入,Y空间不少于5个符号),判断是否符合概率空间特点(每一行等于1),如否则提示重新输入,如是则计算H(Y),I(X;Y),H(X/Y),H(Y/X),H(XY)及考虑此种信道的容量计算公式及其计算结果。将H(X),H(Y),I(X;Y),H(X/Y),H(Y/X),H(XY)用柱状图表示出来。

1)实验代码:

Py1x=[1,0,0,0,0,0;

    0,1,0,0,0,0;

    0,0,0.5,0.5,0,0;

    0,0,0,0.5,0.5,0;

    0,0,0,0,0.5,0.5;

    0,0,0,0,0,1;

    ]

%输入条件概率矩阵

y=[0,0,0,0,0,0]

Pxy=ones(6,6);建立联合概率矩阵

for k=1:6

 k1=0

 for l=1:6

   

    k1=k1+(p(l).*Py1x(l,k));

    k2=p(l).*Py1x(l,k);

    Pxy(l,k)=k2;  %借条件概率与Px, 计算联合概率矩阵

  

end   

   y(k)=k1 %通过联合概率,计算Y概率分布

end

if sum(y)==1

    %验证Y分布和为一,则计算正确

Hy=sum(-y.*log2(y));

%通过Y分布计算H(y)

else

    disp('信源空间概率和不为一,请检查并重录');

end

Hy1x1=zeros(6,6);%建立Hy/x的矩阵

for(k=1:6)

  for(l=1:6)

      if Py1x(l,k)~=0

  Hy1x1(l,k)=(Pxy(l,k).*(-log2(Py1x(l,k))));

     %计算x,y矩阵每一项的Iy/x*pxy

      end

  end   

end    

Hy1x=sum(sum(Hy1x1));%加和即为Hy/x

Ixy1=zeros(6,6)

for(j=1:6)

   for(i=1:6)

        if Py1x(i,j)~=0

      

            Ixy1(i,j)= Pxy(i,j) * (-log2(y(j))+log2(Py1x(i,j)))

      

        end

      

      

   end   

   

end   

Ixy=sum(sum(Ixy1))%计算方法和Hy/xHy/x一样

Hx1y=H-Ixy;

Hxy=H+Hy-Ixy;

%包含关系算其它项

PL=[0,0,0,0,0,0]

PL(1)=H

PL(2)=Hy

PL(3)=Hx1y

PL(4)=Hy1x

PL(5)=Hxy

PL(6)=Ixy

bar(x,PL)

text(1,2.8,'Hx')

text(2,2.8,'Hy')

text(3,2.8,'H(x/y)')

text(4,2.8,'H(y/x)')

text(5,3,'Hxy')

text(6,2.8,'Ixy')

figure

%打印结果

期间难点:循环时行和列的顺序以及 循环符号k1,k2哪个是行哪个是列需要思考。

2)试验结果:f2.png

Pxy =

    0.1000         0         0         0         0         0

         0    0.1000         0         0         0         0

         0         0    0.0500    0.0500         0         0

         0         0         0    0.1000    0.1000         0

         0         0         0         0    0.1000    0.1000

         0         0         0         0         0    0.3000

Hy =

    2.2842

Ixy =

    1.7842

>> Hy1x

Hy1x =

    0.5000

>> H

H =

    2.4464

>> Hxy

Hxy =

    2.9464

其中Hy-Ixy=Hy1x

说明计算正确。

而其他项是直接用包含关系做的,能够自洽,说明正确。

3、使用matlab软件计算图像一维图像熵,请自己选择任意两幅图像,根据求解结果说明其物理意义。

1)实验代码:

filename = 'tsy1.jpg';

imfinfo(filename) 

imgRgb = imread(filename); %读图

imshow(imgRgb);

A = rgb2gray(imgRgb); 

figure

imshow(A); 

imwrite(A, 'tsy2.jpg');%生成灰度图

[M,N]=size(A);

pt=zeros(256,1)

for m=1:M;

    for n=1:N;

        if A(m,n)==0;

           i=1;

        else

           i=A(m,n);

        end

        pt(i)=pt(i)+1;

    end

end

%遍历像素,计算各灰度个数

pt=pt./(M*N)

 %计算概率

result=0;

for i=1:length(pt)

    if pt(i)==0;

        result=result;

    else

        result=result-pt(i)*log2(pt(i));

    end

end   %求解熵

result

xlswrite('电子1201-0909120523-汤思远-实验1-Excel绘图.xls', pt,'sheet1','C1:C256')%输出给excel

figure

%第二幅图代码与上同,只是名为tsy3,存为pt2,输出给D1:D257

期间难点:

1.

读取图片和转化为灰度图需要自学,计算反而不如实验2难

为了能和Excel切合,必须将pt,pt2设计为256行1列的矩阵,方便输出给excel的3,4列,不然无法输出。

2)实验结果:

图片1:f3.png

灰度图1:f4.png

图片2:f5.png

灰度图2:f6.png

pt =

         0         0         0         0         0         0         0         0         0         0         0

    0.0000    0.0000    0.0000    0.0001    0.0001    0.0002    0.0026    0.0025    0.0109    0.0055    0.0067

     0.0066    0.0061    0.0058    0.0054    0.0031    0.0044    0.0043    0.0035    0.0034    0.0035    0.0027

    0.0032    0.0029    0.0028    0.0029    0.0028    0.0027    0.0029    0.0028    0.0024    0.0030    0.0029

    0.0022    0.0030    0.0016    0.0028    0.0026    0.0023    0.0026    0.0020    0.0023    0.0015    0.0020

    0.0022    0.0019    0.0023    0.0018    0.0019    0.0023    0.0016    0.0019    0.0018    0.0018    0.0018

    0.0023    0.0014    0.0020    0.0020    0.0015    0.0018    0.0017    0.0017    0.0018    0.0019    0.0021

    0.0016    0.0026    0.0020    0.0017    0.0018    0.0017    0.0019    0.0029    0.0026    0.0023    0.0028

    0.0025    0.0026    0.0029    0.0023    0.0030    0.0033    0.0028    0.0032    0.0036    0.0039    0.0034

    0.0042    0.0031    0.0042    0.0039    0.0048    0.0039    0.0055    0.0053    0.0051    0.0045    0.0053

    0.0052    0.0052    0.0056    0.0060    0.0063    0.0055    0.0053    0.0063    0.0059    0.0060    0.0061

    0.0053    0.0054    0.0045    0.0057    0.0058    0.0065    0.0063    0.0058    0.0064    0.0067    0.0072

    0.0065    0.0074    0.0069    0.0080    0.0091    0.0084    0.0091    0.0085    0.0078    0.0071    0.0074

    0.0070    0.0068    0.0066    0.0075    0.0063    0.0057    0.0063    0.0065    0.0055    0.0063    0.0061

 

    0.0057    0.0069    0.0063    0.0062    0.0067    0.0073    0.0073    0.0074    0.0068    0.0059    0.0062

    0.0066    0.0065    0.0062    0.0061    0.0070    0.0068    0.0064    0.0060    0.0063    0.0056    0.0055

    0.0057    0.0051    0.0050    0.0062    0.0063    0.0075    0.0075    0.0079    0.0078    0.0073    0.0076

    0.0070    0.0072    0.0063    0.0060    0.0058    0.0056    0.0073    0.0077    0.0078    0.0099    0.0102

    0.0106    0.0136    0.0146    0.0133    0.0115    0.0102    0.0099    0.0104    0.0092    0.0073    0.0056

    0.0031    0.0009    0.0008    0.0006    0.0005    0.0004    0.0002    0.0002    0.0001    0.0001    0.0001

    0.0001    0.0002    0.0001    0.0001    0.0001    0.0002    0.0002    0.0001    0.0000    0.0000    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0001    0.0001    0.0001    0.0002    0.0006    0.0007    0.0020

    0.0026    0.0040         0

result =

    7.4689

第二幅图:

pt2 =

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

         0

    0.0000

    0.0001

    0.0005

    0.0006

    0.0005

    0.0050

    0.0002

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0000

    0.0001

    0.0001

    0.0002

    0.0004

    0.0026

    0.0027

    0.0062

    0.0076

    0.0106

    0.0126

    0.0150

    0.0157

    0.0109

    0.0114

    0.0113

    0.0069

    0.0061

    0.0066

    0.0059

    0.0044

    0.0056

    0.0050

    0.0037

    0.0043

    0.0036

    0.0040

    0.0046

    0.0063

    0.0064

    0.0059

    0.0033

    0.0032

    0.0033

    0.0043

    0.0040

    0.0052

    0.0056

    0.0061

    0.0053

    0.0063

    0.0052

    0.0056

    0.0054

    0.0053

    0.0048

    0.0044

    0.0046

    0.0032

    0.0041

    0.0038

    0.0034

    0.0033

    0.0034

    0.0036

    0.0030

    0.0036

    0.0033

    0.0032

    0.0039

    0.0037

    0.0061

    0.0053

    0.0062

    0.0081

    0.0034

    0.0070

    0.0077

    0.0049

    0.0032

    0.0041

    0.0034

    0.0035

    0.0047

    0.0062

    0.0057

    0.0064

    0.0054

    0.0058

    0.0056

    0.0060

    0.0047

    0.0050

    0.0042

    0.0045

    0.0039

    0.0039

    0.0041

    0.0038

    0.0032

    0.0035

    0.0036

    0.0039

    0.0036

    0.0040

    0.0063

    0.0061

    0.0091

    0.0106

    0.0108

    0.0140

    0.0213

    0.0341

    0.0238

    0.0199

    0.0240

    0.0329

    0.0323

    0.0210

    0.0146

    0.0107

    0.0089

    0.0073

    0.0072

    0.0070

    0.0100

    0.0062

    0.0062

    0.0060

    0.0066

    0.0066

    0.0076

    0.0076

    0.0068

    0.0065

    0.0058

    0.0056

    0.0053

    0.0053

    0.0043

    0.0040

    0.0038

    0.0028

    0.0034

    0.0055

    0.0027

    0.0028

    0.0015

    0.0010

    0.0016

    0.0092

    0.0143

    0.0113

    0.0050

    0.0008

    0.0005

    0.0005

    0.0003

    0.0002

    0.0003

    0.0011

    0.0009

    0.0017

    0.0010

    0.0046

    0.0005

    0.0002

    0.0001

    0.0001

    0.0001

    0.0001

    0.0002

    0.0003

    0.0005

    0.0002

    0.0002

    0.0001

    0.0001

    0.0002

    0.0001

    0.0002

    0.0002

    0.0001

    0.0001

    0.0001

    0.0001

    0.0000

    0.0000

    0.0001

    0.0001

    0.0001

    0.0001

    0.0001

    0.0001

    0.0002

    0.0006

    0.0009

    0.0017

    0.0029

    0.0036

         0

result =

    6.9256

4、使用Excel软件,绘制二元信源熵函数曲线的散点图。

实验过程如实验指导书

结果:见附件“电子1201-0909120523-汤思远-实验1-Excel绘图.xls”

5、使用Excel软件,绘制(3)中两幅图像的灰度直方图(0到255各灰度占图像像素的比例值,使用柱状图绘制其比列分布)。

1)代码:

xlswrite('电子1201-0909120523-汤思远-实验1-Excel绘图.xls', pt,'sheet1','C1:C256')

xlswrite('电子1201-0909120523-汤思远-实验1-Excel绘图.xls', pt2,'sheet1','D1:D256')

2)结果

在对C,D两列分别画柱状图如下:

图1:

图2:

相关推荐