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

    课本:

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

          数据压缩,就是以最少的数码表示信源所发的信号,减少容纳给定消息集合或数据采样集合的信号空间。所谓信号空间就是被压缩对象,指:①物理空间,如存储器、磁盘、磁带、光盘、USB闪存盘(U盘)等数据存储介质;②时间区间,如传输给定消息集合所需的时间;③电磁频段,如为传输给定消息集合所要求的频谱、带宽等。也就是说我们要压缩某信号集合所占的空域、时域和频域空间。

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

          随着计算机技术的日益发展,数字技术(或系统)有许多优越性,但也使数据量大增。信息时代带来的不光是快捷与高效,更带了“信息爆炸”,数据压缩的作用及其社会效益、经济效益将越来越明显。反之如果不进行数据压缩,则无论传输或存储都很难实用化。总之,数据压缩可以在不丢失信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。

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

          数据压缩的分类方法繁多,尚未统一。其中一种分类方法可将其分为:可逆压缩与不可逆压缩。

    参考书:

    《数据压缩导论(第4版)》Page 8

    1.4 项目与试题

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

        压缩文件要看类型,不同类型压缩出来的比例不一样。doc、txt、sql数据库等文件,压缩比例就会非常大。但是像jpg,mp3,等本身就是压缩格式的数字音频或者图片文件,压缩出来的比例就不大,有时候只起个打包的作用。

    2、从一种通俗杂志中摘录几段文字,并删除所有不会影响理解的文字,实现压缩。例如,在“This is a dog that belongs to my friend”中,删除 is、the、that和to之后,仍然能传递相同的意思。用被删除的单词数与原文本的总单词数之比来衡量文本中的冗余度,用一本技术期刊中的文字来重复这一试验。对于摘自不同来源的文字,我们是否就其冗余度做出定量论述?

        冗余度通俗来讲就是数据的重复度,它表征信源信息率的多余程度,是描述信源客观统计特性的一个物理量。冗余度是从安全角度考虑多余的一个量,这个量就是为了保障仪器、设备或某项工作在非正常情况下也能正常运转。只有数据有冗余度时,数据进行压缩才会有意义,而信源编码就是必要信息加上冗余度。对于不同的信源编码,信息的冗余度是不一样的,所以不能进行定量描述。

    《数据压缩导论(第4版)》Page 30

          3、给定符号集A={a1,a2,a3,a4},求一下条件下的一阶熵:

             (a)P(a1)=P(a2)=P(a3)=P(a4)=1/4

               答:H=-1/4*log2(1/4)-1/4*log2(1/4)-1/4*log2(1/4)-1/4*log2(1/4)

                      =1/2+1/2+1/2+1/2

                      =2 (bits)

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

               答:H= -1/2log2(1/2)-1/4log2(1/4)-1/8log2(1/8)-1/8log2(1/8)

                       = 1/2+1/2+3/8+3/8

                       =1.75(bits)

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

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

                      =1.8672(bits)

          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/4log2(1/4)-23/84log2(23/84)-4/21log2(4/21)-2/7log2(2/7)

                               =0.5+(23/84)*1.869+(4/21)*2.392+(2/7)*1.807

                           =0.5+0.512+0.457+0.514

                           =1.983(bits)

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

                答:只做了一阶熵,无法分析。

          7(a)、做一个实验,看看一个模型能够多么准确地描述一个信源。编写一段程序,从包括26个字母的符号集{a,b,...,z}中随机选择字母,组成100个四字母单词,这些单词中有多少是有意义的?

                答:其中只有一个单词有意义:mlia

                      

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<time.h>
     4 int main()
     5 {
     6     int i=0,j;
     7     srand(time(NULL));
     8     for(i=0;i<100;i++)
     9     {
    10             for(j=0;j<4;j++)
    11             {
    12                 printf("%c",rand()%26+97);
    13             }
    14             printf("		");
    15     }
    16 
    17 }
  • 相关阅读:
    android NDK开发及调用标准linux动态库.so文件
    android ndk增加对stl的支持
    Android中JNI的使用方法
    OCP-1Z0-052-V8.02-55题
    OCP-1Z0-053-V12.02-162题
    OCP-1Z0-052-V8.02-52题
    OCP-1Z0-052-V8.02-50题
    OCP-1Z0-052-V8.02-49题
    Android 中Java 和C/C++的相互调用方法
    用JNI调用C或C++动态联接库入门
  • 原文地址:https://www.cnblogs.com/wannuexiaoze/p/4759974.html
Copyright © 2011-2022 走看看