付文濤,孫 婭,韋洪蘭,席振銖,黃基文,,李 麗,3
(1.中南大學(xué) 地球科學(xué)與信息物理學(xué)院,湖南 長(zhǎng)沙 410083;2.湖南五維地質(zhì)科技有限公司,湖南 長(zhǎng)沙 410083;3.山西省地震局,山西 太原 030021)
在利用大地電磁法采集有用信號(hào)的過(guò)程中,儀器所使用的ADC(Analog to Digital Converter)發(fā)揮著極大作用,目前市場(chǎng)上的ADC不滿足大地電磁儀廣范圍頻率的采集,并且對(duì)噪聲的壓制不理想。為此,前人在電磁勘探方法、數(shù)據(jù)處理及探測(cè)儀器上進(jìn)行了大量的濾波研究。在數(shù)據(jù)處理中使用的濾波方法也在不斷更新,從基于人工神經(jīng)網(wǎng)絡(luò)的濾波方法[1]、遠(yuǎn)參考法[2]、自適應(yīng)濾波[3]、小波變換法[4,5]、數(shù)學(xué)形態(tài)濾波[6,7]等單濾波方法轉(zhuǎn)變到了組合濾波方法[8,9]。在基于大地電磁儀的濾波方面主要分為模擬濾波及數(shù)字濾波。模擬濾波主要對(duì)50 Hz、60Hz工頻及其諧波干擾進(jìn)行濾除,常采用模擬陷波濾波器[10,11]以及開(kāi)關(guān)電容濾波器[12]。在一些研究中也對(duì)自身電路的噪聲等進(jìn)行了低通或者高通濾波[13,14]。早些時(shí)期由于FPGA(Field Programmable Gate Array)芯片內(nèi)部資源較少,不能滿足高階數(shù)字濾波處理,前人基于DSP(Digital Signal Processing)芯片[15]或者專用數(shù)字濾波器芯片[16]研究數(shù)字濾波,一部分儀器也采用DSP芯片進(jìn)行數(shù)字濾波設(shè)計(jì)[17,18];另一部分則完全依靠模數(shù)轉(zhuǎn)換器的數(shù)字濾波功能[19,20]。隨著FPGA芯片的發(fā)展,其內(nèi)部資源已經(jīng)開(kāi)始能滿足低階數(shù)字濾波設(shè)計(jì),一些基于FPGA的低階數(shù)字濾波設(shè)計(jì)應(yīng)用到了大地電磁儀采集系統(tǒng)中[21]。
近年來(lái),市場(chǎng)上一些FPGA芯片的內(nèi)部資源已經(jīng)足夠滿足高階數(shù)字抽取濾波器的設(shè)計(jì),且相應(yīng)的設(shè)計(jì)工具也內(nèi)嵌了各種DSP IP(Intellectual Property)核,包括FIR(Finite Impulse Response Digital Filter) IP 核,極大地方便了高階數(shù)字濾波設(shè)計(jì)。在數(shù)字濾波中,相對(duì)IIR(Infinite Impulse Response Digital Filter,無(wú)限沖激響應(yīng)濾波器),F(xiàn)IR(有限沖激響應(yīng)濾波器)具有穩(wěn)定性高、通帶內(nèi)具有嚴(yán)格的線性相位、可利用傅里葉變換加快計(jì)算速度、易于在FPGA中實(shí)現(xiàn)等優(yōu)點(diǎn)。因此本文提出將模數(shù)轉(zhuǎn)換器中的濾波與FPGA中設(shè)計(jì)的數(shù)字FIR抽取濾波器級(jí)聯(lián),達(dá)到高倍抽取的目的,從而在減少處理數(shù)據(jù)量的同時(shí)滿足低頻信號(hào)采集的要求。
目前先進(jìn)的大地電磁儀都是基于模數(shù)轉(zhuǎn)換器(ADC)作為采集卡,常使用的ADC的數(shù)據(jù)輸出速率如表1所示。由表1可見(jiàn),所使用的ADC最小數(shù)據(jù)輸出速率均大于100 sps,達(dá)不到低頻設(shè)計(jì)要求。
表1 ADC數(shù)據(jù)輸出速率對(duì)比
為了解決采集卡不滿足低頻采集的現(xiàn)狀,考慮到近幾年來(lái)FPGA芯片內(nèi)部資源的豐富化,本文在FPGA上實(shí)現(xiàn)高階FIR抽取濾波器,共同構(gòu)成了大地電磁儀接收機(jī)的數(shù)字抽取濾波系統(tǒng)(圖1)。
圖1 級(jí)聯(lián)式抽取系統(tǒng)Fig.1 Cascade decimation system
級(jí)聯(lián)式抽取系統(tǒng)中的總抽取倍數(shù)R為:
R=RADC*RFPGA
(1)
其中,RADC為ADC中濾波抽取倍數(shù);RFPGA為FPGA中濾波抽取倍數(shù);R,RADC,RFPGA均為無(wú)量綱單位。
該系統(tǒng)輸出采樣率fso為:
(2)
其中,fsi為輸入采樣率,單位為sps。
該方案具有較大優(yōu)勢(shì):①實(shí)現(xiàn)高倍低通抽取濾波,將需要的低頻信號(hào)保留,有利于分析所采集的地球深部信號(hào);②降低數(shù)據(jù)速率,減少數(shù)據(jù)量,可以減少對(duì)FPGA及ARM(Advanced RISC Machine)中儲(chǔ)存的占用,以滿足長(zhǎng)時(shí)間的采集,并且減少數(shù)據(jù)量的同時(shí)也降低了FFT(Fast Fourier Transform,快速傅里葉變換)運(yùn)算量,有利于提高運(yùn)算速度;③抗混疊,避免了數(shù)據(jù)由于低通濾波而產(chǎn)生的混疊;④充分利用了FPGA資源,避免FPGA資源浪費(fèi);⑤避免了選用DSP或?qū)S脭?shù)字濾波等多個(gè)器件而帶來(lái)的不同器件接口問(wèn)題。
ADS1282具有高信噪比、低噪聲、可編程增益放大器、靈活的數(shù)字濾波結(jié)構(gòu)、低功耗、同步輸入等優(yōu)點(diǎn)。該模數(shù)轉(zhuǎn)換器還具有高通濾波調(diào)試、可編程增益放大調(diào)試、數(shù)據(jù)速率調(diào)控、數(shù)字濾波結(jié)構(gòu)及相位選擇、偏移誤差校正等功能。且為用戶提供了可選擇數(shù)字濾波器結(jié)構(gòu)(圖2),為級(jí)聯(lián)設(shè)計(jì)提供了方便。因此本文以ADS1282為例進(jìn)行級(jí)聯(lián)式數(shù)字抽取濾波器設(shè)計(jì)。
如圖2所示,ADS1282采集卡的數(shù)字抽取濾波器結(jié)構(gòu)可作為抽取數(shù)可設(shè)置為8~128的可調(diào)Sinc Filter與抽取數(shù)為32的FIR濾波器級(jí)聯(lián),該結(jié)構(gòu)最小輸出采樣率只有250 sps。為此利用ADS1282為用戶提供了可選擇數(shù)字濾波器結(jié)構(gòu)進(jìn)行設(shè)計(jì),設(shè)計(jì)中保留采集卡原有的Sinc Filter,應(yīng)用本文所設(shè)計(jì)的FIR抽取濾波器。在上述方案中,經(jīng)過(guò)Sinc Filter的最小輸出采樣率為8 000 sps。
圖2 ADS1282的數(shù)字濾波器結(jié)構(gòu)Fig.2 Digital filter structure of ADS1282
基于FPGA的FIR抽取濾波器指標(biāo)如下:通帶截止頻率fc為30 Hz,阻帶起始頻率fst為64 Hz,輸入采樣率8 000 Hz,帶外壓制為137 dB,通帶平坦度為0.01 dB,設(shè)計(jì)方法為Equiripple,采用的是最小階數(shù)設(shè)計(jì)法,最終總階數(shù)為1 395。
其中,通帶截止頻率fc滿足抗混疊條件:
fsi≥2Rfc
(3)
歸一化條件為:
(4)
根據(jù)歸一化條件對(duì)通帶截止頻率及阻帶起始頻率進(jìn)行歸一化處理,方便濾波器設(shè)計(jì)。歸一化通帶截止頻率為0.007 5,無(wú)量綱單位。歸一化阻帶截止頻率為0.016,無(wú)量綱單位。
為了滿足高階抽取,固定量化系數(shù)為24 bit?;贔PGA的大地電磁儀接收機(jī)控制系統(tǒng)中數(shù)據(jù)位寬為32 bit,因此濾波器的輸入位寬為32 bit。所設(shè)計(jì)的濾波器滿足128倍抽取數(shù),最小輸出采樣率為62.5 Hz。采用線性偶對(duì)稱結(jié)構(gòu)設(shè)計(jì)減少FPGA內(nèi)部資源占用。如圖3所示在通帶及過(guò)渡帶范圍內(nèi),所設(shè)計(jì)的濾波器的相位是嚴(yán)格線性的。
圖3 濾波器設(shè)計(jì)效果Fig.3 Effect diagram of filter design
3.2.1 基于Simulink的FIR抽取濾波器的仿真
Simulink是嵌入在Matlab中的模塊,具有強(qiáng)大仿真功能。本次設(shè)計(jì)的濾波器在Simulink中進(jìn)行仿真。
如圖4所示,三個(gè)輸入波形均為Sine Wave,根據(jù)濾波器設(shè)計(jì)的通帶截止頻率及阻帶起始頻率,將輸入波形分別設(shè)置為20 Hz、50 Hz及80 Hz。其中處于通帶范圍內(nèi)的20 Hz正弦波幅值為1,處于過(guò)渡帶范圍內(nèi)的50 Hz正弦波幅值為0.5,處于阻帶范圍內(nèi)的80 Hz正弦波幅值為1.5,如圖5所示。
圖4 FIR抽取濾波在Simulink中的仿真Fig.4 Simulation of FIR decimation filter in Simulink
圖5 20 Hz、50 Hz及80 Hz正弦波Fig.5 20 Hz,50 Hz and 80 Hz sine waves
經(jīng)過(guò)Add模塊將三個(gè)頻率進(jìn)行疊加并輸入前面設(shè)計(jì)好的濾波器中。最后利用Scope模塊展示出濾波前及濾波后的波形。
根據(jù)圖6所示,本文所設(shè)計(jì)的濾波器成功濾除掉頻率為80 Hz及50 Hz的信號(hào),保留了頻率較低的20 Hz信號(hào),說(shuō)明該濾波器的功能滿足設(shè)計(jì)要求。
圖6 Simulink仿真中濾波前后的輸出Fig.6 Output before and after filtering in Simulink simulation
3.2.2 基于FPGA的FIR抽取濾波器的仿真
利用FDAtool設(shè)計(jì)好的數(shù)字抽取濾波器以.coe(系數(shù))文件類型導(dǎo)出系數(shù),并將系數(shù)導(dǎo)入vivado設(shè)計(jì)軟件中的FIR IP核中。根據(jù)上述FIR抽取設(shè)計(jì)指標(biāo)設(shè)置好FIR IP核,對(duì)其進(jìn)行功能仿真。利用Matlab生成1 Hz正弦波及80 Hz正弦波疊加的混頻波,將混頻波輸入FIR IP核的數(shù)據(jù)輸入端口中。
如圖7所示,設(shè)計(jì)的濾波器在FPGA中得以實(shí)現(xiàn),濾除了80 Hz的“高頻”,保留了1 Hz的“低頻”,驗(yàn)證了該濾波器基于FPGA的功能可實(shí)現(xiàn)性。設(shè)計(jì)的FIR輸出為全精度輸出,輸出位寬為64 bit??紤]到硬件資源,對(duì)濾波器輸出采用了截位。去除高位多余的符號(hào)位及低位的部分小數(shù)位,保留了32 bit的輸出。從仿真圖可以看出,根據(jù)上述方法截位的32 bit輸出波形與64 bit全精度輸出波形相同,說(shuō)明該截位方法在該設(shè)計(jì)中具有應(yīng)用價(jià)值。
圖7 基于Vivado的仿真圖Fig.7 Simulation diagram based on Vivado
采用FPGA+ARM片上系統(tǒng)來(lái)設(shè)計(jì)大地電磁儀采集系統(tǒng)具有很大優(yōu)勢(shì),既能提高數(shù)據(jù)的傳輸速度,又能提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性。將設(shè)計(jì)好的抽取濾波以IP核形式嵌入基于FPGA的控制系統(tǒng)中。
如圖8所示,利用所設(shè)計(jì)的ADS1282控制模塊分別將5個(gè)通道ADS1282所采集的數(shù)據(jù)緩存到FIFO中,再利用AXI_DATA_FIR模塊進(jìn)行接口轉(zhuǎn)換設(shè)計(jì),并將數(shù)據(jù)輸入到FIR IP核中,F(xiàn)IR濾波輸出數(shù)據(jù)經(jīng)過(guò)AXI_DATA_DMA模塊轉(zhuǎn)換輸入到PL的AXI_DMA中。該設(shè)計(jì)采用5個(gè)通道并行設(shè)計(jì),提高了數(shù)據(jù)的傳輸及處理能力,極大地縮短了采集時(shí)間。
在FIR IP核與AXI_DATA_FIR模塊及AXI_DATA_DMA模塊互連中,需要對(duì)接口進(jìn)行設(shè)計(jì)。設(shè)計(jì)的接口如圖9所示,該數(shù)據(jù)傳輸主要基于AXI_STREAM模式。該模式下,不需要地址的傳輸,減少了握手信號(hào),進(jìn)而減少了數(shù)據(jù)傳輸延時(shí),且增強(qiáng)了數(shù)據(jù)突發(fā)能力。
將設(shè)計(jì)好的FPGA+ARM控制系統(tǒng)進(jìn)行物理約束,并進(jìn)行綜合及布局布線,進(jìn)而分析其功耗及資源占用情況。
如圖10所示,被占用的資源最高的為PLL(Phase Locked Loop),僅為25 %,因此在資源占用率方面屬于正常范圍。在功耗方面,動(dòng)態(tài)功耗為1.787 W,總功耗小于2 W,因此功耗也在正常范圍內(nèi)。
圖8 大地電磁儀采集系統(tǒng)Fig.8 Magnetotelluric instrument acquisition system
圖9 FIR IP核接口設(shè)計(jì)Fig.9 FIR IP core interface design
圖10 資源占用及功耗分析Fig.10 Analysis of resource occupation and power consumption
1)本文提出將ADC的數(shù)字濾波與基于FPGA的數(shù)字抽取濾波級(jí)聯(lián)的方案,實(shí)現(xiàn)了高倍抽取,使大地電磁儀在使用單種采集卡(ADC)的基礎(chǔ)上滿足更低頻率的采集,進(jìn)而減少了采集系統(tǒng)的功耗以及儀器的體積。
2)采用了系數(shù)線性偶對(duì)稱結(jié)構(gòu)的FIR濾波設(shè)計(jì),減少了對(duì)FPGA中的乘法器等資源的消耗,也減少了功耗;在Simulink及FPGA上分別對(duì)所設(shè)計(jì)的FIR進(jìn)行仿真,驗(yàn)證其功能的正確性及基于FPGA的功能可實(shí)現(xiàn)性。
3)采用AXI總線中的AXI_STREAM模式進(jìn)行FIR IP核接口設(shè)計(jì),使用更少的握手信號(hào),不僅減少了傳輸延時(shí),而且增加了數(shù)據(jù)突發(fā)傳輸?shù)哪芰?。在不影響輸出信?hào)完整性的基礎(chǔ)上對(duì)AXI_DATA_DMA模塊數(shù)據(jù)輸出進(jìn)行截位,保證了輸出精度,同時(shí)極大地減少了功耗及FPGA芯片內(nèi)部資源的占用。
4)對(duì)包含高階FIR高倍抽取濾波器的大地電磁儀采集系統(tǒng)進(jìn)行資源占用率及功耗分析,表明本文所設(shè)計(jì)的高階FIR高倍抽取濾波器在大地電磁儀采集系統(tǒng)中具有應(yīng)用價(jià)值。