用FPGA實(shí)現(xiàn)FIR濾波器(08-100)
輸入至輸出的采樣率也會(huì)影響你的設(shè)計(jì)。在簡單的設(shè)計(jì)中,輸入速率和輸出速率是相等的。然而,在許多低通濾波器設(shè)計(jì)中,輸出以輸入的速率運(yùn)行是不經(jīng)濟(jì)的,因?yàn)閭鬏斝畔⒉灰蟾叩妮敵雎?。取十分之一速率的FIR是合適的。其它要求較高輸出率的設(shè)計(jì),則采樣內(nèi)插FIR。
本文引用地址:http://cafeforensic.com/article/91694.htm進(jìn)行設(shè)計(jì)
選擇FIR濾波器的系數(shù)有兩種方法。Parks-McClellan方法(執(zhí)行Remez算法)和進(jìn)行沖擊響應(yīng)的窗口操作。窗口方法依賴于一個(gè)事實(shí),要求頻率響應(yīng)的離散Fourier反變換代表FIR濾波器的系數(shù)。理想的頻率響應(yīng)用作起始點(diǎn),于是應(yīng)用窗功能減少系數(shù)的數(shù)目,成形頻率響應(yīng)。通用的窗功能包括矩形、三角、Hanning、Hamming、Kaiser 和Blackman。
沒有必要對(duì)數(shù)學(xué)進(jìn)行深究,有許多免費(fèi)的低成本工具幫助你進(jìn)行設(shè)計(jì)。如果使用MATLAB,MathWorks有各種工具可用于FIR設(shè)計(jì)。如果你不用這些包,用Internet搜索“FIR濾波器設(shè)計(jì)工具”將展現(xiàn)一些免費(fèi)的低成本工具。
首先應(yīng)做出采用哪種設(shè)計(jì)方法的決策。大多數(shù)設(shè)計(jì)者采用Park-McClellan 方法,因?yàn)樵O(shè)計(jì)輸入是濾波器的要求,這個(gè)方法通常滿足具有最少抽頭的濾波器要求。假設(shè)采用這個(gè)方法,你可以簡便地把要求輸入至所選的工具中。大多數(shù)設(shè)計(jì)工具會(huì)給出頻率響應(yīng)、沖擊響應(yīng)和濾波器系數(shù)。如果選擇窗口方法,只要做些實(shí)驗(yàn)。要輸入截止頻率、窗口方法和抽頭數(shù)目至設(shè)計(jì)工具。于是設(shè)計(jì)工具會(huì)給出頻率響應(yīng)。如果頻率響應(yīng)不是你所要的,你可以改變輸入?yún)?shù)和迭代過程。
因此,你已經(jīng)用設(shè)計(jì)工具產(chǎn)生了系數(shù),檢驗(yàn)了頻率響應(yīng)。那么現(xiàn)在是否可以移開這個(gè)工具,而在FPGA中實(shí)現(xiàn)這個(gè)設(shè)計(jì)呢?并非如此,還要考慮一些事情。首先要確定頻率響應(yīng),數(shù)據(jù)不是無限精確的。大多數(shù)設(shè)計(jì)工具讓你定義一個(gè)量化級(jí)別并觀察結(jié)果。倘若級(jí)別的精度是合理的,那就不需要做改動(dòng)。然而,最好是現(xiàn)在發(fā)現(xiàn)這些問題而不是在實(shí)驗(yàn)室。下一步是研究其它的濾波器設(shè)計(jì),諸如Lth帶(或者Nyquist)濾波器,這些濾波器大約有一半的系數(shù)設(shè)置為0,因此減少了數(shù)學(xué)上的復(fù)雜性。
在FPGA中實(shí)現(xiàn)設(shè)計(jì)
你設(shè)置了系數(shù)之后,現(xiàn)在打算在FPGA中實(shí)現(xiàn)這個(gè)設(shè)計(jì)。再次要做出若干決定。首先是選擇實(shí)現(xiàn)乘法器單元的方法,決定它們能運(yùn)行多快。通常有兩個(gè)選擇:用在FPGA內(nèi)實(shí)現(xiàn)邏輯的查找表(LUT)來實(shí)現(xiàn)乘法器,或者用FPGA內(nèi)的專用的DSP單元。為了說明這些選擇,考慮LatticeECP2 FPGA系列,在這個(gè)FPGA內(nèi)用sysDSP塊實(shí)現(xiàn)一個(gè)18x18乘法器不占用LUT,運(yùn)行速度高于400MHz。用LUT完成相同的功能其性能大約是100MHz,并要占用許多LUT。專門的DSP塊擁有高速并使用少的LUT,通常選擇這個(gè)方法,除非你保留DSP塊準(zhǔn)備留作它用。
圖4 LatticeECP2 sysDSP塊
評(píng)論