洪鵬飛 楊 磊 付廷巖 祁 中 任忠國(guó),2 李東倉(cāng)
1 (蘭州大學(xué)核科學(xué)與技術(shù)學(xué)院 蘭州 730000)
2 (中國(guó)工程物理研究院 綿陽(yáng) 621900)
反卷積技術(shù)主要用于求解信號(hào)復(fù)原和系統(tǒng)辨識(shí)問(wèn)題,在光學(xué)、光譜學(xué)、能譜學(xué)以及圖像復(fù)原等領(lǐng)域得到廣泛應(yīng)用。隨著計(jì)算機(jī)技術(shù)的發(fā)展,提出了多種數(shù)值反卷積算法,如反演法、遞歸法、直接求解法、傅立葉變換法、Z變換法等[1,2]。
傳統(tǒng)的核電子學(xué)信號(hào)處理系統(tǒng),一般需核輻射探測(cè)器、前置放大器、主放大器(線性放大,基線恢復(fù)、堆積拒絕等)、多道分析器等[3]。其中大部分均為硬件電路,需手動(dòng)調(diào)節(jié)。我國(guó)對(duì)數(shù)字核信號(hào)處理的研究,大部分采用模擬式核信號(hào)的處理理論和方法,進(jìn)行硬件的軟化工作[4]。
本文將盲目反卷積法應(yīng)用于核脈沖信號(hào)處理,舍棄了硬件軟化過(guò)程,提出將核信號(hào)的數(shù)字處理提前至核輻射探測(cè)器的前置放大器輸出端,利用PFGA和LabVIEW的強(qiáng)大功能,將信號(hào)采集、傳輸和處理一體化,組成一套數(shù)字化數(shù)據(jù)獲取系統(tǒng)。
核脈沖信號(hào)通過(guò)測(cè)量?jī)x器的過(guò)程,即為核脈沖信號(hào)與儀器沖擊響應(yīng)的卷積過(guò)程:

將式(1)的連續(xù)信號(hào)變成離散序列,即為:

式中,*為卷積符號(hào),xn為輸入信號(hào),ωn為系統(tǒng)的特性或沖擊響應(yīng),yn為輸出信號(hào),ξn為零均值白噪聲。對(duì)于一維數(shù)據(jù)處理,我們把卷積模型看成一個(gè)白噪聲序列xn通過(guò)線性系統(tǒng)ωn;而反卷積就是輸出信號(hào)序列yn經(jīng)過(guò)一個(gè)白化濾波器pn,使輸出εn為白噪聲,此時(shí),εn就是xn的一個(gè)估計(jì)[2],盲目反卷積算法的主要工作就是求pn。
本文采用自回歸(Auto regressive, AR)模型,考慮yn的q步預(yù)測(cè),q≥1時(shí),希望找到一組a(i),i=1,2,L,M,使yn的q步預(yù)測(cè)值(式(3))與實(shí)際值y(n+q)的誤差(式(4))的均方值E{ε2(n)}最小:

根據(jù)正交原理,這必須使誤差正交于數(shù)據(jù),即:

化簡(jiǎn)得:

為確定a(i)值,需解M個(gè)方程,式(5)寫(xiě)成矩陣形式為:

式(8)稱為T(mén)oeplitz方程,將a(i)移至左邊,得式(9),上標(biāo)?1為矩陣的逆。

得到y(tǒng)n后,由式(7)計(jì)算r(0)→r(q+M?1)及逆矩陣的值,即可算出a(i),具體過(guò)程在圖 3中的MatLAB算法中給出。此時(shí)白化濾波器表示為:p(n)={1, 0,L, 0,a(1),a(2),L,a(M)},式中有q?1個(gè) 0,濾波器的長(zhǎng)度為(M+q),則輸入序列xn的估計(jì):

將高速ADC和USB芯片連接到FPGA上,F(xiàn)PGA提供USB芯片和ADC工作的時(shí)鐘,并通過(guò)硬件電路對(duì)其控制,USB芯片的接口連接到PC機(jī)上,用于高速數(shù)據(jù)傳輸。ADC采集前,須用前置放大器調(diào)節(jié)核探測(cè)器的輸出信號(hào),以滿足 ADC模擬輸入電壓的范圍。
電路原理如圖1,clk為FPGA主時(shí)鐘輸入端口,ADCclk為ADC采樣時(shí)鐘,Analog_in為模擬信號(hào)輸入端口,ADCdata[7..0]為ADC采樣數(shù)據(jù)總線,F(xiàn)Ddata[7:0]為寫(xiě)入U(xiǎn)SB數(shù)據(jù),ifclk為USB外部時(shí)鐘輸入信號(hào),slwr為 USB同步寫(xiě)使能信號(hào),F(xiàn)IFOadr[1..0]為USB FIFO端點(diǎn)選擇信號(hào),slcs:USB FIFO數(shù)據(jù)輸入引腳使能,pktend:USB FIFO內(nèi)數(shù)據(jù)上傳信號(hào),F(xiàn)IFO_EMPTY、FIFO_FULL:USB FIFO空、滿標(biāo)志位,DPLUS、DMINUS:USB接口至PC機(jī)信號(hào)端口。

圖1 系統(tǒng)硬件連接接口圖Fig.1 Schematics of the hardware connection interface.
FPGA作為USB的控制器,用狀態(tài)機(jī)來(lái)實(shí)現(xiàn),采用USB的Slave FIFO從機(jī)方式下的同步寫(xiě)模式;FPGA對(duì)ADC的控制只需提供采樣時(shí)鐘MCLK[5,6]。
美國(guó) Cypress公司為簡(jiǎn)化和加速用戶使用EZ--USBFX2芯片進(jìn)行USB外設(shè)的開(kāi)發(fā),提供了完整的固件程序的架構(gòu)。用戶只需提供一個(gè)USB描述符表,修改其他端點(diǎn)接收和發(fā)送數(shù)據(jù)的通信代碼,控制外圍電路的程序代碼[6]。
本文中修改USB外設(shè)功能程序periph.c文件中的TD_Init()函數(shù),使端點(diǎn)2為批量傳輸IN端點(diǎn),接收LabVIEW上位機(jī)的指令,自動(dòng)提交IN包,即工作于AUTO IN狀態(tài),端點(diǎn)大小為512字節(jié),2倍緩沖,數(shù)據(jù)接口為 8位;修改設(shè)備描述符文件dacr.a51中的HighSpeedConfigDscr下Endpoint Descriptor參數(shù),即修改端點(diǎn)描述符參數(shù)。
將固件程序下載至USB后,打開(kāi)美國(guó)NI公司NI-VISA4.0版本的 Driver Wizard程序,直接在LabVIEW環(huán)境下通過(guò)NI-VISA開(kāi)發(fā)驅(qū)動(dòng)用戶USB系統(tǒng)的應(yīng)用程序,避開(kāi)了以前開(kāi)發(fā)USB驅(qū)動(dòng)程序的復(fù)雜性,降低了開(kāi)發(fā)難度[7]。
LabVIEW上位機(jī)程序用于USB數(shù)據(jù)的獲取、處理及顯示,版本為L(zhǎng)abVIEW 2009,程序的框圖見(jiàn)圖2。
整個(gè)應(yīng)用程序的主框架使用 WHILE循環(huán)不斷的查詢,并使用NI-VISA類的函數(shù)包括:打開(kāi)、關(guān)閉VISA設(shè)備;設(shè)定VISA設(shè)備的屬性節(jié)點(diǎn)參數(shù)(指定端點(diǎn)和傳輸方式);讀寫(xiě)USB RAW(設(shè)定字節(jié)數(shù));盲目反卷積子VI(數(shù)據(jù)處理)。
將讀取的USB數(shù)據(jù)連接到盲目反卷積子VI(圖2中的BLIND DCONV),進(jìn)行顯示和處理,反卷積子VI中使用LabVIEW的MathScript節(jié)點(diǎn),其中包含盲目反卷積的Matlab程序,其代碼見(jiàn)圖3。y表示輸入的數(shù)組,即USB接收的數(shù)據(jù);n為反卷積濾波器的長(zhǎng)度,對(duì)于不同信號(hào)系統(tǒng),n不同;x即為反卷積序列。

圖2 LabVIEW上位機(jī)程序框圖Fig.2 Block diagram of the LabVIEW host computer.

圖3 盲目反卷積MatLab代碼Fig.3 Blind deconvolution MatLab code.
在 LabVIEW 中仿真反卷積方法能否復(fù)原脈沖信號(hào)、去除信號(hào)的堆積。用 LabVIEW 產(chǎn)生隨機(jī)脈沖信號(hào) a,其時(shí)間間隔、幅度均不同,與卷積參數(shù)b(沖擊響應(yīng))進(jìn)行卷積。設(shè)置卷積參數(shù)b= num*x*exp(-num*x),num為隨機(jī)信號(hào)序列的索引號(hào),x是用于調(diào)整信號(hào)上升時(shí)間的常數(shù),令x=0.1,上升時(shí)間約為10 ns。將a與b進(jìn)行數(shù)值卷積,得到卷積信號(hào)y。這樣仿真的是核脈沖信號(hào)經(jīng)核探測(cè)器、電荷靈敏前置放大器、CR-RC成形網(wǎng)絡(luò)的模擬脈沖信號(hào)[8],該信號(hào)同時(shí)有峰堆積和尾堆積,盲目反卷積結(jié)果見(jiàn)圖4。
圖 4(a)為沖擊響應(yīng)曲線,圖 4(b)為原始隨機(jī)脈沖信號(hào)。圖4(c)為無(wú)噪聲卷積信號(hào)(1)和盲目反卷積脈沖信號(hào)2,信號(hào)2與圖4(b)圖中的原始隨機(jī)脈沖信號(hào)在時(shí)間上符合的相當(dāng)好,幅度上線性擴(kuò)大約10倍。圖4(d)為基線偏移10%的無(wú)噪聲卷積信號(hào)1和盲目反卷積脈沖信號(hào)2,信號(hào)2并未出現(xiàn)基線的偏移,故盲目反卷積可去除基線偏移,在時(shí)間上符合的相當(dāng)好。圖4(e)為信噪比55 dB的卷積信號(hào)1和盲目反卷積脈沖信號(hào)2,信號(hào)2的峰值清晰可見(jiàn),其他信號(hào)的幅值比小于 1%。圖 4(f)為信噪比為 30 dB的卷積信號(hào)1和盲目反卷積脈沖信號(hào)2,峰值并不明顯,其他信號(hào)的幅值比已大于20%。故信噪比對(duì)盲目反卷積有著很大影響,信噪比越大,盲目反卷積越好。
模擬結(jié)果表明,信噪比大于40 dB時(shí),無(wú)需對(duì)輸入信號(hào)預(yù)處理,盲目反卷積信號(hào)和原始脈沖信號(hào)符合得相當(dāng)好,且能去除被反卷積信號(hào)的堆積問(wèn)題,基線偏移問(wèn)題也可消除。在時(shí)間上反卷積脈沖信號(hào)與原始脈沖信號(hào)完全一致,在幅度上存在一個(gè)線性關(guān)系,只需給計(jì)算結(jié)果一個(gè)合適增益,原始的輸入信號(hào)即可完美的被還原。
與真實(shí)核探測(cè)器信號(hào)不同的是,信號(hào)發(fā)生器的波形信號(hào)頻率和幅度是相同的。編輯信號(hào)發(fā)生器的信號(hào)為雙峰雙指數(shù)信號(hào),對(duì)其進(jìn)行實(shí)驗(yàn)采集和盲目反卷積處理。
實(shí)驗(yàn)硬件的核心為美國(guó)ALTER公司cyclone系列的EP2C7F896C6N芯片;ADC芯片為美國(guó)TI公司的超高速8位ADC TLC5540;USB芯片為美國(guó)CYPRESS公司的 EZ-USB FX2LP系列的cy7c68013a;信號(hào)發(fā)生器為美國(guó) Tektronix公司的AFG3102系列產(chǎn)品。
信號(hào)發(fā)生器信號(hào)幅度:高電平為4.0 V,低電平為0 V。設(shè)置反卷積濾波器的長(zhǎng)度n=2。當(dāng)信號(hào)發(fā)生器頻率為12 kHz,ADC的采樣時(shí)鐘為12 MHz時(shí)。實(shí)驗(yàn)計(jì)算的ADC數(shù)值由0?255,盲目反卷積的結(jié)果為1?2,我們將其數(shù)值擴(kuò)大100倍,放在一張圖中便于顯示,得到實(shí)驗(yàn)結(jié)果見(jiàn)圖5。
圖5(a)為尾堆積雙峰指數(shù)信號(hào)1和反卷積信號(hào)2,盲目反卷積有效去除尾堆積,得到幅度為150 div和300 div兩個(gè)峰值,其他信號(hào)的幅值比小于5%。圖5(b)為峰堆積雙峰指數(shù)信號(hào)1和反卷積信號(hào)2,盲目反卷積有效去除峰堆積,得到幅度均為150 div的兩個(gè)峰,其他信號(hào)的幅值比小于 5%。圖 5(a)和5(b)的指數(shù)信號(hào)第一個(gè)峰的幅度相等,故反卷積得到相同的150 div。

圖4 盲目反卷積的仿真Fig.4 The simulation by blind deconvolution.

圖5 雙峰指數(shù)信號(hào)與反卷積信號(hào)比較Fig.5 The input bimodal exponential signal and output deconvolution signal.
實(shí)驗(yàn)結(jié)果表明,盲目反卷積能將信號(hào)發(fā)生器的雙峰指數(shù)信號(hào)反卷積為脈沖信號(hào),可清晰分辨出峰的大小和位置。由于ADC采樣得到的是8位的2進(jìn)制數(shù),僅能表示0?255的整數(shù),并非仿真時(shí)用的LabVIEW默認(rèn)的6位浮點(diǎn)數(shù),故反卷積除了明顯的兩個(gè)峰,還有其他的小信號(hào)。因此,ADC的分辨率對(duì)盲目反卷積的效果有一定影響。
在FPGA控制下,利用USB2.0接口芯片和高速AD轉(zhuǎn)換器,對(duì)信號(hào)進(jìn)行實(shí)時(shí)采集和傳輸,并利用可視化工具 LabVIEW 作為數(shù)據(jù)處理和顯示的平臺(tái)。通過(guò)對(duì)信號(hào)發(fā)生器指數(shù)信號(hào)的采集,驗(yàn)證了盲目反卷積算法在核脈沖信號(hào)分析上的良好應(yīng)用,以及在核數(shù)據(jù)數(shù)字化處理方面的廣泛前景。
1 文德智, 李正宏, 蔣世倫. 時(shí)幅連續(xù)信號(hào)數(shù)值反卷積方法及其應(yīng)用[J]. 原子能科學(xué)技術(shù), 2008, 42(5): 385–389 WEN Dezhi, LI Zhenghong, JIANG Shilun. Numerical deconvolution method for continuous signals processing and its appl ication[J]. Atomic Energy Science and Technology, 2008, 42(5): 385–389
2 鄒謀炎. 反卷積和信號(hào)復(fù)原[M]. 北京: 國(guó)防工業(yè)出版社, 2007 ZHOU Mouyan. Deconvolution and signal recovery[M].Beijing: National Defence Industry Press, 2007
3 王芝英. 核電子學(xué)技術(shù)原理[M]. 北京: 原子能出版社,1989 WANG Zhiying. Nuclear electronics principle[M].Beijing: Atomic Energy Press, 1989
4 張軟玉. 數(shù)字化核能譜獲取系統(tǒng)的研究[D]. 四川大學(xué),2006 ZHANG Ruanyu. On the study of digital nuclear spectrum system[D]. Sichuan University, 2006
5 馬俊濤, 李振宇. SlaveFIFO模式下 CY7C68013和FPGA的數(shù)據(jù)通信[J]. 中國(guó)傳媒大學(xué)學(xué)報(bào)自然科學(xué)版,2009, 16(2): 38–44 MA Juntao, LI Zhenyu. Data transmission between CY7C68013 and FPGA based on slaveFIFO[J]. Journal of communication university of China(Science and Technoloy), 2009, 16(2): 38–44
6 錢(qián) 峰. EZ-USB FX2單片機(jī)原理、編程及應(yīng)用[M]. 北京: 北京航空航天大學(xué)出版社, 2006 QIAN Feng. Principles of programming and application of the EZ-USB the FX2 microcontroller[M]. Beijing:Beijing University of Aeronautics and Astronautics Press,2006
7 余志榮, 楊 莉. 基于NI-VISA與LabVIEW的USB接口應(yīng)用設(shè)計(jì)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2007, (1):66–69 YU Zhirong, YANG Li. The applications of USB interface with LabVIEW based on NI-VISA[J]. Microcontroller and Embedded System Applications, 2007, (1):66–69
8 張軟玉, 周清華, 羅小兵, 等. 核信號(hào)數(shù)值仿真方法的研究及應(yīng)用[J]. 核電子學(xué)與探測(cè)技術(shù), 2006, 24(4):421–424 ZHANG Ruanyu, ZHOU Qinghua, LUO Xiaobing,et al.The research and application of digital simulation in nuclear signal[J]. Nuclear Electronics & Detection Technology, 2006, 24(4): 421–424