24小时热门版块排行榜    

查看: 2944  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

ldmllion

新虫 (小有名气)

[求助] 求大神赐教一下matlab光学仿真的一程序。

我想做一个一束光通过任意图案之后的衍射图案的matlab光学仿真。
我的思路是将光波表达式与图案相乘,然后做菲涅尔衍射。不知是不是这样,求大神指导。
主代码如下:
clear all;clc;
cm=0.01;
um=1e-6;
a=rgb2gray(imread('tri2.png'));
a=im2double(a);%图案
[M,N]=size(a);
z=1;
lambda=0.63*um;
k=2*pi/lambda
hx=0.5*cm;hy=0.5*cm;
dhx=hx/M;dhy=hy/N;
x=dhx.*(ones(N,1)*[-M/2:M/2-1]);
y=dhy.*(ones(N,1)*[-M/2:M/2-1])';
b=exp(1i.*5*atan2(y,x));%用此光照射图案a
f0=a.*b;
[f2,dx1,dy1,x1,y1]=fresnel(f0,N,N,dhx,dhy,z,lambda);%fresnel函数见附件
f2=abs(f2).^2;
f2=mat2gray(f2);
imshow(f2)

程序可以运行,但不是我要的结果。
不知哪里出问题了。求大神赐教一下matlab光学仿真的一程序。
tri2.png
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : fresnel.m
  • 2013-09-22 11:02:24, 523 bytes
  • 附件 2 : test1.m
  • 2013-09-22 11:02:26, 434 bytes

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

玉之鸣人

新虫 (初入文坛)

图片怎么来的?比方说如图的三角形
9楼2016-03-28 10:36:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

smy1982

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
华丽的飘过: 金币+10, 3q 2013-10-01 21:07:31
你要什么图片啊?
clear all;clc;
cm=0.01;
um=1e-6;
a=rgb2gray(imread('tri2.png'));
a=im2double(a);
[M,N]=size(a);
z=100e-3;
lambda=0.63*um;
k=2*pi/lambda
hx=0.5*cm;hy=0.5*cm;
dhx=hx/M;dhy=hy/N;
x=dhx.*(ones(N,1)*(-M/2:M/2-1));
y=dhy.*(ones(N,1)*(-M/2:M/2-1))';
dx0=lambda*z/(M*dhx);
dy0=lambda*z/(M*dhy);

b=exp(1i.*5*atan2(y,x));
% imshow((angle(b)+pi)/(2*pi))
f0=a.*b;
[f2,dx1,dy1,x1,y1]=fresnel(f0,N,N,dhx,dhy,z,lambda);
f2=abs(f2).^2/max(max(abs(f2).^2));
f2=mat2gray(f2);
imshow(f2)

你那源程序里的z值太大了吧,1m都成夫琅禾费衍射了。
求大神赐教一下matlab光学仿真的一程序。-1
untitled.jpg

如果你曾歌颂黎明,那么也请你拥抱黑夜。
2楼2013-09-22 16:51:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smy1982

木虫 (正式写手)

【答案】应助回帖

还有你那“fresnel.m ”程序用的角谱法算的,不适用于远场衍射,只能模拟近场的,太远了,就有错误了。

» 本帖已获得的红花(最新10朵)

如果你曾歌颂黎明,那么也请你拥抱黑夜。
3楼2013-09-22 16:54:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangwei225

金虫 (小有名气)

引用回帖:
3楼: Originally posted by smy1982 at 2013-09-22 16:54:38
还有你那“fresnel.m ”程序用的角谱法算的,不适用于远场衍射,只能模拟近场的,太远了,就有错误了。

有道理
4楼2013-09-22 17:04:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见