资源简介
用衍射追迹实现衍射受限透镜成像。复习菲涅尔衍射计算的S FFT算法,掌握用衍射追迹完成理想单透镜系统成像编程计算,体会和理解透镜尺寸大小对衍射受限系统成像质量的影响。MATLAB代码
代码片段和文件信息
clear
Uo=imread(‘分辨率板_2.bmp‘); %读入作为物的图像
% Uo=double(Uo (::,1)); %调取第一层,转换为双精度
Uo=double(Uo (::));
lamda=6328*10^(-10);k=2*pi/lamda; %赋值波长单位:米波矢
D=0.05; %赋值透镜的孔径单位:米
f=0.4; %赋值透镜的焦距单位:米
figure
subplot(221)
imshow(Uo[])
title(‘分辨率板_2.bmp‘)
[cr]=size(Uo); %读取物面采样数
%下面计算物光传递到透镜的衍射过程
L0=0.005 %赋值物面的尺寸L0单位:米
x0=linspace(-L0/2L0/2r);y0=linspace(-L0/2L0/2c); %赋值物面的坐标
[x0y0]=meshgrid(x0y0);
d1=1.2; %物面到透镜的距离d1单位:米
L=r*lamda*d1/L0 %衍射光在透镜前表面上的尺寸L单位:米
p=linspace(-L/2L/2r);q=linspace(-L/2L/2c); %赋值透镜前表面的坐标
[pq]=meshgrid(pq);
F00=exp(j*k*d1)/(j*lamda*d1)*exp(j*k/2/d1*(p.^2+q.^2));
Fpq=exp(j*k/2/d1*(x0.^2+y0.^2));
a= Uo.*Fpq;
FUpq=fft2(a); %做FFT变换
Ffpq=fftshift(FUpq);
Fufpq=F00.*Ffpq; %透镜前表面上的光场复振幅分布
I=Fufpq.*conj(Fufpq); %透镜前表面上的光强分布
subplot(222)
imshow(I[]) colormap(pink)title(‘透镜上的光强分布‘)
%下面计算通过透镜后的光场
DD=round(D*r/L); %计算孔径对应的采样数
pxy=zeros(cr); %生成孔径函数
for n=1:c
for m=1:r
if (n-c/2).^2+(m-r/2).^2<=(DD/2).^2;
pxy(nm)=1;
end
end
end
subplot(223)
imshow(pxy[]);title(‘孔径函数‘)
Fufpqyp=Fufpq.*pxy.*exp(-j*k.*(p.^2+q.^2)/2/f); %计算通过透镜后的光场
%下面计算从透镜到观察面的衍射过程
d2=d1*f/(d1-f) %由物、像公式给出像距d2单位:米
Lyp=r*lamda*d2/L %给出观察面(像面)的尺寸单位:米
x=linspace(-Lyp/2Lyp/2r);y=linspace(-Lyp/2Lyp/2c); %给出观察面的坐标
[xy]=meshgrid(xy);
F0=exp(j*k*d2)/(j*lamda*d2)*exp(j*k/2/d2*(x.^2+y.^2));
F=exp(j*k/2/d2*(p.^2+q.^2));
% 计算再现像
re_image=fft2(Fufpqyp.*F);re_image=re_image.*F0;
if Lyp<0 %成虚像时倒像
re_image=flipud(re_image);re_image=fliplr(re_image);%左右、上下翻转
end
subplot(224)
imshow(re_image.*conj(re_image)[])title(‘再现像‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 23020 2016-04-21 21:39 implementation of the diffraction lens imaging\1.jpg
文件 2342 2016-04-20 11:26 implementation of the diffraction lens imaging\CX6_1.m
文件 32830 2013-07-13 09:47 implementation of the diffraction lens imaging\分辨率板_2.bmp
目录 0 2016-04-21 21:39 implementation of the diffraction lens imaging
----------- --------- ---------- ----- ----
58192 4
相关资源
- Pattern Recognition and Machine Learning(高清
- 均值滤波和FFT频谱分析Matlab代码
- 欧拉放大论文及matlab代码
- GPS信号的码捕获matlab代码.7z
- matlab读取SP3文件
- 图像的饱和度,亮度,色调的matlab代
- 肤色检测matlab代码
- sutton强化学习随书MATLAB代码
- 压缩鬼成像matlab代码
- 压缩感知(Compressed Sensing CS)matlab代
- 基于OFDMA系统的多用户资源分配算法,
- Allan方差分析MATLAB代码,含MPU6050八小
- 均匀球体剖面重力异常正演模拟Matl
- 印章识别matlab代码
- 连续潮流matlab代码
- 线性拟合仿真-最小二乘法、正交回归
- 矩阵填充MATLAB代码
- 大型飞机航拍图处理matlab代码
- LMS语音信号去噪matlab代码
- 卡尔曼滤波MATLAB代码170027
- Matlab代码编写的semi-supervised CCA 程序
- EOF分析matlab代码
- 尾灯识别matlab代码
- 背景差分法的MATLAB代码
- eemd算法程序 matlab代码
- 关于投影与反投影的matlab代码
- siftmatlab算法实现
- 灰狼优化算法求解柔性作业车间问题
- 遗传算法GA车间调度Matlab代码
- 关于通过功率谱分析提取信号周期的
评论
共有 条评论