信息论与编码实验报告
实验一:英文文本信息量的计算 一、实验目的及要求
a)实验目的1、 通过本实验熟悉 Matlab 软件编程 环境2、编写M文件实现对英文文本信息量的统计,掌握 信息量、信源熵的 计算方法b)实验要求1、了解matlab 中M文件的xx、调试过程2、编写程序实现对给定英文文 本信息量的统计3、英文文本中字母不区分大小写,考虑空格的信息量,但不考虑 标点符号的信息量4、建议英文文本采用txt 格式二、 实验步骤及运行结果记录
a) 实验步骤1、查找各个英文字母及空格出现的频率
2、在Matlab 中读取给定的英文文章 3、计算英文文章的长度4、统计在该文章中各个字母及空格出现的次数并放入 数组N中5、计算各个字母和空格的信息量及整篇文章的 信息量6、计算信源熵b) 实验结果
sumI = +003; H =
三、 程序流程图 四、程序清单,并注释每条语句 五、
实验小结通过本次实验熟悉了 Matlab 软件编程环境和一
些函数的功能及使用,掌握了信息量、信源熵的计算方法。
1附一:开始 读取英文文章 计算文章的长度 嵌套的 for循环语句假判断是否符合循环条件真if否elseif 判断字是否为大写母输入相应的频率
否 elseif
判断是否为小写字母计算各个字母、空格及 整篇文章
的信息量是
判断是否为小写字母是
计算信源熵是
放入数组N中对应的位置 放入数组N中对应的位置 放入数组N中对应的位置
结束附二:
wenzhang=textread(' 实验一:english ','\');
M=size(wenzhang); row=M(1,1); line=M(1,2);N=zeros(1,27); for i=1:row for j=1:line
%卖取英文文章%文章的长度
if
double(wenzhang(i,j))>96&&double(wenzhang(i,j))64&&double(wenzhang(i,j))v=90
N(1,double(wenzhang(i,j))-64)=N(1,double(wenzhang(i,j))-64)+1; elseif
double(wenzhang(i,j))==32 N(1,27)=N(1,27)+1; endend end %统计各字母和空格出现的个数并存入 N数组中。
'a'的值为97,'z'的值为122,'A' 的值为65,'Z'的值为90,
空格的值为32
P=[,,,,,,,,,,, ...
,,,,,,,,,,,,];% 各 个字母和空格出现的概率
l=zeros(1,27); I=log2(1./P); 量 suml=sum(l.*N)IP=I.*P;
H=sum(IP) %计算整篇文章的总的信息量 %两个矩阵对
应原素相乘%%计算信源熵%计算各个字母和空格的信息 实验一英文文本信息量的计算
专业:通信工程 学号: 姓名: 一实验目的1通过本实验熟悉Matlab软件编程环境
2编写M文件实现对英文文本信息量的计算,掌握信源 熵的计算方法 二 实验要求1 了解matlab中M文件的xx、调试过程
2编写程序实现英文文本信息量的统计,掌握信源熵及 信息量的计算方法三实验步骤及运行结果记录 1实验步骤
1、 查找各个英文字母及空格出现的频率
2、 在Matlab中读取给定的英文文章 3、计算英文文章 的长度
4、统计在该文章中各个字母及空格出现的次数并放入
数组N中
5、计算各个字母和空格的信息量及整篇文章的信息量
6、计算信源熵 2实验结果sumI = +003; H =
四给定程序的流程图,及每条语句的注释 suml=sum(l.*N) % 计算整篇文章的总的信息量 IP=I.*P; %两个矩阵对应原素相乘 H=sum(IP) %%计算信源熵实验小结
通过本次实验熟悉了 Matlab软件编程环境和一些函数
的功能及使用,掌握了信息量、信源熵的计算方法
sumI=sum(I.*N) % 计算整篇文章的总的信息量
相关热词搜索: 信息论 编码 实验 报告