基于SoPC的FIR濾波器設計與實(shí)現
數字濾波(idgital filter)是由數字乘法器、加法器和延時(shí)單元組成的一種計算方法。其功能是對輸入離散信號的數字代碼進(jìn)行運算處理,以達到改變信號頻譜的目的。數字濾波器根據頻域特性可分為低通、高通、帶通和帶阻4個(gè)基本類(lèi)型;根據時(shí)域特性可分為無(wú)限脈沖響應(infinite impulse response,IIR)濾波器和有限脈沖響應(finite impulse response,FIR)濾波器。FIR濾波器不存在穩定性和是否可實(shí)現的問(wèn)題,容易做到線(xiàn)性相位,故在數據通信、圖像處理等領(lǐng)域廣泛應用。
目前,FIR濾波器的硬件實(shí)現有以下幾種方式:一種是使用通用數字濾波器集成電路,這種電路使用簡(jiǎn)單,但是由于字長(cháng)和階數的規格較少,不易完全滿(mǎn)足實(shí)際需要;雖然可采用多片擴展來(lái)滿(mǎn)足要求,但會(huì )增加體積和功耗,因而在實(shí)際應用中受到限制。另一種是使用DSP芯片,DSP芯片有專(zhuān)用的數字信號處理函數可調用,實(shí)現FIR濾波器相對簡(jiǎn)單,但是由于程序順序執行,速度受到限制。而且,就是同一公司不同系統的DSP芯片,其編程指令也會(huì )有所不同,開(kāi)發(fā)周期較長(cháng)。還有一種是使用可編程邏輯器件,如FPGA(field programmable gate array),即現場(chǎng)可編程門(mén)陣列,有著(zhù)規整的內部邏輯塊整列和豐富的連線(xiàn)資源,特別適合用于細粒度和高并行度結構的FIR濾波器實(shí)現,相對于串行運算主導的通用DSP芯片來(lái)說(shuō),并行性和可擴展性都更好。
本文介紹一種基于SoPC的FIR濾波器設計方案,設計流程如圖l所示。該設計方法程序簡(jiǎn)單,調試方便,得到的FIR濾波器精確度高。
1 FIR濾波器原理
FIR數字濾波器是一種非遞歸系統,其沖激響應總是有限長(cháng)的,其系統函數可以記為:,最基本的FIR濾波器可用下式表示
是輸入采樣序列;h(m)是濾波器系數;N是濾波器的階數;y(n)表示濾波器的輸出序列。也可以用卷積來(lái)表示輸出序列y(n)與x(n),h(n)的關(guān)系:
y(n)=x(n)*h(n)
圖2顯示了一個(gè)典型的直接T型3階FIR濾波器,其輸出序列y(n)滿(mǎn)足下列等式:
在該FIR濾波器中,總共存在3個(gè)延時(shí)結,4個(gè)乘法單元,1個(gè)4輸入的加法器。如果采用普通的數字信號處理器(DSP)來(lái)實(shí)現,只能用串行的方式順序地執行延時(shí)、乘加操作,不可能在1個(gè)DSP處理器指令周期內完成,必須用多個(gè)指令周期來(lái)完成。但如果采用FPGA來(lái)實(shí)現,就可以采用并行結構,在1個(gè)時(shí)鐘周期內得到1個(gè)FIR濾波器的輸出。不難發(fā)現,圖2的電路結構是一種流水線(xiàn)結構,這種結構在硬件系統中有利于并行高速運行。
評論