角谱衍射计算

角谱衍射

角谱衍射计算( D − F F T D-FFT DFFT),即采用两次傅里叶变换,原始公式和( S − F F T S-FFT SFFT)类似,衍射计算的 过程中,除了物面和衍射面的尺寸关系不一样外,其他与( S − F F T S-FFT SFFT)类似,角谱衍射计算中物面尺寸和观测面尺寸大小一致。具体的MATLAB程序如下:

clear all
I1=imread('1.jpg');
figure(1);imshow(I1);
f0=double(I1);
[N1,N2]=size(f0);
N=min(N1,N2);                        
h=0.000632;             %波长(mm)
pix=0.00465;            %像素宽(mm)
z0=input('重建距离z0=');
L=pix*N;                %CCD宽度(mm)                        
f=zeros(N,N);
Ih(1:N,1:N)=f0(1:N,1:N);

L0=L;              %赋值衍射面尺寸,单位:%赋值观察屏到衍射面的距离,单位:米 
fex=N/L;
kethi=[-fex/2:fex/N:fex/2-fex/N];
nenta=[-fex/2:fex/N:fex/2-fex/N];
[kethi,nenta]=meshgrid(kethi,nenta);
k=2*pi/h;	
H=exp(j*k*z0*sqrt(1-(h*kethi).^2+(h*nenta).^2)); %传递函数H
fa=fft2(Ih);                 %衍射面上光场的傅里叶变换
Fuf=fa.*H;                            %光场的频谱与传递函数相乘
U=ifft2(Fuf);                         %在观察屏上的光场分布
I=U.*conj(U);                         %在观察屏上的光强分布
Gma=max(max(abs(U)));
Gmi=min(min(abs(U)));
p=10;
while p
    imshow(abs(U),[Gmi  Gma/p]);
    p=input('Gma/p,p=10?');
end
figure,imshow(I,[0,max(max(I))]),colormap(gray)

参考书目
[1] 古德曼 ,傅里叶光学导论[M],北京:电子工业出版社,2006,第3版
[2]李俊昌,衍射计算及数字全息[M],北京:科学出版社,2014
[3] 钱晓凡,信息光学数字实验室[M],北京:科学出版社,2014
[4]陈家壁,苏显渝.光学信息技术原理及应用[M].北京:高等教育出版社,2001

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值