兩種基于FPGA的軟件濾波方法
基于FPGA的軟件濾波算法設(shè)計(jì)及實(shí)現(xiàn)
本文引用地址:http://m.butianyuan.cn/article/278137.htm隨著數(shù)字電子技術(shù)的發(fā)展,數(shù)字電路已由早期的分立元件逐漸發(fā)展成集成電路,對電路設(shè)計(jì)的要求越來越高。尤其是可編程邏輯器件的出現(xiàn),使得以硬件為載體、以計(jì)算機(jī)軟件為開發(fā)環(huán)境的現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)方法日趨成熟??删幊踢壿嬈骷O(shè)計(jì)靈活、功能強(qiáng)大、可在線修改、效率高等優(yōu)點(diǎn)深受廣大電子設(shè)計(jì)人員青睞。目前,大多數(shù)現(xiàn)場可編程邏輯陣列( FPGA)芯片是電壓敏感型芯片,基于可重構(gòu)CMOS-SRAM單元結(jié)構(gòu),數(shù)據(jù)具有易失性,工作在低電壓狀態(tài),易受干擾,尤其在工控、軍用場合,外界電磁環(huán)境惡劣,電路耦合、空間輻射的雜波脈沖均會對FPGA工作的穩(wěn)定性產(chǎn)生影響。
干擾脈沖和毛刺信號是影響FPGA穩(wěn)定工作的主要因素,為了保證輸入信號每變化一次,電路只做出一次正確的響應(yīng),必須對輸入信號進(jìn)行濾波處理。要實(shí)現(xiàn)信號濾波可以采用硬件濾波和軟件濾波兩種方法。與硬件濾波相比,軟件濾波不需要硬件電路的支持,從而可以減少元器件的使用,降低成本,更重要的是軟件濾波更易于修改,所以常采用軟件濾波的方法來實(shí)現(xiàn)電路中的信號濾波問題。通過VHDL語言編程實(shí)現(xiàn)信號濾波功能,介紹了延時(shí)濾波法和判決濾波法,并通過實(shí)驗(yàn)證明了上述兩種濾波方法的可靠性。
1延時(shí)濾波
延時(shí)濾波法的濾波原理是對輸入信號的脈沖寬度進(jìn)行鑒別,對那些與真實(shí)信號的寬度相差很大的干擾信號進(jìn)行有效的抑制。具體的實(shí)現(xiàn)流程為在檢測到輸入信號的狀態(tài)發(fā)生變化后,延時(shí)一段時(shí)間T,脈沖寬度小于延時(shí)時(shí)間T的輸入信號被認(rèn)為是干擾信號,將其濾除;脈沖寬度大于延時(shí)時(shí)間T的輸入信號則被認(rèn)為是真實(shí)信號,將其輸出。針對不同脈沖寬度的干擾信號,可以通過設(shè)置不同的參數(shù)來實(shí)現(xiàn)相應(yīng)的信號延時(shí),從而達(dá)到有效濾波的目的。
1. 1延時(shí)時(shí)間T的確定
延時(shí)時(shí)間T取決干擾信號的脈沖寬度T‘。延時(shí)時(shí)間T太短( T>T‘),會造成資源的浪費(fèi),降低電路的工作效率。
這里以某型號的扭子開關(guān)輸入信號為例來介紹如何確定延時(shí)時(shí)間T.由于扭子開關(guān)的機(jī)械觸點(diǎn)存在彈性作用,當(dāng)撥動開關(guān)時(shí),都不可避免地要在觸點(diǎn)閉合及斷開的瞬間產(chǎn)生一連串的抖動。為了能夠更準(zhǔn)確地估測撥動開關(guān)時(shí)產(chǎn)生的干擾脈沖寬度T',可以用示波器對開關(guān)信號進(jìn)行多次測量,經(jīng)測量發(fā)現(xiàn)這種扭子開關(guān)信號的抖動時(shí)間不會超過1.5ms.圖1為沒有經(jīng)過濾波處理的開關(guān)信號波形。
圖1中,橫坐標(biāo)表示時(shí)間,每格代表50μs,縱坐標(biāo)表示電壓,每格表示1 V.從圖中可以明顯看出,在開關(guān)信號達(dá)到穩(wěn)定狀態(tài)之前,有一連串的抖動,抖動時(shí)間不到1. 5 ms.這里根據(jù)實(shí)際情況,確定延時(shí)時(shí)間T = 2 ms.
1. 2延時(shí)濾波程序設(shè)計(jì)
延時(shí)濾波程序采用一個(gè)計(jì)數(shù)器來實(shí)現(xiàn),計(jì)數(shù)器的模值N取決于延時(shí)時(shí)間T和采樣時(shí)鐘CLK的周期TCLK.若計(jì)數(shù)器的初始值為0時(shí),則N = T /TCLK-1.圖2為編寫延時(shí)濾波程序的流程圖。
圖1未經(jīng)過濾波處理的開關(guān)信號
圖2延遲濾波程序流程圖
當(dāng)檢測到開關(guān)信號的狀態(tài)發(fā)生變化時(shí)(這里以由‘0’變到‘1’為例),計(jì)數(shù)器開始計(jì)時(shí),當(dāng)計(jì)數(shù)器的計(jì)數(shù)值計(jì)到N時(shí),如果開關(guān)信號仍保持為變化之后的狀態(tài)‘1’,則輸出‘1’,否則,認(rèn)為這是一個(gè)干擾脈沖,將其濾除。
當(dāng)采樣時(shí)鐘的頻率為5 kHz時(shí),TCLK = 0. 2 ms,要實(shí)現(xiàn)2 ms的延時(shí)時(shí)間,若計(jì)數(shù)器初始值為0,那么計(jì)數(shù)器模值N = 9.具體的VHDL語言程序進(jìn)程如下:
濾波器相關(guān)文章:濾波器原理
fpga相關(guān)文章:fpga是什么
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理 脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理 數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
評論