新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種長序列小波變換快速算法的DSP實現

        一種長序列小波變換快速算法的DSP實現

        作者:呂新華,何川平,李早華,潘明忠 時間:2008-09-08 來源:中電網 收藏

          1 引 言

        本文引用地址:http://www.104case.com/article/87788.htm

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

          小波變換在大多數具體應用中主要是在線信號的實時分析處理,微機和通用的在運算速度上難以適應信號實時、高精度處理的要求。數字信號處理器()就是為了適應這種需求而開發的。美國TI公司是全球最大的供應商,其生產的TMS320C55x系列16位定點芯片具有、高性能等特點,具有廣泛的應用領域,本文應用該系列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說明了小波變換快速算法的具體實現,解決了小波變換實時、高精度處理的要求。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 梨树县| 大庆市| 鲁甸县| 奈曼旗| 上栗县| 方山县| 邻水| 涞水县| 宜君县| 嵊州市| 文登市| 渭南市| 靖远县| 河间市| 富阳市| 海城市| 漠河县| 兴和县| 兖州市| 巴彦县| 肥西县| 杭锦后旗| 保亭| 叙永县| 武陟县| 临漳县| 吴忠市| 咸宁市| 定襄县| 若尔盖县| 邹城市| 阿图什市| 武冈市| 清原| 平和县| 天柱县| 肃北| 东台市| 古丈县| 师宗县| 安宁市|