李洋 陳德運(yùn) 高明 王莉莉
摘要:針對(duì)電容層析成像ECT(electrical capacitance tomography)數(shù)據(jù)采集系統(tǒng)中的高頻噪聲干擾問(wèn)題,在對(duì)ECT系統(tǒng)數(shù)據(jù)采集與控制原理分析的基礎(chǔ)上,基于數(shù)字濾波原理和FPGA技術(shù),設(shè)計(jì)了一個(gè)基于數(shù)字濾波與FPGA技術(shù)相結(jié)合的改進(jìn)分布式算法FIR低通數(shù)字濾波器。該濾波器的采樣頻率為1.5 MHz、通帶截止頻率為20 MHz,選則窗函數(shù)設(shè)計(jì)方法,利用Madab中的FDATool工具箱對(duì)濾波器系數(shù)進(jìn)行提取與量化,最后利用Quarters對(duì)實(shí)例進(jìn)行仿真驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,F(xiàn)IR數(shù)字濾波器能夠?qū)崿F(xiàn)數(shù)據(jù)采集系統(tǒng)中高頻信號(hào)的濾波功能,與傳統(tǒng)DA算法的濾波器相比,具有占用資源消耗小及采集速度快等特點(diǎn)。
關(guān)鍵詞:電容層析成像,數(shù)據(jù)采集系統(tǒng),分布式算法,F(xiàn)IR低通濾波器
中圖分類號(hào):TP391.4 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1007-2683(2017)01-0096-07
0 引言
電容層析成像技術(shù)又稱ECT,是基于電容值敏感原理的過(guò)程層析成像技術(shù),它具有響應(yīng)快、成本低、安全、可視、非侵入性等優(yōu)點(diǎn),在氣液兩相流空隙率測(cè)量、兩相流分相含量檢測(cè)及流型識(shí)別、圖像重建算法等諸多領(lǐng)域中應(yīng)用越來(lái)越廣泛。
ECT系統(tǒng)的組成主要包括電容敏感單元、數(shù)據(jù)采集系統(tǒng)及圖像重建這三大部分。其中,最為關(guān)鍵一環(huán)就是數(shù)據(jù)采集。在數(shù)據(jù)采集的過(guò)程中,由于受到外界和信道的干擾,采集到的信號(hào)往往夾雜著一些噪聲,這時(shí)我們就需要運(yùn)用數(shù)字濾波技術(shù)削弱噪聲干擾信號(hào),提取最終所需的信號(hào)經(jīng)處理在計(jì)算機(jī)中進(jìn)行成像。根據(jù)單位脈沖響應(yīng)的不同可將數(shù)字濾波器分為FIR(finite impulse response)數(shù)字濾波器和IIR(infinite impulse response)數(shù)字濾波器。FIR濾波器相比于IIR階次較高、耗資源,但因沒(méi)有反饋回路且采用非遞歸的實(shí)現(xiàn)方式,穩(wěn)定性和線性度十分優(yōu)良,所以在數(shù)字通信、音頻信號(hào)處理、數(shù)據(jù)采集等實(shí)時(shí)性和穩(wěn)定性要求高的場(chǎng)合,具有廣泛的應(yīng)用。目前,F(xiàn)PGA技術(shù)發(fā)展逐漸成熟,因內(nèi)部包含規(guī)整的邏輯單元陣列和充足的線性資源被適用于各種領(lǐng)域的信號(hào)處理任務(wù),尤其是數(shù)字濾波技術(shù)。基于FPGA實(shí)現(xiàn)濾波器在高速實(shí)時(shí)、靈活性、功耗等方面優(yōu)點(diǎn)尤為突出。鑒于此,本文提出了基于FPGA的FIR數(shù)字濾波器的硬件結(jié)構(gòu),運(yùn)用運(yùn)算速度較快的分布式算法并加以改進(jìn)。
1 ECT數(shù)據(jù)采集系統(tǒng)
數(shù)據(jù)采集系統(tǒng)主要負(fù)責(zé)數(shù)據(jù)采集的控制與傳輸,C/V轉(zhuǎn)換、相敏解調(diào)、A/D轉(zhuǎn)換等任務(wù),具體原理框圖如圖1所示。
1)ECT數(shù)據(jù)采集系統(tǒng)中的數(shù)據(jù)采集過(guò)程由多通道掃描系統(tǒng)控制,掃描系統(tǒng)根據(jù)計(jì)算機(jī)的指令對(duì)截面內(nèi)多相流體進(jìn)行掃描,其實(shí)質(zhì)就是測(cè)量任意一對(duì)電極問(wèn)的電容值,同時(shí)使其它閑置電極可靠接地,最后再把數(shù)據(jù)傳輸給計(jì)算機(jī)作為成像處理。
2)C/V轉(zhuǎn)換的作用是將所測(cè)量的電容值轉(zhuǎn)換為與其成正比的交流電壓信號(hào),轉(zhuǎn)換后的交流信號(hào)中混雜著許多噪聲信號(hào),無(wú)法直接使用,根據(jù)信號(hào)與信號(hào)之間的相關(guān)性,噪聲與信號(hào)之間不相關(guān)的原理,我們可以把干擾信號(hào)盡可能地濾除掉,提取所需的有效信號(hào)。
3)相敏解調(diào)又稱相關(guān)解調(diào),其作用是將交流電壓轉(zhuǎn)化為直流電壓。目前,相敏解調(diào)最廣泛使用的方法是乘法解調(diào)。乘法解調(diào)主要由乘法器和低通濾波器組成,與正弦電壓激勵(lì)信號(hào)同頻同相的正弦信號(hào)作為參考信號(hào)經(jīng)乘法器對(duì)電壓信號(hào)進(jìn)行整流;與參考信號(hào)正交或不同頻的信號(hào)和高頻分量、交流成分等被低通濾波器有效抑制,最后只有反映電容值變化的直流成分。
2 濾波器設(shè)計(jì)基礎(chǔ)
(1)
(2)
(3)
(4)
(5)
2.2 FIR濾波器的基本結(jié)構(gòu)
通過(guò)對(duì)FIR濾波器系統(tǒng)函數(shù)的分析和演變可得到多種實(shí)現(xiàn)結(jié)構(gòu),其中常用的結(jié)構(gòu)主要有直接型、級(jí)聯(lián)型和線性相位型。
1)直接型結(jié)構(gòu)。由于FIR濾波器系統(tǒng)的差分方程是卷積和公式,也是輸入x(n)鏈的橫向結(jié)構(gòu),所以直接型結(jié)構(gòu)也可稱為卷積型或橫截型。通過(guò)分析FIR濾波器的系統(tǒng)函數(shù)可知,將輸入x(n)的延時(shí)鏈展開(kāi)就可得到直接型結(jié)構(gòu),其結(jié)構(gòu)如圖2所示。這種濾波器結(jié)構(gòu)簡(jiǎn)易,清晰明了,包括若干的“抽頭延遲”、加法器及乘法器。
2)級(jí)聯(lián)型結(jié)構(gòu)。將系統(tǒng)函數(shù)分解成實(shí)系數(shù)二階因子的乘積形式,就可以得到FIR濾波器的級(jí)聯(lián)型結(jié)構(gòu),分解過(guò)程如式6所示。
(6)式中,H(z)為h(n)的z變換,β0i、β1i、β2i為實(shí)數(shù)。FIR濾波器的級(jí)聯(lián)結(jié)構(gòu)如圖5所示,系統(tǒng)分為若干個(gè)二階因子,且都包含了圖2的直接型結(jié)構(gòu)。這種結(jié)構(gòu)的優(yōu)勢(shì)是它的每一節(jié)控制一對(duì)傳輸零點(diǎn),因而廣泛運(yùn)用到控制零點(diǎn)傳輸?shù)南到y(tǒng)中。其結(jié)構(gòu)如圖3。
3)線性相位結(jié)構(gòu)。FIR濾波器能夠在工程中被廣泛應(yīng)用,最重要的一個(gè)原因是它的相位是線性的,可以保證相位不失真。在圖像處理和通信系統(tǒng)的諸多領(lǐng)域中,保持一定頻率范圍內(nèi)的相位完整性是一個(gè)理想的系統(tǒng)特性。FIR數(shù)字濾波器擁有線性相位的充要條件是濾波器的單位脈沖響應(yīng)h(n)為實(shí)數(shù),且在n=(N-1)/2處具有偶對(duì)稱性或奇對(duì)稱性,即
h(n)=±h(N-n-1) (7)其中h(n)是實(shí)序列,N是h(n)的長(zhǎng)度。當(dāng)Ⅳ分別為奇數(shù)和偶數(shù)時(shí),其結(jié)構(gòu)如圖4和圖5所示。
FIR濾波器先不斷地對(duì)輸入數(shù)據(jù)延時(shí),再作乘累加運(yùn)算,當(dāng)Ⅳ為偶數(shù)時(shí),線性相位結(jié)構(gòu)實(shí)現(xiàn)H(z)需要N/2次乘法,N為奇數(shù)時(shí),需要(N+l)/2次乘法,乘法運(yùn)算量減為原來(lái)的一半,效率大幅提升。
2.3 濾波器設(shè)計(jì)方法
FIR數(shù)字濾波器的常用的設(shè)計(jì)方法包括窗函數(shù)法、等同紋波法以及切比雪夫法等。當(dāng)濾波器階數(shù)較高時(shí),我們選用簡(jiǎn)單且性能更優(yōu)的窗函數(shù)法。窗函數(shù)類型較多,選取時(shí)要根據(jù)所設(shè)計(jì)數(shù)字濾波器的參數(shù)指標(biāo),按照逐漸逼近的原則,用其幅頻特性代替理想濾波器幅頻特性。最后為了確保濾波器的hd(n)是有限長(zhǎng)的,函數(shù)會(huì)將hd(n)進(jìn)行截?cái)?。下面是窗函?shù)原理的公式推導(dǎo)。FIR濾波器系統(tǒng)函數(shù)的傅利葉變換展開(kāi)式如下。
(8)
(9)
為了獲得實(shí)際FIR濾波器的有限沖激響應(yīng),式(8)還需要做進(jìn)一步變換。利用有限加權(quán)序列原理,可知有限沖激響應(yīng)序列h(n)如下。
h(n)=hd(n)ω(n) (10)
由于ω(n)是有限長(zhǎng)序列,于是n>N-1或n<0時(shí),ω(n)=0。將式(10)代入式(9)整理后如下:
(11)
上式即為所求濾波器的幅度函數(shù)。其中僅WR(ω)決定FIR濾波器的特性。這是因?yàn)樵趯?shí)際求導(dǎo)FIR濾波器的過(guò)程中復(fù)合卷積會(huì)對(duì)H(ω)產(chǎn)生了波動(dòng)。濾波器設(shè)計(jì)過(guò)程中常用的窗函數(shù)類型及參數(shù)對(duì)比如表1所示。
由表1可見(jiàn),選定了窗函數(shù)后,過(guò)渡帶寬和阻帶最小衰減都是固定的,我們選用窗函數(shù)時(shí),應(yīng)盡量滿足過(guò)渡帶寬較窄,阻帶衰減較大的原則,但是上述兩項(xiàng)要求相互矛盾,在實(shí)際選用過(guò)程中通常是折中的,在滿足阻帶最小衰減的情況下,盡量使過(guò)渡帶較窄,從而才能得到平順的通帶以及更明顯的阻帶衰減。
3 DA算法及其FPGA實(shí)現(xiàn)
FIR濾波器在FPGA中通常以乘累加結(jié)構(gòu)和分布式算法結(jié)構(gòu)這兩種方式實(shí)現(xiàn)。其中,乘累加結(jié)構(gòu)可以演變?yōu)槎喾N實(shí)現(xiàn)形式,常用的有:轉(zhuǎn)置型、級(jí)聯(lián)型、頻率采樣型等,其基本結(jié)構(gòu)組件包括乘法器、加法器和抽頭延遲單元(見(jiàn)2.2節(jié))。而基于分布式算法的濾波器結(jié)構(gòu)則不使用乘法器,而是通過(guò)將乘法運(yùn)算轉(zhuǎn)換成查找表的形式,并使用少量的加法器和延遲模塊進(jìn)行求和操作,產(chǎn)生濾波結(jié)果。
3.1 分布式算法原理
分布式算法即DA(distributed algorithm)算法是一種經(jīng)典優(yōu)化算法,其實(shí)質(zhì)是運(yùn)用存儲(chǔ)表的查找運(yùn)算替代濾波器的乘法運(yùn)算,解決了乘法資源消耗問(wèn)題。需要注意的是,DA算法應(yīng)用的前提是FIR濾波器的系數(shù)必須是固定的,這樣才能保證查找運(yùn)算的高效率。其原理是DA算法將其中一個(gè)固定系數(shù)作為乘數(shù),把它所有的和序列存儲(chǔ)在一個(gè)存儲(chǔ)表中,而輸入序列作為被乘數(shù)串行輸入,當(dāng)輸入序列全部被接收之后,將其每一位的元素作為表的地址并行輸出并進(jìn)行尋址操作,存儲(chǔ)表則將相應(yīng)地址里數(shù)據(jù)即部分和輸出,將其向右移動(dòng)一位,延時(shí)一個(gè)周期,并緩存下來(lái),再與下一個(gè)部分和做累加運(yùn)算,依次類推,每次都將前一次的結(jié)果右移一位再與下次的部分和累加,總共需B(數(shù)據(jù)寬度)次,再將結(jié)果左移B-1位,最終得到的就是輸出序列y(n)。
一個(gè)線性時(shí)不變系統(tǒng)的表達(dá)式如下:
(12)其中:h(n)為已知的常系數(shù),x(n)是輸入的變量。若x(n)為(B+1)位的無(wú)符號(hào)數(shù),則x(n)可表達(dá)為:
(13)其中xb(n)為x的第(b+1)位,取值為0或者1。將上式代入式(12)中,可得到如下公式:
(14)
3.1.1 串行分布式算法
串行分布式算法(SDA)就是數(shù)據(jù)串行輸入輸出。實(shí)現(xiàn)過(guò)程:將采樣數(shù)據(jù)的最低位在表中尋址,把地址中的數(shù)據(jù)向右移一位,然后進(jìn)入到寄存器中。同時(shí),采樣數(shù)據(jù)的第二低位對(duì)表尋址也得到了一些積,其與之前的結(jié)果相加,得到的結(jié)果繼續(xù)移位并存到寄存器里,以此類推將每一位都進(jìn)行尋址。故采樣值位寬即為實(shí)現(xiàn)一次運(yùn)算所需的周期。
串行分布式算法結(jié)構(gòu)簡(jiǎn)單,具有占用面積小,硬件資源消耗少等優(yōu)點(diǎn),且每個(gè)單獨(dú)部分如查找表、加法器和寄存器都具有較高的處理速度,但由于輸入輸出是逐位串行,全部Ⅳ個(gè)輸入數(shù)據(jù)逐位參與運(yùn)算,且需經(jīng)過(guò)多次累加,才能得到輸出,且僅有一個(gè)查找表,規(guī)模過(guò)于龐大;如果采樣值位寬B較大的話,得到最終輸出將耗費(fèi)較多時(shí)鐘周期,具有比較大的延時(shí),無(wú)法實(shí)現(xiàn)高速實(shí)時(shí)處理。
3.1.2 并行
并行分布式算法(PDA)使用多個(gè)相同的DA查找表,數(shù)據(jù)并行輸入輸出,運(yùn)行速度極快,若加入流水線技術(shù),運(yùn)算速度會(huì)最大化。流水線技術(shù)是通過(guò)將任務(wù)按功能劃分成若干個(gè)級(jí)或子任務(wù),每級(jí)可同時(shí)執(zhí)行。流水線技術(shù)的采用,實(shí)現(xiàn)了繁雜電路的分級(jí)執(zhí)行,這種方法對(duì)電路結(jié)構(gòu)進(jìn)行了簡(jiǎn)化,進(jìn)而減小了一次全運(yùn)算的延時(shí)。
并行結(jié)構(gòu)性能較優(yōu),進(jìn)行一次計(jì)算只需要花費(fèi)一個(gè)時(shí)鐘的時(shí)間,但是資源占用多,當(dāng)輸入位寬增加時(shí),所需硬件如數(shù)量也需要增加,設(shè)計(jì)時(shí)要根據(jù)資源情況、實(shí)時(shí)性要求取舍。
3.1.3 分布式算法的改進(jìn)
分析傳統(tǒng)的分布式算法我們會(huì)發(fā)現(xiàn)其存在明顯不足,因FPGA內(nèi)部所有的和序列都存儲(chǔ)在查找表中,LUT查找表的規(guī)模會(huì)隨著濾波器階數(shù)的增加迅速膨脹。基于這種不足,本文提出了一種表分割的技術(shù),原理是將大的查找表截成一些小的部分,結(jié)合流水線,將每部分?jǐn)?shù)據(jù)匯總相加。這種方法極大地減小了LUT的規(guī)模,且沒(méi)有增加邏輯延時(shí),解決了傳統(tǒng)分布式算法的不足。下面對(duì)表分割技術(shù)驗(yàn)證。假設(shè)一個(gè)濾波器階數(shù)為NL,其數(shù)學(xué)表達(dá)式為
(15)
我們把系數(shù)分成L份,每份匹配一個(gè)LUT,也就是把NL階的LUT分成L個(gè)N階的串行的LUT,那么表規(guī)模從2LN呈指數(shù)級(jí)縮小為L(zhǎng)×2N,結(jié)果如下。
分割查找表的結(jié)構(gòu)如圖6所示。
如圖6所示,基于串行DA算法結(jié)構(gòu)的階數(shù)為4N濾波器的分割查找表形式,并且我們還可以在并行DA算法、串并結(jié)合的DA算法中使用分割查找表。為了能夠使規(guī)模較大的存儲(chǔ)表減小到所需的標(biāo)準(zhǔn),我們可以采用基于表分割技術(shù)的分布式算法,該方法運(yùn)算速度快、資源消耗低、結(jié)構(gòu)簡(jiǎn)單。此外,所有子表的輸出數(shù)據(jù)都通過(guò)延時(shí)累加器等最終得到的輸出序列才是正確的結(jié)果,因此采用表分割技術(shù)需要注意每個(gè)子表的同步協(xié)調(diào)情況,采用統(tǒng)一的時(shí)鐘信號(hào)進(jìn)行控制。
4 仿真驗(yàn)證及結(jié)果分析
實(shí)驗(yàn)分別在Quartus II和Simulink環(huán)境下對(duì)基于FPGA數(shù)字濾波器進(jìn)行仿真,以驗(yàn)證其濾波作用.在Quartus II 9.1環(huán)境下,對(duì)所設(shè)計(jì)的0-10M低通數(shù)字濾波器進(jìn)行編譯、調(diào)試并建立仿真,其時(shí)序仿真如圖7所示。
由圖15可以看出,Modelsim將離散信號(hào)轉(zhuǎn)換為模擬信號(hào)后,觀察到波形為單一頻率的正弦波形,不再含有其他噪聲,說(shuō)明FIR濾波器模塊產(chǎn)生了效果。
simulink是Matlab中用來(lái)系統(tǒng)建模、仿真的集成軟件包,其中包含諸多領(lǐng)域的各種工具包。首先正弦信號(hào)發(fā)生模塊為下圖中的sine Wave模塊,用來(lái)產(chǎn)生正弦干擾信號(hào);其次scope為示波顯示模塊,用來(lái)顯示各種波形。硬件仿真的電路圖如圖8所示。
原信號(hào)是含多個(gè)正弦波的信號(hào),函數(shù)如下:
(16)其中,ω0=2π·500 kHz,φ0將改進(jìn)的分布式算法燒寫(xiě)至FPGA內(nèi)部,經(jīng)過(guò)相關(guān)軟件的前仿真,將混有多個(gè)正弦波的雜散信號(hào)輸入FPGA內(nèi)部進(jìn)行低通濾波,雜散的正弦波被全部濾除,濾波后產(chǎn)生了明顯的效果,只留下低頻的直流信號(hào)。
5 結(jié)論
本文通過(guò)Matlab的輔助,采用窗函數(shù)設(shè)計(jì)法設(shè)計(jì)了一個(gè)基于改進(jìn)型分布式算法的16階FIR數(shù)字濾波器,并分別在Quartus和simHlink環(huán)境下對(duì)該數(shù)字濾波器進(jìn)行了具體的實(shí)現(xiàn)和仿真。經(jīng)過(guò)對(duì)仿真結(jié)果的分析,本文設(shè)計(jì)的FIR數(shù)字濾波器成功實(shí)現(xiàn)了數(shù)據(jù)采集系統(tǒng)中高頻信號(hào)的濾波功能,與傳統(tǒng)的DA濾波器算法相比,資源消耗小,運(yùn)算速度高,設(shè)計(jì)總體效果良好。
(編輯:關(guān)毅)