詳解如何利用FPGA設(shè)計(jì)靜態(tài)實(shí)時(shí)光譜采集與處理系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要: 為了實(shí)時(shí)獲取靜態(tài)邁克爾遜干涉儀得到的光譜信息,設(shè)計(jì)了基于FPGA的實(shí)時(shí)光譜采集分析系統(tǒng)。在Xilinx FPGA芯片上實(shí)現(xiàn)了干涉條紋到光譜數(shù)據(jù)的實(shí)時(shí)處理。在算法處理過程中,實(shí)現(xiàn)了干涉條紋濾波去噪、快速傅里葉變換、相位標(biāo)定、光譜數(shù)據(jù)傳輸?shù)饶K化功能。實(shí)驗(yàn)結(jié)果顯示,系統(tǒng)可以高速采集并實(shí)時(shí)處理光譜數(shù)據(jù)。
關(guān)鍵詞:光譜探測(cè);靜態(tài)邁克爾遜干涉儀;FPGA;Verilog HDL
靜態(tài)邁克爾遜干涉儀是在傳統(tǒng)邁克爾遜干涉儀的基礎(chǔ)上改進(jìn)的一種空間調(diào)制型光譜獲取裝置,將傳統(tǒng)動(dòng)鏡采用一個(gè)傾斜很小角度的靜鏡代替,從而產(chǎn)生聯(lián)系變化的光程差,最終獲得待測(cè)光源的光譜信息。由于其沒有機(jī)械移動(dòng)或掃描結(jié)構(gòu),所以結(jié)構(gòu)簡(jiǎn)單緊湊,同時(shí)具有良好的穩(wěn)定性、抗震動(dòng)和抗干擾能力,這為其應(yīng)用在更廣泛的生產(chǎn)生活領(lǐng)域提供了有利條件[1-2]。與此相似的靜態(tài)型光譜儀還有靜態(tài)傅里葉變換光譜儀[3]、沃拉斯頓分光光譜儀[4]、靜態(tài)Sagnac三角光譜儀[5]、光柵光譜儀[6]等。無論哪種靜態(tài)光譜儀都需要一個(gè)能夠?qū)崟r(shí)采集干涉條紋并且實(shí)時(shí)處理分析,得到光譜數(shù)據(jù)的處理系統(tǒng),否則將喪失靜態(tài)光譜儀的一大優(yōu)勢(shì)——實(shí)時(shí)性。如果想實(shí)現(xiàn)實(shí)時(shí)處理的功能,要求在采集數(shù)據(jù)及處理分析算法都相應(yīng)提高,這也是本文的主要研究?jī)?nèi)容。
FPGA(Field Programmable Gate Array)為現(xiàn)場(chǎng)可編程門陣列器件[7],是在GAL、PAL、CPLD等可編程芯片的基礎(chǔ)上更集成化的產(chǎn)物。由于其本身就是硬件,所以具有數(shù)據(jù)處理快、靈活性高、集成度好等優(yōu)點(diǎn)[8]。它克服了定制電路的缺點(diǎn),又解決了原有可編程器件的門電路數(shù)有限的問題,從而被廣泛地應(yīng)用在數(shù)字信號(hào)處理領(lǐng)域。 目前,對(duì)于靜態(tài)干涉條紋的采集及處理,主要有三種處理手段: (1)干涉條紋灰度數(shù)據(jù)由數(shù)據(jù)采集卡采集并傳遞給PC機(jī)[9],采用MATLAB、LabVIEW等分析軟件實(shí)現(xiàn)對(duì)干涉條紋的光譜分析; (2)采用定制的專用FFT芯片[10],再從CCD等光電器件輸出后直接進(jìn)入FFT芯片完成數(shù)據(jù)處理;(3)采用可編程數(shù)字器件,如DSP、FPGA等,通過編程實(shí)現(xiàn)采集干涉條紋及FFT等算法的數(shù)據(jù)處理[11]。三種方法各有特點(diǎn),方法(1)使用簡(jiǎn)單、在PC機(jī)上實(shí)現(xiàn)的功能全,但不能脫機(jī)工作、系統(tǒng)復(fù)雜,便攜性差;方法(2)結(jié)構(gòu)緊湊、效率高、實(shí)時(shí)性好,但靈活性差、可移植性差,并且對(duì)于大點(diǎn)數(shù)的FFT不適合采用此法;方法(3)從靈活度、結(jié)構(gòu)性能、可移植性等方面看都相當(dāng)適中,是目前應(yīng)用開發(fā)較多的一種形式。針對(duì)本系統(tǒng)研究?jī)?nèi)容要求較高的實(shí)時(shí)性,選用硬件編程器件FPGA作為數(shù)字信號(hào)處理芯片,可以實(shí)現(xiàn)更高速、更靈活的系統(tǒng)性能。
1 靜態(tài)邁克爾遜干涉儀的原理及結(jié)構(gòu)
靜態(tài)邁克爾遜干涉儀的結(jié)構(gòu)原理如圖1所示。靜態(tài)邁克爾遜干涉系統(tǒng)是在傳統(tǒng)邁克爾遜干涉系統(tǒng)的基礎(chǔ)上,將原有動(dòng)鏡變?yōu)閮A斜一定角度的固定反射鏡,如圖中反射鏡1所示。當(dāng)光線1入射系統(tǒng)后,由分束鏡分為兩束光,一部分由反射鏡1反射回柱面鏡,這束光由于反射鏡1存在一定的夾角而非原路返回,其會(huì)與光線2經(jīng)反射鏡2反射的光線發(fā)生相干,形成干涉條紋。其他光線也以此類推,與其他光線發(fā)生干涉,最終在整個(gè)柱面鏡上形成靜態(tài)干涉條紋,再由柱面鏡匯聚到CCD上,采集得到干涉條紋的灰度數(shù)據(jù)。CCD采集的數(shù)據(jù)傳入FPGA中,在硬件FPGA芯片中完成干涉條紋的濾波、去噪,再通過FFT算法將干涉條紋中的頻譜信息提取出來,最終顯示出其結(jié)果。
在實(shí)際情況中,干涉條紋通過引入修正因子,可將光源強(qiáng)度表示為:
2 FPGA處理系統(tǒng)
2.1 總體設(shè)計(jì)
對(duì)于傅里葉變換的光譜獲取需要進(jìn)行實(shí)時(shí)處理,即當(dāng)?shù)玫焦庠锤缮鏃l紋的信號(hào)后,處理系統(tǒng)需要在處理當(dāng)前數(shù)據(jù)時(shí)同時(shí)接收下一幀的干涉條紋數(shù)據(jù),這就需要系統(tǒng)具備高速的數(shù)據(jù)處理能力??删幊踢壿嬈骷﨔PGA具有高速并行處理能力,可完成系統(tǒng)實(shí)時(shí)采集及處理的要求。干涉條紋的灰度數(shù)據(jù)由CCD探測(cè)器采集傳入FPGA芯片中,在芯片中完成濾波去噪、快速傅里葉變換、相位校正及標(biāo)定等算法。系統(tǒng)采用AViiVA M1型線陣CCD探測(cè)器,包括1 024個(gè)像元,8/10 bit數(shù)字輸出,可探測(cè)波長(zhǎng)范圍為400~1 100 nm。設(shè)計(jì)了實(shí)時(shí)光譜采集及片上處理的系統(tǒng),其原理圖如圖2所示。
模塊一為干涉條紋的采集部分,由驅(qū)動(dòng)控制對(duì)AViiVA M1型線陣CCD探測(cè)器進(jìn)行時(shí)鐘脈沖的提供和控制。當(dāng)系統(tǒng)開始運(yùn)行時(shí),其提供起始控制信號(hào)(st)、時(shí)鐘信號(hào)(clk)、觸發(fā)信號(hào)(trgi及trgd)等。模擬輸出信號(hào)可通過示波器觀察采集得到的靜態(tài)干涉條紋,數(shù)字化后傳給FPGA。模塊二為光譜分析處理模塊,為了使處理速度達(dá)到較高水平,設(shè)計(jì)了串并轉(zhuǎn)換方式,將數(shù)據(jù)導(dǎo)入雙端口RAM緩存中,當(dāng)FPGA芯片控制數(shù)據(jù)并行讀取時(shí),數(shù)據(jù)輸入FFT模塊并處理,實(shí)現(xiàn)數(shù)據(jù)的快速傅里葉變換。變換后的頻譜信息經(jīng)過預(yù)先編寫的相位校正和光譜標(biāo)定程序而獲得準(zhǔn)確的光譜分布。
2.2 切趾處理
由于傅里葉變換過程是針對(duì)無限大數(shù)據(jù)的,但實(shí)際輸入的數(shù)據(jù)量是有限的,所以干涉圖樣的采樣就相當(dāng)于與一個(gè)矩形函數(shù)相乘,也就是頻域中光譜和矩形函數(shù)的SINC卷積。但由于這樣做會(huì)導(dǎo)致光譜的失真變形,所以通常采用加窗的處理方式,窗函數(shù)選取的好可以使光譜盡量少地泄露。
在MATLAB仿真軟件中,通過對(duì)一組660 nm激光干涉條紋數(shù)據(jù)進(jìn)行加窗處理,分別采用漢明窗、三角窗、加布萊克曼窗與不加窗的情況進(jìn)行對(duì)比,得到如圖3所示的頻譜相應(yīng)。
切趾函數(shù)的選擇需要注意主瓣寬度盡量窄,旁瓣幅值盡量低。由圖可以看出,加三角窗中心處產(chǎn)生隔斷,而加布萊克曼窗時(shí)峰峰值受到抑制,相比之下,加漢明窗比較理想,所以本系統(tǒng)中采用漢明窗。窗體程序是先由MATLAB計(jì)算漢明窗的值并用二進(jìn)制補(bǔ)碼表示,然后在FPGA的某一個(gè)ROM存儲(chǔ)器中存放初始化的窗函數(shù)值,最后通過乘法器完成切趾功能。
2.3 FFT算法模塊