傅里叶光学随机散斑原理 matlab仿真实现随机散斑
2019年12月26日
本人第三篇博客終于出來了!撒花慶祝。。。。。。
最近在學(xué)習(xí)傅里葉光學(xué)相關(guān)知識,將近期整理的知識點做一記錄。主要圍繞隨機(jī)散斑,因為主要為自己記錄,加之才疏學(xué)淺,實在難以做到表述嚴(yán)謹(jǐn),面面俱到,還望見諒。
這一篇將從以下幾個方面來整理,:
1,何為隨機(jī)散斑
在這里,我將“隨機(jī)散斑”定義為具有隨機(jī)位相的結(jié)構(gòu)光散斑,區(qū)別于有特定光學(xué)分布形式的散斑,例如哈達(dá)瑪(Hadamard)散斑、小波散斑等等,在實際實驗中,隨機(jī)散斑則為激光通過毛玻璃后,相位被隨即調(diào)制過的散斑樣式。
其具有一下特性:
- 分布隨機(jī)
- 分辨率可以做到更高
- 實際光路發(fā)散性強(qiáng),需要有透鏡組約束
2,隨機(jī)散斑的影響變量
我們將隨機(jī)散斑的生成過程簡單做圖:
隨機(jī)散斑產(chǎn)生機(jī)理圖如圖,激光經(jīng)過小孔約束后,照射到毛玻璃G.G.上,經(jīng)過毛玻璃疊加上隨即相位,再投影到遠(yuǎn)處。
在這里我們有輸入參數(shù):
? 波長 lambda
? 孔徑 w
? 傳播距離 z
為了方便描述,我們規(guī)定:
? Pattern為一張隨機(jī)散斑圖
? Speckle為一張圖中的一個散斑
? Pattern的像素大小為 M = 1024,對應(yīng)真實長度為 L1 = 1m
那么我們通過計算可得:
? 單個像素對應(yīng)真實長度為 dx1 = L1/M 米
? Speckle的真實尺寸 s = lambda*z/w 米
?則隨機(jī)散斑產(chǎn)生過程可以拆分為:
3,隨機(jī)散斑的數(shù)學(xué)推導(dǎo)
那么我們接下來就按照這幾步進(jìn)行數(shù)學(xué)推導(dǎo)。我們先來復(fù)習(xí)一下傅里葉變換公式:
請記住這個數(shù)學(xué)形式。
接下來,我們來看一下弗朗禾費傳播,因為在傅里葉光學(xué)中,遠(yuǎn)場傳播遵從弗朗禾費傳播條件:
距離遠(yuǎn)大于源場的平方
則夫瑯禾費傳播公式為:
經(jīng)過變量替換:
?
表達(dá)式可以理解為帶有變量替換的源場的傅里葉變換。
尺寸對應(yīng)關(guān)系:
由上式可得,根據(jù)源面參數(shù)求得觀測面邊長和采樣間隔:
觀測平面坐標(biāo)為:
由此,我們可以開始我們對隨機(jī)散斑的matlab仿真:
4,隨機(jī)散斑的matlab仿真
這個就不多說了,直接整!
%% Generate the Pattern M = 1024; Pattern_a = Create_speckels(650,0.1,0.32); Pattern = Pattern_a(:,:)/max(max(Pattern_a(:,:))); figure(1);imagesc(Pattern);colormap('gray');title('Patterns');其中M是分辨率,650,0.1,0.32分別對應(yīng)波長,孔徑和傳播距離。
函數(shù)Create_speckles附在代碼的下邊即可。
function [I2]=test_speckels(lam_value,w,z) L1=1; M=1024; dx1=L1/M; x1=-L1/2:dx1:L1/2-dx1; y1=x1; lambda=lam_value*10^-9; k=2*pi/lambda; s = lambda*z/w; [X1,Y1] = meshgrid(x1,y1); u1 = circle_(X1/(2*w),Y1/(2*w)).*exp(1j*2*pi*rand(M)); [u2]=propFF(u1,L1,lambda,z); I2=abs(u2.^2);關(guān)于弗朗禾費的仿真函數(shù),大家可以參考我給參考書籍,在本文最后的鏈接部分,如果大家懶得查閱書籍,可以從我給的連接中自行下載我寫好的代碼,直接粘貼到主體代碼下邊,就可以直接運行出結(jié)果,而且代碼有注釋方便閱讀。不過需要少量下載幣,但是肯定是可以運行的,知識無價,還望諒解。
最終得到的散斑圖像為:
看到這里,第三篇博客就結(jié)束了,主要在理論和仿真層面介紹了隨機(jī)散斑,還望批評指正。
參考書籍:《傅里葉光學(xué)導(dǎo)論》Joseph,W,Goodman?https://item.jd.com/12004623.html
代碼下載鏈接:https://download.csdn.net/download/weixin_40678482/12055524
總結(jié)
以上是生活随笔為你收集整理的傅里叶光学随机散斑原理 matlab仿真实现随机散斑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 调用未知DLL中的导出函数
- 下一篇: matlab cdf,Matlab 简单