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

?

基于FPGA分布式算法的濾波器設(shè)計

2010-07-02 01:13田森平
自動化與信息工程 2010年1期
關(guān)鍵詞:信號處理濾波器分布式

桂 婧 田森平

(華南理工大學自動化學院)

基于FPGA分布式算法的濾波器設(shè)計

桂 婧 田森平

(華南理工大學自動化學院)

研究基于分布式算法的數(shù)字濾波器設(shè)計方法,介紹了能高效實現(xiàn)固定常數(shù)乘法的分布式算法原理,并將分布式算法應(yīng)用于FIR低通濾波器設(shè)計,實現(xiàn)了16階濾波器的設(shè)計和調(diào)試.采用了EP3C25F324C8來完成濾波器的設(shè)計,其中采用串行加法器將數(shù)據(jù)進行預相加,將16階降為8階,降低了資源占用率并提升了處理速度。使用Matlab編程8階固定常數(shù)系數(shù)對應(yīng)256個值的查找表直接導入到FPGA的ROM中,設(shè)計方法具有兼容性,可設(shè)計更高階次的濾波器。通過功能仿真證明,方法可行高效。

FIR濾波器; FPGA;分布式算法;查找表

1 引言

在信號處理過程中,如對信號的過濾、檢測、預測等,都需要用到濾波器。模擬濾波器是以電容,電阻,預算放大器等模擬元件為基礎(chǔ)構(gòu)成的具有選頻作用的電路。但模擬元件所固有的一些缺陷,如元件對溫度變化、老化的敏感、現(xiàn)代壓微米設(shè)計帶來的噪聲等,取而代之的是采用數(shù)字方式實現(xiàn)的濾波器[1]。隨著數(shù)字信號處理技術(shù)的不斷發(fā)展,采樣速率也不斷提高。DSP(數(shù)字信號處理)芯片和集成濾波芯片由于運算速度、階數(shù)和字長的限制已經(jīng)不具備實現(xiàn)FIR(有限沖激響應(yīng)數(shù)字濾波器)濾波器的能力[2]。而FPGA(現(xiàn)場可編程門陣列集成電路)在對數(shù)據(jù)進行實時處理方面具有巨大的優(yōu)勢同時兼具一定的靈活性,因此非常適合用來實現(xiàn)數(shù)字濾波器的設(shè)計。在基于FPGA的數(shù)字濾波器的設(shè)計中,分布式算法是常用的算法之一,然而當濾波器階數(shù)高于4階時,分布式算法中的LUT(查找表)通常采用拆分為多個4輸入查找表的方法來實現(xiàn)[5],對于16階以下的查找表此種方法并非高效。

本文將介紹基于Altera公司的EP3C25F324C8NES系列FPGA的FIR濾波器設(shè)計,在對分布式算法理論研究的基礎(chǔ)上,采用串行加法器將數(shù)據(jù)進行預相加,將16階降為8階,降低了資源占用率并提升了處理速度。使用Matlab編程8階固定常數(shù)系數(shù)對應(yīng)256個值的查找表直接導入到FPGA的ROM中,避免使用拆分查找表的方式,設(shè)計方法具有兼容性,可設(shè)計更高階次的濾波器,并完成了濾波器的結(jié)構(gòu)設(shè)計和軟件編程和功能仿真。

2 算法描述

2.1 FIR的基本概念

數(shù)字濾波器是數(shù)字信號處理中使用最廣泛的一種方法,實現(xiàn)方法主要有IIR(無限沖激響應(yīng)數(shù)字濾波器)和FIR(有限沖激響應(yīng)數(shù)字濾波器)兩種[3],其中IIR濾波器需要執(zhí)行無限數(shù)量卷積,能得到較好的幅度特性,其相位特性是非線性的;而FIR濾波器值由有限個采樣值組成,具有嚴格的線性相位特性。由于在數(shù)據(jù)通訊、語音信號處理、圖像處理等傳輸過程中不能有明顯的相位失真,而FIR濾波器在滿足一定對稱條件下可以實現(xiàn)IIR濾波器難以實現(xiàn)的線性相位,因而得到廣泛應(yīng)用。

FIR濾波器的數(shù)學表達式可用K階內(nèi)積來表示:

其中K 表示FIR濾波器的抽頭數(shù);h( k)表示第k級抽頭系數(shù)(單位脈沖響應(yīng));x( n-k)表示延時k個抽頭的輸入信號。

濾波器的單位脈沖響應(yīng)均為實數(shù),在幅度上只要滿足下列兩個條件之一,就能構(gòu)成線性相位濾波器。第一類線性相位的幅度條件為偶對稱如(2)式,第二類線性相位的幅度條件為奇對稱如(3)式[4]。

FIR濾波器最基本的結(jié)構(gòu)是直接型,由一個”抽頭延遲線”的加法器和乘法器的集合構(gòu)成,每個乘法器的操作數(shù)就是一個FIR系數(shù)。對每次采樣y( n)都要進行K 次連續(xù)的乘法和(K-1)次加法操作,能夠提供這種算法性能的高性能硬件平臺對大多數(shù)信號處理設(shè)計者來說都有很大的吸引力。

2.2 分布式算法

分布式算法是一項重要的FPGA技術(shù),被廣泛運用于計算機的乘法運算中。該算法將乘法運算轉(zhuǎn)換成加法以及移位運算,能夠高速完成大量的乘法運算,極大地提高了芯片的使用效率。考慮一個內(nèi)積運算[5]:

圖1 分布式算法原理圖

可以看出,分布式算法是一種以實現(xiàn)乘加運算為目的的運算方法,與傳統(tǒng)的乘累加運算不同在于執(zhí)行部分積運算的先后順序不同,這個過程可用圖1的結(jié)構(gòu)來實現(xiàn)。該算法可以利用一個查找表(LUT)實現(xiàn)映射,即用一個2k字寬(即2k行),預先編好程序的LUT接受一個K位輸入向量Xb=[X0b,…,X(k-1)b]的映射,經(jīng)查找表的查找后直接輸出部分積算法中的乘以位權(quán)2b可以通過圖中的寄存器和累加器完成。這個過程可以用遞歸表達式表示成式(8),在執(zhí)行了B次查找和B次累加后輸出結(jié)果。

3 分布式算法在FPGA上的實現(xiàn)

在FPGA上實現(xiàn)分布式算法,可將程序劃出為輸入輸出、查找表、和累加3個部分,如圖2所示。

圖2 系統(tǒng)原理圖

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

濾波器系數(shù)的確定是利用MATLA B中的Simulink組件中信號處理模塊的濾波器設(shè)計工具箱FDATOOL來計算。選定所需的各項參數(shù)后便可生成所需的系數(shù)。由于得到的系數(shù)均為介于[-1,1]區(qū)間的浮點數(shù),而FPGA上只能進行定點數(shù)乘法,故將其量化為整數(shù)。

以設(shè)計一個16階的低通濾波器為例,各項技術(shù)指標為:16階低通濾波器、采樣頻率10M、截止頻率3M、最小阻帶衰減50DB、采用窗函數(shù)法、kaiser窗、beta=5、Scale Passband。

利用MATLAB中simulink的濾波器設(shè)計工具箱,可得濾波器的系數(shù)為:

將其同乘以1024便得到運算所需的系數(shù)。

3.2 輸入輸出部分

這部分的功能是對輸入的模擬信號進行采集、處理,為后續(xù)數(shù)據(jù)處理做好準備,同時它還負責接收經(jīng)過運算處理后的數(shù)據(jù),并通過D/A轉(zhuǎn)換芯片將其恢復為模擬信號。信號從這里流入,也從這里流出。除此之外它還負責產(chǎn)生整個系統(tǒng)所需的時序信號。

通過對晶振信號上升沿的計數(shù),實現(xiàn)對采樣速率的控制。按照所設(shè)計濾波器的階數(shù),建立相應(yīng)于階數(shù)的數(shù)據(jù)緩沖區(qū)。若所設(shè)計的為16階濾波器,將采樣得到的10位串行數(shù)據(jù)依次存入緩沖區(qū),存滿后則按照先進先出的流水線原則繼續(xù)存入數(shù)據(jù),緩沖區(qū)中始終有不斷更新的16個數(shù)據(jù)。得到數(shù)據(jù)后,再依次將16個10位數(shù)據(jù)的每一位取出,組成16個10位的數(shù)據(jù)。如前所述,然后依次將每個10位的數(shù)據(jù)傳給查找表部分,同時輸出同步信號。

3.3 查找表部分(7)中可以看出,由于相加的和還要乘以不同的系數(shù)(2b),所以和累加部分與輸入輸出部分之間還有一條同步信號,用于確定二次冪加權(quán)的冪次。

由于對系數(shù)進行了量化,即擴大了若干倍,如果直接將濾波的結(jié)果傳回輸入輸出部分進行D/A轉(zhuǎn)換,某些數(shù)據(jù)可能會超出范圍,從而使信號產(chǎn)生失真。為此須對得到的結(jié)果進行移位縮小,使系統(tǒng)的輸出波形避免失真。圖3為此濾波器的應(yīng)用效果圖。

這部分的作用為接收經(jīng)上一部分處理后的數(shù)據(jù),利用查詢方式找出每一個數(shù)據(jù)對應(yīng)的值,然后將值傳給下一級進行和累加。本部分用MATLAB編程然后直接導入FPGA的ROM中。部分代碼如下:

%%產(chǎn)生分布式算法查找表內(nèi)容

%利用matlab FDAtools設(shè)計濾波器,性能指標:16階低通濾波器、采樣頻率10M、截止頻率3M、最小阻帶衰減50DB、采用窗函數(shù)法、kaiser窗、beta=5、ScalePassband、系數(shù)偶對稱、保留8個。如下:

這部分電路功能相對簡單,所需延時較短,所以沒有信號設(shè)計專門的同步信號,而是將13位數(shù)據(jù)信號作為觸發(fā)信號,即只要數(shù)據(jù)線上數(shù)據(jù)發(fā)生變化則立即完成查表操作。

3.4 和累加部分

查找表部分的輸出數(shù)據(jù)在這部分進行相加,從式

圖3 低通濾波器應(yīng)用效果

4 結(jié)論

分布式算法非常適合于硬件實現(xiàn),可以極大地減少硬件資源的消耗。本文討論了分布式算法的原理和基本結(jié)構(gòu),并根據(jù)實際抽頭數(shù)較多查找表規(guī)模過大的情況簡化了算法,降低的抽頭數(shù),進一步提高了算法的效率。最后利用QII8.0進行調(diào)試,仿真結(jié)果表明實現(xiàn)16階的FIR濾波器只需要占用硬件2%的邏輯單元,大大提高了硬件資源的實用效率。其功能仿真圖如圖4所示。

圖4 系統(tǒng)功能仿真時序圖

驗證FPGA仿真結(jié)果:

FPGA仿真輸出文件FirTop.vht中位置18.1us處驗證datain=[-424,-54,367,231,286,-496,492,130,-212,-220,-209,202,-9,100,492,263];結(jié)果50

[1] 魏靈,楊日杰,崔旭濤. 基于分布式算法的數(shù)字濾波器設(shè)計[J]. 儀器儀表學報, 2008,29(10):2100~2104

[2] 趙嵐,畢衛(wèi)紅,劉豐.基于FPGA的分布式算法FIR濾波器設(shè)計[J]. 電子測量技術(shù), 2007,30(7):101~104

[3] 胡廣書. 數(shù)字信號處理教程[M]. 北京: 清華大學出版社,2001:25~35

[4] HU G SH. Digital signal processing-theory, algorithm and realizes[M].Beijing : Tsinghua University Press, 1998:55~58

[5] 王學梅, 吳敏. 基于FPGA的分布式算法FIR濾波器的設(shè)計實現(xiàn)[J]. 世界電子元器件, 2004,10:65~67

Design of Digital FIR Lowpass Filter Using Distributed Algorithm Based on FPGA

Gui Jing Tian Senping
(The College of Automatic Science and Engineering, South China University of Technology)

The design method of FIR filter based on distributed arithmetic is researched in this paper. The algorithm can realize changeless constant multiplication and is applied in the design of FIR filter and a 16 order FIR filter. The EP3C25F324C8 is used. The speed of the process is improved effectively. The results shows that this method to be capable and high effective.

FIR Filter;FPGA;Distributed Arithmetic;LUT

桂婧, 女,1982 年1月出生, 碩士研究生,主要研究方向為系統(tǒng)工程和數(shù)字信號處理。

猜你喜歡
信號處理濾波器分布式
專題征稿啟事
——信號處理
MATLAB在數(shù)字信號處理中的應(yīng)用
基于MATLAB的語音信號處理
從濾波器理解卷積
開關(guān)電源EMI濾波器的應(yīng)用方法探討
一種微帶交指濾波器的仿真
分布式光伏熱錢洶涌
一種激光/無線電復合引信信號處理技術(shù)
分布式光伏:爆發(fā)還是徘徊
基于TMS320C6678的SAR方位向預濾波器的并行實現(xiàn)