田 晶
(長春職業技術學院信息技術學院,長春130000)
光譜儀是用于光譜分析的重要測試設備,其中,傅里葉變換光譜儀由于能夠同時對多波段光譜進行測試而被廣泛應用[1]。在傅里葉變換光譜儀中,最常見的處理方式是對干涉條紋進行快速傅里葉變換(fast Fourier transform,FFT)[2-4],再光譜復原最終獲得待測光的光譜信息。這個過程中需要對干涉條紋進行均勻采樣,同時,針對多光譜的同時獲取也需要均勻采樣。這樣就存在一定的弊端,因為對于某些光程調制具有非線性,采用均勻采樣會造成誤差。
國內外對非均勻FFT算法的研究一直很關注,非均勻FFT算法最早是由BROUW在1975年提出的,當時主要用于解決非均勻頻域采樣形成直角坐標網格的問題[5]。1993年,DUTT首次將非均勻插值技術應用于離散傅里葉變換(discrete Fourier transform,DFT)算法從而形成了非均勻離散傅里葉變換(non-uniform discrete Fourier transform,NUDFT)算法,由此實現了對加權復指數函數的近似表達[6]。2010年,ROSSI等人通過奇異值分解的方式對非均勻FFT算法進行了二次劃分,提高了數據反演的穩定性[7]。2012年,LI等人將自回歸模型算法引入光譜復原,并與傳統FFT算法比較,獲得了更高的光譜分辨率[8]。2016年,南京理工大學學者提出了一種矩陣反演算法,并通過非均勻采樣的形式完成了對光譜數據的復原[9]。
對于多光譜獲取而言,不同波段需要的采樣密度也是由實際需求所決定的,采用傳統的FFT只能有一個均勻的采樣率,采集過密會導致數據量大,影響實時性,采集過稀則導致部分光譜波段反演精度下降。為了克服此問題,本文中提出了將非均勻FFT算法引入多光譜數據復原的計算中,提高系統針對多光譜譜段實時采集與處理的能力。系統利用非均勻快速傅里葉變換(non-uniform fast Fourier transform,NUFFT)算法[10-12]對具有目標特征波段進行分類采樣,從而在保證采樣精度的條件下提高系統工作速率。
多光譜數據同步采集與處理系統如圖1所示。系統由光學接收與干涉模塊、光電探測器、模數轉換器(analog-to-digital converter,ADC)、現場可編程門陣列(field-programmable gate array,FPGA)控制模塊、數據信號處理器(digital signal processor,DSP)模塊及顯示單元構成。

Fig.1 Multispectral data synchronous acquisition and processing system
首先,光學接收完成對入射光的整形與準直,干涉模塊完成對入射光的相干處理,從而形成干涉條紋。然后,干涉條紋由電荷耦合器件(charge coupled device,CCD)采集,進入FPGA數據存儲單元。FPGA控制模塊完成對多光譜數據的同步匹配,其與DSP數據處理模塊進行數據交互。DSP數據處理模塊完成NUFFT算法對多光譜譜段進行分段采樣提取,并將處理數據傳輸給顯示單元。顯示單元的輸出速率與數據量由FPGA控制[13-18]。因為多光譜數據量大,需要同時控制數據時序邏輯順序與完成相應的運算需要較高得數據處理能力,所以在本系統中,多光譜數據的控制由FPGA實現,NUFFT算法由 DSP實現,從而形成FPGA+DSP架構。通過FPGA和DSP的聯用,可以更大地發揮不同數字處理芯片對數據的處理能效,從而提高系統的整體工作效率。系統采用FPGA+DSP架構,通過FPGA完成ADC數據轉換與采集,再由DSP的外部存儲器接口(external memory interface,EMIF)完成導入,最終,在DSP中通過NUFFT算法對多光譜數據進行反演。
為了實現多光譜數據同步快速處理的功能,設計了利用FPGA完成同步控制,利用DSP完成NUFFT數據處理的FPGA+DSP混合架構,該架構的組成如圖2所示。

Fig.2 Data processingmodule based on FPGA+DSP hybrid architecture
系統核心處理部分由FPGA+DSP組成,ADC采集得到的光譜數據通過FPGA的先入先出接口(first input first output,FIFO)采集進入同步動態隨機存取內存 (synchronous dynamic random-access memory,SDRAM)、雙倍速率(double data rate,DDR)、閃存(flash memory,FLASH),其中,WFIFO表示寫入接口;RFIFO表示讀出接口。再通過同步時鐘的讀FIFO進入DSP,由DSP完成光譜數據反演的數據處理。因為采集獲得的光譜數據為浮點型數據,所以選用了TMS320C6748型 DSP。該款 DSP主頻456MHz,是一款高性能浮點型信息處理器,包括8組32位并行處理單元,非常適合多光譜數據高速并行處理。其主控芯片采用哈佛結構,支持單周期多指令功能,并且其包括了豐富的外設,如外EMIF、通用型之輸入輸出(general-purpose input/output,GPIO)、通用定時器、主機并行接口(host port interface,HPI)等。
由于多光譜數據中的中心波長位置及干涉條紋周期均不同,而經典FFT算法[19-20]只能對等間隔采樣數據進行處理,所以采用NUFFT實現非均勻采樣,可減小由于輸入數據插值造成的誤差,并且可大幅縮短系統運算時間。非均勻干涉數據反演也可以理解成采用一組均勻傅里葉變換系數組合做近似的方式實現。尋求 xk-q/2(k=0,…,q)滿足:

式中,m≥2,ω=exp[-i2π/(mN)],[mc]為與 mc最接近的整數,c為采樣點采集得到的數值,q為正偶數,v為非均勻采樣點,Sj(j=-N/2,-N/2+1,…,N/2-1)為窗函數。在本系統中,針對多光譜數據進行采集與分析,數據在頻域中表現為具有緊支撐性。故采用高斯窗函數,有:

式中,b為常數參量,μ為窗函數調節參量,μ∈(0,1),將(1)式以矩陣形式表達:

式中,A為等效(1)式的相應矩陣,x(c)為干涉信號數據,ν(c)為干涉條紋數據矩陣。由于(1)式是超定方程組,不存在精確解,所以采用最小二乘法計算,獲得x(c)的最小二乘解有:

式中,a(c)=AHν(c),F(m,N,q)=AHA(H代表共軛轉置)。由上式推導可知,NUFFT的步驟為:(1)利用(3)式計算每個ωk(第k個ω,與(1)式中ω為同一變量)的展開系數xj(ωk);(2)計算傅里葉系數xj(ωk);(3)通過FFT計算將以上兩步的值乘以比例系數,從而近似的非均勻FFT有:=。
根據NUFFT的實現步驟,再結合FPGA控制獲取的光譜數據,FPGA通過產生同步驅動時鐘對多光譜數據進行同步采集。在模塊中設計了只讀存儲器(read-onlymemory,ROM)與計數器,ROM用于保存時鐘管理芯片對應額匹配碼,在上電復位后由計數器完成對時間段的讀取,數據處理采用NUFFT算法實現。若 CCD獲取的 N點干涉信號是 x(t),x′(t)是 x(t)被插值以后的新數據組,f(c)是核函數,t表示時間,則對光譜反演的算法流程如圖3所示。

Fig.3 Flow chart of NUFFT algorithm
FPGA控制AD7492完車對干涉條紋數據進行采集,在CONVST(AD7492芯片上的轉換開始控制端)信號下降沿時轉換,BUSY(AD7492芯片上的忙信號輸出端)信號置高,再通過 CS(chip select,AD7492芯片上的片選引腳)和RD(讀取)信號完成AD數據的輸出。系統通過CONVST的下降沿信號觸發轉換,轉換結束后將數據保存到隨機存取存儲器(random accessmemory,RAM)中,然后進行下一個數據的采集。基于Modelsim的仿真結果如圖4所示。

Fig.4 Simulation results of high-speed acquisition drive based on AD7492
FPGA的控制主要是針對“寫”信號控制(即引腳SLWR)和FIFO數據信號而言的,令其滿足異步讀寫時序關系,在每個周期內需將SLWR信號翻轉一次。數據通過雙口RAM讀取,讀地址隨時鐘增加自加一,然后在該信號的上升沿和下降沿均進行翻轉處理,從而保證異步傳輸時序邏輯關系,其Modelsim中的仿真結果如圖5所示。

Fig.5 FPGA control signal simulation results
由圖4和圖5中的仿真分析結果可知,由FPGA控制AD7492完成干涉條紋數據的高速采集以及對數據異步傳輸實現了控制。
完成時序邏輯控制的干涉條紋數字信號可以通過EMIF接口進入DSP,然后進行光譜復原的數據處理。在代碼調試器(code composer studio,CCS)環境中,632nm激光的干涉條紋與復原光譜的仿真結果如圖6所示。

Fig.6 Spectrum recovery operation simulation resultsa—interference fringes b—recovery spectra
由圖6a和圖6b可知,干涉條紋經FPGA采集傳輸給DSP后,光譜復原由DSP實現,仿真分析過程采用的是單特征波長的復現,當針對多特征波長時,需要引入NUFFT算法。

Fig.7 Experimental system physicalmap
實驗裝置由含多特征光譜的寬帶光源、干涉模塊、TVD3724型CCD、高速ADC采集模塊、FPGA+DSP處理模塊組成(Virtex-2型 FPGA與 TMS320C6748型DSP配合)。多特征激光器波長分別為632nm,880nm和980nm,整體實物如圖7所示。
為了實現多光譜數據同步采集與處理的要求,實驗中針對3個激光同時入射形成的混合干涉條紋進行解析處理。基于DSP的光譜處理結果如圖8a所示,針對同一混合光源采集得到的光譜數據采用Advantest公司的Q8344A型光譜儀進行對比,結果如圖8b所示。

Fig.8 FPGA+DSPmodule and spectrometer recurring spectrum comparison a—recurrence results of the system b—spectrometer reproduction results
本系統與光譜儀復現結果對比可知,本系統中由于采用了NUFFT算法,對于不同特征光譜的干涉條紋實施了分區采樣與插值,所以復現后的特征光譜分布更清晰,旁瓣抑制效果十分明顯,并且中心波長位置處信噪比更大。復現光譜的主要參量對比見表1。

Table1 Comparison ofmain parameters
通過表1中光譜復現主要參量可知,兩種方式的中心波長準確度相近,光譜儀略優于本系統。而對于信噪比而言,本系統在3個特征波長位置上均明顯優于對比用的光譜儀。由此可見,針對多光譜數據進行分段插值,再進行NUFFT處理,可以有效地提高光譜復現的精度。
針對多光譜數據處理時,同步采集與控制和非均勻采樣對復現光譜造成的影響進行了深入地分析與研究,并在此基礎上設計了干涉條紋數據處理中處理效果與處理速度之間的矛盾問題,設計了一種基于FPGA+DSP的同步采集與處理系統。該系統通過FPGA完成對高速ADC的同步控制,再由EMIF接口將數據導入DSP處理模塊,在DSP中利用NUFFT算法將不同特征波長的干涉條紋數據進行分段采樣與插值,通過標準化初始輸入信號抑制噪聲干擾,通過流水線工作方式提高光譜復原效率,最后,通過仿真與實驗驗證了系統的可行性,證明了其在多光譜快速處理方面具有一定的應用價值。