资源简介
用传递函数计算衍射场,但是要注意该方法的局限性,传播距离如果太远,会导致衍射场变得非常巨大,而不能很好的观察
代码片段和文件信息
%十字叉丝衍射的数值模拟
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程序
评论
共有 条评论