好文档 - 专业文书写作范文服务资料分享网站

圆孔矩孔的菲涅尔衍射模拟matlab实现工程光学.docx

天下 分享 时间: 加入收藏 我要投稿 点赞

.

四、 MATLAB程序

%所有长度单位为毫米 lamda=632.8e-6; k=2*pi/lamda; z=1000000; %先确定衍射屏 N=300; a=15; b=15;

[m,n]=meshgrid(linspace(-N/2,N/2-1,N)); I=rect(m/(2*a)).*rect(n/(2*b)); q=exp(j*k*(m.^2+n.^2)/2/z); subplot(2,2,1); imagesc(I)

colormap([0 0 0; 1 1 1]) axis image title(' L=300; M=300;

%

取相同点数用于矩阵运算

若为圆孔,方框内替换为以下程序 r=12;a=1;b=1;

圆屏采样点数

I=zeros(N,N);

[m,n]=meshgrid(linspace(-N/2,N/2-1,N)); D=((m-a).^2+(n-b).^2).^(1/2); i=find(D<=r); I(i)=1;

% %

%

%孔半径范围内透射系数为

1

%

圆孔图像画在 2 行 2 列的第一个位置

画衍射屏的形状

颜色以黑白区分

衍射屏形状 ')

[x,y]=meshgrid(linspace(-L/2,L/2,M));

h=exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z);% 接收屏 H =fftshift(fft2(h)); B=fftshift(fft2(I)); G=H.*B;

U= fftshift(ifft2(G)); Br=(U/max(U)); subplot(2,2,2); imshow(abs(U)); axis image; colormap(hot)

% figure,imshow(C); title('

衍射后的图样 ');

%

画三维图形

% %

% %

圆孔频谱

公式中为卷积, 空间域中相卷相当于频域中相乘

求逆变换,得到复振幅分布矩阵

归一化

subplot(2,2,3); mesh(x,y,abs(U)); subplot(2,2,4); plot(abs(Br))

.

圆孔矩孔的菲涅尔衍射模拟matlab实现工程光学.docx

.四、MATLAB程序%所有长度单位为毫米lamda=632.8e-6;k=2*pi/lamda;z=1000000;%先确定衍射屏N=300;a=15;b=15;[m,n]=meshgrid(linspace(-N/2,N/2-1,
推荐度:
点击下载文档文档为doc格式
91fnc8ngny3xy6q955p40ne2d1fp330144b
领取福利

微信扫码领取福利

微信扫码分享