信息论与编码matlab.doc

信息论与编码matlab.doc

ID:55927102

大小:128.67 KB

页数:14页

时间:2020-06-15

信息论与编码matlab.doc_第1页
信息论与编码matlab.doc_第2页
信息论与编码matlab.doc_第3页
信息论与编码matlab.doc_第4页
信息论与编码matlab.doc_第5页
资源描述:

《信息论与编码matlab.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、信息论实验报告姓名胡小辉班级电子信息工程0902学号0909091112实验目的1、掌握哈夫曼编码、费诺编码、汉明码原理;2、熟练掌握哈夫曼树的生成方法;3、学会利用matlab、C语言等实现Huffman编码、费诺编码以及hamming编码。1.实验原理Huffman编码:哈夫曼树的定义:假设有n个权值,试构造一颗有n个叶子节点的二叉树,每个叶子带权值为wi,其中树带权路径最小的二叉树成为哈夫曼树或者最优二叉树;实现Huffman编码原理的步骤如下:1.首先将信源符号集中的符号按概率大小从大到小排列。2.用0和1表示概率最小的两个符号。可用0表示概率小的符号,也可用1表示概率小

2、的符号,但整个编码需保持一致。3.将这两个概率最小的符号合并成一个符号,合并符号概率为最小概率之和,将合并后的符号与其余符号组成一个N-1的新信源符号集,称之为缩减符号集。4.对缩减符号集用步骤1,2操作5.以此类推,直到只剩两个符号,将0和1分别赋予它们。6.根据以上步骤,得到0,1赋值,画出Huffman码树,并从最后一个合并符号回朔得到Huffmaan编码。费诺编码:费诺编码的实现步骤:1、将信源消息符号按其出现的概率大小依次排列:。2、将依次排列的信源符号按概率值分为两大组,使两个组的概率之和近似相同,并对各组赋予一个二进制码元“0”和“1”。3、将每一大组的信源符号再分

3、为两组,使划分后的两个组的概率之和近似相同,并对各组赋予一个二进制符号“0”和“1”。4、如此重复,直至每个组只剩下一个信源符号为止。5、信源符号所对应的码字即为费诺码。hamming编码:若一致监督矩阵H的列是由不全为0且互不相同的所有二进制m(m≥2的正整数)重组成,则由此H矩阵得到的线性分组码称为[2m-1,2m-1-m,3]汉明码。我们通过(7,4)汉明码的例子来说明如何具体构造这种码。设分组码(n,k)中,k=4,为能纠正一位误码,要求r≥3。现取r=3,则n=k+r=7。我们用a0ala2a3a4a5a6表示这7个码元,用S1、S2、S3表示由三个监督方程式计算得到的

4、校正子,并假设三位S1、S2、S3校正子码组与误码位置的对应关系如表1所示。S1S2S3错码位置S1S2S3错码位置001a0101a4010al110a5100a2111a6011a3000无错码表1校正子和错码位置关系由表可知,当误码位置在a2、a4、a5、a6时,校正子S1=1;否则S1=0。因此有S1=a6⊕a5⊕a4⊕a2,同理有S2=a6⊕a5⊕a3⊕a1和S3=a6⊕a4⊕a3⊕a0。在编码时a6、a5、a4、a3为信息码元,a2、a1、a0为监督码元。则监督码元可由以下监督方程唯一确定a6⊕a5⊕a4⊕a2=0a6⊕a5⊕a3⊕a1=0(1.1.1)a6⊕a4⊕a

5、3⊕a0=0也即a2=a6⊕a5⊕a4a1=a6⊕a5⊕a3(1.1.2)a0=a6⊕a4⊕a3由上面方程可得到表2所示的16个许用码组。在接收端收到每个码组后,计算出S1、S2、S3,如果不全为0,则表示存在错误,可以由表1确定错误位置并予以纠正。举个例子,假设收到码组为0000011,可算出S1S2S3=011,由表1可知在a3上有一误码。通过观察可以看出,上述(7,4)码的最小码距为dmin=3,纠正一个误码或检测两个误码。如果超出纠错能力则反而会因“乱纠”出现新的误码.信息位监督位信息位监督位a6a5a4a3a2a1a0a6a5a4a3a2a1a0000000010010

6、0011010001010110011100001110111011010101100010001001101010111100110111101111111100010001001010100111表2(7,4)汉明码的许用码组3.1(7,4)汉明码的编码思路(7,4)汉明码的编码就是将输入的四位信息码编成七位的汉明码,即加入三位监督位。根据式(2.2.0)A=[a6a5a4a3]·G可知,信息码与生成矩阵G的乘积就是编好以后的(7,4)汉明码,而生成矩阵G又是已知的,由式(1.1.9)得1000111G=010011000101010001011所以,可以得出如下方程组   

7、a6=a6        a5=a5        a4=a4        a3=a3                     a2=a6+a5+a4        a1=a6+a5+a3        a0=a6+a4+a3根据此式子编出编码程序。1.实验过程及结果1、哈弗曼编码例如:当p1=0.3、p2=0.15、p3=0.05、p4=0.1、p5=0.4则根据其原理得到的matlab程序如下:clc;clear;A=[0.3,0.15,0.05,0.1,0.4];%信源消

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。