郗洪柱,孔德仁,王偉魁,樂貴高
(1.航天長征火箭技術(shù)有限公司傳感器部,北京 100076;2.南京理工大學(xué)機(jī)械工程學(xué)院,江蘇 南京 210094)
非接觸式光學(xué)測(cè)量通常利用光干涉原理測(cè)量各種物體的參數(shù),如材料折射率、光學(xué)元件特征參數(shù)、薄膜厚度、微位移以及痕量氣體濃度等[1-6],具有很高的測(cè)試靈敏度及準(zhǔn)確度。在動(dòng)態(tài)干涉測(cè)量中,需要通過干涉條紋相位信息獲取反應(yīng)物體狀態(tài)的某一物理量。目前干涉條紋相位提取算法較多,根據(jù)提取相位所需干涉條紋圖幅數(shù),分為單幅和多幅干涉條紋相位提取算法。單幅干涉條紋相位提取算法僅需一幅干涉條紋圖即可提取相位信息,主要應(yīng)用于動(dòng)態(tài)和對(duì)實(shí)時(shí)性要求較高的測(cè)量上,包括同步法、鎖相法、傅里葉變換法、正則化相位跟蹤法、希爾伯特變換、遺傳算法和小波變換[7-10]等;多幅干涉條紋相位提取算法需要多幅干涉條紋圖才能得到一次相位信息,主要應(yīng)用于靜態(tài)和對(duì)實(shí)時(shí)性要求不高的測(cè)量上,主要指相移法,包括Hariharan五步算法、Carre算法和最小二乘法等[11]。相移法操作過程復(fù)雜,且對(duì)相移或空間位置精度要求較高[12];傅里葉變換法及希爾伯特變換法等動(dòng)態(tài)測(cè)量算法復(fù)雜度較高,存儲(chǔ)和參與運(yùn)算的數(shù)據(jù)量大,在可編程器件上占用資源較多,運(yùn)算速度受到一定影響。
本文構(gòu)建的中心五點(diǎn)相位提取算法僅需一幅干涉條紋,利用線陣干涉條紋中五個(gè)特征點(diǎn)光強(qiáng)計(jì)算其相位,即最大點(diǎn)、最大點(diǎn)兩側(cè)最近的極小點(diǎn)、以及上述三點(diǎn)間兩中間點(diǎn)。固定上述五個(gè)特征點(diǎn)位置,獲取新的干涉條紋對(duì)應(yīng)五點(diǎn)光強(qiáng),重復(fù)上述計(jì)算,即可獲取連續(xù)變化的相位。同希爾伯特相位提取算法比,相位提取過程數(shù)據(jù)位數(shù)擴(kuò)展少,避免了截?cái)嗾`差;同F(xiàn)FT法比,不涉及乘法器,無需存儲(chǔ)大量數(shù)據(jù);此外,算法無需去除干涉條紋直流分量,簡化了計(jì)算量。相位求解精度高,計(jì)算過程耗費(fèi)資源更少,速度更快,實(shí)時(shí)性能更佳,便于更廣泛應(yīng)用。
分別用I(x,y)、Idc(x,y)、Iac(x,y)、φ1(x,y)和φ2(x,y)表示像素坐標(biāo)(x,y)處光強(qiáng)度、光強(qiáng)直流分量、交流分量、測(cè)量光束相位和參考光束相位,則干涉光強(qiáng)公式為:
I(x,y)=Idc(x,y)+Iac(x,y)cos[φ1(x,y)-φ2(x,y)]
(1)
為減小相移誤差的影響,Hariharan五步法需要五幅同一像素處相位相差π/2的干涉條紋作為計(jì)算對(duì)象,通常選擇測(cè)量光束和參考光束間相位差Δφ(x,y)=φ1(x,y)-φ2(x,y)為0、π/2、π、3π/2和2π。五步法求測(cè)量相位的計(jì)算公式為[13]:
(2)
上述方法需同一點(diǎn)處連續(xù)五幅相位相差π/2的干涉條紋光強(qiáng),需控制獲取干涉條紋時(shí)機(jī),定位特征點(diǎn)光強(qiáng)值才能得到測(cè)量光束相位,硬件成本高,限制了其在實(shí)時(shí)干涉測(cè)量領(lǐng)域的應(yīng)用。考慮從單幅干涉條紋中獲取相位相差π/2的五點(diǎn)光強(qiáng),即:
(3)
在單幅干涉條紋中尋找五點(diǎn)求測(cè)量光束相位,各點(diǎn)相位依次相差π/2??紤]到干涉條紋光強(qiáng)的余弦特性,為提高分辨率和檢測(cè)精度,選擇任一幅干涉條紋最大點(diǎn)處作為相位π點(diǎn),選取π點(diǎn)左右兩個(gè)最近的極小值處分別作為相位0和2π點(diǎn)。為保證取點(diǎn)對(duì)稱性,π/2點(diǎn)在0點(diǎn)和π點(diǎn)中間取,3π/2點(diǎn)在π點(diǎn)和2π點(diǎn)中間取。由式(3)可明顯得到關(guān)于I2和I4的如下約束:
I2+I4=I1+I3
(4)
在取π/2和3π/2點(diǎn)時(shí)使對(duì)應(yīng)點(diǎn)光強(qiáng)值盡量滿足式(4)。
由于光源的非單色性使干涉條紋光強(qiáng)最高處同一方向依次分布的亮條紋寬度變大,最大光強(qiáng)變小,最終在數(shù)個(gè)明暗條紋后,明暗條紋光強(qiáng)一致,可見度為零。另外由于干涉條紋相位存在畸變[15],受物體表面特征和投射角變化的影響,條紋的灰度分布也會(huì)有不同程度的非對(duì)稱退化[16],最大值左右兩側(cè)最近的兩個(gè)極小值并不相同(即I1≠I5),故在單幅干涉條紋上,各像素處的Idc(x,y)和Iac(x,y)并不完全一致,視為基本不變時(shí)將會(huì)引入誤差。將五點(diǎn)處直流分量Idc(x,y)視為常量,僅考慮不同位置處交流分量Iac(x,y)的不一致性,定義誤差系數(shù)c為相位解算結(jié)果的正切值同真值的正切值之差后除以真值的正切值,即:
(5)
采用非對(duì)稱參數(shù)a作為誤差系數(shù)c的評(píng)價(jià)指標(biāo),單位為像素。分別用mL、mR和max表示中心五點(diǎn)法中左極小值、右極小值和最大值像素位置,則非對(duì)稱參數(shù)定義為:
(6)
非對(duì)稱參數(shù)a大于零,干涉條紋主峰位置偏左,誤差系數(shù)c大于零,相位解算結(jié)果偏大;非對(duì)稱參數(shù)a小于零,干涉條紋主峰位置偏右,誤差系數(shù)c小于零,相位解算結(jié)果偏??;非對(duì)稱參數(shù)a絕對(duì)值越大,相位解算結(jié)果偏差越大。當(dāng)每幅干涉條紋非對(duì)稱參數(shù)a固定時(shí),誤差系數(shù)c固定,根據(jù)式(5)可知,x固定不變,進(jìn)一步,為方便分析,可固定Iac2、Iac3和Iac1,即認(rèn)為I1、I2和I3處于余弦函數(shù)上,根據(jù)式(4)即可確定I4的值,I5的選取受“最大值右側(cè)最近極小值”約束,按照理想余弦函數(shù),則I5=I1,但由于實(shí)際干涉條紋非對(duì)稱退化現(xiàn)象,兩者并不相等。非對(duì)稱退化是系統(tǒng)固有現(xiàn)象,可視為系統(tǒng)誤差,因此在這種情況下,相位解算誤差變?yōu)橄到y(tǒng)誤差,通過后續(xù)標(biāo)定可一定程度上消除該誤差的影響,但會(huì)使相位結(jié)果與待測(cè)物理量間的關(guān)系變復(fù)雜。
利用計(jì)算機(jī)產(chǎn)生512像素點(diǎn)線陣干涉條紋,干涉條紋攜帶的相位滿足下式:
(7)
干涉條紋每周期12個(gè)像素點(diǎn),直流偏置為0.6,幅值為0.5,如式(8)所示,使用時(shí)對(duì)其中段加海明窗,前后兩段減小窗函數(shù)并抑制原始信號(hào)。
(8)
圖1為數(shù)值模擬結(jié)果。圖1(a)為不帶噪聲的干涉條紋模擬圖,含有256幅線陣512點(diǎn)干涉條紋,每幅條紋攜帶一個(gè)式(7)所述初始相位信息,加窗使得圖1(a)中間幾條干涉條紋明顯,兩端干涉條紋很弱,滿足實(shí)際線陣干涉條紋要求;為了更好地分析中心五點(diǎn)法效果,對(duì)模擬移相干涉法(PSI)、快速傅里葉變換(FFT)法、中心五點(diǎn)法和兩次希爾伯特變換法的相位解算結(jié)果繪制于圖1(b)中。由圖1(b)可知,中心五點(diǎn)法相位解算結(jié)果最接近原始相位變化,兩者差值平方和(Sum-of-Squared Differences,SSD)為0.1114,如表1所示,在三者中最小;FFT法相比兩次希爾伯特變換法,結(jié)果更接近原始相位變化,前者SSD為13.1001,明顯小于后者SSD值107.9121;后兩種算法均在連續(xù)相位解算任務(wù)的初始數(shù)十幀干涉條紋中與原始相位相差較小,隨著幀數(shù)增加,兩次希爾伯特變換法相位解算結(jié)果偏離原始相位值變大。
圖1 不帶噪聲數(shù)值模擬結(jié)果
表1 不帶噪聲時(shí)三種方法分別與移相干涉法對(duì)應(yīng)點(diǎn)差值平方和
對(duì)圖1(a)中不帶噪聲的干涉條紋施加對(duì)應(yīng)點(diǎn)數(shù)的高斯噪聲,噪聲均值為0,方差為每幀干涉條紋均值。圖2(a)為帶高斯噪聲的干涉條紋模擬圖,圖2(b)為上述幾種方法的相位處理結(jié)果。可知,中心五點(diǎn)法和兩次希爾伯特變換法受噪聲影響明顯,相位解算結(jié)果均出現(xiàn)波動(dòng),但兩次希爾伯特變換法波動(dòng)更大,FFT法受噪聲影響小。如表2所示,與表1對(duì)比可知噪聲引起中心五點(diǎn)法和FFT法與PSI的SSD值均變大,噪聲使兩次希爾伯特變換法向靠近PSI結(jié)果方向波動(dòng),因此其SSD反而減小。綜合來看,噪聲情況下,仍然是中心五點(diǎn)法相位解算結(jié)果最接近原始相位變化,此外,FFT法優(yōu)于兩次希爾伯特變換法。
(a)帶高斯噪聲的干涉條紋模擬
圖2 帶噪聲數(shù)值模擬結(jié)果
表2 帶高斯噪聲時(shí)三種方法分別與移相干涉法對(duì)應(yīng)點(diǎn)差值平方和
利用FPGA實(shí)現(xiàn)512點(diǎn)CMOS圖像傳感器的高速驅(qū)動(dòng),并對(duì)干涉條紋高速采集和處理。干涉條紋由MEMS工藝硅懸臂梁在密閉光聲腔內(nèi)產(chǎn)生。懸臂梁振動(dòng)時(shí)在CMOS圖像傳感器上產(chǎn)生相位變化的干涉條紋。實(shí)驗(yàn)系統(tǒng)主要由兩塊控制電路板,一組量子級(jí)聯(lián)激光器及其驅(qū)動(dòng)模塊,一組光聲池模塊組成。整個(gè)系統(tǒng)實(shí)驗(yàn)平臺(tái)及現(xiàn)場(chǎng)如圖3(a)所示。
實(shí)驗(yàn)中一組干涉條紋被CMOS圖像傳感器轉(zhuǎn)換后經(jīng)采樣率為4 MHz的高速AD(AD9240,14 bits)采集,平滑連線后如圖3(b)所示,圖中橫坐標(biāo)像素點(diǎn)對(duì)應(yīng)的縱坐標(biāo)像素值用圓圈標(biāo)注。計(jì)算每幅干涉條紋非對(duì)稱參數(shù)a,為固定值0.5,因此干涉條紋非對(duì)稱現(xiàn)象引起的相位解算誤差是系統(tǒng)誤差,可利用標(biāo)定手段一定程度上消除該誤差的影響。
(a)實(shí)驗(yàn)平臺(tái)
(b)線陣干涉條紋
取連續(xù)20幅干涉條紋,濾除直流分量,如圖4(a)所示。利用中心五點(diǎn)法計(jì)算濾波前后對(duì)應(yīng)各幅干涉條紋的相位,如圖4(b)所示,圖中“Before”為濾波前的20個(gè)相位解算結(jié)果,“After”為濾波后的20個(gè)相位解算結(jié)果,兩者吻合度高,濾波前相對(duì)于濾波后相位解算平均差值為0.06 %,約為9.55×10-5個(gè)波長,誤差非常小[17],可忽略。當(dāng)直流分量較大,如為交流分量3倍時(shí),濾波前后相位差值均值為3.2×10-11,亦可忽略。故而中心五點(diǎn)法無需濾除干涉條紋直流分量。
(a)去直流后干涉條紋
(b)干涉條紋濾波前后中心五點(diǎn)法相位結(jié)果
分別利用中心五點(diǎn)法、兩次希爾伯特變換法和FFT法提取線陣干涉條紋相位信息,將兩次希爾伯特變換得到的相位取反,前兩種算法相位結(jié)果減去各自均值,對(duì)FFT法得到的相位結(jié)果的幅值和偏置做調(diào)整,三種算法的結(jié)果如圖5所示。中心五點(diǎn)法和FFT法相位解算結(jié)果完全重合,上述兩種方法的結(jié)果與兩次希爾伯特變換法基本重合,定義峰峰值為相對(duì)分辨率,則中心五點(diǎn)法和FFT法相對(duì)分辨率為0.1643,希爾伯特變換法相對(duì)分辨率為0.1681,上述相對(duì)分辨率相當(dāng),前后差值占比僅約為2.26 %。
希爾伯特變換通過有限長單位沖激響應(yīng)濾波器實(shí)現(xiàn),經(jīng)過兩次希爾伯特變換,輸出結(jié)果位數(shù)將會(huì)翻幾倍。在除法和反正切運(yùn)算中均增大了運(yùn)算量,對(duì)過程和結(jié)果數(shù)據(jù)的截取還會(huì)造成計(jì)算精度下降。FFT法通過調(diào)用Xilinx的“Fast Fourier Transform”核,按照512點(diǎn),流水線模式,結(jié)果四舍五入,自然序列輸出方式配置實(shí)現(xiàn)所需功能,占用較多乘法器,流水線模式可提高運(yùn)算速度,但級(jí)數(shù)越多資源占用越大。中心五點(diǎn)法僅是對(duì)數(shù)據(jù)做加減運(yùn)算,并未增加除法和反正切運(yùn)算量,不涉及乘法器的使用,在資源和運(yùn)算開銷上較前兩者具有明顯優(yōu)勢(shì)。
圖5 中心五點(diǎn)法、兩次希爾伯特變換法和FFT法相位
在同一FPGA平臺(tái)(Xilinx公司Virtex-II系列300萬門FPGA)實(shí)現(xiàn)中心五點(diǎn)法(No.1)、兩次希爾伯特變換法(No.2)和FFT法(No.3),算法均包含模數(shù)芯片驅(qū)動(dòng)、線陣干涉條紋圖像傳感器驅(qū)動(dòng)及解包裹模塊,資源占用見表3。FFT法中僅FFT核即消耗12個(gè)乘法器(MULT18×18),5個(gè)塊隨機(jī)存儲(chǔ)器(Block RAMs)以及大約3165個(gè)總邏輯單元(Slices)。綜合分析,FFT法在Block RAMs和MULT18×18上的消耗量遠(yuǎn)多于另兩種;FFT法和兩次希爾伯特變換法在觸發(fā)器(Flip-Flop)、四輸入查找表(4-LUT)以及Slices使用量上均遠(yuǎn)多于中心五點(diǎn)法??傮w而言,中心五點(diǎn)法相比希爾伯特變換法和FFT法分別節(jié)省22 %和27 %的邏輯資源。
表3 三種算法邏輯資源開銷
在100 MHz系統(tǒng)時(shí)鐘下,從一幅干涉條紋采集完畢到相位解算結(jié)果輸出,中心五點(diǎn)法消耗90個(gè)系統(tǒng)時(shí)鐘,即900 ns;兩次希爾伯特變換法消耗95個(gè)系統(tǒng)時(shí)鐘,即950 ns;FFT法消耗512個(gè)系統(tǒng)時(shí)鐘,即5120 ns。前兩種方法時(shí)間瓶頸均在除法和反正切模塊,前者消耗59個(gè)系統(tǒng)時(shí)鐘,此外,五點(diǎn)數(shù)據(jù)需先從塊RAM中讀取,占用約19個(gè)系統(tǒng)時(shí)鐘;后者消耗66個(gè)系統(tǒng)時(shí)鐘。FFT法耗時(shí)最多,時(shí)間主要消耗在將干涉條紋512點(diǎn)數(shù)據(jù)在系統(tǒng)時(shí)鐘下串行加載至模塊中??傊?中心五點(diǎn)法較兩次希爾伯特變換法和FFT法在運(yùn)行速度上分別具有約5 %和469 %的優(yōu)勢(shì)。
基于五點(diǎn)相位求解算法,構(gòu)建了一種快速、高精度單幅干涉條紋相位提取算法。該算法通過單幅線陣干涉條紋上最大點(diǎn)、最大點(diǎn)兩側(cè)最近極小點(diǎn)、以及上述三點(diǎn)間兩中間點(diǎn)計(jì)算干涉條紋相位。該算法過程數(shù)據(jù)位數(shù)擴(kuò)展少,不涉及乘法器,不需存儲(chǔ)大量數(shù)據(jù),無需去除干涉條紋直流分量,直流分量不濾除引起的相位精度誤差僅為9.55×10-5λ,簡化了計(jì)算量。數(shù)值模擬和實(shí)驗(yàn)測(cè)試結(jié)果表明,該算法同F(xiàn)FT法的相對(duì)分辨率一致,同兩次希爾伯特變換算法有約2.26 %的區(qū)別,在FPGA平臺(tái)運(yùn)行速度比后兩者分別快469 %和5 %,資源消耗分別節(jié)省27 %和22 %,具有相位解算精度高,運(yùn)算速度快,資源開銷低的優(yōu)點(diǎn),對(duì)單幅干涉條紋相位提取具有重要指導(dǎo)意義。