• 第一次作业


    一、 教材习题

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

    答: 数据压缩的是信号空间,也就是信号所占的带宽,压缩哪一种信号空间,根据实际的需要与技术条件来决定。

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

    答:因为在大多数时候我们存储的数据都特别的大,占用存储空间大,我们为了节省存储空间,因此我们对数据进行压缩,以提高数据的传输、存储和处理效率。

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

    答:数据压缩分为有损压缩和无损压缩,无损压缩是对压缩后的数据进行重构,重构后的的数据与原来的数据完全相同。有损压缩是对重构后的数据进行压缩,重构后的数据与原来的数据有所不同,但不影响原始信息所要表达的内容。

    二、 参考书《数据压缩导论(第4版)》Page 8 1.4

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

    答:对于不同的文件,如一般的字符文件,视频、音频、图像等,一般字符文档压缩比列较高,视频、音频压缩比列最高,一些图片,像jpeg格式的图片几乎无影响。

    2-2 从一本通俗杂志中摘录几段文字,并删除所有不会影响理解的文字,实现压缩。例如,在“This is the 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

    (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/4 , P(a4)=0.12

    答:

    (a)1*1/4*(-log21/4)+1*1/4*(-log21/4)+1*1/4*(-log21/4)+1*1/4*(-log21/4)

        =1*1/4*2+1*1/4*2+1*1/4*2+1*1/4*2

        =2(bit)

     (b)1*1/2*(-log21/2)+1*1/4*(-log21/4)+1*1/8*(-log21/8)+(1*1/8*-log21/8)

       =1*1/2*1+1*1/4*2+1*1/8*3+1*1/8*3

       =1.75(bit)

    (c)=1*101/200*(-log2101/200)+1*1/4*(-log21/4)+1*1/4*(-log21/4)+1*3/25*(-log23/25)

    5.考虑以下序列:

    ATGCTTAACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG

    CTGAACCCGCTTAAGCTGAACCTTCTGAAGCTTAACCTGCTT

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

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

    答:以上字母总共84个,其中字母A出现21次,字母T出现23次,字母G出现16次,字母C出现24次

          即P(A)=21/84=1/4;P(T)=23/84;P(G)=16/84=4/21;P(C)=24/84=2/7.

    (a) 各字母的概率值如下:

           P(A)=21/84=1/4;

           P(T)=23/84;

           P(G)=16/84=4/21;

           P(C)=24/84=2/7.

    该序列的一阶熵为:21*1/4*(-log21/4)+23*23/84*(-log223/84)+16*4/21*(-log24/21)+24*2/7*(-log22/7)

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

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

    程序为:

    #include<iostream>
    using namespace std;
    #include<cstdlib>
    #include<ctime>
    #include<iomanip>
    int main()
    {
    int r,a,b;
    char z[100][100];
    srand(time(NULL));
    cout<<setfill('0');
    for(a=0;a<100;a++)
    {
    for(b=0;b<4;b++)
    {
    r=rand()%26;
    z[a][b]=r+'a';
    }
    z[a][4]='';
    cout<<setw(3)<<a+1<<" "<<z[a]<<" ";
    }
    return 0;
    }

    结果截图为:

    有意义的单词有:

    Zerg [n. 虫族(游戏《星际争霸》中的角色)]

       

     

     

  • 相关阅读:
    专职DBA-MySQL主从延时复制
    专职DBA-MySQL主从异步复制
    专职DBA-MySQL连接启动与多实例数据库
    Java日期时间2
    Java日期时间
    763. Partition Labels
    377. Combination Sum IV
    459. Repeated Substring Pattern
    784. Letter Case Permutation
    526. Beautiful Arrangement
  • 原文地址:https://www.cnblogs.com/lanxuetianya/p/4765956.html
Copyright © 2020-2023  润新知