- 30
- 0
- 约6.83千字
- 约 7页
- 2020-07-24 发布于天津
- 举报
实 验 一 - - 信 道 容 量 的
迭 代 算 法
精品文档
信息工程 12 班 吴玉明
实验一 信道容量的迭代算法
一、 实验目的
1、掌握信道容量的概念。
2、了解迭代法计算信道容量的流程。
3、熟悉 Matlab 程序的设计和调试方法。
二、 实验要求
1、学习 Matlab 软件编程和调试方法;
2、输入:任意一个信道转移概率矩阵。包括信源符号个数、信宿符号个
数、信道转移概率,在程序运行时从键盘输入;
3、输出:输入的信道矩阵、信道容量 C。
三 实验算法程序
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)
您可能关注的文档
最近下载
- 认知行为疗法.pdf VIP
- 2024年北京广播电视台招聘真题.docx VIP
- 佳能 PowerShot SX50 HS 说明书.pdf VIP
- ISO 28000供应链安全管理体系试卷.docx VIP
- 2026福建浦城渊源投资有限公司招聘50人笔试备考题库附答案解析.docx VIP
- 公路-2015-2021年二建历年真题.pdf VIP
- 2024年北京广播电视台招聘笔试真题.pdf VIP
- 品牌策划与管理第5版程宇宁课后答案.pdf
- ISO 28000_2022 供应链安全管理体系规范培训课件.pptx VIP
- 上海市静安区2024-2025学年八年级(下)期末物理试卷(含解析).pdf VIP
原创力文档

文档评论(0)