matlab傅里叶光学仿真,关于微透镜阵列的傅里叶光学分析
本帖最后由 歐攀 于 2013-1-29 10:01 編輯
53頁到56頁,主要闡述物理背景。
我主要的編程工作是根據公式3.42,以及公式3.45。
clear
clc
f=25;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%焦距
a=0.3;
b=0.3;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???%微透鏡尺寸
lamda=0.6238e-3;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %波長
k=2*pi/lamda;
x=-1.2:0.01:1.2;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %對微透鏡表面或者說入射波前取離散點
y=-1.2:0.01:1.2;
n0=1.75;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%透鏡折射率
Delta0=2;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???%透鏡厚度
n=length(x);
u0=ones(n);
[x1 y1]=meshgrid(x,y);
fx=x1./lamda./f;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%根據公式3.46
fy=y1./lamda./f;
x_org=-1.05:0.3:1.05;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %微透鏡中心坐標
y_org=-1.05:0.3:1.05;
nx=length(x_org);
ny=length(y_org);
Ft2=zeros(n,n);
% uf=1./j./lamda./f.*exp(j.*k./2./f.*(x1.*x1+y1.*y1));
Ft1=fft2(u0.*exp(j.*k.*n0.*Delta0));? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %公式3.42最后一個等式后的第一個傅里葉變化
% Ft1=fft2(u0);
Ft1=fftshift(Ft1);
% figure
% It1=Ft1.*conj(Ft1);
% surf(xf1,yf1,It1)
tempx=zeros(1,n);
tempy=zeros(1,n);
for i=1:nx
%? ???tem=exp(j.*k./2./f.*x_org(:,i)).*exp(-j.*2.*pi.*fx.*x_org(:,i)).*a.*sinc((fx-x_org(:,i)./lamda./f).*a)
%? ???Ft2(:,i)
tempx=tempx+exp(j.*k./2./f.*x_org(i)).*exp(-j.*2.*pi.*x./lamda./f.*x_org(i)).*a.*sinc((x./lamda./f-x_org(i)./lamda./f).*a);
end
for i=1:ny
tempy=tempy+exp(j.*k./2./f.*y_org(i)).*exp(-j.*2.*pi.*y./lamda./f.*x_org(i)).*a.*sinc((y./lamda./f-x_org(i)./lamda./f).*a);
end
% 公式3.42最后一個等式后的第二個傅里葉變化 參考公式3.45
%分別對x,y方向進行計算
[Ft2x Ft2y]=meshgrid(tempx,tempy);
Ft2=(Ft2x+Ft2y);
% x,y方向合成二維矩陣??不知道這樣子做是否嚴謹
Ft=conv2(Ft1,Ft2);
%根據公式3.42 求卷積 問題是卷積以后矩陣的維數發(fā)生變化。用在入射波前(微透鏡陣列表面)的離散點就不能用了
[line row]=size(Ft);
xf=linspace(-1,1,line);
yf=linspace(-1,1,row);
[xf yf]=meshgrid(xf,yf);
%重新設置離散點??保證和之前入射波前(微透鏡陣列表面)的離散點的范圍一致,但顯然個數就不一樣了
uf=1./j./lamda./f.*exp(j.*k./2./f.*(xf.*xf+yf.*yf));
uf1=uf.*Ft;
It=uf1.*conj(uf1);
surf(xf,yf,It);
%最后得出焦平面上的圖1 發(fā)現(xiàn)光斑聚焦位置不對 應該是從-1.05到+1.05排列
%如果不看坐標與論文中一致
figure
uf=1./j./lamda./f.*exp(j.*k./2./f.*(x1.*x1+y1.*y1));
uf2=uf.*Ft2;
It=uf2.*conj(uf2);
surf(x1,y1,It);
%最后得到焦平面上的圖2與論文一致,坐標也符合
%但問題我沒有考慮到Ft1的作用
%實際上Ft1的作用很重要,他反應是入射波前對聚焦的影響,在這里設定入射波前是平面波
也就是說如果我忽略Ft1項,那么的出來的圖形似乎是正確的,如果考慮了Ft1與Ft2的卷積,那么得出來矩陣維數變大了,
迫使我在焦平面和入射波前分別用不同的離散點采樣。
最后得出一個看起“被壓縮”的圖像。
請各位賜教,幫忙
52.jpg
(410.09 KB, 下載次數: 34)
2012-11-23 20:16 上傳
53.jpg
(328.87 KB, 下載次數: 40)
2012-11-23 20:16 上傳
54.jpg
(338.13 KB, 下載次數: 35)
2012-11-23 20:16 上傳
55.jpg
(259.13 KB, 下載次數: 40)
2012-11-23 20:16 上傳
56.jpg
(432.42 KB, 下載次數: 36)
2012-11-23 20:16 上傳
圖1.jpg
(131.04 KB, 下載次數: 19)
2012-11-23 20:46 上傳
圖2.jpg
(161.64 KB, 下載次數: 20)
2012-11-23 20:46 上傳
總結
以上是生活随笔為你收集整理的matlab傅里叶光学仿真,关于微透镜阵列的傅里叶光学分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统在iis6上部署
- 下一篇: java爬虫-简单爬取网页图片