一般信道容量迭代算法.doc

上传人:b****2 文档编号:1639900 上传时间:2022-10-23 格式:DOC 页数:5 大小:88KB
下载 相关 举报
一般信道容量迭代算法.doc_第1页
第1页 / 共5页
一般信道容量迭代算法.doc_第2页
第2页 / 共5页
一般信道容量迭代算法.doc_第3页
第3页 / 共5页
一般信道容量迭代算法.doc_第4页
第4页 / 共5页
一般信道容量迭代算法.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

一般信道容量迭代算法.doc

《一般信道容量迭代算法.doc》由会员分享,可在线阅读,更多相关《一般信道容量迭代算法.doc(5页珍藏版)》请在冰豆网上搜索。

一般信道容量迭代算法.doc

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

1.实验目的

一般离散信道容量的迭代运算

2.实验要求

(1)理解和掌握信道容量的概念和物理意义

(2)理解一般离散信道容量的迭代算法

(3)采用Matlab编程实现迭代算法

(4)认真填写实验报告。

3.算法

4.算法流程图

5.代码(要求写出关键语句的解释和运行结果)

6.计算下列信道的信道容量

例一:

例二:

例三:

7.思考题:

迭代精度指的是什么?

它对计算结果的影响?

3.实验的算法:

1.初始化信源分布:

pi=,循环变量k=1,门限△,C(0)=-;

2.

3.

4.

5.若,则k=k+1,转第2步

6.输出*=和,终止。

4.算法流程图如下:

输入

结束

5.代码如下:

源程序:

clc;clearall;

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)<0

error('不符合概率分布')

end

end

end

fori=1:

N%各行概率累加求和

s(i)=0;

forj=1:

M

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

end

end

fori=1:

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

if(s(i)<=0.999999||s(i)>=1.000001)

error('不符合概率分布')

end

end

b=input('输入迭代精度:

');%输入迭代精度

fori=1:

N

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

end

forj=1:

M%计算q(j)

q(j)=0;

fori=1:

N

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

end

end

fori=1:

N%计算a(i)

d(i)=0;

forj=1:

M

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));

end

end

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

end

u=0;

fori=1:

N%计算u

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

end

IL=log2(u);%计算IL

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

n=1;

while((IU-IL)>=b)%迭代计算

fori=1:

N

p(i)=p(i)*a(i)/u;%重新赋值p(i)

end

forj=1:

M%计算q(j)

q(j)=0;

fori=1:

N

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

end

end

fori=1:

N%计算a(i)

d(i)=0;

forj=1:

M

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));

end

end

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

end

u=0;

fori=1:

N%计算u

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

end

IL=log2(u);%计算IL

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

n=n+1;

end

fprintf('信道矩阵为:

\n');

disp(p_yx);

fprintf('迭代次数n=%d\n',n);

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

例一的运行结果:

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

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

输入信道矩阵概率

p_yx=0.98

p_yx=0.02

p_yx=0.05

p_yx=0.95

输入迭代精度:

0.006

信道矩阵为:

0.98000.0200

0.05000.9500

迭代次数n=2

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

6.计算下列信道的信道容量

例一:

信道容量:

C=0.785846(bit/符号)

例二:

信道容量:

C=0.368754(bit/符号)

例三:

信道容量C=0.571214(bit/符号)

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

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1