zoukankan      html  css  js  c++  java
  • 第一次作业

    一、习题与思考题  P7

    1-1 数据压缩的一个基本问题是“我们要压缩什么”,对此你是怎样理解的?

    答:所谓的数据压缩就是对数据的压缩,那么我们可以知道,数据压缩的定义,就是以最少的数码表示信源所发的信号,从而来减少容纳给定消息集合或数据采样集合的信息空间。在这里所谓的信号空间即被压缩对象。所以对于数据压缩的这个问题就是可以这样解释了。那么我们要压缩的是哪些东西呢?

    1、物理空间,如存储器、磁盘、磁带、光盘、USB闪存盘(U盘)等数据存储介质;

    2、时间区间,如传输给定消息集合所需要的时间;

    3、电磁频段,如为传输给定消息集合所要求的频谱、带宽等。

    综上所述,也就是指某信号集合所占的空域、时域和频域空间。

    1-2  数据压缩的另一个基本问题是“为什么要进行压缩”,对此你又是怎样理解的?

    答:之所以需要进行数据压缩,其原因是人们采用数字技术生成和利用的信息越来越多,但是也使得数据量大增,会出现一些很庞大的数据,占用很大的内存空间,而且在传输这些数据的过程中,会消耗大量的时间。如果我们不对这些庞大的数据采取一定有效的方法进行压缩的话,那么对于我现有的一些空间和时间资源就会造成浪费,那就得不偿失了。那么,对于数据的压缩分为几类,分别是:空间域的压缩、时间域的压缩、频率域的压缩、能量域的压缩等。使用数据压缩不仅可以减少存储空间还可以减少数据的冗余,所以可见数据压缩对于现在社会中关于数字技术化方面还是很有必要的。

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

    答:数据压缩的分类方法繁多,尚未统一。但是,一般可以将数据压缩方法分为两大类:第一类是无损压缩,第二类是有损压缩。无损压缩:即就是指的在无损压缩技术中不存在信息损失,数据经过无损压缩后可以从压缩数据中准确地恢复出原数据,所以又叫做可逆压缩;有损压缩:就是指的在有损压缩技术中会造成一些信息损失,采用有损技术压缩后的数据不能再准确还原或重构,所以又叫做不可逆压缩另外,任何数据压缩的方法都可以抽象成为一下几个步骤:

    1、建立一个数学模型,一以便能更紧凑或更有效地“重新表达”规律性不那么强的或不那么明显(或本质性不那么突出)的原始数据;

    2、设法更简洁地表达利用该模型对原始数据建模所得到的模型参数(或新的数据表示形式);

    3、对数据模型的量化表示或消息流进行码子分配,以得到更紧凑的压缩码流。

    二、参考书《数据压缩导论(第四版)》P

     1.4  项目与习题

    1、 用你的计算机上的压缩工具来压缩不同文件。研究原文件的大小和类型对于压缩文件与原文件大小之比的影响。

    答:计算机处理信息是以二进制数(0和1)的形式标示的,压缩软件把二进制信息中相同的字符串以特殊字符标记起来压缩的,从而实现缩小文件大小的。 压缩比则根据文件类型的不同有所不同,比如文档类的文件压缩比很大(一个字或者一个词在同一个文件会反复出现),而影音文件的压缩比则比较小(每一个像素点的色素不同是常有的,不同颜色和颜色深浅、对比度的不同、亮度不同、音调音色不同等的对应二进制代码是不同的)。 所以压缩比确实是不能一概而论的。 

    2、从一本通俗杂志中摘录几段文字,并删除所有不会影响理解的文字,从而实现压缩。

    在"This is the dog that  belongs to my friend”  中,删除 is 、the、that和to之后,仍然能传递相同的意思。用被删除的单词数与原文本的总单词数之比来衡量文本中的冗余度。用一本技术期刊中的文字来重复这一实验。对于摘自不同来源的文字,我们能否就其冗余度做出定量论述?

    答:在解决这个问题之前,我们要先搞清楚,所谓的冗余度是什么?那么题目中说:用被删除的单词数与原文本的总单词数之比来衡量文本中的冗余度。那么对于摘自不同来源的文字,一些文字的出现的频率是不一样的,还有摘自来的文字,字数大部分情况是不一样多的,有一些字可能会重复出现几次或多次,也就是说,我们可以保证被删除的单词数目一样,但是不能保证原文本的单词数目一样,所以得出来的冗余度是不一致的。所以,对于摘自不同来源的文字,我们不能就其冗余度做出定量的论述。

    三、参考书《数据压缩导论(第4版)》P30

    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=-1/4*4*log21/4

          =- log21/4

          = log24=2(bits)

     

    (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=7/4

     (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(bits)

    (b)

  • 相关阅读:
    面试官:重写 equals 时为什么一定要重写 hashCode?
    MyBatis 中为什么不建议使用 where 1=1?
    面试官:方法重写时需要注意哪些问题?
    Java中List排序的3种方法
    面试官:this和super有什么区别?this能调用到父类吗?
    面试官:int和Integer有什么区别?为什么要有包装类?
    HashMap 中的一个“坑”!
    Java 中接口和抽象类的 7 大区别!
    List 去重的 6 种方法,这个方法最完美!
    面试官:如何实现 List 集合去重?
  • 原文地址:https://www.cnblogs.com/wangchaoqiong/p/4784766.html
Copyright © 2011-2022 走看看