超聲波流量計多普勒原理的探討 六十六
5.2.3 DSP中FIR濾波程序實現
TMS320C55X定點DSP提供了單周期乘/累加指令MAC和循環尋址方式,使FIR數字濾波器每個樣值的計算可以在一個周期內完成。FIR數字濾波器每個樣值的計算就是實現兩數組對應項乘積的累加和。采用RPTZ和MAC指令結合循環尋址方式可以方便地實現這一運算,其中,RPTz指令將累加器清零初始化,并將立即數N.1(16位)裝入到重復
計數器,使下一條指令重復執行N次。MAC指令實現將兩存儲區數的乘積累加到累加器,再通過使存儲區指針以循環尋址的方式指向下一個存儲區。
為了實現對應項相乘,輸入樣值x(n)和濾波器系數h(n)必須合理存放,并正確初始化這兩個存儲塊指針。圖5.2中是輸入樣值x(n)和濾波器系數h(n)在TMS320C55x的一種存放方法。
利用DSP5509實現FIR的程序中應注意以下幾點:
1.數據定標。輸入數據和濾波器系數均小于1,以Q15表示,將FRCT標志置l,輸入數據與濾波器系數乘完后結果自動左移一位,和累加器并取高16位輸出。這樣,輸出和輸入的Q值就一致了。
2.數據存放要求。因為采用MAC指令和循環尋址,所以輸入數據和濾波器系數的存放要安照一定的要求。數據塊和系數塊都要放在雙尋址數據存儲區。并且,起始地址為m位地址邊界。
3.循環尋址的使用。為了使用循環尋址,除了對數據餓存放有要求外,先還要設置BK為塊長N。由于使用了循環尋址,數據和系數的指針在操作后以循環的方式增1.4.數據的初始化。輸入數據塊要初始化為全0。
超聲波流量計