《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種長序列小波變換快速算法的DSP實(shí)現(xiàn)
一種長序列小波變換快速算法的DSP實(shí)現(xiàn)
摘要: 由于小波變換算法的復(fù)雜性,,微機(jī)和通用的微處理器在運(yùn)算速度上難以實(shí)現(xiàn)小波變換的實(shí)時(shí)性要求,。定點(diǎn)DSP具有低功耗、高性能的特點(diǎn),,本文結(jié)合TI公司的16位定點(diǎn)DSP說明了小波變換快速算法的具體實(shí)現(xiàn),,解決了小波變換實(shí)時(shí),、高精度處理的要求。
關(guān)鍵詞: DSP 小波變換
Abstract:
Key words :

 1 引 言
由于小波變換具有良好的時(shí)頻分析特性,,已經(jīng)廣泛應(yīng)用于各種信號(hào)分析領(lǐng)域,。由于小波變換算法的復(fù)雜性,,如果直接計(jì)算小波變換,,所需內(nèi)存較大,耗時(shí)較長,。盡管當(dāng)今處理器芯片運(yùn)算速度得到了大幅度的提高,,但仍然在實(shí)時(shí)性上不能滿足要求,。為了簡化計(jì)算過程,人們相繼設(shè)計(jì)了一系列的快速算法來計(jì)算小波變換,,以降低其運(yùn)算次數(shù),。

  小波變換在大多數(shù)具體應(yīng)用中主要是在線信號(hào)的實(shí)時(shí)分析處理,微機(jī)和通用的微處理器在運(yùn)算速度上難以適應(yīng)信號(hào)實(shí)時(shí),、高精度處理的要求,。數(shù)字信號(hào)處理器(DSP)就是為了適應(yīng)這種需求而開發(fā)的。美國TI公司是全球最大的DSP供應(yīng)商,,其生產(chǎn)的TMS320C55x系列16位定點(diǎn)DSP芯片具有低功耗,、高性能等特點(diǎn),具有廣泛的應(yīng)用領(lǐng)域,,本文應(yīng)用該系列DSP芯片,,將文獻(xiàn)[2]提出的小波變換快速算法用C語言開發(fā)加以實(shí)現(xiàn),解決了小波變換實(shí)時(shí),、高精度處理的要求,。

  2 小波分解過程的DSP實(shí)現(xiàn)

  小波分解過程中算法實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)和尋址方式如圖1所示。

  小波分解過程中C語言算法實(shí)現(xiàn)的偽代碼如下:


  下面分別對偽代碼中各個(gè)子程序模塊的具體實(shí)現(xiàn)進(jìn)行分析,。

  2.1 邊界延拓模塊

  數(shù)據(jù)邊界延拓程序模塊的實(shí)現(xiàn):

  定義一個(gè)數(shù)據(jù)地址指針pSrc始終指向載人的源數(shù)據(jù)頭地址,,即pSrc=Layer1Data+M-1,在源數(shù)據(jù)的首尾各對稱延拓M-1個(gè)點(diǎn),。該模塊的C語言實(shí)現(xiàn)代碼如下:


  2.2 數(shù)據(jù)搬移模塊

  從源數(shù)據(jù)區(qū)搬送數(shù)據(jù)到計(jì)算區(qū)的程序模塊實(shí)現(xiàn):定義一個(gè)臨時(shí)地址指針pTemp1指向擴(kuò)展后的數(shù)據(jù)首地址,,即:pTemp1=pSrc- M+1,SegNum為長序列分段數(shù),,將數(shù)據(jù)從數(shù)據(jù)源區(qū)分段搬送到計(jì)算區(qū),,并將16 b數(shù)據(jù)擴(kuò)展為32 b,通過對虛部填零,,組成復(fù)數(shù)輸入數(shù)據(jù)數(shù)組signal,,該模塊C語言實(shí)現(xiàn)代碼如下(i為分段標(biāo)記,N為分段圓周卷積長度):


  2.3 基于圓周卷積的線性卷積模塊

  用圓周卷積計(jì)算signal和分解濾波器組dec_filter的線性卷積out_buffer,,該模塊的C語言實(shí)現(xiàn)代碼如下:


  2.4 結(jié)果保存模塊

  將計(jì)算區(qū)的結(jié)果保存到目標(biāo)區(qū)的程序模塊實(shí)現(xiàn):將out_buffer去掉前面M-1個(gè)復(fù)數(shù),,后面N-M+1個(gè)復(fù)數(shù)只取實(shí)部,即只取低頻分量,,對取出的實(shí)部乘以比例系數(shù),,這里采用的是小數(shù)乘法,然后再取前16 b,,將結(jié)果存到數(shù)據(jù)存儲(chǔ)目標(biāo)區(qū)Layer2Data2,,定義目標(biāo)區(qū)存儲(chǔ)的首地址指針為pDest=Layer2Data+M-1,然后定義臨時(shí)數(shù)據(jù)指針 pTemp2=pDest,該模塊C語言實(shí)現(xiàn)代碼如下:


  將保存在目標(biāo)區(qū)內(nèi)的數(shù)據(jù)減采樣一半,,仍舊保存在目標(biāo)區(qū)內(nèi),,該模塊的C語言代碼如下:


  3 小波重構(gòu)過程的DSP實(shí)現(xiàn)

  首先對數(shù)據(jù)源區(qū)要重構(gòu)的低頻、高頻數(shù)據(jù)分量進(jìn)行上采樣,,將上采樣后的數(shù)據(jù)存到另外一個(gè)目標(biāo)數(shù)據(jù)緩沖區(qū),,該模塊的C語言程序代碼如下:


  交換數(shù)據(jù)指針,將計(jì)算結(jié)果存到另一區(qū),,對上采樣后的數(shù)據(jù)進(jìn)行邊界延拓,,然后應(yīng)用重疊保留法計(jì)算擴(kuò)展后的數(shù)據(jù)和重構(gòu)濾波器組的線性卷積,這兩個(gè)模塊的實(shí)現(xiàn)同分解過程,。惟一有所區(qū)別的是,,在保存數(shù)據(jù)時(shí),每一層重構(gòu)時(shí)的第一個(gè)分段前面要去掉的個(gè)數(shù)要多一點(diǎn),,模塊的C語言代碼如下:


  4 結(jié) 語

  由于小波變換算法的復(fù)雜性,,微機(jī)和通用的微處理器在運(yùn)算速度上難以實(shí)現(xiàn)小波變換的實(shí)時(shí)性要求。定點(diǎn)DSP具有低功耗,、高性能的特點(diǎn),,本文結(jié)合TI公司的16位定點(diǎn)DSP說明了小波變換快速算法的具體實(shí)現(xiàn),解決了小波變換實(shí)時(shí),、高精度處理的要求,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。