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