您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 基于DSP的最优小波包基算法的实现
《现代电子技术》2008年1期总第185期科学计算与信息处理1基于DSP的最优小波包基算法的实现王靖琰(中国科学院上海应用物理研究所上海201800)摘要:小波包分析能够为信号提供一种更加精细的分析方法,它将频带进行多层次划分,对多分辨分析没有细分的高频部分进一步分解,并能够根据被分析信号的特征,自适应地选择相应频带,使之与信号频谱相匹配,从而提高了时-频分辨率.本文中我们首先讨论了小波包分解的过程和最优基及代价函数的选择方法,然后在浮点型DSPTMS320C6713B上实现了香农熵代价函数的小波包分解算法,实验结果证明了本方法的正确性。关键词:小波包;代价函数;最优基;DSP中图分类号:TN41,TP33文献标识码:B文章编号:1004-373X(2004)18-001-03ImplementationofBestWaveletPacketBasisAlgorithmBasedonDSPWANGJinyan(ShanghaiInstituteofAppliedPhysics,ChineseAcademyofSciences,Shanghai,201800,China)Abstract:WaveletPacketAnalysisisafineanalyticalmethodbywhichthefrequencybandisfurtherdividedintomultiplelayersandthehighfrequencyisdividedinamoredeep-goingway.Onthebasisofthecharacterofthesignal,itcanselectthefrequencybandsothatitcan,matchthesignalfrequencyproperlyandimprovethetimefrequencyresolution.Inthispaper,firstwediscusstheprocessofwaveletpacketdecompositionandthemethodforchoosingthebestbaseandcostfunction.WaveletpacketdecompositionwhosecostfunctionisShannonentropyisthenimplementedonfloatingpointDSPTMS320C6713B.Effectivenessofthismethodisverifiedbytheresultsoftheexperiment.Keywords:waveletpacket;costfunction;bestbasis;DSP在小波分析是一维及二维信号数据分析与处理的有力工具,其主要优点就是提供了时频局部分析与细化的能力[1]。它可以对信号进行有效的时频分解,但在高频频段其频率分辨率较差,而在低频频段其时间分辨率较差。小波包分析能够为信号提供一种更加精细的分析方法,它将频带进行多层次划分,对多分辨分析没有细分的高频部分进一步划分,并能够根据被分析信号的特征,选择相应频带,使之与信号频谱相匹配,从而提高了时-频分辨率。数字信号处理器(DSP:DigitalSignalProcessor)以其适合信号处理的独特结构和快速的指令周期,而应用于各种实时信号处理的场合。将小波包分析与DSP相结合用于实时信号处理必将产生巨大的实用价值。1最优基小波包分解1.1小波包理论小波变换的分辨率在时-频平面中随频率不同而变化,子带的频率越高,其频率分辨变换没有对高频子带进行再分解,不利于对高频子带的数据压缩。由小波变换发展而来的小波包技术弥补了这个缺点,它可根据信号本身的特点在一定范围内任意选择分辨率,有利于数据的高效压缩[1]。对于给定的正交尺度函数()x及对应的小波函数()x,设0()()xx,1()()xx,由下面的递推公式定义正交小波包:221()2(2)()2(2)nknknknkxhxkxgxk图1是三级小波包分解树的示意图,左子节点是父节点的低频逼近子图,右子节点是父节点的高频细节子图,(0,0)节点表示待分解的原始信号。图1三级小波包分解树示意图王靖琰:基于DSP的最优小波包基算法的实现21.2最优小波包基的选取根据上面的定义可知,小波库中有很多小波包基,而不同的小波包基一般具有不同的时频局部化能力,反映不同的信号特性,因此,对于一个给定的信号,希望选择一个较好的小波包基,用来表达信号的特点。为了选择一个较好的小波包基,首先给定一个序列的代价函数,然后在所有的小波包基中寻找使代价函数最小的基,对于一个给定向量来说,代价最小就是最有效的表示,此基便称为最佳基[2]。在一个正交小波包基下,可以把信号f(t)展开,使得f(t)与一个小波包系数序列x={xk}对应。在序列{xk}上定义一个信息代价函数M,它满足如下两个条件:(1)可加性条件,即:({})(),(0)0kkkZMxMxM。(2)信息代价函数M的取值应反映系数的集中程度。对于一个给定的信息代价函数M,L2(R)的小波包基B称为信号f(t)相对于代价函数M的最优基,如果在L2(R)的所有小波包基中,f(t)在小波包基B下对应的小波包系数序列具有最小的信息代价函数值。采用工程上常用的基于Shannon信息熵的代价函数,即定义序列x={xk}的熵为:()logjjjMxPP式中22jjxPx,且P=0时,PlogP=0。由于信息是半可加的,所以引入了可加函数22()logkkkxxx,则M(x)可以表示为:22()()lgMxxxx这样,λ(x)最小时,M(x)也最小。有了上面的信息代价函数,就可以求出使信息代价函数最小的小波包序列,从而求出最优基。当基库是一个二叉树时,可以采用自底向顶的快速搜索法选择最优小波包基。1.3最优基快速搜索算法有了信息代价函数之后,我们采用自底向顶的快速搜索算法来寻找最优基,所谓最优基就是在小波库的所有小波包基中使代价函数最小的基。下面我们给出此种快速搜索算法[3]。第一步:我们根据上面介绍的代价函数计算出分解图中各个结点的信息代价,并把相应的信息代价的数字写在树的结点里。第二步:从最低层的所有结点开始标记,将它们的信息代价作为一个初始值。称上层结点为父结点,下层结点为子结点。若父结点的信息代价比子结点低,那么就标记父结点,否则不标记。如此上推,直到顶层。第三步:然后把所有结点都检查一下,取最上层所标记的结点。当高层有结点被标记时,其相应子结点的标记应删除。最后将最优基中的系数抽取出来,以一定的顺序输出。下面我们就给出最优基树图(见图2)。图2最优基树图2最优基小波包分解的DSP实现2.1浮点型DSPTMS320C6713B本文选择TI公司的TMS320C6000系列的TMS320C6713B(以下简称C6713B)芯片作为算法硬件平台。TMS320C6000系列DSP是美国TI公司的新一代高性能的数字信号处理芯片,具有很高的工作频率和极强的并行处理能力。片内有A、B两组共8个并行处理单元,每组内分为L、M、D、S四个单元,每组处理单元结合同侧的寄存器组和数据通道,构成一个完整的数据处理单元。本文采用以6713B芯片为中心的TDS6713EVM开发板,此开发板是闻亭公司最新研制的高速语音信号(采集)处理平台,可作为专用语音信号编解码处理测试平台,也可用于各种对数据精度有特殊要求的浮点数字信号处理场合[4]。TDS6713EVM系统结构图如图3所示。图3TDS6713EVM系统结构图选择CCS2('C6000)作为DSP软件开发环境。(0,0)(1,0)(1,1)(2,0)(2,1)(3,0)(3,1)《现代电子技术》2004年18期总第185期新型电子元器件与传感器32.2小波包分解算法的程序实现算法实现采用C++语言进行编程,因为C++编译器能有效地对集合代码进行优化。算法程序的重点是信号的小波包分解与最优基选择程序的实现,主程序的流程图如图4所示。图4主程序流程图其中最优基选择中计算Shannon信息熵代价的关键代码如下所示:temp=data[nlevel][i]*data[nlevel][i];max-=temp*(float)log(temp);最优基快速搜索算法的关键代码如下所示://若父结点的信息代价比子结点低,//那么就标记父结点,否则不标记。if(cost[nlevel][nblock]=(cost[nlevel+1][2*nblock]+cost[nlevel+1][2*nblock+1])){sig[nlevel][nblock]=0;cost[nlevel][nblock]=cost[nlevel+1][2*nblock]+cost[nlevel+1][2*nblock+1];}else{sig[nlevel][nblock]=1;//当高层有结点被标记时,其相应子结点的标记应删除。intlen=2;intstart=nblock1;for(inti_l=nlevel+1;i_lstages;i_l++){for(inti_b=start;i_b(start+len);i_b++)sig[i_l][i_b]=0;len=len1;start=start1;}}在CCS2('C6000)编译环境下编程,程序编译优化后,加载到DSP工作平台上。由于本算法使用的存储空间较多,程序中大量使用了堆空间,默认的存储分配方式无法满足要求,所以重新编写cmd文件分配堆栈空间大小如下:-stack0xf00-heap0x200003实验结果以及分析输入信号对本文DSP程序进行测试,信号长度为1024点,波形如图5所示。图51024点原始信号波形图使用db5小波对信号进行3层小波包分解,选择Shannon信息熵作为代价,得到最优小波包基节点为:(2,2)(3,0)(3,1)(3,2)(3,3)(3,4)(3,7),由此得到最小代价为-90002.773438。最优基小波包分解结果波形如图6所示。图6最优基小波包分解的结果波形图对最优基小波包分解结果进行小波包合成,得到重建信号波形如图7所示。图7小波包重建波形图可以看到重构后的波形无明显失真,这说明了本程序的正确性。利用CCS的Profiler提供的程序运行时钟统计功能,读入数据db小波包分解分解计算小波包节点代价选择最优基输出最优基节点数据开始结束王靖琰:基于DSP的最优小波包基算法的实现4得到小波包分解所用的时钟数为8266039,最优基选择所用的时钟数为4716800。4结语本文中我们讨论了小波包分解的过程和最优基及代价函数的选择方法,在浮点型DSPTMS320C6713B上实现了香农熵代价函数的小波包分解算法。小波包在信号分析方面的明显优势与DSP在实时信号处理上的广泛应用使得本文的实现方法有着重要的应用价值。参考文献[1]杨永明,路陈红.小波包分析在一维及二维信号去噪中的应用[J].西安建筑科技大学学报(自然科学版),2004,36(3):364-367159.[2]史贤俊,林飒,李瑞亮.基于最优小波包基的信号去噪算法及其应用[J].海军航空工程学院学报,2006,21(5):506-509.[3]王淑艳,李昌青.基于小波包最优基的心电图压缩[J].生物医学工程学杂志,2002,19(2):256-258.[4]闻亭数字系统(北京)有限公司.TDS6713EVM用户手册[Z].北京:闻亭数字系统(北京)有限公司,2006.[5]胡广书.现代信号处理教程[M].北京:清华大学出版社,2005.作者简介:王靖琰男,1985年出生,山东临沂人,硕士研究生。主要从生物特征识别与智能视频监控分析与识别技术的研究。
本文标题:基于DSP的最优小波包基算法的实现
链接地址:https://www.777doc.com/doc-2569299 .html