本文基于光学原理,用Matlab实现菲涅尔矩形孔衍射现象仿真。
Project Code
代码理解:参看Matlab:实现菲涅尔圆孔衍射仿真% 作者:ZQJ% 日期:.7.23 星期五%***********************菲涅尔矩形孔衍射**************************%% 菲涅尔衍射傅里叶变换clear,clc,close all;allmasks = f_Masks;func_translight = f_Lightfield_transmission;% ********************** 系统参数设定lamda = 1550e-9;% 波长N = 500; % 一边像素数目x_length = 0.01;% 矩阵长度w0 = 1e-3; % 高斯光束腰半径Gs_z = 1e-3; % 高斯光传输距离% ********************** 菲涅尔衍射mask_hole = allmasks.rect_hole(x_length/N,N,18*x_length/N,26*x_length/N);figure; subplot(1,2,1), imagesc(mask_hole); colormap gray;Gaussian_I = f_Gaussian_beams(w0,Gs_z,lamda,x_length,x_length,N,N);subplot(1,2,2),imagesc(Gaussian_I), colormap hot;E0 = Gaussian_I.*mask_hole;E1 = func_translight.FFT_(lamda,E0,x_length,x_length,0.1);figure,imagesc(abs(E1)), colormap hot;
仿真结果图:
衍射前:菲涅尔矩形孔衍射光强图:
专栏内容供作者本人或大家学习使用,多多指教~