第一次作业
1-1 数据压缩的一个基本问题是“我们要压缩什么”,对此你是怎么理解的?
我们要压缩的的是信号空间,而信号空间包括物理空间、时间空间、电磁频段,只要采用某种方法来减少某一种信号空间,就能压缩数据。
1-2 数据压缩的另一个基本问题是“为什么进行压缩”,对此你又是怎么理解的?
为了保存,传输方便,如果不进行数据压缩,则无论传输或存储都很难实用化,我们可以对时间域、频率域、能量域、空间域进行压缩,从而改变社会效益和经济效益。
1-6 数据压缩技术是如何分类的?
(1)根据重构要求可以分为有损压缩和无损压缩
(2)按照作用域在空间域还是频率域上分为:空间方法、变换方法和混合方法
(3)根据是否自适应分为自适应性编码和非适应性编码
参考书《数据压缩导论(第4版)》Page 8 1.4
1、 字符文件的压缩比较高,可以达到50%,视频、音频、图像文件,压缩比一般80%左右,有些图像压缩前后大小不变。
2、 冗余度是表征信源信息率的多余程度,是描述信源统计特性的一个物理量,我们不能对冗余度进行定量论述
三. 参考书《数据压缩导论(第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(a)=4*(1/4)*log24=2
H(b)=(1/2)*log22+(1/4)*log24+2*(1/8)*log28=1.75
H(c)=0.505*log2(1/0.505)+(1/4)*log24+(1/8)*log28+0.12*log2(1/0.12)=1.745
5.考虑以下序列:
ATGCTTAACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG
CTGAACCCGCTTAAGCTGAACCTTCTGAAGCTTAACCTGCTT
(a) 根据此序列估计各概率值,并计算这一序列的一阶熵。
(b) 根据这些熵,能否推断此序列具有什么样的结构?
解:由这个序列可知,共有84个字母,其中A有21个,T有23个,G有16个,C有24个
(a)p(A)=21/84=1/4
p(T)=23/84
p(G)=16/84=4/21
p(C)=24/84=2/7
H(A)=1/4*log24+23/84*log2(84/23)+4/21*log2(21/4)+2/7*log2(7/2)=1.98
(b)
3-7 做一个实验,看看一个模型能够多么准确地描述一个信源。
(a) 编写一段程序,从包括26个字母的符号集{a,b,…,z}中随机选择字母,组成100个四字母单词,这些单词中有多少是有意义的?
程序代码如下:
#include<iostream> using namespace std; int main() { int r,i,j; char a[100][4]; for(i=0;i<100;i++) { for(j=0;j<4;j++) { r=rand()%26; a[i][j]=r+'a'; } a[i][4]='\0'; cout<<a[i]<<"\t"; } return 0; }
调试如下:
只有3个单词有意义:Hume ( 休姆) gyps ( 石膏) cuke ( 黄瓜)