一绘制二元熵函数曲线报告Word文件下载.docx

上传人:b****3 文档编号:6225442 上传时间:2023-05-06 格式:DOCX 页数:11 大小:101.83KB
下载 相关 举报
一绘制二元熵函数曲线报告Word文件下载.docx_第1页
第1页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第2页
第2页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第3页
第3页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第4页
第4页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第5页
第5页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第6页
第6页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第7页
第7页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第8页
第8页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第9页
第9页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第10页
第10页 / 共11页
一绘制二元熵函数曲线报告Word文件下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

一绘制二元熵函数曲线报告Word文件下载.docx

《一绘制二元熵函数曲线报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《一绘制二元熵函数曲线报告Word文件下载.docx(11页珍藏版)》请在冰点文库上搜索。

一绘制二元熵函数曲线报告Word文件下载.docx

位于软件操作界面的左下方。

这个窗口记录了命令窗口已经运行过的所有命令(指令、函数等),允许用户对这些命令进行选择、复制。

2)MATLAB的函数

绘制二维图形最常用的就是plot函数,调用plot函数的三种形式:

plot(x)、plot(x,y)、plot(x,y,’r:

x’)。

还有就是如何添加横坐标和纵坐标标题的命令语句。

3.实验程序。

w=0.000001:

0.0001:

0.999999999%定义w的取值范围

y=-w.*log2(w)-(1-w).*log2(1-w)%定义二元熵函数的表达式

plot(w,y,'

r'

)%画出二元熵函数的曲线图

xlabel('

w'

)%x轴的名称

ylabel('

H(w)'

)%y轴的名称

gridon%给图形加上网格

title('

二元熵函数H(w)'

)%函数曲线的名称

运行结果如下:

四、实验结果分析

从图中可以看出熵函数的一些性质,如果二元信源的输出概率是1或0(即二元信源的输出是确定的),则该信源不提供任何信息。

当二元信源符号等概率发生时,即w=0.5时,信源的熵达到最大值,等于1比特信息量,曲线关于w=0.5左右对称。

五、实验总结

对MATLAB掌握不够,还缺少很多的MATLAB知识,应加强学习MATLAB。

实验二一般信道容量迭代算法实验报告

2.掌握一般信道容量迭代算法原理

用MATLAB软件编程实现一般信道容量迭代算法

1.复习一般信道容量迭代算法,了解其基本思路。

2.熟悉MATLAB的工作界面及所要用到的基本函数及语句,如:

输入语句、循环语句、exp函数等。

N=input('

输入信源符号X的个数N='

M=input('

输出信源符号Y的个数M='

p_yx=zeros(N,M)%程序设计需要信道矩阵初始化为零

fprintf('

输入信道矩阵概率\n'

fori=1:

N

forj=1:

M

p_yx(i,j)=input('

p_yx='

);

%输入信道矩阵概率

ifp_yx(i)<

error('

不符合概率分布'

end

end

N%各行概率累加求和

s(i)=0;

s(i)=s(i)+p_yx(i,j);

N%判断是否符合概率分布

if(s(i)<

=0.999999||s(i)>

=1.000001)

b=input('

输入迭代精度:

'

)%输入迭代精度

p(i)=1.0/N;

%取初始概率为均匀分布

forj=1:

M%计算q(j)

q(j)=0;

fori=1:

q(j)=q(j)+p(i)*p_yx(i,j);

end

N%计算a(i)

d(i)=0;

if(p_yx(i,j)==0)

d(i)=d(i)+0;

else

d(i)=d(i)+p_yx(i,j)*log(p_yx(i,j)/q(j));

a(i)=exp(d(i));

u=0;

N%计算u

u=u+p(i)*a(i);

IL=log2(u)%计算IL

IU=log2(max(a))%计算IU

n=1

while((IU-IL)>

=b)%迭代计算

p(i)=p(i)*a(i)/u;

%重新赋值p(i)

u=0

IL=log2(u)%计算IL

IU=log2(max(a))%计算IU

n=n+1

信道矩阵为:

\n'

disp(p_yx)

迭代次数n=%d\n'

n)

信道容量C=%f比特/符号'

IL)

 

实验结果为:

输入信源符号X的个数N=3

输出信源符号Y的个数M=4

输入信道矩阵概率

p_yx=0.5

p_yx=0.25

p_yx=0.1

p_yx=0.15

p_yx=0.23

p_yx=0.4

p_yx=0.27

p_yx=0.19

p_yx=0.21

p_yx=0.6

p_yx=0

0.00001

0.50000.25000.10000.1500

0.23000.40000.27000.1000

0.19000.21000.60000

迭代次数n=85

信道容量C=0.271258比特/符号

四、实验分析与总结

信道容量与输入信源的概率分布无关,它只是信道传输概率的函数,只与信道的统计特性有关。

信道容量是完全描述信道特性的参量,是信道能够传输的最大信息量。

只要信道的平均互信息达到极大值即等于信道容量,那么就说此输入概率分布是最佳的,因此达到信道容量的最佳输入分布并不是唯一的。

迭代精度越小,计算的结果越准确,但加重了算法的重复计算量,即迭代次数越多。

迭代精度越大,迭代次数越少,计算结果相对差些。

因此,可以根据实际情况来定迭代精度。

实验三编程实现哈夫曼编码实验报告

一、实验目的

2.掌握哈夫曼编码的原理

二、实验内容

用MATLAB软件编程实现哈夫曼编码

三、实验过程

1.复习哈夫曼编码,掌握其编码的原理。

2.熟悉MATLAB的工作界面及所要用到的基本函数及语句。

3.实验程序。

function[h,l]=huffman(p)%h为每个符号对应的码字,l为输出码字的平均码长

if(length(find(p<

0))~=0)%判断输入矩阵概率是否全为大于零的有效值

Notaprob,negativecomponent'

if(abs(sum(p)-1)>

10e-10)

Notaprob.vector,componentdonotaddto1'

)%判断总概率是否为1

n=length(p);

%编码的元素个数

q=p;

m=zeros(n-1,n);

%构造n-1行、n列的零矩阵

n-1%按概率大小排列得到m矩阵

[q,l]=sort(q);

%返回一个列升序排列的矩阵

m(i,:

)=[l(1:

n-i+1),zeros(1,i-1)];

q=[q

(1)+q

(2),q(3:

n),1];

n-1%生成一个n-1行、n*n列的矩阵c,每行看作n个段,每段长为n,记录一个码字

c(i,:

)=blanks(n*n);

c(n-1,n)='

1'

;

%c矩阵的n-1行的第一个段赋值1

c(n-1,2*n)='

0'

%c矩阵的n-1行的第二个段赋值0

fori=2:

n-1%确定从倒数第二开始到第一行前二段的码字

c(n-i,1:

n-1)=c(n-i+1,n*(find(m(n-i+1,:

)==1))-(n-2):

n*(find(m(n-i+1,:

)==1)));

c(n-i,n)='

c(n-i,n+1:

2*n-1)=c(n-i,1:

n-1);

c(n-i,2*n)='

i-1%每次循环时其他元素的码字

c(n-i,(j+1)*n+1:

(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:

)==j+1)-1)+1:

n*find(m(n-i+1,:

)==j+1));

end

n%根据m矩阵第一行纪录的概率排序,给每个概率对应的符号分配码字

h(i,1:

n)=c(1,n*(find(m(1,:

)==i)-1)+1:

find(m(1,:

)==i)*n);

ll(i)=length(find(abs(h(i,:

))~=32));

l=sum(p.*ll);

以p=[1/6,1/4,5/12,1/6]为例

n=4

l=1.9167

ans=

001

01

1

000

四、哈夫曼编码的流程图

五、实验分析与总结

哈夫曼编码是一种无损压缩方法,其编码方式有以下几步:

1、首先统计信源中各符号出现的概率,按符号出现的概率从大到小排序;

2、把最小的两个概率相加合并成新的概率,与剩余的概率组成新的概率集合;

3、对新的概率集合重新排序,再次把其中最小的两个概率相加,组成新的概率集合。

如此重复进行,直到最后两个概率的和为l;

4、分配码字:

码字分配从最后一步开始反向进行,对于每次相加的两个概率,大的赋0,小的赋1,将从该符号开始一直走到最后的概率和“1”的路线上所遇到的0和1按最低位到最高位的顺序排好,就是该符号的哈大曼编码。

哈夫曼编码方法得到的码字并不是唯一的。

原因有两个:

1、对概率大小的0、1编码方法是随便定义的,定义的方法不同,得到的最后的码字也不一样。

2、在合并后的概率中若出现与原来概率相同的,这两个概率放在什么位置,方法也不是唯一的,所以最后编码也不一样。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2