APP下载

基于Matlab的信源编码实验系统的设计

2012-04-26宋丽丽

电气电子教学学报 2012年6期
关键词:编码方法键入码长

宋丽丽,秦 艳

(内蒙古工业大学信息工程学院,内蒙古呼和浩特 010080)

信源编码是“信息论与编码课程”的重要内容,为使学生更好的理解与掌握,本文基于Matlab开发的信源编码实验系统,实现了离散信源编码方法中的香农编码、费诺编码和Huffman编码以及连续信源编码方法中的均匀量化编码与非均匀量化编码。利用Matlab中GUI图形用户界面相关知识设计实现Matlab信源编码的实验图形界面,只需简单操作文本输入框和按钮,就可直观便捷地实现各种编码方法。

1 信源编码的实现

在数字通信系统中,信源编码技术可以提高数字信号传输的有效性。无失真信源编码允许把等长的消息变换成变长的消息,这样可使平均码长达到最短,提高编码效率。目前最常用的方法就是香农编码、费诺编码和Huffman编码。限失真信源编码即连续信源编码在时间和取值上都是连续的,所以要先经过抽样抽取一些可以代表整个信号的离散点,使信号在时间上离散。再经过均匀量化或非均匀量化使信号在取值上也离散,成为离散的数字信号。因为量化方式的不同也就产生不同的编码方法:标量量化编码和矢量量化编码。标量量化编码又包括均匀量化编码和非均匀量化编码[1]。信源编码实现的总流程图如1所示。

图1 信源编码设计流程图

离散无记忆信源的数学模型如下:

编码过程中要用到信源符号的统计特性,即信源符号的概率,离散信源编码实现框图如图2所示。

图2 离散信源编码框图

连续信源编码后经过抽样和量化再进行编码。由于量化是用取值域上有限个量化值的离散数值来代替信号的无穷多连续取值,因此量化必然带来误差。这也就成为连续信源编码与离散信源编码的最大区别。

2 信源编码实验系统GUI操作界面

我们利用Matlab工具箱中用于用户与计算机进行信息交流的交互工具——图形用户界面GUI(Graphical User Interface),设计实现Matlab信源编码实验系统操作界面以及实现离散信源和连续信源编码两部分[2]。

由信源编码理论可知,几种离散信源编码方法共同点是信源符号数N和信源符号的概率分布p已给定,所以在离散信源编码GUI界面部分可以将N和p作为输入,首先要在设计界面中添加两个文本框控件(Edit Text),作为N和p的输入框;然后设置三个按钮控件(Radio Buttons),分别设置为Shannon,Feno和 Huffman 按键[3],作为三种编码方法的响应键,实现三种典型的无失真编码。离散信源编码方法要求有编码效率、平均码长和码字的计算结果等。所以,我们可以把这部分作为输出显示在GUI实验界面中,输出部分包括信源熵、编码效率、平均码长和码字等四项。在GUI界面中添加四个按钮控件,分别作为它们的输出框[4]。

连续信源编码方法的编码对象是单频正弦连续信号,已知条件是消息的幅度a、频率f、相位p和量化电平数D。在实验界面中添加四个文本框控件,作为连续信源编码部分的四个输入。添加三个按钮控件,分别设置为均匀编码和非均匀编码(A律和μ律),实现三种不同的连续编码方法。对于输出部分,添加两个按钮控件,用来显示输出编码后的码字和量化误差[5]。

根据上述的实现思想,运用Matlab的GUI图形操作界面设计出了如图3所示的信源编码实验系统GUI操作界面。

图3 信源编码实验系统GUI操作界面

3 信源编码实验系统的应用实例

1)离散无记忆信源的Huffman编码实现

离散无记忆信源的数学模型如下:

打开Matlab信源编码实验界面,在N处键入6,在p处键入[0.25,0.25,0.2,0.15,0.1,0.05],单击标有Huffman的按钮。通过Matlab后台运行,在界面上直接显示出信源熵、编码效率、平均码长和码字。执行结果显示如图5,编码效率为98.906%,与Shannon和Feno两种编码比较,Huffman编码方法的编码效率较高。

2)连续信源的均匀编码方法

已知输入信源信号的幅度为a,频率为f,相位用p表示,量化电平数用d表示。模拟信号的模型:samp=a*sin(2*pi*f*t+p)假设a=2,f=300,p=pi。

在Matlab信源编码实验界面中,幅度a处键入2,在频率f处键入300,在相位p处键入pi,在量化电平数d处键入10,单击标有均匀编码的按钮,可以直接显示出均匀量化编码得到的码字和量化误差,执行结果显示如图4所示。

图4 Matlab信源编码应用实例

4 结语

本文利用Matlab的GUI工具设计信源编码实验系统,实现离散信源编码与连续信源编码。只需简单操作文本输入框和按钮,就可以直观便捷地实现各种编码方法,输出各编码方法编码之后的信源熵、编码效率、平均码长和码字,还可以直接比较各种编码方法的编码效率,找到最适合的编码方式。实践证明,该实验系统界面友好,操作简单,能够方便的应用于实验教学中。

[1]陈运.信息论与编码[M].北京:电子工业出版社,2009

[2]张正言,黄炜嘉,张冰.《信息论与编码》实验教学平台的设计[J].西安:现代电子技术,2011,34(3):191-193

[3]李敏,何光普.无失真变长编码及其Matlab实现[J].乐山:乐山师范学院学报.2006,21(12):28-30

[4]安数,赵霞,徐小华.基于Matlab GUI的整流电路仿真设计[J].西安:现代电子技术.2011,34(4):154-158

[5]赵静,张瑾,高新科.基于Matlab的通信系统仿真[J].北京:北京航空航天大学出版社,2007

猜你喜欢

编码方法键入码长
杭州“一键入孵”应用场景上线
基于信息矩阵估计的极化码参数盲识别算法
双路连续变量量子密钥分发协议的有限码长效应分析*
可变摩擦力触感移动终端的汉语盲文编码设计
MATLAB 在导数和积分中的应用
环Fq[v]/上循环码的迹码与子环子码
毫米波大规模MIMO系统中低复杂度混合预编码方法
一种新的星载InSAR直接地理编码方法
浅析公路工程物资的分类及编码方法
Huffman编码