网站首页 | 技术文章 | 解决方案 | 电子书籍 | 下载中心 | 电子商城 | 技术论坛 | 电子博客 | 商务信息  
联系站长
加入收藏
会员登陆
交易首页 最新信息 - 推荐信息 - 热门信息 - 免费发布 - 行业新闻 - 行业资讯 - 行业知识 - 积分说明 - 信息分类 - 企业展示 - 帮助
 您的位置: 中国电子设计 >> 技术文章 >> 微控制器 >> 正文 商务信息栏目开通公告  [2008-05-19 11:47:00]
   □  基于定点DSP的小波变换快速算法实现   
基于定点DSP的小波变换快速算法实现
[作者:吕新华 何川平 李早华 潘明忠    转贴自:现代电子技术    点击数:    更新时间:2008-9-9
【字体:

Implementation of Long Sequence Wavelet Transform Based on DSP
abstract:Due to the complexity of the wavelet transformation algorithm,the processing velocity of computer and general microprocessor can hardly meet its real-time requirements.Based on the 16-bit fixed point DSP who has low power consumption and high performance presented by TI Company,this article explains the detailed realization process of the wavelet transformation algorithm so as to meet the real-time and high resolution processing requirement in the wavelet transformation algorithm.
Keyword:wavelet transform;digital signal processor;fast algorithm;cyclic convolution
摘要:由于小波变换算法的复杂性,直接计算小波变换耗时较长,微机和通用的微处理器在运算速度上难以实现小波变换的实时性要求。定点DSP具有低功耗、高性能的特点,本文结合TI公司的16位定点DSP,将小波变换快速算法用C语言开发,详细说明了小波变换快速算法在定点DSP上的具体实现,解决了小波变换实时、高精度处理的要求,大大提高了小波变换的运算效率。

关键词:小波变换;数字信号处理器;快速算法;圆周卷积

1 引 言

由于小波变换具有良好的时频分析特性,已经广泛应用于各种信号分析领域。由于小波变换算法的复杂性,如果直接计算小波变换,所需内存较大,耗时较长。尽管当今处理器芯片运算速度得到了大幅度的提高,但仍然在实时性上不能满足要求。为了简化计算过程,人们相继设计了一系列的快速算法来计算小波变换,以降低其运算次数。

小波变换在大多数具体应用中主要是在线信号的实时分析处理,微机和通用的微处理器在运算速度上难以适应信号实时、高精度处理的要求。数字信号处理器(DSP)就是为了适应这种需求而开发的。美国TI公司是全球最大的DSP供应商,其生产的TMS320C55x系列16位定点DSP芯片具有低功耗、高性能等特点,具有广泛的应用领域,本文应用该系列DSP芯片,将文献[2]提出的小波变换快速算法用C语言开发加以实现,解决了小波变换实时、高精度处理的要求。

2 小波分解过程的DSP实现

小波分解过程中算法实现的数据结构存储和寻址方式如图1所示。

小波分解过程中C语言算法实现的伪代码如下:

下面分别对伪代码中各个子程序模块的具体实现进行分析。

2.1 边界延拓模块

数据边界延拓程序模块的实现:

定义一个数据地址指针pSrc始终指向载人的源数据头地址,即pSrc=Layer1Data+M-1,在源数据的首尾各对称延拓M-1个点。该模块的C语言实现代码如下:

2.2 数据搬移模块

从源数据区搬送数据到计算区的程序模块实现:定义一个临时地址指针pTemp1指向扩展后的数据首地址,即:pTemp1=pSrc-M+1,SegNum为长序列分段数,将数据从数据源区分段搬送到计算区,并将16 b数据扩展为32 b,通过对虚部填零,组成复数输入数据数组signal,该模块C语言实现代码如下(i为分段标记,N为分段圆周卷积长度):

2.3 基于圆周卷积的线性卷积模块

用圆周卷积计算signal和分解滤波器组dec_filter的线性卷积out_buffer,该模块的C语言实现代码如下:

2.4 结果保存模块

将计算区的结果保存到目标区的程序模块实现:将out_buffer去掉前面M-1个复数,后面N-M+1个复数只取实部,即只取低频分量,对取出的实部乘以比例系数,这里采用的是小数乘法,然后再取前16 b,将结果存到数据存储目标区Layer2Data2,定义目标区存储的首地址指针为pDest=Layer2Data+M-1,然后定义临时数据指针pTemp2=pDest,该模块C语言实现代码如下:

将保存在目标区内的数据减采样一半,仍旧保存在目标区内,该模块的C语言代码如下:

3 小波重构过程的DSP实现

首先对数据源区要重构的低频、高频数据分量进行上采样,将上采样后的数据存到另外一个目标数据缓冲区,该模块的C语言程序代码如下:

交换数据指针,将计算结果存到另一区,对上采样后的数据进行边界延拓,然后应用重叠保留法计算扩展后的数据和重构滤波器组的线性卷积,这两个模块的实现同分解过程。惟一有所区别的是,在保存数据时,每一层重构时的第一个分段前面要去掉的个数要多一点,模块的C语言代码如下:

4 结 语

由于小波变换算法的复杂性,微机和通用的微处理器在运算速度上难以实现小波变换的实时性要求。定点DSP具有低功耗、高性能的特点,本文结合TI公司的16位定点DSP说明了小波变换快速算法的具体实现,解决了小波变换实时、高精度处理的要求。

作者通信地址:海军91669部队 海南 海口 571100

  • 上一篇文章:基于AT89C52单片机的水下机器人定位系统
  • 下一篇文章:没有了
  • Google
     
    Web www.cediy.com
    发表评论 □告诉好友 □打印此文 □关闭窗口
     最新热点文章
     基于USB接口的ISP下载器设计
     一种新型高性能电流型开关电源PWM比...
     一种超宽带低噪声放大器的设计方法...
     基于单片机和串行总线技术的热量表...
     数字温度传感器详解
     用AD8302实现RF/IF幅度和相位测量系...
     
     最新推荐文章
     基于TMS320C6713与PC机的PCI总线高...
     基于TMS320VC5409和Cygnal单片机构...
     基于ARM控制器S3C44B0x的给煤机控制...
     基于USB 2.0的高速数据采集卡在虚拟...
     大功率谐振过渡软开关技术变频器研...
     大功率谐振过渡软开关技术变频器研...
     
     相 关 文 章
      ◇  网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
     设为首页  加入收藏  关于本站  版权申明   联系站长   宣传赚点   友情链接
    如果我在线,不用加为好友,立刻与我交谈。 业务咨询QQ:342488946
    Copyright© 2004-2010 CEDIY.COM .All Rights Reserved
    粤ICP备05119258号