簡(jiǎn)易MATLAB光學(xué)仿真:菲涅爾衍射數(shù)值模擬
本文提綱:菲涅爾衍射的理論公式、MATLAB部分程序、仿真效果圖

畢設(shè)在茍,要交什么愚蠢的“周進(jìn)展報(bào)告”,唉我真是服了

一、菲涅爾衍射的理論公式
1、歷史上最早的菲涅爾衍射理論公式
? ? ? ? 歷史上,波動(dòng)光學(xué)奠基人、“物理光學(xué)之父”菲涅爾,提出了菲涅爾衍射理論。該理論被實(shí)驗(yàn)成功證明,自此光的波動(dòng)說(shuō)深入人心。

圖1引用自?
[1]基于MATLAB的衍射場(chǎng)模擬計(jì)算_錢曉凡[J].
如該文獻(xiàn):

公式1由菲涅爾本人提出,被稱為“菲涅爾衍射公式”,是半定量的,所以在菲涅爾當(dāng)時(shí)的時(shí)代只好定量不夠、條件來(lái)湊,比如施加高度對(duì)稱性的圓孔、圓盤,經(jīng)典的“泊松亮斑”就出自菲涅爾圓盤衍射。
2、真正定量的公式是基爾霍夫衍射公式,

? ? ? ?基爾霍夫彌補(bǔ)了菲涅爾理論的不足,建立了嚴(yán)格的標(biāo)量衍射理論。但通常我們數(shù)值模擬時(shí)不用這個(gè)公式,因?yàn)檫^(guò)于底層,它太麻煩——由于被積函數(shù)的形式復(fù)雜,即使對(duì)于很簡(jiǎn)單的問(wèn)題也不易以解析形式求出結(jié)果。
3、菲涅爾-基爾霍夫公式的重要近似——菲涅爾衍射的計(jì)算公式
? ? ? ? “非近似不成光學(xué)”,這是光學(xué)人應(yīng)當(dāng)牢記于心的至理名言。偉人伽利略曾說(shuō)過(guò):”懂得忽略什么和懂得忽略什么同樣重要?!?/p>
? ? ? ? 菲涅爾-基爾霍夫公式施加傍軸近似后,再得到二次項(xiàng)展開(kāi)忽略第三項(xiàng)后高次項(xiàng)近似這兩重近似,即施加菲涅爾近似,滿足菲涅爾衍射近似的區(qū)域稱為菲涅爾衍射區(qū):

得到菲涅爾衍射的計(jì)算公式:

? ? ? ?這個(gè)菲涅爾近似要求一是前提上在角度上傍軸,r能當(dāng)z時(shí);要求二是這個(gè)z值大到可以使二項(xiàng)展開(kāi)的高次項(xiàng)忽略,如果z大到很大,可以進(jìn)一步得到夫瑯禾費(fèi)近似。
? ? ? ?大多數(shù)情況下的數(shù)字全息,都是菲涅爾數(shù)字全息。夫瑯禾費(fèi)衍射可以視為菲涅爾衍射的特例。并且,在普通情況下菲涅爾衍射比夫瑯禾費(fèi)衍射容易實(shí)現(xiàn),所以在歷史上它也是首先被觀察和研究的。
4、菲涅爾衍射計(jì)算公式的傅里葉變換算法:

實(shí)際上公式4、5在MATLAB數(shù)值模擬里也不常用,常用的處理算法是按圖5所示。

二、編程
1、部分程序及說(shuō)明
令衍射物體為小圓孔,
Ob=小圓孔(a);% a為半徑
%% 數(shù)值模擬
A1=Ob.*exp(1i*k/(2*Zd)*R.^2);%待傅里葉變換的項(xiàng)
A=fftshift(fft2(A1));
U_p=A.*(1/(1i*lamda.*Zd))*exp(1i*2.0*pi.*Zd/lamda).*exp(1i*pi*(x.^2+y.^2)/(lamda.*Zd));%觀察屏上復(fù)振幅
I=U_p.*conj(U_p);
I=abs(U_p).^2;

2、效果圖

中間有個(gè)泊松亮斑,不過(guò)成像效果不太好,先寫到這里,等修改好了再更下一集