第一次作业

习题1

1-1 “ 我们要压缩什么?” 对此怎么理解?

    答:数据的压缩可分为:(1)有损数据压缩和(2)无损数据压缩两种。 要压缩的是 ①物理空间:如存储器,磁盘,磁带,U盘等数据存储介质。②时间区间,如传输给定消息集合所需要的时间, ③电磁频段如传输给定消息集合所需要的频谱,带宽等。  也就是指某个信号集合所占的空域,时域和频域空间。

 

1-2 “为什么要进行数据压缩” 对此的理解?

  答:数据在计算机中的存储容量很大,如果直接存储数据会使得存储量很大,计算机运行缓慢,存取慢,效率低下,不方便。另外文本、声音、动画、图形、图像及视频等多种媒体信息。经过数字化处理后其数据量是非常大的,如果不进行数据压缩,计算机系统就无法对它进行存储、交换和传输。使用数据压缩是缩减数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。我们对数据进行压缩是通过一些算法或者模型对数据的规律性或重复性进行重新组合,使得减少数据的冗余和存储的空间。

 

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

  答: 一种分类方法是根据解码后数据是否能够完全无丢失地恢复原始数据,可分为:(1)无损压缩:也称可逆压缩、无失真编码、熵编码等。原理:去除或减少冗余值,但这些值可在解压缩时重新插入到数据中,恢复原始数据。(2)有损压缩:也称不可逆压缩和熵压缩等。此法在压缩时减少了的数据信息是不能恢复的。

第二种分类方法是按照压缩技术所采用的方法来分的:如静态图像编码,电视编码,熵编码等。

 习题 2

1.4(1)用自己电脑上的压缩工具,数据压缩中源文件的大小和类型对于源文件与压缩文件的大小之比的影响?

答:使用“123好压”对不同类型数据压缩发现不同类型压缩出来的比例不一样。doc(word)、txt(文本)等文件,压缩比例就会非常大。但是mp3和视屏压缩出来的比例就不大,有时候只起个打包的作用。


(2)从一本杂志摘抄几段文字,并删除所有不会影响理解的文字,实现压缩。,,,,,,我们能否对其冗余度做出定量论述?
答:我认为对于摘抄来自不同来源的文本,我们不能对其冗余度做出定量论述,冗余度俗的讲就是数据的重复度。假如在文学写作中使用到一些重叠词:缠缠绵绵 凄凄惨惨,冷冷清清等等,去掉冗余也可以表达这个意思,但是却少了那种意境。所以我认为不能。




作业:

3.给定集合A{a1,a2,a3,a

4

},求下列条件下一阶熵。
(1)P(a1)=P(a2)=P(a3)=P(a4)=1/4
答:H=-
4*(1/4)*log2(1/4)
=log24
=2

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

 答:H=-(1/2)*log2(1/2)+[-(1/4)*log2(1/4)]+[-2*(1/8)*log2(1/8)]

         =1/2+1/2+3/4

         =7/4

         =1.75

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

答:H=-0.505*log20.505+[-2*(1/4)*log2(1/4)]+[-0.12*log20.12]

        =-0.505*log20.505+1+[-0.12*log20.12]

 

 

 5、考虑以下序列:

                ATGCTTAACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG

                CTGAACCCGCTTAAGCTTAAGCTGAACCTTCTGAACCTGCTT

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

答: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/2+[-(23/84)*log2(23/84)]+[-(4/21)*log2(4/21)]+[-(2/7)*log2(2/7)]

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


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

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

 

#include<iostream>
using namespace std;
int main()
{
int word,i,j;
char n[100][5];

for(i=0;i<100;i++)
{
for(j=0;j<4;j++)
{
word=rand()%26;
n[i][j]=word+'a';
}
n[i][4]='';
cout<<i+1<<':'<<n[i]<<" ";
}
return 0;
}

 

有2个   ①Hume 译文:n. 休姆(人名,姓氏)  poey 译文:波埃




原文地址:https://www.cnblogs.com/zhaoxu8/p/4766038.html