• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-06
  • 语言: Matlab
  • 标签: 光场成像  

资源简介

学习时写的,基础的思路,待完善

资源截图

代码片段和文件信息

clear all
clear
N=256;
lamda=632.8e-9;%波长
k=2*pi/lamda;
%物
Uo=imread(‘guang.bmp‘);
Uo=double(Uo(::1));
[rc]=size(Uo);
Lo=0.005;%物面尺寸
xo=linspace(-Lo/2Lo/2c);
yo=linspace(-Lo/2Lo/2r);
[xo yo]=meshgrid(xoyo);%物面坐标网格
Uo=ones(rc)*0.98-Uo/255*0.5;
figure(1)imshow(Uo[01]);%显示物(光学)分布
title(‘物(光学)分布‘);
%===================================================================
%===================================================================
%主透镜
fo=1.204;%主透镜焦距
do=1.2041;%物面到主透镜的距离
D=0.01;
L=r*lamda*do/Lo;
x1=linspace(-L/2L/2c);
y1=linspace(-L/2L/2r);
[x1 y1]=meshgrid(x1y1);%透镜前表面坐标网格
F0=exp(j*k*do)/(j*lamda*do)*exp(j*k/2/do*(x1.^2+y1.^2));
F1=exp(j*k/2/do*(xo.^2+yo.^2));
FU1=(Lo*Lo/r/r).*fftshift(fft2(Uo.*F1));
U1=F0.*FU1;%透镜前表面上的复振幅分布
I1=U1.*conj(U1);%

评论

共有 条评论

相关资源