离散信源熵信道容量实验报告

更新时间:2023-04-22 16:10:14 阅读: 评论:0


2023年4月22日发(作者:许仙传)

计算离散信源熵、离散信道容量

1 实验任务和目的

实验任务:

1)简要总结信源的熵、信道容量的物理意义,概念;

2)写出离散信源熵、离散信道容量计算的基本步骤,画出实现离散信源

熵、离散信道容量计算的程序流程图;

3)讨论信源的熵的大小与前后符号之间相关性的关系,讨论信道容量与

信源先验概率及信道转移概率的关系。

实验目的:

掌握信源的熵、信道容量的物理意义,概念;熟练掌握离散信源熵、离散信道

容量的计算方法步骤;利用Matlab编写离散信源熵、离散信道容量的计算程序;

验证程序的正确性。

2 实验过身上长猴子 程和结果

2.1

实验过程

1、简要总结信源的熵、信道容量的物理意义,概念。

信源熵的物理意义是指信源中的各个符号的平均不确定性;熵是信源符号的平均

信息量,是信源符号的平均不确定度。

信道容量 概念:在信道可以传输的基本前提下,对信源的一切可能的概率分布

而言,信道能够传输的最大(接收)熵速率称为信道容量。

意义:求出了某个信道的信道容量,也就找到了信源的最佳概率分布。从而指导

人们改造信源,使之最大可能地利用信道的传输能力。

2、写出离散信源熵、离散信道容量计算的基本步骤,画出实现离散信源熵、

离散信道容量计算的程序流程图;

离散信源熵的计算步骤:

q

1

HXElogpaloga

rii

rr

p(a)

i

i1

信道容量的计算步骤:

CIX;Ybit/符号

max

PX

1

输入

p(x)p(x)

ii

(0)

p(y/x)

ji

aexpp(y/x)ln

iji

j

p(x)p(y/x)

iji

p(x)a

ii

i

p(x)

i

p(x)a

ii

Cn1,nlnp(x)a

1ii

i

i

Cn1,nlnmaxa

2i

i

Cn1,nCn1,n

12

CCn1,n

1

结束

31)讨论信源的熵的大小与前后符号之间相关性的关系,讨论信道容量与信源先验

概率及信道转移概率的关系。

信源的相关性是信源符号间的依赖程度的度量。由于交易合同 信源输出符号间的

依赖关系也就是 信源的相关性使信源的实际熵减小。信源输出符号间统

计约束关系越长,信源的实际熵越小。当信源输出符号间彼此不存在依赖关

系且为等概率分布时,信源的实际熵等于最大熵。

2)信道容量与信源先验概率及信道转移概率的关系。

信道容量是信道的一个参数,反映了信道所能传输的最大信息量,其大

小与信源无关。对不同的输入概率分布,互信息一定存在最大值。我们将这

个最大值定义为信道的容量。一但转移概率矩阵最强狂兵txt 确定以后,信道容量也完全

确定了。尽管信道容量的定义涉及到输入概率分布,但信道容量的数值与输

入概率分布无关。我们将不同的输入概率分布称为试验信源,对不同的试验

信源,互信息也不同。其中必有一个试验信源使互信息达到最大。这个最大

值就是信道容量。

实验结果

计算离散信源熵:

2

计算离散信道容量:

3 实验总结和心得

通过本次的试验,让我加深了对信息论与编码这门课知识点的认识,学会

了怎么样去计算信源熵以及信道容量,怎样去把它具体实现出来。在此次实验

过程中,让我认识到了做实验之前预习是很重要的,通过查找资料可以解决一

些我们不能解决的问题的方法。还有就是不懂的问题及时问老师,能解决的问

题随堂解决。

4 附录(代码)

fprintf('输入信道矩阵概率n')

计算信道容量 for i=1:N

clc;clear all; for j=1:M

N = input('输入信源符号X的个数N='); p_yx(i,j)=input('p_yx=');%输入信道矩阵概率

M = input('输出信源符号Y的个数M='); if p_yx(i)<0

p_yx=zeros(N,M); %程序设计需要信道矩阵初 error('不符合概率分布')

始化为零 end

3

end for i=1:N %计算a(i)

end d(i)=0;

for i=1:N %各行概率累加求和 for j=1:M

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

for j=1:M d(i)=d(i)+0;

s(i)=什么叫沟通 s(i)+p_yx(i,j); el

end d(i)=d(i)+p_yx(i,j)乔丹高清壁纸 *log(p_yx(i,j)/q(j));

end end

for i=1:N %判断是否符合概率分布 end

if (s(i)<=0.999999||s(i)>=1.000001) a(i)=exp(d(i)); end u=0;

error('不符合概率分布') for i=1:N %计算u

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

end end

b=input('输入迭代精度:');%输入迭代精 IL=log2(u); %计算IL

for i=1:N IU=log2(max(a));%计算IU n=n+1;

p(i)=1.0/N; %取初始概率为均匀分布 end

end fprintf('信道矩阵为:n'); disp(p_yx);

for j=1:M %计算q(j) fprintf('迭代次数n=%dn',n);

q(j)=0; fprintf('信道容量C=%f比特/符号',IL);

for i=1:N 计算离散信源熵:

q(j)=q(j)+p(i)*p_yx(i,j); %MATLAB编程实现单符号离散无记忆信

end 源熵的计算

end function H = entropy(p)

for i=1:N %计算a(i) d(i)=0; %该函数用来计算包含任意多个符号的信源熵

for j=1:M (比特)

if(p_yx(i,j)==0) d(i)=d(i)+0; el %pDMS数学教学论文 的概率分布,行向量

d(i)=d(i)+p_yx(i,j)*log(p_yx(i,j)/q(j)); 美国航母排水量 if sum(p)~=1 %判断是否满足概率完备

end ~= 不等于的意思)

end 陈皮的药用价值及用途 error('不满足概率完备性,请重新输

a(i)=抓药 exp(d(i)); end u=0; 入信源分布')

for i=1:N %计算u return;

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

IL=log2(u); %计算IL L = length(p) %得到信源符号的个数

IU=log2(max(a));%计算IU n=1; H=0; %熵值初始化为零

while((IU-IL)>=b) %迭代计算 for i=1:L

for i=1:N H=H-p(i)*log2(p(i)); %累加

p(i)=p(i)*a(i)/u; %重新赋值p(怎么玩滑板 i) 熵函数各个子项

end end

for j=1:M %计算q(j) end

q(j)=0; %sum(A):求数组A的元素之和

for i=1:N %length(X):求矢量X的长度

q(j)=q(j)+p(i)*p_yx(i,j); %log2(X):计算以2为底X的对数

end %error:显示错误信息

end

4


本文发布于:2023-04-22 16:10:14,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/842965.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信源熵
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图