傅里叶光学(二)一维光栅与二维光栅的夫琅禾费衍射

%% 一维情况下 《傅里叶光学》 吕乃光 p104
func1=@(x) convn(rect(x),comb_o(x/2),'same').*rect(x/4);  
x=linspace(-4,4,801);
y=func1(x);

[out,xx]=fourier1(func1);
figure,plot(x,y);
%% 二维情况下 《傅里叶光学》 吕乃光  P105-106
L=1;
d=2;
func2=@(x,y) convn(rect(x/L),comb_o(x/2),'same').*rect(x/4).*rect(y/4);
fourier2(func2,'1');

傅里叶光学(二)一维光栅与二维光栅的夫琅禾费衍射_第1张图片

上图为一维光栅形状

傅里叶光学(二)一维光栅与二维光栅的夫琅禾费衍射_第2张图片

一维光栅形状和一维夫琅禾费衍射

傅里叶光学(二)一维光栅与二维光栅的夫琅禾费衍射_第3张图片

二维光栅

傅里叶光学(二)一维光栅与二维光栅的夫琅禾费衍射_第4张图片

二维光栅夫琅禾费衍射

傅里叶光学(二)一维光栅与二维光栅的夫琅禾费衍射_第5张图片

二维夫琅禾费衍射3D图

function y=comb_o(x,d)
% comb function 
% 抽样函数,没有命名成comb 是因为matlab中有一个是d=fdesign.comb  函数
if nargin<2
    d=0;
end

y = gaus(sin(pi.*(x-d))/0.01);% comb(x)=delta(sin(pi*x)); x 是整数时不为0
y(y<=0.5)=0;
y(y>0.5)=1;
end

本人写的一个抽样函数代码

其他的函数请到到http://www.johnloomis.org/eop513/notes/  下载


你可能感兴趣的:(matlab,算法,傅里叶光学)