信息论与编码实验报告

实用文档

课程名称:姓 名:系:专 业:年 级:学 号:指导教师:职 称:

.

实验报告

信息论与编码

年 月 日

实用文档

目 录

实验一 信源熵值的计算 ........................................................................ 1 实验二 Huffman信源编码 ..................................................................... 5 实验三 Shannon编码 ............................................................................ 9 实验四 信道容量的迭代算法 .............................................................. 12 实验五 率失真函数 ............................................................................. 14 实验六 差错控制方法 .......................................................................... 19 实验七 汉明编码 ................................................................................. 22

.

实用文档

实验一 信源熵值的计算

一、 实验目的

1 进一步熟悉信源熵值的计算 2熟悉 Matlab 编程

二、实验原理

熵(平均自信息)的计算公式

q1H(x)??pilog2???pilog2pi

pii?1i?1qMATLAB实现:HX?sum(?x.*log2(x));或者h?h?x(i)*log2(x(i)) 流程:第一步:打开一个名为“nan311”的TXT文档,读入一篇英文文章存入一个数组temp,为了程序准确性将所读内容转存到另一个数组S,计算该数组中每个字母与空格的出现次数(遇到小写字母都将其转化为大写字母进行计数),每出现一次该字符的计数器+1;

第二步:计算信源总大小计算出每个字母和空格出现的概率;

最后,通过统计数据和信息熵公式计算出所求信源熵值(本程序中单位为奈特nat)。

程序流程图:

.

实用文档

三、实验内容

1、写出计算自信息量的Matlab 程序

2、已知:信源符号为英文字母(不区分大小写)和空格。 输入:一篇英文的信源文档。

输出:给出该信源文档的中各个字母与空格的概率分布,以及该信源的熵。

四、实验环境

Microsoft Windows 7 Matlab 6.5

五、编码程序

#include\#include #include #define N 1000 int main(void) {

char s[N]; int i,n=0;

float num[27]={0};

double result=0,p[27]={0}; FILE *f;

char *temp=new char[485];

f=fopen(\

while (!feof(f)) {

fread(temp,1, 486, f);} fclose(f);

s[0]=*temp;

for(i=0;i

s[i]=temp[i]; }

for(i=0;i

if(s[i]==' ') num[26]++;

else if(s[i]>='a'&&s[i]<='z') num[s[i]-97]++;

else if(s[i]>='A'&&s[i]<='Z')

.

实用文档

num[s[i]-65]++; }

printf(\文档中各个字母出现的频率:\\n\ for(i=0;i<26;i++) {

p[i]=num[i]/strlen(s);

printf(\ n++; if(n==3) {

printf(\ n=0; } }

p[26]=num[26]/strlen(s); printf(\空格:%f\\t\printf(\

for(i=0;i<27;i++) {

if (p[i]!=0)

result=result+p[i]*log(p[i]); }

result=-result;

printf(\信息熵为:%f\printf(\return 0; }

六、求解结果

其中nan311.txt中的文档如下:

There is no hate without fear. Hate is crystallized fear, fear’s dividend, fear objectivized. We hate what we fear and so where hate is, fear is lurking. Thus we hate

.

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4