信息论专业课程设计.doc
《信息论专业课程设计.doc》由会员分享,可在线阅读,更多相关《信息论专业课程设计.doc(27页珍藏版)》请在咨信网上搜索。
1、电子科技大学电子工程学院信息论课程设计报告课程名称:信息编码与加密课 程 设 计 报 告学生姓名:农瀚 学号: 指引教师:李万春一、课程设计名称:编程实现霍夫曼、费诺、香农编码二、课设原理: 1)霍夫曼编码:霍夫曼编码平均码长最短,是最佳编码。编码环节如下: (1)将信源符号按概率大小排序; (2)对概率最小两个符号求其概率之和,同步给两幅 号分别赋予码元0和1;(3) 将概率之和当做一种新符号概率。与剩余概率 一起,形成一种缩减信源,再重复上述环节,直到概率和为1为止;(4) 按上述环节事实上构成了一种码树,从根到端点通过树枝即为码字。 2)费诺编码:编码环节如下:(1) 将信源概率从大到小
2、排序;(2) 将信源符号提成两组,使两组信源符号概率之和近似相等,并给两组信源符号分别赋0和1;(3) 再把各个小组信源符号细分为两组并赋码元,办法与第一次分组相似;(4) 如此始终下去,直到每一种小组只含一种信源符号为止;(5) 由此可构导致一种码树,所有终端节点上码字构成费诺码。 3)香农编码:编码办法如下:将信源消息符号按其浮现概率大小依次排列p(u1)p(u2)p(un)拟定码长Ki(整数):Ki= 取整为了编成唯一可译码,计算第i个消息累加概率将累加概率Pi变换成二进制数。取pi二进制数小数点后Ki位即为该消息符号二进制数。三、课设目:通过编程实现三种方式编码,掌握三种编 码方式环节
3、。四、课设内容: 三种编码方式编程思路:1、霍夫曼编码:(1)对给定n个权值W1,W2,W3,.,Wi,.,Wn构成n棵二叉树初始集合F= T1,T2,T3,.,Ti,.,Tn,其中每棵二叉树Ti中只有一种权值为Wi根结点,它左右子树均为空。(为以便在计算机上实现算 法,普通还规定以Ti权值Wi升序排列。)(2)在F中选用两棵根结点权值最小树作为新构造二叉树左右子树,新二叉树根结点权值为其左右子树根结点权值之和。(3)从F中删除这两棵树,并把这棵新二叉树同样以升序排列加入到集合F中。(4)重复二和三两步,直到集合F中只有一棵二叉树为止。2、费诺编码编程思路:(1)先使用冒泡法对信源概率概率排序
4、;(2)依次将按排好序符号概率进行近似1:1提成两大组;(3)对各组赋予一种二进制码元“0”和“1”;(4)输出符号,符号概率及编码。3、香农编码:(1)对于一种给定符号列表,制定了概率相应列表或频率计数,使每个符号相对发生频率是已知。(2)排序依照频率符号列表,最常浮现符号在左边,至少浮现符号在右边。(3)清单分为两某些,使左边某些总频率和尽量接近右边某些总频率和。(4)该列表左半边分派二进制数字0,右半边是分派数字1。这意味着,在第一半符号代都是将所有从0开始,第二半代码都从1开始。(5)对左、右半某些递归应用环节3和4,细分群体,并添加位代码,直到每个符号已成为一种相应代码树叶。五、器材
5、(设备、元器件):计算机、visual studio社区版六、设计代码:见附录九、实验数据及成果依照上述实验程序得到实验数据及成果如下:霍夫曼编码: 费诺编码: 香农编码:十、结论 完毕了20个非等概随机信源霍夫曼、费诺和香农编码,并给出了编码效率和码字。十一、总结及心得体会通过这次课程设计,我掌握了三种编码方式环节,并可以运用编程实现编码,提高了自己编程水平和对该知识点掌握限度。附录代码:/ ConsoleApplication1.cpp :定义控制台应用程序入口点。/*霍夫曼编码*/#include stdafx.h#include #include#include#include#inc
6、lude #include using namespace std;#define SourNum 20#define MAXBIT 100#define MaxValue 10000#define MAXLEAF 30#define MAXNODE MAXLEAF*2 -1double SpSourNum;char coder100100;int bitlong100;void ProSource()/产生非等概信源函数int n = 0;srand(unsigned)time(0);double sum = 0;while (1)Spn = (double)rand() / (RAND_M
7、AX);/产生随机浮点数sum = sum + Spn;if (sum 1 & Spn 19)break;else continue;elsesum = sum - Spn;Spn = 0;continue;SpSourNum = 1 - sum;/*霍夫曼编码*/typedef structint bitMAXBIT;int start; HCode;typedef structdouble weight;double parent;double lchild;double rchild;int last; HNodeType;void HuffmanTree(HNodeType HuffN
8、odeMAXNODE,int n)int i,j,x1,x2;double m1,m2;for (i = 0;i 2 * n - 1;i+)HuffNodei.weight = 0;HuffNodei.parent = -1;HuffNodei.lchild = -1;HuffNodei.rchild = -1;for (i = 0;i n;i+)HuffNodei.weight = Spi;for (i = 0;i n - 1;i+)m1 = m2 = MaxValue;x1 = x2 = 0;for (j = 0;j n + i;j+)if (HuffNodej.weight m1 & H
9、uffNodej.parent = -1)m2 = m1;x2 = x1;m1 = HuffNodej.weight;x1 = j;else if (HuffNodej.weight m2 & HuffNodej.parent = -1)m2 = HuffNodej.weight;x2 = j;HuffNodex1.parent = n + i;HuffNodex2.parent = n + i;HuffNoden + i.weight = HuffNodex1.weight + HuffNodex2.weight;HuffNoden + i.lchild = x1;HuffNoden + i
10、.rchild = x2;double CodEffi()/求编码效率int AveraLong = 0,SumLong = 0;double H = 0,CE = 0;for (int i = 0;i SourNum;i+)SumLong = SumLong + bitlongi;AveraLong = SumLong / SourNum;for (int j = 0;j SourNum;j+)H = (-Spj)*(log(Spj) / log(2) + H;CE = H / AveraLong;return CE;int main()ProSource();sort(Sp,Sp + So
11、urNum);HNodeType HuffNodeMAXNODE;HCode HuffCodeMAXLEAF,cd;int i,j,c,p,n;n = SourNum;HuffmanTree(HuffNode,SourNum + 1);for (i = 0;i n;i+)cd.start = n - 1;c = i;p = HuffNodec.parent;while (p != -1)if (HuffNodep.lchild = c)cd.bitcd.start = 0;elsecd.bitcd.start = 1;cd.start-;c = p;p = HuffNodec.parent;f
12、or (j = cd.start + 1;jn;j+)HuffCodei.bitj = cd.bitj;HuffCodei.start = cd.start;memset(coder,0,sizeof(coder);int temp=0;for (i = 0;in;i+)cout 信源 i 编码为:;for (j = HuffCodei.start + 1;j n;j+)cout HuffCodei.bitj;coderitemp= char(HuffCodei.bitj+48);temp+;temp = 0;cout 信源概率: Spi;cout 字长: strlen(coderi);pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息论 专业课程 设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。