教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

一般信道容量迭代算法

来源:网络收集 时间:2026-07-09
导读: 信息论实验 实验二 一般信道容量迭代算法 1. 实验目的 一般离散信道容量的迭代运算 2. 实验要求 (1)理解和掌握信道容量的概念和物理意义 (2)理解一般离散信道容量的迭代算法 (3)采用Matlab编程实现迭代算法 (4)认真填写实验报告。 3. 算法 4. 算法流

信息论实验

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

1. 实验目的

一般离散信道容量的迭代运算 2. 实验要求

(1)理解和掌握信道容量的概念和物理意义 (2)理解一般离散信道容量的迭代算法 (3)采用Matlab编程实现迭代算法 (4)认真填写实验报告。

3. 算法

4. 算法流程图

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

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

0.980.02

例一:

0.050.95 0.60.4

例二:

0.010.99 0.790.160.05

例三:

0.050.150.8

7.思考题:

迭代精度指的是什么?它对计算结果的影响?

信息论实验

3.实验的算法:

1

1. 初始化信源分布:pi=,循环变量k=1,门限△,C(0)=- ;

r

2.

(k)ij

pi(k)pji

p

i 1

r

(k)i

pji

s

3. pi

(k 1)

(k)

exp[ pjilog ij]

exp[ p

i 1

j 1ri 1

r

j 1

s

ji

log

(k)ij

]

4. C

(k 1)

(k)

log[ exp( pjilog ij)]

j 1

s

5. 若

C(k 1) C(k)

C

(k 1)

,则k=k+1,转第2步

6. 输出P*=Pi k 1 r和C k 1 ,终止。

4.算法流程图如下:

5.代码如下:

源程序:

信息论实验

clc;clear all;

N = input('输入信源符号X的个数N=');

M = input('输出信源符号Y的个数M=');

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

fprintf('输入信道矩阵概率\n') for i=1:N

for j=1:M

p_yx(i,j)=input('p_yx=');%输入信道矩阵概率

if p_yx(i)<0

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

for i=1:N %各行概率累加求和 s(i)=0; for j=1:M

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

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

if (s(i)<=0.999999||s(i)>=1.000001) error('不符合概率分布') end end

b=input('输入迭代精度:');%输入迭代精度 for i=1:N

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

for j=1:M %计算q(j) q(j)=0; for i=1:N

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

end

for i=1:N %计算a(i) d(i)=0; for j=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;

for i=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) %迭代计算 for i=1:N

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

end

for j=1:M %计算q(j) q(j)=0; for i=1:N

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

for i=1:N %计算a(i) d(i)=0; for j=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;

for i=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); 输入信道矩阵概率 p_yx=0.98 p_yx=0.02 p_yx=0.05 p_yx=0.95

输入迭代精度:0.006 信道矩阵为:

例一的运行结果:

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

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

例一: 0.980.02

0.050.95

信道容量:C=0.785846(bit/符号)例二: 0.60.4

0.010.99

信道容量:C=0.368754(bit/符号)例三: 0.790.160.05

0.050.150.8

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

0.9800 0.0200 0.0500 0.9500 迭代次数n=2

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

…… 此处隐藏:248字,全部文档内容请下载后查看。喜欢就下载吧 ……
一般信道容量迭代算法.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1416041.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)