- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 信道容量的迭代算法程序设计
1、实验目的
(1)进一步熟悉信道容量的迭代算法;
(2)学习如何将复杂的公式转化为程序;
(3)掌握C语言数值计算程序的设计和调试技术。
2、实验要求
(1)已知:信源符号个数r、信宿符号个数s、信道转移概率矩阵P。
(2)输入:任意的一个信道转移概率矩阵。信源符号个数、信宿符号个数和每个具体的转移概率在运行时从键盘输入。
(3)输出:最佳信源分布P*,信道容量C。
3、信道容量迭代算法
1:procedure CHANNEL CAPACITY(r,s,())
2:initialize:信源分布=1/r,相对误差门限,C=—
3:repeat
4:
5:
6:
C (
7:until
8:output P*= ,C
9:end procedure
-------------------------------------------------------------------------------------------------------
4、参考代码
自己编写的代码:
/*********************************************************************Author: Wan Jiaolong
*Date : 2012.04.1
*Copyright: WenjorinLab
Purpose: Caculate the capacity of a given channel
*********************************************************************
#includestdio.h
#includemath.h
#includeiostream.h
//用宏定义一个DELTA值
#define DELTA 1e-4
float matrixValue( int n, float **a );
float **InverseMatrix(float **A,int n);
int main()
{
int sourseNum,destinationNum,i,j,k,counter;
float **matrix=NULL;
float **inv_matrix=NULL;
float *probilityData=NULL;
float *hData=NULL;
float *sum=NULL;
float *w=NULL;
float C,C_old;
cout请输入信源数据个数和信道数据个数endl;
cinsourseNumdestinationNum;
if(sourseNum!=destinationNum)
{
cout转移矩阵必须是方阵,请再输入一次endl;
cinsourseNumdestinationNum;
}
probilityData=new float [sourseNum];
matrix=new float *[sourseNum];
for(i=0;isourseNum;i++)
matrix[i]=new float [sourseNum];
inv_matrix=new float *[sourseNum];
for(i=0;isourseNum;i++)
inv_matrix[i]=new float [sourseNum];
cout请输入转移矩阵概率:\n;
for(i=0;isourseNum;i++)
for(j=0;jsourseNum;j++)
cinmatrix[i][j];
while(matrixValue(sourseNum,matrix)==0)//[sourseNum][sourseNum]
{
cout请再次输入转移矩阵概率:\n;
for(i=0;isourseNum;i++)
for(j=0;jsourseNum;j++)
cinmatrix[i][j];
}
//求取行列式的逆矩阵
inv_matrix=InverseMatrix(matrix,sourseNum);//[sourseNum][sourseNum]----
//int matrixSum=matrixValue(sourseNum,matrix[sourseNum][so
您可能关注的文档
- 住院病历方案写格式及要求.doc
- 体育50米加速跑教案.doc
- 体育单招语文文学常识练习宝典.doc
- 体育游戏教学大纲沈阳体育学院精品课程.doc
- 体育用品服装企业研发策略.ppt
- 体育舞蹈课教案集锦.doc
- 体育训练营合作协议.docx
- 体育课件体育舞蹈教案.doc
- 体育课件民族传统体育教案第7.doc
- 体育课件足球教案2.doc
- 华兴资本2025年产业AI应用热力报告21页.pdf
- HEADLINER-释放信任人工智能安全的蓝图.pdf
- 观察家研究基金会ORF2025全球人工智能AI的未来研究报告英文版23页.pdf
- 开放式创新SSbD和DPPs数字化以及对创新资产的有效和公平的共同创造和共享的追求PeterKlein博士.pdf
- 先进材料研发的挑战GerdLoehden.pdf
- 基于对生物降解性和数字工具的基本理解的可生物降解材料设计AndreasKuenkel.pdf
- 欧盟的循环性重点关注钢铁行业JurgenTiedje.pdf
- 研报食品饮料行业啤酒旺季来临关注东鹏饮料上市-21051616页.pdf
- 促进欧盟与日本合作开发建筑先进材料TakafumiNoguchi.pdf
- 利用人工智能进行多模态数据分析健康科学和研究中的实际应用.pdf
文档评论(0)