快速小波变换的定点DSP实现

2011-08-06 10:43:37来源: 互联网

    小波变换具有良好的时——频局部性,是分析奇异信号的重要方法。定点DSP在工程中的应用十分普遍,具有低成本,高性能的特点。利用DSP实现小波变换可以满足工程是实时性的要求。文中简要介绍了小波变换理论及算法,并结合TI公司的16位定点DSP说明算法的实现。
    关键词:快速算法  小波变换  DSP


1 引言
    小波变换是近年来发展起来的一种数学理论和方法。作为一种新兴的理论,小波分析是数学发展史上的重要成果,对工程应用产生了深远的影响。广泛应用于语音信号处理、图像信号处理、信号检测、语音与图像编码、多尺度边缘提取与重建等领域。近年来,在电力系统中也开始应用小波分析进行故障检测及故障定位,并取得了有效的成果。
    计算机只能处理数字信号,所以在实际信号处理中,常采用离散形式的小波变换(Discrete Wavelet Transform,DWT)。由于小波变换算法的复杂性,尽管当今处理器芯片运算速度得到了大幅度的提高,仍然在实时性上不能满足要求。为了简化计算过程,人们发展了一些快速算法,如Mallat塔式算法,及利用调频Z变换(chirped Z Transform,CZT),梅林变换(Mellia Transform)进行快速计算等算法。其中,尤其以Mallat塔式算法在实际应用比较广泛。
    在数字信号处理领域,通常使用专用的数字信号处理器芯片(DSP)以完成特定的运算要求。美国TI公司是全球最大的DSP供应商,其生产的TMS320C2xx系列16位定点DSP芯片具有高性能、低价格等特点,具有广泛的应用领域。本文中用该系列DSP芯片实现小波变换的快速算法。
    本文将小波变换快速算法用DSP加以实现,既可利用小波变换实现应用要求,又可降低成本,增强市场竞争力。尤其在当今,随着电力系统的不断发展,及用户对电能质量的要求越来越高,对电力系统运行监控及保护的采样点数越来越多的情况下,利用此方法可以解决运算量大、运算精度高的问题。
2 小波变换及算法
2.1 小波变换
    小波函数的确切定义为:
    设ψ(t)为—平方可积函数,若其傅里叶变换ψ(ω)满足条件

    则称ψ(t)为一个基本小波或小波母函数。将其进行伸缩和平移后,得到小波基函数

    所谓小波变换就是把信号在上述小波基下进行展开。当然,此变换必须存在逆变换,否则,不能恢复原信号,该变换就没有什么意义了。
2.2 多分辨率分析
    多分辨率分析在正交小波变换理论中具有非常重要的地位,在多分辨率分析理论产生之前,人们构造正交小波基函数要凭借技巧,具有一定的难度。自从有了多分辨率分析理论,这项工作变得容易的多。当然,要寻找合适的基函数还是需要一定的经验的。当找到了合适的滤波器系数后,就可以利用Mallat给出的快速小波算法来计算小波变换了。
    通俗的讲,多分辨率分析就是把空间V0上的函数f(t)分解为细节部分W1(小波空间)和大尺度逼近部分V1(尺度空间),然后将大尺度逼近部分V1进一步分解,如此重复就可得到任意尺度(或分辨率)上的逼近部分和细节部分。
2.3 滤波器系数
    根据多分辨率分析理论,如果φ(t),ψ(t)分别为尺度空间V0及小波空间W0的一个标准正交基函数,则在任意相邻尺度j,j-1之间,都有二尺度空间基函数关系

其中的h(n),g(n)即为滤波器系数,由尺度函数φ(t)和小波系数ψ(t)决定。
2.4?Mallat塔式算法
    当有了一组小波基函数后,剩下的事就是计算分解了,即把信号用小波基函数表示出来,从而关键问题是求出表示式中的系数。根据多分辨率分析,将信号f(t)□Vj-1分解一次(即分别投影到Vj、Wj空间),此时cj,k和dj,k为j尺度上的展开系数,经过不算复杂的推导,可得

其中cj,k和dj,k分别称为j尺度空间的剩余系数和小波系数,上式说明它们可由j-1尺度空间的剩余系数cj-1,k经滤波器系数进行加权求和得到。实际中的滤波器h,g的长度都是有限长的或近似有限长的,因此分解运算非常简单。将cj,k进一步分解下去,可分别得到Vj+1、Wj+1空间的剩余系数Cj+1,k和小波系数dj+1,k

    从而得到任意尺度空间上的分解。分解过程如图所示

    在上述算法中必须要有一个初始输入序列Cj-1,k,分解才能顺利进行,这是一个问题。在大多数应用中,为了简便,常用输入信号的采样序列来近似作为C0,k。在一些文献里也给出了其它几种确定C0,k的方法。
3?算法在DSP上的实现
    假设输入信号x(t),采样频率N(=2n),得采样序列x(k),k=0,…,N-1,作为初始输入序列C0,k。滤波器系数h(m),g(m),m=0,…,L-1。为了应用简便,(1)、(2)式可变为

   从第一个尺度j=1开始,求出滤波器系数与剩余系数的加权和,分别得到cj,k与dj,k,并且它们的长度均为N/2。依次求出j=2,3,…各尺度值,cj,k与dj,k的长度也将变为N/4,N/8,…。应注意到,滤波器系数序列与输入信号序列相乘时,各个系数依次相乘然后累加即为cj,k或dj,k值。计算完一个后,要将滤波器系数序列向后移两个位置,再与输入信号相乘。最后,只剩下两个值时,再从第一个位置继续,从而构成一个圆周形式,得到最后一个cj,k与dj,k。以j=1为例来说明这一点。

    同样,可得d1,N/2-1。?
    在TMS320C2xx系列定点DSP中,并未提供直接实现上述算法的寻址方式,可以利用循环指令实现。其中,要用到的两条重要指令是MAC(乘累加指令)和RPT(重复指令)。MAC指令是DSP指令中最有特色的指令之一,当RPT流水线启动后,通过MAC指令可以在单指令周期内实现乘加操作。算法的关键是一个卷积计算,其过程用如下几条语句即可实现。假设程序存储器地址0xFF00h开始,存放了小波滤波器系数h(k),k=0,1,2,…,L-1的值,从0xFF80h开始,存放了小波滤波器系数g(k),k=0,1,2,…,L-1的值。数据寄存器地?址0x1000h(用cc表示)开始,存放输入信号。计算c1,k程序如下
        RPTL-1
        MAC0FF00h,cc+2*k
    下面简要介绍一下单个尺度上的计算过程。仍假设输入信号为N点采样值,小波滤波器长度为L。
    由于有上述圆周形式的循环算法,直接计算所有值会有很多不便,因此将整个过程分为两部分。第一部分,保存c0,k(k=N-2,N-1,0,1,2,…,L-3)到一连续存储空间,然后计算k<N/2-L时的d1,k的值,并保存到临时存储空间datad(需要N个单元)中。第二部分计算k=N/2-L,…,N/2-1时的d1,k的值,保存到datad中(从第N/2-L单元开始)。与前面相同方法计算c1,0,c1,1,…,的值,保存时覆盖掉原来的c0,0,c0,1,…,即可。如果为了系数重构方便,可以把datad中前N/2个单元内容移到原来的c0,k(k=N/2,…,N-1)位置。如此方法便可得到分解系数。?
4 结论
    小波分析具有良好的时频局部性,是当今很受欢迎的分析方法之一,利用定点DSP进行小波变换,满足了实时性,具有良好的精度和低成本,是工控领域的理想选择。

关键字:快速  定点  实现

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0806/article_7846.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
快速
定点
实现

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved