第一次作业
作业一
1.1数据压缩的一个基本问题是“我们要压缩什么”,对此你是怎样理解的?
答:数据的压缩就是对数据冗余的压缩,我们要压缩占用比例过大,影响操作的事物。例如对时间的压缩,对空间的压缩,频域空间的压缩。
1.2 数据压缩的另一个基本问题是“为什么进行压缩”,对此你又是怎样理解的?
答:数据压缩是因为数据存储空间有限,数据指数增长,进行压缩可以减少存储空间,提高传输、存储和处理效率。
1.6 数据压缩技术是如何分类的?
答:数据压缩技术分类:冗余度压缩(熵编码)和熵压缩,其中冗余度压缩(熵编码)又分为:统计编码 其他编码,熵压缩主要有两大类:特征抽取和量化
2-1 用你的计算机上的压缩工具来压缩不同文件。研究原文件的大小和类型对于压缩文件与原文件大小之比的影响。
答:当文件类型不同时,如视频、文档、图片等不同类型的文件,压缩后的文件与源文件大小之比的影响是不同的,一般文本文档的压缩成都比图片的压缩要小,而影响对大的是视频。
2-2 从一本通俗杂志中摘录几段文字,并删除所有不会影响理解的文字,实现压缩。例如,在“This is the dog that belongs to my friend”中,删除is、the、that和to之后,仍然能传递相同的意思。用被删除的单词数与原文本的总单词数之比来衡量文本中的冗余度。用一本技术期刊中的文字来重复这一试验。对于摘自不同来源的文字,我们能否就其冗余度做出定量论述?
答:不能。冗余度是表征信源信息率的多余程度,是描述信源统计特性的一个物理量,我们不能对冗余度进行定量论述。在处理文本时,除了冗余外,还会有重复的情况,对于不同来源的文字信息,重复度是不一样的,情况不同处理方式也不同。
作业二
参考书《数据压缩导论(第4版)》Page 30
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/4 , P(a4)=0.12
答:(a)H=(-log2(1/4))*(1/4)*4=2(bit).
(b)H=-1/2log21/2-1/4*log21/4-2*1/8*log21/8 =1.75(bit).
(c) H= -0.505*log20.505-1/4*log21/4-1/4*log21/4-0.12*log20.12=1.2967-0.12*log20.12(bit).
5.考虑以下序列:
ATGCTTACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG
CTGAACCCGCTTAAGCTGAACCTTCTGAAGCTTAACCTGCTT
(a)根据此序列估计个概率值,并计算这一序列的一阶、二阶、三阶、四阶熵。
答:
由题意得:共有字母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.
H=-1/4*log2(1/4)-23/84*log2(23/84)-4/21*log2(4/21)-2/7*log2(2/7)=1.98.
7.(a)编写一段程序,从包括26个字母的符号集{a,b,...,z}中随机选择字母,组成100个四字母单词,这些单词中有多少个是有意义的?
1 #include <stdio.h> 2 #include<stdlib.h> 3 #include <windows.h> 4 5 int main() 6 { 7 int m,n; 8 for(m=0;m<100;m++) 9 { 10 for(n=0;n<4;n++) 11 { 12 putchar(rand()%2?65+rand()%26:97+rand()%26); 13 } 14 Sleep(1000); 15 putchar(' '); 16 } 17 return 0; 18 }
从运行的结果看出,这样得到的大多数单词都是无效的,没有意义。