一.教材习题:

1-1数据压缩的一个基本问题是“我们要压缩什么”,对此你是怎样理解的?

答:我对数据压缩的一个基本问题是“我们要压缩什么”的理解是:数据的压缩就是对数据冗余的压缩,例如对时间的压缩,对空间的压缩,频域空间的压缩。

1-2 数据压缩的另一个基本问题是“为什么进行压缩”,对此你又是怎样理解的?

答:我对数据压缩的另一个基本问题是“为什么进行压缩”的理解是:1.数据压缩是因为数据存储空间有限 2.数据指数增长

1-3 数据压缩技术是如何分类的?

:数据压缩技术分类:冗余度压缩(熵编码)和熵压缩,其中冗余度压缩(熵编码)又分为:统计编码   其他编码,熵压缩主要有两大类:特征抽取和量化

二.参考书《数据压缩导论第四版》 page8      1.4

1.4项目与习题:

 2-1  用你的计算机上的压缩工具来压缩不同文件。研究原文件的大小和类型对于压缩文件与原文件大小之比的影响。

 答:用计算机上的压缩工具来压缩不同文件时,如视频、文档、图片等不同类型的文件,经压缩后发现压缩文件与原文件大小之比的影响是不同的,其中影响对大的事视频、其次是文档、最后是图片。

 2-2从一本通俗杂志中摘录几段文字,并删除所有不会影响理解的文字,实现压缩。例如,在“This is the dog that belongs to my friend”中,删除is、the、that和to之后,仍然能传递相同的意思。用被删除的单词数与原文本的总单词数之比来衡量文本中的冗余度。用一本技术期刊中的文字来重复这一试验。对于摘自不同来源的文字,我们能否就其冗余度做出定量论述?

答:对于摘自不同来源的文字,我们不能就其冗余度做出定量论述,因为有的信息的有重复字、词、句等。

 三. 参考书《数据压缩导论(第4版)》Page 30     3, 5, 7(a)

2.8项目与习题:

3.给定符号集A={a1,a2,a3,a4},求以下条件的一阶熵:

(a) p(a1)=p(a2)=p(a3)=p(a4)=1/4

(b) p(a1)=1/2,  p(a2)=1/4,p(a3)=p(a4)=1/8

(c) p(a1)=0.505,  p(a2)=1/4,p(a3)=1/8 ,p(a4)=0.12

解:

由熵公式H=-p(X1)logp(X1) -p(X2)logp(X2)-p(X3)logP(X3) -  ------  -P(Xn)logp(Xn)知:

(a):   H(a)=-1/4*log21/4  -1/4*log21/4  -1/4*log21/4  -1/4*log21/4  

 

               =1/2+1/2+1/2+1/2

               = 2(bit)

(b):   H(b)=-1/2*log21/2  -1/4*log21/4  -1/8*log21/8  -1/8*log21/8  

               =1/2+1/2+3/8+3/8

               =1.75(bit)

(c):   H(c)=-0.505*log20.505  -1/4*log21/4  -1/8*log21/8  -0.12*log20.12

               ~0.5`+1/2+3/8+0.37       

               =1.745(bit)

5.考虑以下序列:

ATGCTTAACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG

CTGAACCCGCTTAAGCTGAACCTTCTGAAGCTTAACCTGCTT

 (a) 根据此序列估计各概率值,并计算这一序列的一阶熵。

 (b)  根据这些熵,能否推断此序列具有什么样的结构?

解:

     由题意可知:以上序列中总共有字母84个,其中A字母共出现21次,

      T字母共出现23次,G字母共出现16次,C字母共出现24次。

      则P(A)=21/84=1/4;P(T)=23/84;P(G)=16/84=4/21;P(C)=24/84=2/7.

    (a) 各字母的概率值如下:

       P(A)=21/84=1/4;

       P(T)=23/84;

       P(G)=16/84=4/21;

       P(C)=24/84=2/7.

      该序列的一阶熵为:-1/4*log2(1/4)-23/84*log2(23/84)-4/21*log2(4/21)-2/7*log2(2/7)=1.98

   (b)  根据这熵,能推断此序列具有的结构是:此序列共由A T G C四个字母组成,其中序列的冗余度隐含存在于非等概率的分布中之中。

      

3-7  做一个实验,看看一个模型能够多么准确地描述一个信源。

       (a)  编写一段程序,从包括26个字母的符号集{a,b,…,z}中随机选择字母,组成100个四字母单词,这些单词中有多少是有意义的?

#include<stdio.h>

#include<stdlib.h>

int main()

{    int i,j;   

for(i=1;i<100;i++)

   {   

for(j=0;j<4;j++)  

  {   

putchar(rand()%1?65+rand()%26:60+rand()%26);  

  }

   putchar('\t');   

}

  return 0;

}

 

posted on 2015-08-26 12:24  马丽香  阅读(136)  评论(0编辑  收藏  举报