信息光學是20世紀60年代全息術與光學傳遞函數概念相結合,從傳統的、經典的波動光學中脫穎而出的學科,已成為光學和信息科學的重要分支.《信息光學數字實驗室(Matlab版)》將重點放在算法上,并以編程難度較低的Matlab語言為平臺實現編程運算.《信息光學數字實驗室(Matlab版)》共有17個實驗,用計算機數字實驗的模式逐個講授相關數值計算的原理、算法和編程實現,內容包括二維抽樣定理、二維光場分析、菲涅耳衍射積分各種算法、衍射受限透鏡成像過程、相干與非相干成像系統比較,以及同軸和離軸全息的記錄與再現,無透鏡傅里葉變換全息記錄與再現,數字全息數據處理基礎,菲涅耳數字全息再現像可控放大率重構,還有數字全息干涉計量,二維相位解包裹和計算全息等.為便于閱讀《信息光學數字實驗室(Matlab版)》,《信息光學數字實驗室(Matlab版)》附有光盤,給出所有Matlab程序及計算時涉及的圖像文件.
信息光學數字實驗室(Matlab版)》可作為高等院校光學、光學工程、光信息科學技術、電子科學與技術等專業的研究生教材,也可供相關專業的教師及科技工作者參考.
目錄
前
實驗一二維抽樣定理1
實驗二二維光場分析11
實驗三菲涅耳衍射積分的S FFT算法22
實驗四菲涅耳衍射積分的T FFT算法28
實驗五菲涅耳衍射積分的D FFT算法35
實驗六用衍射追跡實現衍射受限透鏡成像40
實驗七用相干傳遞函數實現衍射受限透鏡成像47
實驗八相干與非相干成像系統的比較56
實驗九空間濾波71
實驗十伽博同軸全息記錄與再現91
實驗十一離軸全息記錄與再現99
實驗十二無透鏡傅里葉變換全息記錄與再現109
實驗十三數字全息數據處理基礎119
實驗十四菲涅耳數字全息再現像可控放大率重構136
實驗十五全息干涉計量152
實驗十六二維相位解包裹172
實驗十七計算全息200
參考文獻218"
"實驗一二維抽樣定理
一 的
通過計算機仿真掌握二維抽樣定理(惠特克 香農抽樣定理,Whittaker Shanno samplin theorem),包括帶限函數的定義?連續函數的離散化(抽樣過程),以及利用抽樣函數重構原函數的過程和還原條件等. 二 理
隨時間或空間連續變化的物理量轉換為數字信號后,不再是隨時間或空間連續變化的物理量,而是一系列離散分布的抽樣值陣列.如果一個物理量可以用函數g(x,y)表示,那么該物理量的一系列離散分布的抽樣需要滿足什么條件才能重構原函數g(x,y)呢 這個答案最早由Whittaker給出,Shannon又將它用于信息論研究,即所謂的惠特克 香農抽樣定理.圖1 1是連續函數的抽樣及重構過程示意圖.
圖1 1連續函數的抽樣及重構
Whittaker和Shannon認為,如果抽樣點取得彼此非常靠近,就可以認為這些抽樣數據是原函數的表示.對于帶限函數只要抽樣點之間的間隔不大于某個上限,就可以地重建原函數.
所謂帶限函數(band limite functio ),是指這類函數的傅里葉變換只在頻率空間的有限區域R上不為零,圖1 2給出了一個典型的帶限函數在空域及頻域的分布,抽樣定理適用于帶限函數.
圖1 2帶限函數在空域及頻域的分布
考慮二維函數g(x y)在矩形格點上的抽樣,抽樣函數gs(x y)定義為
gs(x,y)=combxX,yYg(x,y)(1 1
式中comb為梳狀函數.抽樣函數由δ函數陣列給出,各個δ函數在x方向和y方向上的間隔分別為X和Y.二維函數的抽樣過程見圖1 3.
圖1 3二維函數的抽樣過程
設x和y方向上的頻率坐標為u和v,則gs(x y)的頻譜Gs(u v)可以從函數comb(x/X,y/Y)的變換式與函數g(x,y)的變換式的卷積給出.因為對式(1 1)兩邊同時作傅里葉變換有
圖1 4函數及其頻譜
假如函數g(x y)是帶限函數,它的頻譜Gs只在頻率空間(u v)的有限區域R上不為零 抽樣函數的頻譜不為零的區域可由在頻率平面內的每一個(n/X,m/Y)點的周圍劃出區域R來得到.如果X和Y足夠小,則1/X和1/Y的間隔就會足夠大,以保障相鄰的區域不會重疊.相關函數及其頻譜如圖1 4所示.
為了確定抽樣點之間的較大允許間隔,令2BX和2BY分別表示圍住區域R的最小矩形沿u方向和v方向上的寬度,如果抽樣點陣的間隔滿足
X≤12BX,Y≤12BY(1 6
可保障頻譜區域分開而不混頻,原函數可恢復,1/(2BX)和1/(2BY)為抽樣點陣在u方向和v方向上允許的較大間隔.
用頻域中寬度2BX和2BY的位于原點的矩形函數作為濾波函數
H(u,v)=rectu2BXrectv2BY(1 7
讓抽樣函數gs(x y)的頻譜Gs(u v)通過濾波器便能地復原G(u,v),如圖1 5所示.
G(u,v)=Gs(u,v)H(u,v)(1 8
圖1 5從抽樣函數的頻譜恢復原函數的頻譜
將G(u,v)=Gs(u,v)H(u,v)對應到空域,有
g(x,y)=gs(x,y)h(x,y)(1 9
式中
gs(x,y)=combxXcombyYg(x,y
=XY∑∞n=-∞∑∞m=-∞g(nX,mY)δ(x-nX)δ(y-mY)(1 10
而且(其中"F-1{}"或"iF{}"表示作逆傅里葉變換
h(x,y)=F-1rectu2BXrectv2BY=4BXBYsinc(2BXx)sinc(2BYy)(1 11
因此
g(x,y)=4BXBYXY∑∞n=-∞∑∞m=-∞g(nX,mY)sinc[2BX(x-nX)]sinc[2BY(y-mY)](1 12
當抽樣間隔取較大允許抽樣間隔,即
X=12BX,Y=12BY(1 13
最終得到
g(x,y)=∑∞n=-∞∑∞m=-∞g[n/(2BX),m/(2BY)]sinc{2BX[x-n/(2BX)]}
sinc{2BY[y-m/(2BY)]}(1 14
上式的結果稱為Whittaker Shannon抽樣定理.它表明,對帶限函數在一個間隔合適的矩形陣列上的抽樣值,在每一個抽樣點上插入一個由sinc函數的乘積構成的插值函數,其權重為相應點上g(x,y)的抽樣值,就可以地復原原函數.
圖1 6用sinc函數和抽樣函數重構原函數
如果帶限函數g(x,y 沿u方向和v方向上的帶寬分別為2BX和2BY,但抽樣時間隔X和Y過大不滿足式(1 6),即X>1/(2BX),Y>1/(2BY),稱為欠采樣(under sampling).此時1/X和1/Y的間隔不夠大,頻域中函數頻譜不為零的區域在每一個(n/X,m/Y)點的周圍將會相互重疊,于是,假設仍然用矩形函數rect(u/U)rect(v/V)作為濾波函數,如果取U≥2BX,V≥2BY,將出現混頻,反之,如果取U<2BX,V<2BY,將容易出現高頻丟失,兩者都不能正確復原原函數.圖1 6是按抽樣定理用sinc函數和抽樣函數重構原函數的示意圖. 三 容
1 利用Matlab中自帶的peaks函數創建一個二維帶限函數,通過傅里葉變換觀察其頻譜,并測量其帶寬,理解"帶限"的含義;
2 構建二維梳狀函數,并顯示其空間分布及頻譜,觀察改變梳狀函數的空間間隔——抽樣間隔后頻譜的變化;
3 利用梳狀函數對連續函數抽樣,得到該函數的抽樣函數,在空域觀察抽樣函數;
4 觀察抽樣函數的頻譜,并與原連續函數的頻譜作比較,體會抽樣函數的頻譜?梳狀函數的頻譜,以及連續函數的頻譜之間的卷積關系; (5 改變抽樣間隔,或調整原連續函數的帶寬,觀察抽樣函數頻譜的混疊和分離現象,總結其規律;
6 根據抽樣間隔構建二維矩函數濾波器,并對抽樣函數的頻譜完成濾波和逆傅里葉變換,觀察原連續函數的帶寬改變,或抽樣間隔改變后,利用抽樣函數重構原函數的效果,體會欠采樣,繼而理解抽樣定理. 四 參考程序及實驗結果
程序流程圖
參考程序](CX1_1
1 fxy=cos(peaks(256).2+pi)+1;%構建連續帶限函數
2 [rr,cc]=size(fxy);%計算連續函數的大小
3 figure,imshow(fxy,[])%顯示連續函數
4 F=fftshift(fft2(fxy));%計算連續函數的頻譜
5 figure,plot(abs(F(round(rr/2)+1,:))),%觀察帶寬
6 figure,plot(abs(F(:,round(cc/2)+1))),%觀察帶寬
7 figure,surfl(abs(F)),shadin interp,colormap(gray);%頻譜3D圖
8 combxy=zeros(rr,cc);%開始生成comb函數
9 X=4;Y=4;%抽樣間隔
10 fo n=1:Y:rr
11 fo m=1:X:cc
12 combxy(n,m)=1;
13 end
14 end
15 figure,imshow(combxy,[]);%顯示comb函數
16 C=fftshift(fft2(combxy));%計算comb函數的頻譜
17 figure,surfl(abs(C)),shadin interp,colormap(gray);%頻譜3D圖
18 gxy=zeros(rr,cc);%開始生成抽樣函數
19 gxy=fxy.combxy;%生成抽樣函數
20 figure,imshow(gxy,[]);%顯示抽樣函數
21 Gs=fftshift(fft2(gxy));%計算抽樣函數的頻率
22 figure,surfl(abs(Gs)),shadin interp,colormap(gray);%頻譜3D圖
23 figure,plot(abs(Gs(:,cc/2+1))),%觀察頻譜是否有重疊
24 By=round(rr/2/Y);Bx=round(cc/2/X);%二維矩函數濾波器的寬度
25 H=zeros(rr,cc);%開始生成二維矩函數濾波器
26 H(round(rr/2)+1-By:round(rr/2)+1+By-1,round(cc/2)+1-Bx:round(cc/2)+1+Bx-1)=1;
27 figure,imshow(H,[])%顯示二維矩函數濾波器
28 Gsyp=H.Gs;%濾波計算原函數頻譜
29 figure,surfl(abs(Gsyp)),shadin interp,colormap(gray);
30 gxyyp=XY.abs(ifft2(Gsyp));%逆傅里葉變換計算原函數
31 figure,imshow(gxyyp,[])%顯示還原的原函數
實驗結果]
圖1 7帶限函數為cos(peaks(256)2+π)+1,X=Y=4個像素的實驗結果
在上面的實驗中,從G(u,v)|v=0和G(u,v)|u=0兩條剖線圖可以看到:所選帶限函數cos[peaks(256)2+π]+1的帶寬2BX<64個像素,而2BY≈64個像素.因為圖像大小為256256像素,根據快速傅里葉變換的性質,傅里葉變換后較高空間頻率為256/2=12 m-1,頻域中相鄰兩個像素點的頻率差為128/128= m-1,換言之,所選帶限函數的帶寬2BX<6 m-1,而2BY≈6 m-1.按照抽樣定理,能夠重構原函數的條件是抽樣間隔至少滿足X=1/(2BX),Y=1/(2BY),所以至少選擇抽樣間隔Y=1/(2BY)=256/64=4個像素,為了方便,取X=Y=4個像素.
從Gs(u v)的三維分布圖以及Gs(u v)|u=0剖線圖可以看到,頻域中函數頻譜不為零的區域在每一個(n/X,m/Y)點的周圍沒有相互重疊,所以用頻域中寬度為2BX和2BY的位于原點的矩形函數作為濾波函數,可以直接得到原函數的頻譜,再作逆傅里葉變換即得到基本沒有失真的原帶限函數.
實驗中傅里葉變換用離散傅里葉變換(快速傅里葉變換FFT)完成,若空域抽樣間隔分別為X和Y,則離散信號頻譜的幅度應該是原函數頻譜的1/(XY),為保障二維FFT計算幅度正確,必須讓用FFT計算得到的結果乘以XY,為此實驗程序的第30行乘了XY.
如果加寬帶限函數的帶寬(方法是將所選帶限函數cos[peaks(256)2+π]+1中的2改為4,或更大的數值),同時保持抽樣間隔X=Y=4個像素不變,重復前面的運算,結果如下:
圖1 8帶限函數為cos[peaks(256)4+π]+1,X=Y=4個像素的實驗結果
此時從剖線圖 (u v |u=0可以看到帶限函數cos[peaks(256)4+π]+1的帶寬2BY≈128個像素,按照抽樣定理,能夠重構原函數的條件是抽樣間隔至少滿足Y=1/(2BY),所以至少選擇抽樣間隔Y=1/(2BY)=256/128=2個像素,但實驗中仍然取X=Y=4個像素,不滿足抽樣定理,應該發生欠采樣.
從Gs(u v)的三維分布圖以及Gs(u v |u=0剖線圖可以看到,頻域中函數頻譜不為零的區域在每一個(n/X,m/Y)點的周圍明顯相互重疊,所以用頻域中寬度為U=1/X=64和V=1/Y=64個像素的位于原點的矩形函數作為濾波函數,得到原函數的頻譜有明顯的高頻丟失,作逆傅里葉變換復原的原帶限函數當然也有明顯失真.
如果仍選帶限函數為cos[peaks(256)4+π]+1,抽樣間隔也仍取X=Y=4個像素,但頻域中用寬度為2B =128和2BY=128個像素的位于原點的矩形函數作為濾波函數,可以看到得到的原函數頻譜有明顯的混頻,復原的原帶限函數有嚴重失真,結果如圖1 9所示.
圖1 9實驗結果.帶限函數為cos[peaks(256)4+π]+1,X=Y=4個像素,頻域中用寬度為2BX=128和2BY=128個像素的矩形函數"
完美的購物體驗,下次還來
好
質量挺好,一看就是正版
好評
正版
嗯,這店主很令人滿意。支持一下。
光盤摔裂了
東西很好,物流方面也不粗暴,這次的東西很好沒有任何損壞。唯一遺憾的就是想再買的時候居然漲價了,雖然漲的不明顯,不過東西真的不錯。很滿意
感覺不錯,是自己所需要的
商品包裝精美,物流速度快,總體來說很棒!
內容豐富,值得擁有
非常好的一本書,作者寫得深入人心。當當正版書
內容不錯,滿意,給個好評吧!
可以。。。。
很好的一本書,最近正好需要,挑了不少,選中了這本。希望盡快上手!