傅里葉光學隨機散斑原理 & matlab仿真實現隨機散斑

2019年12月26日

本人第三篇博客終於出來了!撒花慶祝。。。。。。

最近在學習傅里葉光學相關知識,將近期整理的知識點做一記錄。主要圍繞隨機散斑,因爲主要爲自己記錄,加之才疏學淺,實在難以做到表述嚴謹,面面俱到,還望見諒。

這一篇將從以下幾個方面來整理,:

  1. 何爲隨機散斑
  2. 隨機散斑的影響變量
  3. 隨機散斑的數學推導
  4. 隨機散斑的matlab仿真

1,何爲隨機散斑

在這裏,我將“隨機散斑”定義爲具有隨機位相的結構光散斑,區別於有特定光學分佈形式的散斑,例如哈達瑪(Hadamard)散斑、小波散斑等等,在實際實驗中,隨機散斑則爲激光通過毛玻璃後,相位被隨即調製過的散斑樣式。

其具有一下特性:

  • 分佈隨機
  • 分辨率可以做到更高
  • 實際光路發散性強,需要有透鏡組約束

2,隨機散斑的影響變量

我們將隨機散斑的生成過程簡單做圖:

隨機散斑產生機理圖

如圖,激光經過小孔約束後,照射到毛玻璃G.G.上,經過毛玻璃疊加上隨即相位,再投影到遠處。

在這裏我們有輸入參數:

  波長 lambda

  孔徑 w

  傳播距離 z

爲了方便描述,我們規定:

  Pattern爲一張隨機散斑圖

  Speckle爲一張圖中的一個散斑

  Pattern的像素大小爲 M = 1024,對應真實長度爲 L1 = 1m

那麼我們通過計算可得:

  單個像素對應真實長度爲 dx1 = L1/M

  Speckle的真實尺寸 s = lambda*z/w

 則隨機散斑產生過程可以拆分爲:

  1. 以光源直徑得到一個圓形光斑圖
  2. 在光斑上疊加上隨機相位
  3. 攜帶有隨機相位信息的光斑通過夫琅禾費傳輸獲得觀測平面的散斑分佈
  4. 提取散斑分佈的功率譜

3,隨機散斑的數學推導

那麼我們接下來就按照這幾步進行數學推導。我們先來複習一下傅里葉變換公式:

請記住這個數學形式。

接下來,我們來看一下弗朗禾費傳播,因爲在傅里葉光學中,遠場傳播遵從弗朗禾費傳播條件:

距離遠大於源場的平方

則夫琅禾費傳播公式爲:

經過變量替換:

 

表達式可以理解爲帶有變量替換的源場的傅里葉變換。

尺寸對應關係:

由上式可得,根據源面參數求得觀測面邊長和採樣間隔:

觀測平面座標爲:

由此,我們可以開始我們對隨機散斑的matlab仿真:

4,隨機散斑的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分別對應波長,孔徑和傳播距離。

函數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); 

關於弗朗禾費的仿真函數,大家可以參考我給參考書籍,在本文最後的鏈接部分,如果大家懶得查閱書籍,可以從我給的連接中自行下載我寫好的代碼,直接粘貼到主體代碼下邊,就可以直接運行出結果,而且代碼有註釋方便閱讀。不過需要少量下載幣,但是肯定是可以運行的,知識無價,還望諒解。

最終得到的散斑圖像爲:

看到這裏,第三篇博客就結束了,主要在理論和仿真層面介紹了隨機散斑,還望批評指正。

參考書籍:《傅里葉光學導論》Joseph,W,Goodman https://item.jd.com/12004623.html

代碼下載鏈接:https://download.csdn.net/download/weixin_40678482/12055524

 
發佈了3 篇原創文章 · 獲贊 6 · 訪問量 2405
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章