实验一信道容量的迭代算法.doc

上传人:夏** 文档编号:546634268 上传时间:2023-11-12 格式:DOC 页数:6 大小:2.46MB
返回 下载 相关 举报
实验一信道容量的迭代算法.doc_第1页
第1页 / 共6页
实验一信道容量的迭代算法.doc_第2页
第2页 / 共6页
实验一信道容量的迭代算法.doc_第3页
第3页 / 共6页
实验一信道容量的迭代算法.doc_第4页
第4页 / 共6页
实验一信道容量的迭代算法.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《实验一信道容量的迭代算法.doc》由会员分享,可在线阅读,更多相关《实验一信道容量的迭代算法.doc(6页珍藏版)》请在金锄头文库上搜索。

1、信息工程12班 吴玉明 52111209实验一 信道容量的迭代算法一、 实验目的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); %程序设计需要信道矩阵初始化为零fpr

2、intf(输入信道矩阵概率n)for i=1:N for j=1:M p_yx(i,j)=input(p_yx=);%输入信道矩阵概率 if p_yx(i)0 error(不符合概率分布) end endendfor i=1:N %各行概率累加求和 s(i)=0; for j=1:M s(i)=s(i)+p_yx(i,j); endendfor i=1:N %判断是否符合概率分布if (s(i)=1.000001) error(不符合概率分布)endendb=input(输入迭代精度:);%输入迭代精度for i=1:N p(i)=1.0/N; %取初始概率为均匀分布endfor j=1:M

3、%计算q(j) q(j)=0; for i=1:N q(j)=q(j)+p(i)*p_yx(i,j); endend 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);endu=0;for i=1:N %计算u u=u+p(i)*a(i);endIL=log2(u); %计算ILIU=log2(max(a);%计算IUn=1;while(IU-IL)=b) %迭代计算 for i=1

4、: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 I

5、U=log2(max(a);%计算IU n=n+1;endfprintf(信道矩阵为:n);disp(p_yx);fprintf(迭代次数n=%dn,n);fprintf(信道容量C=%f比特/符号,IL);五 信道容量迭代算法流程图四 .实验的算法:1. 初始化信源分布:pi=,循环变量k=1,门限,C(0)=-;2.3.4.5. 若,则k=k+1,转第2步6. 输出*=和,终止。五 算法流程图如下:否是输入结束 六 实验截图(一)(二)七 实验总结与体会本次 试 验是建立 在 迭 代 的 基础上,首 先 要 深 刻 理 解 信道容量的迭代算法,其次是 ,如何将复杂的公式转化为程序通过此次实验,我了解了信道容量的迭代算法的基本知识,学会了如何将复杂的公式如何用程序语言描述出来,掌握了高级语言数值计算过程程序的设计和调试的相关知识,对于将实际问题公式转化为程序的能力有提高

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号