基于Matlab的FIR帶通濾波器設計與實(shí)現
3.2.1 數據組織方式
若輸入信號x(n)和濾波器的單位沖激響應h(n)在頻域分別為,則其輸出信號的頻率響應為
。根據離散傅氏變換的性質(zhì),可以得到濾波系統的差分方程:
從上文Matlab的仿真過(guò)程可得到濾波器的級數N和濾波器系數h(n)。從上述可知數字濾波器實(shí)現時(shí),主要是進(jìn)行乘和加運算以及數據存取操作。
在定點(diǎn)DSP上實(shí)現FIR濾波有兩種方式:一種是用線(xiàn)性緩沖區實(shí)現z-1,該方式能保證新老數據在存儲器中的存放位置直接明了,新的數據存放在緩沖區的固定位置;另一種方式是循環(huán)緩沖區實(shí)現z-1,該方式新老數據在緩沖區的位置不直接明了,新的數據沒(méi)有固定位置,但可以方便地完成濾波器窗口的自動(dòng)更新??紤]到本方案中使用的是匯編語(yǔ)言編程,還有N的階數較大,為提高速率,因此在選擇FIR濾波器的方式時(shí)選擇循環(huán)緩沖區實(shí)現z-1的方式。
對于N級的FIR濾波器,在數據存儲器中開(kāi)辟一個(gè)稱(chēng)之為滑窗的N個(gè)單元的緩沖區,滑窗中存放最新的N個(gè)輸入樣本。每次輸入新的樣本時(shí),一新樣本改滑窗中的最老數據,而滑窗中的其他數據不需要移動(dòng)。利用片內BK(循環(huán)緩沖區長(cháng)度)寄存器對滑窗進(jìn)行間接尋址,環(huán)緩沖區地址首位相鄰。
3.2.2 程序設計思路
程序設計的總體思路是:?jiǎn)?dòng)ADS7864對輸入的模擬信號進(jìn)行A/D轉換,每采集到一個(gè)數據就送入DSP進(jìn)行濾波運算,運算結果送DAC76 25轉換為模擬量。不斷地重復上述過(guò)程,在DAC7625的輸出端就得到濾波后的模擬信號。
為了精確地控制ADS7864的采樣率,使用TMS320C5402內部的定時(shí)器控制采樣時(shí)間間隔T。設置定時(shí)器的定時(shí)時(shí)間等于采樣時(shí)間間隔T,并讓它工作在中斷方式,則定時(shí)器每過(guò)T時(shí)間間隔就向CPU發(fā)出中斷請求,CPU響應中斷請求,轉去執行中斷服務(wù)程序。在中斷服務(wù)程序中讀取A/D轉換結果,對轉換結果進(jìn)行濾波運算,并將運算結果送D/A轉換器轉換為模擬量。因此,程序分為主程序和定時(shí)器中斷服務(wù)程序兩部分,流程圖如圖4,圖5所示。
3.2.3 FIR濾波源程序
FIR濾波器指令,使用MAC指令執行FIR濾波,將濾波輸出放在累加器A中:
3.2.4 結果分析
利用已做好的TMS320C5402開(kāi)發(fā)平臺,下載在CCS中已經(jīng)通過(guò)編譯的數字帶通濾波器的程序,該程序的實(shí)驗結果波形由CCS提供的顯示時(shí)頻圖來(lái)顯示。由于實(shí)際需求只涉及數字濾波器的幅頻特性,所以結果分析沒(méi)有對數字濾波器的相頻特性進(jìn)
電源濾波器相關(guān)文章:電源濾波器原理
數字濾波器相關(guān)文章:數字濾波器原理
評論