<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 快速小波變換的定點DSP實現(xiàn)

          快速小波變換的定點DSP實現(xiàn)

          作者: 時間:2011-07-06 來源:網(wǎng)絡(luò) 收藏

          從第一個尺度j=1開始,求出濾波器系數(shù)與剩余系數(shù)的加權(quán)和,分別得到cj,k與dj,k,并且它們的長度均為N/2。依次求出j=2,3,…各尺度值,cj,k與dj,k的長度也將變?yōu)镹/4,N/8,…。應(yīng)注意到,濾波器系數(shù)序列與輸入信號序列相乘時,各個系數(shù)依次相乘然后累加即為cj,k或dj,k值。計算完一個后,要將濾波器系數(shù)序列向后移兩個位置,再與輸入信號相乘。最后,只剩下兩個值時,再從第一個位置繼續(xù),從而構(gòu)成一個圓周形式,得到最后一個cj,k與dj,k。以j=1為例來說明這一點。

          同樣,可得d1,N/2-1。?
          在TMS320C2xx系列中,并未提供直接上述算法的尋址方式,可以利用循環(huán)指令。其中,要用到的兩條重要指令是MAC(乘累加指令)和RPT(重復(fù)指令)。MAC指令是指令中最有特色的指令之一,當(dāng)RPT流水線啟動后,通過MAC指令可以在單指令周期內(nèi)乘加操作。算法的關(guān)鍵是一個卷積計算,其過程用如下幾條語句即可實現(xiàn)。假設(shè)程序存儲器地址0xFF00h開始,存放了濾波器系數(shù)h(k),k=0,1,2,…,L-1的值,從0xFF80h開始,存放了濾波器系數(shù)g(k),k=0,1,2,…,L-1的值。數(shù)據(jù)寄存器地?址0x1000h(用cc表示)開始,存放輸入信號。計算c1,k程序如下
          RPTL-1
          MAC0FF00h,cc+2*k
          下面簡要介紹一下單個尺度上的計算過程。仍假設(shè)輸入信號為N點采樣值,濾波器長度為L。
          由于有上述圓周形式的循環(huán)算法,直接計算所有值會有很多不便,因此將整個過程分為兩部分。第一部分,保存c0,k(k=N-2,N-1,0,1,2,…,L-3)到一連續(xù)存儲空間,然后計算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,…,即可。如果為了系數(shù)重構(gòu)方便,可以把datad中前N/2個單元內(nèi)容移到原來的c0,k(k=N/2,…,N-1)位置。如此方法便可得到分解系數(shù)。?
          4 結(jié)論
          小波分析具有良好的時頻局部性,是當(dāng)今很受歡迎的分析方法之一,利用進(jìn)行小波,滿足了實時性,具有良好的精度和低成本,是工控領(lǐng)域的理想選擇。??

          本文引用地址:http://www.ex-cimer.com/article/150501.htm

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();