1-1 数据压缩的一个基本问题是“我们要压缩什么”,对此你是怎么理解的?
我们要压缩的就是某信号集合所占的空域,时域和频域空间。
1-2 数据压缩的另一个基本问题是“为什么进行压缩”,对此你又是怎么理解的?
信息时代带来了“信息爆炸”。数据压缩的作用及其社会效益、经济效益将越来越明显,如果不进行数据压缩,无论传输或存储都很难实用化。而数据压缩就能较快的传输各种信源、在现有通信干线上开通更多的并行业务、降低发射功率和紧缩数据存储容量。
1-6 数据压缩技术是如何分类的?
根据有无失真编码分为可逆压缩和不可逆压缩。无失真、无差错编码的叫可逆压缩,有失真编码的就是不可逆压缩。
参考书《数据压缩导论(第4版)》Page 8 1.4
1、 图片 压缩前是169kb 压缩后是165kb 压缩比是0.97
MP3音频 压缩前是 3.29MB 压缩后是3.26MB 压缩比是 0.99
比较压缩比发现:压缩之前的文件比较大的话,压缩比就会比较大。
2、 对于来自不同来源的文字,我们不能就其冗余度做出定量论述,因为有的文字重复出现的次数多,一些次数少。冗余度,通俗的讲就是数据的重复度。在一个数据集合中重复的数据称为数据冗余
三、参考书《数据压缩导论(第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(X)=4*(1/4)*log24=2(bit)
(b)一阶熵为:
H(X)=1/2*log22+1/4*log24+2*(1/8)*log28=1.75(bit)
(c)一阶熵为:
H(X)=0.505*log2101/200+2*(1/4)*log24+0.12*log23/25=1.745(bit)
5、考虑以下序列:
ATGCTTAACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG
CTGAACCCGCTTAAGCTTAAGCTGAACCTTCTGAACCTGCTT
(a)根据此序列估计各概率值,并计算这一序列的一阶、二阶、三阶和四阶熵。
(b)根据这些熵,能否推断此序列具有什么样的结构?
答:(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(X)=1/4*log24+23/84*log284/23+4/21*log221/4+2/7*log27/2=1.98(bit)
(b)
7、做一个实验,看看一个模型能够多么准确地描述一个信源。
(a)编写一段程序,从包括26个字母的符号集{a,b,...,z}中随机选择字母,组成100个四字母单词,这些单词中有多少是有意义的?
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int i;
char words;
int m=0,n=0;
for(m;m<=99;m++)
{
for(n;n<=3;n++)
{
i=rand()%25;
words='a'+i;
printf("%c",words);
}
printf(" ");
n=0;
}
return 0;
}
其中有意义的单词有:
roam n.漫步,漫游;流浪