資源簡介
用衍射追跡實現衍射受限透鏡成像。復習菲涅爾衍射計算的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
評論
共有 條評論