国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA并行+拆分查找表分布式高階FIR的設(shè)計與實現(xiàn)

2021-07-05 07:34:26柴乾隆
測控技術(shù) 2021年6期
關(guān)鍵詞:高階濾波器分布式

柴乾隆

(航空工業(yè)蘭州萬里航空機電有限責(zé)任公司 航空機電研究院,甘肅 蘭州 730070)

濾波器主要用于頻率選擇和運算處理,以起到濾除噪聲和分離信號的作用。根據(jù)濾波器系統(tǒng)輸入、輸出信號的處理方式,可分為模擬濾波器和數(shù)字濾波器兩種。模擬濾波器在設(shè)計時可通過查詢大量圖表予以實現(xiàn),簡捷明了,但因相位的非線性,其應(yīng)用受到了很大的限制。而數(shù)字濾波器因其相位線性度高,幅度特性[1-3]任意可變,而被廣泛應(yīng)用于語音和圖像處理、HDTV、模式識別、譜分析等領(lǐng)域。單位抽樣響應(yīng)的長度直接影響著有限長單位沖激響應(yīng)(Finite Impulse Response,FIR)數(shù)字濾波器的穩(wěn)定性,當(dāng)抽樣響應(yīng)的長度有限時,系統(tǒng)的極點均在原點處,因此FIR濾波器是一個穩(wěn)定的線性系統(tǒng)。同時,快速傅里葉變換(Fast Fourier Transfor,FFT)能夠在很大程度上提高FIR濾波器的運算速率[4],以有助于FIR濾波器對信號的有效過濾。

大多數(shù)傳統(tǒng)的FIR濾波器都是采用TI公司的TMS320CXX系列數(shù)字信號處理器(DSP)芯片[5]來實現(xiàn)系統(tǒng)設(shè)計。根據(jù)輸入序列的乘累加[6]編寫軟件,以硬件為平臺,結(jié)合軟件算法,實現(xiàn)濾波器的設(shè)計。但DSP芯片的馮·諾依曼體系架構(gòu)使得數(shù)據(jù)的處理速度和容量都受到了限制,而FPGA因其豐富的連線資源和龐大的邏輯陣列,為實現(xiàn)并行度極高的FIR濾波器搭建了高效的運作平臺,同時具有優(yōu)良的可擴展性。通過采用分布式算法,F(xiàn)IR濾波器可以克服濾波器階數(shù)對運算速率的影響,使兩者不呈正相關(guān)性。因此,分布式算法可廣泛應(yīng)用于高階FIR濾波器的設(shè)計。

傳統(tǒng)分布式算法大多數(shù)采用串行處理輸入序列的數(shù)據(jù),獲取輸出序列值。采用傳統(tǒng)分布式算法易于實現(xiàn)低階濾波器,而高階濾波器的實現(xiàn)則較為困難。目前,利用分布式算法實現(xiàn)的高階FIR濾波器,大多數(shù)都采用串行分布式結(jié)構(gòu)、并行分布式結(jié)構(gòu)或拆分查找表結(jié)構(gòu)。3種分布式結(jié)構(gòu)在存儲器占用和時鐘周期利用方面都各有優(yōu)缺點,因此對3種結(jié)構(gòu)的算法進(jìn)行整合,可有效提高存儲占用和時鐘周期利用,有效化解了兩者之間的矛盾。

本文以國產(chǎn)FPGA為硬件平臺,綜合利用各算法的優(yōu)勢,提出了一種基于FPGA并行+拆分查找表分布式結(jié)構(gòu)高階FIR的設(shè)計與實現(xiàn),以中國電科58所的JS1032系列FPGA為核心器件,利用100%國產(chǎn)化元器件搭建硬件電路,比較研究了3種分布式算法,對FIR濾波器進(jìn)行了硬件實現(xiàn)和軟件仿真,同時利用惠普網(wǎng)絡(luò)分析儀對所設(shè)計的FIR濾波器進(jìn)行了幅頻特性的測試,驗證了該算法的有效性和實時性。

1 FIR濾波器傳統(tǒng)算法及其改進(jìn)

1.1 FIR濾波器概念與方法介紹

線性時不變性[7]是FIR濾波器最大的系統(tǒng)特征,N階FIR數(shù)字濾波器的輸入序列x(n)與單位沖激響應(yīng)h(n)經(jīng)卷積運算可得輸出序列y(n):

(1)

FIR濾波器典型的設(shè)計結(jié)構(gòu)主要由延時單元、乘法器、抽頭系數(shù)、加法器等部分組成,F(xiàn)IR濾波器典型的設(shè)計結(jié)構(gòu)如圖1所示。輸入樣本x(n)通過緩沖區(qū)實現(xiàn)Z-1延時,并在數(shù)據(jù)寄存器中,開設(shè)n個用于存放最新輸入樣本的滑窗。最新的數(shù)據(jù)采樣乘以抽頭系數(shù),得到的乘積再與上一次的加法器結(jié)果進(jìn)行求和,依次遞進(jìn)運算,改變抽頭數(shù)目和抽頭系數(shù)可獲得不同幅頻特性的FIR濾波器。

圖1 FIR濾波器典型的設(shè)計結(jié)構(gòu)

龐大的乘法和加法運算非常消耗FPGA的資源,同時FPGA的設(shè)計效率和邏輯單元的占用量都非常高,因而使用傳統(tǒng)方法實現(xiàn)FIR濾波器,濾波器的階數(shù)很難提高,因此必須對經(jīng)典實現(xiàn)方法進(jìn)行優(yōu)化改進(jìn)。

1.2 分布式算法

分布式算法[8]是Croisier于1973年提出的,但由于計算資源的客觀限制,發(fā)展較為緩慢,直到FPGA的出現(xiàn),才使得分布式算法得到了廣泛應(yīng)用。

分布式算法通過將n個數(shù)據(jù)的相同序號的位在移位寄存器中進(jìn)行操作,在查找表中獲取相應(yīng)的部分積,然后通過二次冪加權(quán)對已獲取的部分積進(jìn)行累加,完成加法運算后,獲得最終結(jié)果。而傳統(tǒng)經(jīng)典算法的乘法運算和加法運算是分離的,是在完成所有乘積之后,再對乘積結(jié)果進(jìn)行累加。分布式算法與傳統(tǒng)算法相比,實現(xiàn)濾波器設(shè)計的硬件電路規(guī)模大為減小,并以流水線式的處理模式,使得計算速度大幅提高。FPGA因其能高速完成移位和加法運算使得分布式算法的應(yīng)用更為廣泛[9],也拓寬了FPGA芯片的應(yīng)用領(lǐng)域。為了便于分析,將濾波器輸出序列的表達(dá)式改為

(2)

假設(shè)h(n)均為常數(shù),x(n)是變量,無符號數(shù)x(n)的表達(dá)式為

(3)

式中,n為第n個采樣值;b為x(n)的第b位。則y(n)可以表示為

(4)

變換求和次序,重新求和得:

y(n)=h(0)[xB-1(0)×2B-1+xB-2(0)×2B-2+

x0(0)×20]+h(1)[xB-1(1)×2B-1+xB-2(1)×2B-2+

x0(1)×20]+…+h(N-1)[xB-1(N-1)×2B-1+

xB-2(N-1)×2B-2+x0(N-1)×20]

=h(0)xB-1(0)+h(1)xB-1(1)+…+

h(N-1)xB-1(N-1)]2B-1+…+[h(0)x0(0)+

h(1)x0(1)+…+h(N-1)x0(N-1)]20

(5)

化簡成如下形式:

(6)

式中,xb(n)為第n個數(shù)據(jù)的第b位。x(n)為取值[0,1]的有限位數(shù)據(jù)。分布式算法的原理框圖如圖2所示。

圖2 分布式算法原理框圖

求得濾波器系數(shù)后,根據(jù)濾波器輸入數(shù)據(jù)位寬,對系數(shù)進(jìn)行合適的放大,在實現(xiàn)過程中對累加值進(jìn)行右移,得到系統(tǒng)的輸出結(jié)果。

1.3 并行+拆分查找表分布式結(jié)構(gòu)

分布式算法以序列運算處理的方式劃分,可分為串行分布式結(jié)構(gòu)、并行分布式結(jié)構(gòu)和拆分查找表結(jié)構(gòu)。

串行分布式結(jié)構(gòu)需要大量的ROM進(jìn)行尋址,同時一次運算需要多個時鐘周期,使得成本和存儲時間都急劇增加。當(dāng)FIR濾波器的階數(shù)很高時,使用串行分布式結(jié)構(gòu)很難實現(xiàn)。例如,設(shè)計一個階數(shù)為64、位寬12的FIR濾波器,需要12×264bit的存儲空間,而FPGA根本沒法提供高達(dá)12 Gbit的內(nèi)部存儲空間。

拆分查找表結(jié)構(gòu)相較串行分布式結(jié)構(gòu)而言,很大程度上減小了存儲器的數(shù)量,但拆分查找表結(jié)構(gòu)和串行分布式結(jié)構(gòu)同樣需要很多個時鐘周期來實現(xiàn)乘加運算。輸入數(shù)據(jù)的位寬決定了串行分布式結(jié)構(gòu)和拆分查找表結(jié)構(gòu)兩種算法實現(xiàn)FIR濾波器輸出速率的快慢,每輸入一個數(shù)據(jù),輸出一定要延遲相應(yīng)位寬個數(shù)的周期,才能輸出一個數(shù)據(jù),極大地影響了數(shù)據(jù)處理速度。

并行分布式結(jié)構(gòu)在同一周期內(nèi)同時尋址已存入ROM表的輸入數(shù)據(jù),占用的存儲器資源也較多,但與串行分布式結(jié)構(gòu)相比較,其占用的存儲器資源個數(shù)少之又少,同時在處理高速信號時,并行分布式結(jié)構(gòu)以其較高的數(shù)據(jù)吞吐率顯現(xiàn)出很大的優(yōu)勢。

根據(jù)以上對3種分布式算法優(yōu)缺點的分析說明,串行分布式結(jié)構(gòu)、拆分查找表結(jié)構(gòu)和并行分布式結(jié)構(gòu)在占用存儲器資源和時鐘周期方面的對比如表1所示。

表1 3種分布式算法的對比

為了克服3種分布式結(jié)構(gòu)在存儲器占用和時鐘周期利用方面的矛盾,對并行結(jié)構(gòu)和拆分查找表結(jié)構(gòu)進(jìn)行了整合,使得輸入數(shù)據(jù)在同一周期同時進(jìn)行取值,提高運算速率,并將查找表拆分成若干個小的查找表,減小存儲器的占用,提出并行+拆分查找表結(jié)構(gòu)的分布式算法。并行+拆分查找表分布式結(jié)構(gòu)如圖3所示。下面舉例說明并行+拆分查找表結(jié)構(gòu)的分布式算法在計算規(guī)模和時鐘周期數(shù)兩個方面的優(yōu)勢。例如本文256階的FIR濾波器使用傳統(tǒng)模式查找表,位寬達(dá)2256,通過拆分查找表,其規(guī)模可降為16×216=1048576,并在一周期內(nèi)對輸入數(shù)據(jù)同時進(jìn)行尋址,一方面提升了系統(tǒng)的運算效率,另一方面減小了系統(tǒng)的設(shè)計規(guī)模。

圖3 并行+拆分查找表分布式結(jié)構(gòu)

2 并行+拆分查找表分布式算法的實現(xiàn)

2.1 硬件設(shè)計

FIR濾波器的實現(xiàn)需建立在一定的硬件平臺基礎(chǔ)上,其硬件電路系統(tǒng)框圖如圖4所示。在本文的硬件電路中,時序信號和控制信號是由FPGA來完成,同時FPGA處理FIR濾波器系統(tǒng)的輸入數(shù)據(jù),是實現(xiàn)系統(tǒng)要求的核心器件。FPGA的配置是通過STM32來完成的。每次系統(tǒng)通電后,STM32將事先存入到只讀存儲器HWD24C256中的配置文件下載到FPGA 中,下載完畢后,F(xiàn)PGA便開始工作。若需要修改濾波器的參數(shù),只需存入不同的配置文件,而無須改動硬件電路,增強了硬件電路的通用性。采用STM32芯片自身的A/D口,其轉(zhuǎn)化精度為12位,分辨率高,轉(zhuǎn)換速率最大可達(dá)1 MHz。

圖4 硬件電路系統(tǒng)框圖

信號輸入后,根據(jù)信號幅度的控制要求,對信號進(jìn)行適應(yīng)性放大,并傳輸給A/D轉(zhuǎn)換器進(jìn)行采樣轉(zhuǎn)換,之后送到FPGA進(jìn)行運算處理;FPGA完成對數(shù)據(jù)的處理之后,將結(jié)果進(jìn)行D/A變換,轉(zhuǎn)換成模擬信號后,再經(jīng)過運放調(diào)整,最后輸出系統(tǒng)信號。

因美國對華大規(guī)模的芯片禁購,很多進(jìn)口原器件已無法使用。本系統(tǒng)所選器件均為國產(chǎn),元器件國產(chǎn)化數(shù)量比、規(guī)格比、費用比均為100%,系統(tǒng)主要元器件如表2所示。

表2 主要元器件表

2.2 FPGA程序架構(gòu)

并行+拆分查找表分布式算法在FPGA上的實現(xiàn)基本可以劃分為三大功能模塊:輸入輸出控制部分、查找表(Look-Up-Table)部分和累和部分。FPGA程序的系統(tǒng)架構(gòu)如圖5所示。

圖5 FPGA程序的系統(tǒng)架構(gòu)

其中,輸入輸出控制部分負(fù)責(zé)完成系統(tǒng)數(shù)據(jù)的采集并將濾波運算處理的數(shù)據(jù)輸出給后級數(shù)模轉(zhuǎn)換電路;查找表(Look-Up-Table)部分用于獲取計算輸出序列過程中的部分積;累和部分是對通過查找表所得的部分積進(jìn)行加法運算。完成以上三部分的內(nèi)容后,即可進(jìn)行后續(xù)電路的處理,最終得到系統(tǒng)的輸出信號。

2.3 確定濾波器系數(shù)

利用Matlab軟件中的可視化仿真工具Simulink可以求得FIR濾波器的抽頭系數(shù)[10],本文FIR濾波器所需系數(shù)如表3所示。因FPGA只能處理定點數(shù)的乘法,而Matlab生成的系數(shù)是分布在[-1,1]區(qū)間的浮點數(shù),因此需要將所得的濾波器系數(shù)同乘以1024,才能在FPGA中參與運算處理。

表3 FIR濾波器系數(shù)

2.4 輸入與輸出

輸入輸出控制部分主要用于模擬信號的采集,完成運算處理后,輸出處理信號用于后級進(jìn)行D/A轉(zhuǎn)換。另一方面,系統(tǒng)所需的時序信號也是由輸入輸出控制部分來實現(xiàn)的,通過時序控制輸入數(shù)據(jù),依次存入數(shù)據(jù)緩存區(qū),以待進(jìn)行查表。

2.5 查找表(Look-Up-Table)

查找表部分主要用于對處理后的輸入數(shù)據(jù)通過查表快速獲得部分積結(jié)果。其中一個查找表的具體內(nèi)容如表4所示,其他查找表可根據(jù)表4同理推出。

2.6 累和

累和部分對通過查找表獲得的部分積進(jìn)行相加,相加時一定要根據(jù)式(6)進(jìn)行二次冪加權(quán),才能得到系統(tǒng)的內(nèi)積結(jié)果y(n)。獲取內(nèi)積y(n)后,就可以輸出到后級電路進(jìn)行D/A轉(zhuǎn)換,進(jìn)一步獲取系統(tǒng)輸出信號。

表4 查找表

3 FIR濾波器的理論仿真

FDATOOL[11](Filter Design & Analysis Tool)是Matlab軟件的Simulink中各種濾波器的專用設(shè)計與分析工具。FDATOOL可以設(shè)計實現(xiàn)各種常規(guī)濾波器,并可將各種算法體現(xiàn)在設(shè)計過程中。FDATOOL操作簡單,方便靈活。在使用FDATOOL工具設(shè)計FIR濾波器時,濾波器類型、階數(shù)、截止頻率、窗函數(shù)的選擇是其關(guān)鍵所在。其中,窗函數(shù)可根據(jù)設(shè)計需求實現(xiàn)對信號的截斷,減少系統(tǒng)能量的泄露,其中Hamming窗、Blackman窗和Hanning窗最為常見。本文FIR濾波器在FDATOOL中的設(shè)計參數(shù)如表5所示。

表5 參數(shù)表

本設(shè)計中FIR濾波器的輸入數(shù)據(jù)為12位有符號二進(jìn)制數(shù),在Matlab中利用Blackman窗計算FIR濾波器的濾波系數(shù),設(shè)置采樣率和截止頻率分別為5 MHz和0.5 MHz。根據(jù)既定參數(shù)要求,通過Matlab的理論仿真,實現(xiàn)所需的高階FIR濾波器,其幅頻特性如圖6所示。

圖6 幅頻特性(Matlab)

4 實測結(jié)果

采用中國電科58所JS1032系列FPGA器件,在QuartusⅡ開發(fā)軟件下完成并行+拆分查找表分布式FIR濾波器的仿真,其過程包括軟件編程、程序的編譯、調(diào)試,并利用網(wǎng)絡(luò)分析儀HP3577A對FIR濾波器進(jìn)行幅頻特性的測試。網(wǎng)絡(luò)分析儀測試所得的幅頻特性如圖7所示,可知高階FIR濾波器的截止頻率為0.508 MHz,與原定的設(shè)計要求0.5 MHz相比,誤差很小。通過比較Matlab理論仿真與硬件電路實現(xiàn)的結(jié)果可知,利用硬件所設(shè)計的高階FIR濾波器的幅頻響應(yīng)與Matlab理論仿真的結(jié)果高度吻合,誤差僅為0.008 MHz。

圖7 幅頻特性(網(wǎng)絡(luò)分析儀)

5 結(jié)束語

由于FIR濾波器傳統(tǒng)實現(xiàn)方法存在局限性,通過對3種分布式算法進(jìn)行比較,提出了一種基于FPGA并行+拆分查找表分布式結(jié)構(gòu)高階FIR濾波器的實現(xiàn)方法,并且利用中國電科58所JS1032系列FPGA及其他所選國產(chǎn)元器件設(shè)計實現(xiàn)了高階FIR濾波器的硬件電路。通過軟件Matlab仿真和硬件實測,表明基于FPGA并行+拆分查找表分布式結(jié)構(gòu)實現(xiàn)的高階FIR濾波器誤差極小,運算速率快,硬件資源占用少,并可根據(jù)實際情況調(diào)整FIR濾波器的階數(shù),可使其廣泛應(yīng)用于很多領(lǐng)域。

猜你喜歡
高階濾波器分布式
有限圖上高階Yamabe型方程的非平凡解
高階各向異性Cahn-Hilliard-Navier-Stokes系統(tǒng)的弱解
滾動軸承壽命高階計算與應(yīng)用
哈爾濱軸承(2020年1期)2020-11-03 09:16:02
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
開關(guān)電源EMI濾波器的應(yīng)用方法探討
電子制作(2018年16期)2018-09-26 03:26:50
分布式光伏熱錢洶涌
能源(2017年10期)2017-12-20 05:54:07
分布式光伏:爆發(fā)還是徘徊
能源(2017年5期)2017-07-06 09:25:54
基于Canny振蕩抑制準(zhǔn)則的改進(jìn)匹配濾波器
基于TMS320C6678的SAR方位向預(yù)濾波器的并行實現(xiàn)
基于DDS的分布式三維協(xié)同仿真研究
永善县| 双牌县| 边坝县| 西昌市| 泸溪县| 将乐县| 遂宁市| 化隆| 杭锦后旗| 古蔺县| 格尔木市| 汪清县| 茌平县| 湖南省| 阳新县| 上思县| 东平县| 盐城市| 通化县| 阳曲县| 伊宁市| 城固县| 海丰县| 洪湖市| 西青区| 织金县| 西林县| 南汇区| 大连市| 江门市| 土默特右旗| 临夏市| 桓台县| 红河县| 容城县| 塔河县| 彭泽县| 泰安市| 闸北区| 皮山县| 灌阳县|