快速小波变换在dsp中的实现方法

快速小波变换在dsp中的实现方法

ID:9939774

大小:124.00 KB

页数:8页

时间:2018-05-16

快速小波变换在dsp中的实现方法_第1页
快速小波变换在dsp中的实现方法_第2页
快速小波变换在dsp中的实现方法_第3页
快速小波变换在dsp中的实现方法_第4页
快速小波变换在dsp中的实现方法_第5页
资源描述:

《快速小波变换在dsp中的实现方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、快速小波变换在DSP中的实现方法2008-03-2509:21姜新华  范征宇(上海交通大学信息与控制工程系 上海,200240)摘要 小波分析是分析非稳定信号的一种非常有效的方法。Mallat快速算法使得小波分析的广泛应用成为现实。在实时信号分析中,离散小波变换在DSP上的有效应用受到了特别的关注。本文简单介绍了FWT,详细阐述了在DSP上FWT的周期性扩展的实现。其中,特别介绍了DSP的循环寻址。最后,给出了针对TI公司的TMS320C3X系列DSP的相应的汇编代码。关键词:小波变换;快速算法;数字信号处理器引言  小波变换是从信号理论领域发展形成的。小波变换涵盖许多领域,它在这些

2、领域得到了(或将得到)广泛的应用。作为信号处理的经典工具,傅里叶变换的缺点是它没有时域局部化性质。它仅仅给出信号的频率成分表达,但一般不能从变换后的信号中得出频率与时域局部有关的信息,其原因就在于分解函数的周期性(三角函数)。这些函数可在频域定位,但在时域则不行。因此,傅立叶变换是表示稳定信号的理想工具。小波变换的分解函数,即所谓的“小波”在时域和频域都具有局部性。因此,小波变换是表示包含不连续或不稳定成分的信号的理想工具。  在实际的信号处理应用中,常采用的是小波变换的离散形式,也即所谓的离散小波变换(DWT)。1988年,Mallat在Burt和Adelson的图像分解和重构的塔形

3、算法启示下,基于多分辨分析框架,给出了信号与图像(或函数)分解为不同频率通道的算法及其重构算法——Mallat算法[1],大大提高了小波变换的计算速度,其重要性相当于傅里叶变换中的FFT算法。从而使小波变换具有了明显的工程应用价值。  通用的微处理器在运算速度上难以适应信号实时处理的要求。DSP处理器就是为了适应这种需求而开发的。DSP处理器中集成有高速的乘法器硬件,能快速地进行大量数据的乘法和加法运算。小波变换和DSP处理器的结合使得小波变换具有很强的可实现性。1 快速小波变换(FWT)  基于多分辨分析的理论,Mallat给出了快速小波变换(FWT)的算法——Mallat算法。对于

4、一个多分辨分析{Vj}j∈Z,φ和ψ分别为相应的尺度函数和小波函数,函数f属于由尺度函数φ生成的MRA的基本子空间V0。它可以表述成[5]  对上述表达式的几点说明如下:  (1)hk是多分辨分析的尺度系数,gk是多分辨分析的小波系数,两者的关系是gn=(-1)nh2k+1-n,k∈Z;  (2)dmn和cmn分别是函数f在第m层尺度上的小波分解系数和尺度逼近系数;  (3)实际应用中,函数f不是连续函数,而是所要分析的信号的离散采样序列fk。当采样率相当高时,信号的采样就非常近似于展开系数c0。  这样,计算离散小波变换可以描述成递归计算式(1)和式(2)两个和式。因此,分析算法有如

5、下形式:输入   c0(输入序列)     M(分解层次)计算   form=1,....,M 2 有限序列的FWT  以上算法推导时,假定序列是无限的。然而,实际应用时序列总是有限的。为了满足多分辨分析的要求,可以用合适的数来扩展有限序列,常采用的有零插值法和周期性扩展法。  零插值法是将序列支撑以外的元素都设为零。如果序列不是以零开头或结尾,这就在序列的边界处人为地产生了不连续性,从而使得在dm相应位置出现较大的值。另外,零插值法中,输入序列与系数序列的支撑的长度不是相互独立的,这增加了应用时的计算量。  周期性扩展法是把序列当作一个周期信号进行扩展,序列支撑的长度就是周期的长度。

6、周期性扩展克服了零插值法的不足,而且这种周期性能沿着尺度传递。另外,可以利用DSP处理器的循环寻址功能实现序列的周期性扩展,从而更加提高了FWT的计算速度。  因此,本文采用周期性扩展法在DSP处理器上实现FWT。  对式(1,2)变换下标可得输入序列定义为x(n),尺度展开系数为z(k),而系数为f(l)(包括尺度系数h(l)和小波系数g(l))。  当算法应用于DSPs上时,这些序列的下标必须从0开始。系数序列的下标的范围为:0,…,l-up-per,l-upper表示下标的最大值如果输入序列x(n)的长度N=2u,u∈Z+,则z(k)的长度沿尺度不断地被二等分;因此,下标k的范围

7、是:0,…N/2-1。   这样,就可以通过Mallat算法计算某个尺度值:将系数序列放至输入序列的开头,各个系数与相应的输入值相乘再累加。最后所得就是尺度展开序列上的第一个值。然后,系数序列向前跳过输入序列的两个位置(基于2的向下抽样),再计算各个系数与相应的输入值的乘积的和,这样就得到第二个值。依次类推,直到系数序列跳出输入序列的范围。此时为了使每个系数都与输入序列中的值相乘,把输入序列的开始部分的一些值加到序列的结尾。  整个计算完成后,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。