基于MATLAB GUI的香农编码设计

来源 :中小企业管理与科技·上旬刊 | 被引量 : 0次 | 上传用户:liuchy2008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】通过MATLAB的图形用户界面对香农编码过程进行设计制作,完成要求如下:输入任意符号文本,计算出每个符号的概率,同时计算出信源熵,通过香农编码的方法为每个符号进行编码,并显示在界面中,最后计算得出编码效率。该方法使得操作过程更加方便,计算结果更加直观。
  【Abstract】The Shannon Coding process is designed by MATLAB graphical user interface,and the requirements are as follows: entering any symbolic text, calculating the probability of each symbol, and calculating the entropy of the source, using the method of Shannon Coding to encode for each symbol, and displaying them in the interface, finally , calculating the encoding efficiency. This method makes the operation process more convenient and the calculation results more intuitive.
  【關鍵词】香农编码;GUI;信源熵;编码效率
  【Keywords】 Shannon Coding; GUI; source entropy; coding efficiency
  【中图分类号】TN911 【文献标志码】A 【文章编号】1673-1069(2017)09-0157-02
  1 引言
  MATLAB中没有专门用来计算香农编码的函数,因此在编程计算中具有程序复杂、修改困难、不直观等缺点。本文利用MATLAB图形用户界面的操作灵活及效果直观的优点,按照计算香农编码的具体流程,通过录入用户的键盘输入,将符号概率、信源熵、香农编码及编码效率依次显示在图形用户界面上,该方法灵活直观、方便对比。实现香农编码的流程图如图1所示。
  2 香农编码的GUI设计
  在通信系统中,通常要通过信源编码来提高信息传输的有效性。香农编码是其中一种编码方法,又称可变长无失真信源编码[1]。香农编码将原始信源符号转化为新的码符号,使码符号尽量服从等概分布,从而每个码符号所携带的信息量达到最大,进而可以用尽量少的码符号传输信源信息[2]。
  MATLAB的GUI(Graphical User Interfaces)是一个由坐标轴、按钮、级联菜单、动静态文本等图形对象组成的一个用户与计算机交互的图形窗口。用户通过编写程序,激活这些图形对象,使计算机实现相应的变化,以完成用户需要的功能。比如,实现计算和图像显示等。该 GUI 界面使用了11个静态文本、23个可编辑文本、4个按钮。其中“输入符号序列”、“q”、“w”、“e”等为静态文本;“计算符号概率”、“香农编码”、“计算信源熵”、“编码效率”为按钮,用来实现程序的运行;其余模块均为可编辑文本,用来实现数据的输入与输出。图2是未点击功能控件时的空GUI[3]。
  3 香农编码的实现过程
  在“输入符号序列”右侧的可编辑文本框中输入任意符号序列,点击“计算符号概率”按钮,即可在“q”、“w”、“e”等字母的右侧可编辑文本中显示出对应的符号概率,点击“计算信源熵”按钮,即可在右侧可编辑文本框中显示出信源熵的数值,点击“香农编码”按钮,相应的码字即会显示在对应的文本框中,最后点击“计算编码效率”按钮,即可得出香农编码效率。
  4 程序的编写
  程序的编写需要分模块来进行。
  按照先后顺序,首先需要对“输入符号序列”右侧的可编辑文本框进行程序的编写,需要实现的功能是:接收计算机键盘输入的符号序列,并将其保存为一个变量。
  接下来是“计算符号概率”按钮的程序的编写。由公式:概率p=样本数n/总体N,可知应当首先统计每个符号出现的次数及符号序列的总长度,再进行除法运算即可得到每个符号的概率。
  然后是计算信源熵。信源熵计算公式为:H(x)=-p(xi)logp(xi)。将该公式编入程序,即可实现信源熵的计算。
  最重要也最复杂的一步是香农编码的程序编写。香农编码的具体过程如下:
  ①将信源消息符号按其出现的概率大小依次排列为p1≥p2≥…≥pn。
  ②确定满足下列不等式的整数码长Ki为-lb(pi)≤Ki≤lb(pi)+1。
  ③为了编成唯一可译码,计算第i个消息的累加概率Pi=p(ak)。
  ④将累加概率Pi变换成二进制数。
  ⑤取Pi二进制数的小数点后Ki位即为该消息符号的二进制编码。
  5 结语
  本文设计了一种基于MATLAB GUI的香农编码,将香农编码的具体步骤直观化,通过用户任意键入字符,即可计算出每个字符出现的概率,同时根据得到的信源熵计算香农编码及编码效率,大大简化了计算过程,提高了计算效率[4]。
  【参考文献】
  【1】曹雪虹.信息论与编码[M].北京:清华大学出版社,2009.
  【2】邵军花,刘玉红,邸敬,等.香农编码的优化算法研究[J].兰州交通大学学报,2010,29(6):110-113.
  【3】邱金蕙,王矞辉,李振全.基于Matlab/GUI的新型界面开发方式[J].河北工业科技,2008,25(4):233-235.
  【4】余结,王防修,胡迪,等.一种香农编码优化算法的改进[J].武汉轻工大学学报,2015(2):83-86.
其他文献
泌球外科简介本学科由国内最早期的泌尿外科专家陈仁亨创建于1950年,是建国初期集医、教、研一体的最大规模的泌尿外科之一。60年代成为国内最具影响力的四个泌尿外科基地之一
各区县(自治县)人民政府,市政府有关部门,有关单位:根据《重庆市人民政府关于印发重庆市市长质量管理奖评选办法的通知》(渝府发(2009)62号)精神,经与有关方面协商并经市政府同意,成立重
讲三点意见。一、务必把森林重庆建设这件民生工程、环境工程、经济工程抓实办好去年8月市委、市政府发出建设森林重庆动员令以来,植树造林正以前所未有的力度,由公园社区向荒
在第十三届“国际工业自动化与控制技术”展览会举办之际,由中国仪器仪表学会过程检测控制仪表分会和可靠性工程分会、中国自动化学会仪表与装置专业委员会、中国仪器仪表行业
论文从电子商务的相关概述、电子商务对商业银行的重要意义、当前商业银行的服务与创新存在的问题、改善电子商务环境下商业银行的服务与创新的几点途径四个方面进行阐述,希
加药混凝过程是自来水厂生产工艺的一个重要环节,如何对沉淀池出水浊度进行预测一直是个热点问题。自来水厂加药混凝过程是大滞后、非线性和时变的复杂动态系统,针对这一过程进
以实现负荷全量程精确计量为目标,提出了按负荷量实时分段计量的电能计量装置设计方案。在负荷信号检测端,采取按三相负荷功率的额度进行实时分段的措施。通过控制切换电流互
【摘 要】随着科学技术的发展与渗透,掌握一定的计算机知识与能力已经成为社会发展的必然要求,而掌握计算机知识、获取计算机能力的重要渠道则是教育教学。开放教育作为一校多区、教师学历与非学历一体化、职前职后相沟通衔接、网络资源与传统教育相结合的渠道,为计算知识的普及与应用实践的开展提供了有力的學习途径,为我国计算机应用技术与学习素养的提升提供了有力的平台。  【Abstract】With the dev
论文针对公民信息安全与执法管理的研究,将从公民信息安全与执法管理现状入手,对公民信息安全与执法管理的重要性进行分析。最后,论文将提出加强公民信息安全与执法管理的具
串口通信以其集成方便、价格低廉而被广泛地使用于测试测量和仪器控制中。以HP34401A数字万用表为例,介绍了如何利用LabWindows提供的丰富I/O函数库进行控制,实现仪器驱动层的兼