信息论实验二:求平均互信息.docx

上传人:scccc 文档编号:13423038 上传时间:2021-12-25 格式:DOCX 页数:4 大小:64.09KB
返回 下载 相关 举报
信息论实验二:求平均互信息.docx_第1页
第1页 / 共4页
信息论实验二:求平均互信息.docx_第2页
第2页 / 共4页
信息论实验二:求平均互信息.docx_第3页
第3页 / 共4页
信息论实验二:求平均互信息.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《信息论实验二:求平均互信息.docx》由会员分享,可在线阅读,更多相关《信息论实验二:求平均互信息.docx(4页珍藏版)》请在三一文库上搜索。

1、信息论实验二:求平均互信息信息论实验二 : 求英文文本互信息量实验代码 : if(g=32)M00=M00+1;elseg=g-64;M0g+;for(i=0;pi>0;i+)/填满矩阵的其他行#include "stdio.h" if(pi!=32)h=pi-64;k=pi+1; #include"stdlib.h" if(k>0)if(k=32)k=0; #include <math.h> else k=k-64;Mhk=Mhk+1;/ 求出连续两个字母出现的总数void main() for(i=0;i<27;i+)F

2、ILE *fp; for(j=0;j<27;j+)fp=fopen("1.txt","r"); total=total+Mij;/ 矩阵复制 int l,i=0,j=0;int p9999;/用于存放字母 for(i=0;i<27;i+)int b,c,add=0; for(j=0;j<27;j+)Nij=Mij;/ 求条件 float num26=0,space=0; float t; for(j=0;j<27;j+)double shang; for(i=0;i<27;i+) float f26=0; sj=sj+Mij

3、;/ 求 p(xy) float M2727=0,N2727=0; float total=0; for(i=0;i<27;i+)float Hxy=0; for(j=0;j<27;j+)float s27=0; Mij=Mij/total;/ 求 p(x/y) if(fp=NULL)int h,k; for(j=0;j<27;j+) for(i=0;i<27;i+)printf("文件不存在 n"); exit(0); Nij=Nij/sj;while(l=fgetc(fp)!=EOF)/把字符的 /输出转移矩阵;ASC码存入数组中printf(&

4、quot;转移矩阵为:n");pi+=l; for(i=0;i<4;i+) for(i=0;pi>0;i+)/小写字母和大写字母统for(j=0;j<4;j+)一 ( 即不区分大小写) printf("%f ",Nij);if(pi>=97) printf("n");/ 求信道疑义度 pi=pi-32; / 创建矩阵 for(i=0;i<27;i+)for(i=0;pi>0;i+)/创建行 for(j=0;j<27;j+)if(pi=32) if(Nij!=0)int g=pi+1; Mij=Mij*l

5、og(1/Nij);/ 信道疑义度for(i=0;i<27;i+) for(j=0;j<27;j+) Hxy=Hxy+Mij; printf("信道损失熵为 :n");printf("%f",Hxy); printf("n");printf("n");/ 计算熵fp=fopen("1.txt","r"); if(fp=NULL)printf("该文件不存在 n"); exit(0);while(c=fgetc(fp)!=EOF)if(c>

6、='a'&&c<='z') numc-97+;else if(c>='A'&&c<='Z') numc-'A'+;if(c=32)space+;t=0;shang=0;for(i=0;i<=25;i+) t=t+numi;t+=space;printf("各字母的概率为 :n");for(i=0;i<=25;i+) fi=numi/t;if(fi!=0)printf("P(%c)=%fn",97+i,fi);flo

7、at ps;printf("space=%fn",ps=space/t);for(i=0;i<=25;i+)if(fi!=0)shang=shang-fi*log(fi);if(ps!=0)shang-=ps*log(ps); printf("n信息熵为 :n%f",shang); fclose(fp);printf("n"); float I; I=shang-Hxy; printf("n"); printf("平均互信息为 :n"); printf("%fn",I); printf("n");_End_

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1