信息论与编码技术实验指导书57086new_第1页
信息论与编码技术实验指导书57086new_第2页
信息论与编码技术实验指导书57086new_第3页
信息论与编码技术实验指导书57086new_第4页
信息论与编码技术实验指导书57086new_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息论与编码技术实验指导书通信工程教研室实验一:信息量及信道容量的计算一、 实验目的:通过该实验,掌握通过计算机实验信息量和信道容量的计算方法二、 实验要求:对一个离散的无记忆信源,给定信源的输入概率分布,给定一个信道特性,计算各种信息量和熵,并计算信道容量。三、 实验原理:n设输入Xx1,x2,xi,xn 输出Yy1,y2,yj,ym,信道的一般数学模型如下图:在给定信源概率分布条件下,各种熵的求解方法如下:) 信源熵) 条件熵) 联合熵) 交互熵) 信道容量n一般离散信道容量对计算步骤总结如下:四、 实验设备:计算机 c+五、实验报告要求1、 画出程序设计的流程图,2、 写出程序代码,3、

2、 写出在调试过程中出现的问题 ,4、 对实验的结果进行分析。实验二香农编码一 实验目的、掌握通过计算机实现香农编码二实验要求对于给定的信源的概率分布,按照香农编码的方法进行计算机实现.三、实验原理给定某个信源符号的概率分布,通过以下的步骤进行香农编码1、 信源符号按概率从大到小排列2、 对信源符号求累加和,表达式: Pi=Pi-1+p(xi)3、 求自信息量,确定码字长度。自信息量I(xi)=-log(p(xi);码字长度取大于等于自信息量的最小整数。4、 将累加和用二进制表示,并取小数点后码字的长度的码 。四、实验设备 计算机 c+五实验报告1、画出程序设计的流程图,2、写出程序代码,3、写

3、出在调试过程中出现的问题 ,4、对实验的结果进行分析。实验三费诺编码一 实验目的:掌握通过计算机实现费诺编码二实验要求:对于给定的信源的概率分布,按照费诺编码的方法进行计算机实现.三实验原理费诺编码的步骤:A 将概率按从大到小的顺序排列B 按编码进制数将概率分组,使每组概率和尽可能接近或相等。C 给每组分配一位码元D 将每一分组再按同样原则划分,重复b和c,直到概率不再可分为止四 实验设备 计算机 c+五实验报告 1、画出程序设计的流程图,2、写出程序代码,3、写出在调试过程中出现的问题 ,4、对实验的结果进行分析。实验四哈夫曼编码一 实验目的:掌握通过计算机实现哈夫曼编码二实验要求:对于给定

4、的信源的概率分布,按照哈夫曼编码的方法进行计算机实现.三实验原理哈夫曼编码的步骤:(1). 把信源符号按概率大小顺序排列, 并设法按逆次序分配码字的长度。 (2). 在分配码字长度时,首先将出现概率 最小的两个符号的概率相加合成一个概率(3). 把这个合成概率看成是一个新组合符号地概率,重复上述做法直到最后只剩下两个符号概率为止。 (4). 完成以上概率顺序排列后,再反过来逐步向前进行编码,每一次有二个分支各赋予一个二进制码,可以对概率大的赋为零,概率小的赋为1。四实验设备 计算机 c+五实验报告1、画出程序设计的流程图,2、写出程序代码,3、写出在调试过程中出现的问题 ,4、对实验的结果进行

5、分析。六 参考程序哈夫曼编码:根据二叉树思想,将二叉树的程序改编   #include<iostream>#include<string>using namespace std;typedef struct     int weight;    int flag;    int parent;    int lchild;    int rchild;hnodetype;typedef str

6、uct     int bit10;    int start;    char leaf;hcodetype;void huf(char cha,int m,int n)                            &

7、#160;          int i,j,m1,m2,x1,x2,c,p;    hnodetype *huffnode=new hnodetype2*n-1;    hcodetype *huffcode=new hcodetypen,cd;    for(i=0;i<2*n-1;i+)           

8、0;                             /初始化哈夫曼树        huffnodei.weight=0;        huffnodei.parent

9、=0;        huffnodei.flag=0;        huffnodei.lchild=-1;        huffnodei.rchild=-1;        for(i=0;i<n;i+)          

10、                              /哈夫曼结点赋初值        huffnodei.weight=mi;        huffcodei.

11、leaf=chai;        for(i=0;i<n-1;i+)                                         /

12、对结点进行编码        m1=m2=10000000;        x1=x2=0;        for(j=0;j<n+i;j+)                    if(huffnode

13、j.weight<=m1&&huffnodej.flag=0)                            m2=m1;                x2=

14、x1;                m1=huffnodej.weight;                x1=j;                

15、;        else if(huffnodej.weight<=m2&&huffnodej.flag=0)                            m2=huffnodej.weight;   &#

16、160;            x2=j;                            huffnodex1.parent=n+i;        huffno

17、dex2.parent=n+i;        huffnodex1.flag=1;        huffnodex2.flag=1;        huffnoden+i.weight=huffnodex1.weight+huffnodex2.weight;        huffnoden+i.lchild=x1

18、;        huffnoden+i.rchild=x2;        for(i=0;i<n;i+)                             

19、0;            /生成哈夫曼树            cd.start=n-1;            c=i;            p=huff

20、nodec.parent;            while(p!=0)                            if(huffnodep.lchild=c)     

21、;               cd.bitcd.start=0;                else                 

22、   cd.bitcd.start=1;                cd.start-;                c=p;            &#

23、160;   p=huffnodec.parent;                        cout<<huffcodei.leaf<<":"            for(j=cd.start+1

24、;j<n;j+)                            huffcodei.bitj=cd.bitj;                cout<<cd.bi

25、tj;                        cout<<endl;            huffcodei.start=cd.start;        delete huffcode;

26、    delete huffnode;void main()    int i=0; int m10=30,23,10,10,9,8,7,3;    char cha10="abcdefgh" float f;    cout<<"该字符串为:t" for (i=0;i<strlen(cha);i+)  cout<<chai<<"t"  cout<<"字符加权为:t" for (i=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论