第一次作业续
用你的计算机上的压缩工具来压缩不同文件。研究原文件的大小和类型对于压缩文件与原文件大小之比的影响。
答:
- 视频文件的大小一般是和质量有关的,常见的有帧率码率等数据就是描述视频质量的一般来说,rmvb格式的相对较小,但是质量有一定损失
2. 并不是全部文件压缩率都大的,以图片来说BMP格式的图片用Winrar压缩可以达到非常大的压缩率。如果你是压缩MP3,rm,jpg等本身就已经是高度压缩的文件类型的话那就不会压缩多少的,
jpg格式的图片因为其本身就已经是一种压缩率很大的图片格式,所以就算用Winrar来压缩也不会缩小多。更甚至有的本来就压缩的很固实的rar格式文件,如果再用Winrar来压缩还可能出现体积增大的情况。
从一本通俗杂志中摘录几段文字,并删除所有不会影响理解的文字,实现压缩。例如,在“This is the dog that belongs to my friend"中,删除is、the、that和to之后,仍然能传递相同的意思。用被删除的单词数与原文本的总单词数之比来衡量文本中的冗余度。用一本技术期刊中的文字来重复这一试验。对于摘自不同来源的文字,我们能否就其冗余度做出定量论述?
答:首先冗余度是在数据传输中,由于衰减或干扰会使数据代码发生突变,此时就要提高数据代码的抗干扰能力,使相应数据具有一定的冗余度。也就是仙侬的信息论所说的数据=信息+冗余度。由于数据中有很多的冗余,所以才可以对数据进行压缩,也使压缩后可以信息不会改变。如果被删除的单词多,说明冗余度大;反之,冗余度小。
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
解:(a):由于P(a1)=P(a2)=P(a3)=P(a4)=1/4,所以
H=-4*1/4*log21/4
=- log21/4
= log24=2(bit)
(b)H= -(1/2*log21/2+1/4*log21/4+1/8*log21/8+1/8*log21/8)
=-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
(c)H=-(0.505*log20.505+1/4*log21/4+1/8*log21/8+0.12*log20.12)
=-0.505*log20.505-1/4*log21/4-1/8*log21/8-0.12*log20.12
=-0.505*log20.505+1/2+3/8-0.12*log20.12
4、考虑以下序列:
ATGCTTAACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG
CTGAACCCGCTTAAGCTTAAGCTGAACCTTCTGAACCTGCTT
(a)根据此序列估计个概率值,并计算这一序列的一阶、二阶、
三阶和四阶熵。
(b)根据这些熵,能否推断这个序列具有什么样的结构?
解:(a)总的有84个字母,A出现的次数为21次,C出现的次数为24,G出现的次数为16次,T出现的次数为23次,那么
P(A)=21/84=1/4,P(C)=24/84=2/7,P(G)=16/84=4/21,
P(T)=23/84
H=-(1/4*log21/4+2/7*log22/7+4/21*log24/21+23/84*log223/84)
=-1/4*log21/4-2/7*log22/7-4/21*log24/21-23/84*log223/84
=2(bit)
(b)、
答:由这些熵可以推断此序列具有的结构是:
(1)序列的阶数越大,熵值就会越大,相应的平均自信息信息就低;
(2)序列的阶数越小,熵值就会越小,相应的平均自信息信息就高。
所以要想多了解序列的信息,就需要把序列少分一点,求它的低阶熵
7、做一个实验,看看一个模型能够多么准确地描述一个信源。
(a)、编写一段程序,从包括26个字母的符号集{a,b,...,z}中随机选择字母,组成100个四字母单词,这些单词中有多少是有意义的?
答:源程序为:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int p,i,j;
char m[100][100];
for(i=0;i<100;i++)
{
for(j=0;j<4;j++)
{
p=rand()%26;
m[i][j]=p+'a';
}
m[i][4]='\0';
printf("%d: %s \t",i+1,m[i]);
}
return 0;
}