clear all;
clc;
% -----参数设定-----
M=512;
N=512;
Lamda=0.6328;
dx=2.0;
dy=dx;
HDiameter=32*dx;
Zd=20.0e+3;
%-----输入形成泊松亮斑所需的圆孔函数-----
[x,y]=meshgrid(-dx*(M/2-1):dx:dx*M/2,-dy*(N/2-1):dy:dy*N/2);
Object=1-cyl(x,y,HDiameter);
figure(1);
imshow(Object);
%-----进行衍射------
SphFunct=(1/(i*Lamda*Zd))*exp(i*2.0*pi*Zd/Lamda)*exp(i*pi*(x.^2+y.^2)/(Lamda*Zd));
Object_F=fftshift(fft2(fftshift(Object)));
SphFunct_F=fftshift(fft2(fftshift(SphFunct)));
FrDiffract=(dx*dy)*fftshift(ifft2(fftshift(Object_F.*SphFunct_F)));
%-------显示衍射图样------
FrDiffract_I=abs(FrDiffract).^2.0; %计算衍射光场的强度分布
FrDiffract_IN=FrDiffract_I/max(max(FrDiffract_I)); %归一化
FrDiffract_P=(angle(FrDiffract)+pi)/(2*pi); %计算衍射光场的相位分布。
figure(2);
colormap(gray)
imshow(FrDiffract_IN,[0.1 0.1]); % 显示衍射图样的强度分布。
% text_buffer =strcat('Diffraction patern at distance z=',num2str(Zd*1.0e-3),'mm ');%显示衍射距离。
% title(text_buffer);
% figure(3);
% imshow(FrDiffract_P); % 显示衍射图样的相位分布。
% title('Phase distribution of the diffraction field');
%------保存衍射图样的强度分布-----
imwrite(FrDiffract_IN,'Diffract_In.bmp');
没有合适的资源?快使用搜索试试~ 我知道了~
Matlab模拟泊松亮斑仿真
共5个文件
jpg:2个
m:2个
bmp:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 5 下载量 28 浏览量
2022-07-09
21:48:02
上传
评论 2
收藏 65KB ZIP 举报
温馨提示
1.版本:matlab2019a,不会运行可私信 2.领域:【光学】 3.内容:Matlab模拟泊松亮斑仿真 4.适合人群:本科,硕士等教研学习使用
资源推荐
资源详情
资源评论
收起资源包目录
【光学】Matlab模拟泊松亮斑仿真 上传.zip (5个子文件)
poisson.m 1KB
运行结果1.jpg 8KB
Diffract_In.bmp 257KB
运行结果2.jpg 19KB
cyl.m 93B
共 5 条
- 1
资源评论
- qq_395205462023-09-17资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
- m0_655700062024-01-14资源简直太好了,完美解决了当下遇到的难题,这样的资源很难不支持~
- lassdc2023-10-11总算找到了自己想要的资源,对自己的启发很大,感谢分享~
- hanqing842023-12-30资源不错,对我启发很大,获得了新的灵感,受益匪浅。
- 2401_830552222024-02-27资源和描述一致,质量不错,解决了我的问题,感谢资源主。
天天Matlab科研工作室
- 粉丝: 2w+
- 资源: 7253
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功