資源簡介
用傳遞函數計算衍射場,但是要注意該方法的局限性,傳播距離如果太遠,會導致衍射場變得非常巨大,而不能很好的觀察
代碼片段和文件信息
%十字叉絲衍射的數值模擬
function?diffraction_cross()
%規定
%0代表物平面的參數
%1代表菲涅耳解析DFFT
%2代表菲涅耳數值DFFT
%3代表瑞利-索末非衍射DFFT
%4代表角譜理論DFFT
%5代表菲涅耳衍射強度SFFT
distance=input(‘請輸入光波傳輸距離(毫米):‘);%=100000;%觀察屏到衍射屏的距離,單位mm
length=20;?%衍射屏寬度,單位mm
lambda=0.0106;%波長,單位mm
N0=N_object(length);%求解物函數的采樣點的函數
N1=length^2/(lambda*distance);%N<=
N2=length^2/(lambda*distance);%N>=
N3=length^2/(lambda*sqrt(distance^2+length^2/2));%N>=
N4=length^2/(lambda*sqrt(distance^2+length^2/2));%N<=
%N3=N4
N5=length^2/(lambda*distance);%N>=
%N1=N2=N5
choice=0;
if??N0<=N4
????choice=4;%一般情況下,滿足N0 ????N=N0;
else
???choice=3;
???N=N0;
end
if?distance>150000
????choice=5;
????N=N0;
end
switch?choice
????case?1
????????U=Frensel_DFFT(lengthdistancelambdaN);
????case?2
????????U=Fr
- 上一篇:APSK調制仿真
- 下一篇:用和法求解AHP層次分析法matlab程序
評論
共有 條評論