• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-09
  • 语言: Matlab
  • 标签: 衍射  

资源简介

用传递函数计算衍射场,但是要注意该方法的局限性,传播距离如果太远,会导致衍射场变得非常巨大,而不能很好的观察

资源截图

代码片段和文件信息

%十字叉丝衍射的数值模拟
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

评论

共有 条评论