<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種長(cháng)序列小波變換快速算法的DSP實(shí)現

一種長(cháng)序列小波變換快速算法的DSP實(shí)現

作者:呂新華,何川平,李早華,潘明忠 時(shí)間:2008-09-08 來(lái)源:中電網(wǎng) 收藏

  1 引 言

本文引用地址:http://dyxdggzs.com/article/87788.htm

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

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

  2 小波分解過(guò)程的DSP實(shí)現

  小波分解過(guò)程中算法實(shí)現的數據結構存儲和尋址方式如圖1所示。

  小波分解過(guò)程中C語(yǔ)言算法實(shí)現的偽代碼如下:

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

  2.1 邊界延拓模塊

  數據邊界延拓程序模塊的實(shí)現:

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

  2.2 數據搬移模塊

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

  2.3 基于圓周卷積的線(xiàn)性卷積模塊

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

  2.4 結果保存模塊

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

  將保存在目標區內的數據減采樣一半,仍舊保存在目標區內,該模塊的C語(yǔ)言代碼如下:

  3 小波重構過(guò)程的DSP實(shí)現

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

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

  4 結 語(yǔ)

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



關(guān)鍵詞: DSP 小波變換 微處理器 低功耗

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>