信源剩余度的计算

桂林电子科技大学
数学与计算科学学院实验报告波波图
  实验室:06410                                            实验日期:年  月  日
院(系)
学号
姓名
成绩
课程
名称
信息与编码
党内法规清理的处理方式包括实验项目
   
信源剩余度的计算
一 ,实验目的
熟练掌握信源熵的概念、信源剩余度的概念、熟练掌握C语言中文件操作与指针操作。
二,实验原理
信源熵的运算规则
三,实验内容
      自己生成一个英文文件,可以在网上,也可以自己生成。为了保证实验数据的可靠性,数据的量要比较大。为了保证二维信源统计的可靠性,建议文件的英文字符在十万以上。
1、 编写一维信源统计程序,得出一维统计频次,计算信源熵及剩余度。
2、 编写一维信源统计程序,得出二维统计频次,计算信源熵及剩余度。
四,实验过程原始记录(数据,图表,计算等)
代码:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define NULL 0
int charge(char c)
{int n;
  if(c>=65&&c<=90)
考风考纪  c=c+32;
  if( c>+97&&c<=122)
  { n=c-97;
    return n;
  }
  else return -1;
}
void main()
{ int count[26][26]={0};
  char zifu1,zifu2;
  int i,n,m,j;
  int sum=0;
  float q, sum1=0;
  FILE *fp;
  If((fp=fopen(“file”, “rb”))==NULL)
  {  printf(“ can’t open file!\n”);
    exit(0);
  }
  while(!feof(fp))
  {  zifu1=fgetc(fp);
      n=charge(zifu1);
      if(n!= -1)刚度系数
      {  zifu2=fgetc(fp);
球磨        m=charge(zifu2);
        if(m!= -1)
          { count[n][m]++;
          fseek(fp,-1,1);
          }
    }
  }
  fclose(fp);
  for(i=0;i<26;i++)
  for(j=0;j<26;j++)
  sum=sum+count[i][j];
  printf(“the number of all the code is %d\n”, sum);
q=(float)sum;
  for(i=0;i<26;i++)
  for(j=0;j<26;j++)
总和生育率
  { if(j%3==0) printf(“\n”);
  printf(“%c%c,%4d,  %6.5f%%  ”,i+97,j+97,count[i][j],count[i][j]*100/q);
  }
  printf(“\n”);
  for(i=0;i<26;i++)
  for(j=0;j<26;j++)
    if(count[i][j])
sum1=sum1+(float)((count[i][j]/q)*log10(1/(double)(count[i][j] /q))/log10((double)(2)));
  printf(“\n 信息熵为:  H(x)=%f\n”, sum1);
}
五,实验结果分析或总结
经过这次实验,学会了信源剩余度的计算。

本文发布于:2024-09-22 07:27:50,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/273186.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实验   信源   统计   计算   数据   文件   剩余
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议