傅里叶光学&MATLAB编程系列【1】基本函数

1、傅里叶光学中的基本函数

矩形函数

矩形函数,表示为 r e c t ( x ) rect(x) rect(x)或者 Π ( x ) \Pi(x) Π(x),在光学中可以用来表示狭缝、矩孔、面光源等等,是一个非常重要的概念,其定义为
r e c t ( x ) = { 1 , ∣ x ∣ < 1 2 1 2 , ∣ x ∣ = 1 2 0 , ∣ x ∣ > 1 2 rect(x)=\left\{ \begin{aligned} &1,\qquad |x|<\frac{1}{2} \\ &\frac{1}{2} ,\qquad |x|=\frac{1}{2} \\ &0 ,\qquad |x|>\frac{1}{2} \end{aligned} \right. rect(x)= 1x<2121x=210x>21
其图形为

通过其图形可以看出,整个区域的面积为1,即 ∫ − ∞ ∞ r e c t ( x ) d x = 1 \int_{-\infty}^\infty rect(x)dx=1% rect(x)dx=1,

三角函数

三角函数,表示为 t r i ( x ) tri(x) tri(x)或者 Λ ( x ) \Lambda(x) Λ(x),在光学中可以用来表示非相干照明情况下矩形孔的光学传递函数,其定义为
r e c t ( x ) = { 1 − ∣ x ∣ , ∣ x ∣ ≤ 1 0 , ∣ x ∣ > 1 rect(x)=\left\{ \begin{aligned} &1-|x|,&\quad |x| \leq 1 \\ &0 , &\qquad |x|>1 \end{aligned} \right. rect(x)={1x0x1x>1
其图形为
在这里插入图片描述

通过其图形可以看出,整个区域的面积为1,即 ∫ − ∞ ∞ t r i ( x ) d x = 1 \int_{-\infty}^\infty tri(x)dx=1% tri(x)dx=1,

s i n c ( x ) sinc(x) sinc(x)函数

s i n c ( x ) sinc(x) sinc(x)函数,在光学中可以用来表示狭缝的夫琅禾夫颜色图像振幅,在数学上是矩形函数 r e c t ( x ) rect(x) rect(x)的傅里叶变换,其定义为
s i n c ( x ) = s i n ( π x ) π x sinc(x)=\frac{sin(\pi x)} {\pi x} sinc(x)=πxsin(πx)
也可以表示为 s i n c ( x ) = ℑ [ r e c t ( x ) ] = ∫ − ∞ ∞ r e c t ( x ) e − j 2 π f x d x sinc(x)=\Im[{rect(x)}]=\int_{-\infty}^{\infty} {rect(x})e^{-j2\pi f_x}dx sinc(x)=[rect(x)]=rect(x)ej2πfxdx
其图形为
在这里插入图片描述
其整个区域的面积为1,即 ∫ − ∞ ∞ s i n c ( x ) d x = 1 \int_{-\infty}^\infty sinc(x)dx=1% sinc(x)dx=1,

s i n c 2 ( x ) sinc^2(x) sinc2(x)函数

s i n c 2 ( x ) sinc^2(x) sinc2(x)函数,顾名思义, s i n c ( x ) sinc(x) sinc(x)函数的平方,就是在光学中可以用来表示矩孔的夫琅禾夫颜色图像振幅,在数学上可以看作是频域内 s i n c ( x ) s i n c ( x ) sinc(x)sinc(x) sinc(x)sinc(x),也就是矩形函数 r e c t ( x ) rect(x) rect(x)的傅里叶变换的能量谱,其定义为
s i n c ( x ) = s i n 2 ( π x ) ( π x ) 2 sinc(x)=\frac{sin^2(\pi x)} {(\pi x)^2} sinc(x)=(πx)2sin2(πx)
根据卷积定理,频域内的乘积就是时域内的卷积,所以其也可以表示为 s i n c 2 ( x ) = r e c t ( x ) ⊗ r e c t ( x ) = ∫ − ∞ ∞ r e c t ( τ ) r e c t ( τ − x ) d τ sinc^2(x)={rect(x)} \otimes rect(x)=\int_{-\infty}^{\infty} {rect(\tau}){rect(\tau-x})d\tau sinc2(x)=rect(x)rect(x)=rect(τ)rect(τx)dτ
其图形为
在这里插入图片描述

高斯函数

高斯函数,表示为 G a u s ( x ) Gaus(x) Gaus(x),是一个非常重要的函数,可以用来描述激光器的输出光束,作平滑滤波等等,其表达式为
G a u s ( x ) = e − π x 2 Gaus(x)=e^{-\pi x^2} Gaus(x)=eπx2
高斯函数有两个性质:

  • 各阶导数都存在且可导;
  • 傅里叶变换仍然是高斯函数。

图形如下
在这里插入图片描述

奇异函数 δ ( x ) \delta(x) δ(x)

奇异函数 δ ( x ) \delta(x) δ(x),可以用来描述点光源,其表达式为
δ ( x ) = { ∞ , x = 0 0 , x ≠ 0 \delta(x)=\left\{ \begin{aligned} &\infty,&\qquad x=0\\ &0 , &\qquad x\neq 0 \end{aligned} \right. δ(x)={0x=0x=0
全空域积分也为1,即 ∫ − ∞ ∞ δ ( x ) d x = 1 \int_{-\infty}^\infty \delta (x)dx=1% δ(x)dx=1,

一维梳状函数

一维梳状函数,又称为一维抽样函数,表示为 c o m b ( x ) comb(x) comb(x),可以用来描述对一维函数离散采样,同时,也可以用卷积实现函数的周期性延拓,其表达式为
c o m b ( x ) = ∑ m = − ∞ ∞ δ ( x − m ) comb(x)=\sum_{m=-\infty}^\infty{\delta(x-m)} comb(x)=m=δ(xm)
其中,m是一个整数,根据 δ ( x ) \delta(x) δ(x)函数的定义,只有在 x = m x=m x=m的位置上为1,其余均为0,所以图形是间隔为1,强度为1的冲击序列,如下图所示,
在这里插入图片描述

二维圆域函数

圆域函数,表示为 c i r c ( x ) circ(x) circ(x),在光学领域中可以用来描述一个圆孔的透过率,描述圆形透镜的光瞳函数模值限制,在图像处理过程中可以作为理想低通滤波器。其定义为:
c i r c ( x ) = { 1 , x 2 + y 2 < 1 1 2 , x 2 + y 2 = 1 0 , x 2 + y 2 > 1 circ(x)=\left\{ \begin{aligned} &1, &\qquad \sqrt{x^2+y^2} < 1\\ &\frac{1}{2} , &\qquad \sqrt{x^2+y^2} = 1\\ &0 , &\qquad \sqrt{x^2+y^2} >1\\ \end{aligned} \right. circ(x)= 1210x2+y2 <1x2+y2 =1x2+y2 >1
其图形为
在这里插入图片描述

2、解析到离散过渡

这部分将讲解如何从解析函数过渡到离散函数,其实就是描述各种实际的物理量,以矩形函数为例分析。举个例子,我需要在一个长为无穷大,宽为10mm的黑屏上开出一条宽为1mm的缝,该如何描解决呢?在分析这一类问题时,首先需要建立坐标系,然后确定主要参数。比如,以x坐标表示宽,y坐标表示长,屏中心为原点建立坐标系,如下图所示:
在这里插入图片描述

  • 物的尺寸L:物体的长是无限的,因此无需考虑y方向,只分析x方向,变成了一维问题。物体的宽度L的取值范围为[-5,5]mm。
  • 矩形函数的宽度W:矩形孔的宽度W的取值范围为[-0.5,0.5]mm。
  • 采样数目M:M是所需要的采样点数,也就是创建的向量长度,这里不做多余考虑,取M=500;(事实上,采样的点数不能过少,根据奈奎斯特采样定律,采样太少,会发生混叠,信号失真,矩孔函数信号部分10个点以上,即 M ≥ 100 M\geq100 M100即可
  • 采样间隔 Δ x \Delta x Δx Δ x = L / m = 10 / 500 = 0.02 m m \Delta x=L/m=10/500=0.02mm Δx=L/m=10/500=0.02mm;
  • 坐标x: x ∈ [ − L / 2 : Δ x : L / 2 − Δ x x\in[-L/2:\Delta x:L/2-\Delta x x[L/2:Δx:L/2Δx]
  • 一维到二维:如果考虑二维问题,因为一般初等函数都是可以分离变量的,也就是可以分开考虑x和y,在建立坐标后,用MATLAB提供的meshgrid(fx,fy)函数就可以得到二维的坐标。

3、基本函数的MATLAB代码

矩形函数

一维矩形函数

以上述的例子为例,代码如下:

clc;
clear;
close all;
w=1;
L=10;
M=500;
dx=L/M;
x=-L/2:dx:L/2-dx;

f=abs(x)<w/2;
figure(1)
plot(x,f);

运行结果如下:
在这里插入图片描述

二维矩形函数

clc;
clear;
close all;
wx=1;
wy=0.5;
L=10;
M=500;
dx=L/M;
x=-L/2:dx:L/2-dx;
y=x;
fx=abs(x)<wx/2;
fy=abs(y)<wy/2;
[FX,FY] = meshgrid(fx,fy);
f = FX.*FY;
figure(1)
imagesc(x,y,f);
grid on;

在这里插入图片描述

三角函数

clc;
close all;
clc;
clear;
close all;
w=1;
L=10;
M=500;
dx=L/M;
x=-L/2:dx:L/2-dx;
T = 1-abs(x);
mask = abs(x)<=1;
f = T.*mask;
figure(1)
plot(x,f);

haha

s i n c ( x ) sinc(x) sinc(x)函数

clc;
clear;
close all;

L=10;
M=500;
dx=L/M;
x=-L/2:dx:L/2-dx;

f=sin(pi*x)./(pi*x);
figure(1)
plot(x,f);

在这里插入图片描述

s i n c 2 ( x ) sinc^2(x) sinc2(x)函数

clc;
clear;
close all;

L=10;
M=500;
dx=L/M;
x=-L/2:dx:L/2-dx;

f=sin(pi*x).*sin(pi*x)./((pi*x).^2);
figure(1)
plot(x,f);

在这里插入图片描述

高斯函数

clc;
clear;
close all;

L=10;
M=500;
dx=L/M;
x=-L/2:dx:L/2-dx;

f=exp(-pi*x.^2);
figure(1)
plot(x,f);

在这里插入图片描述

clc;
clear;
close all;

L=10;
M=500;
dx=L/M;
x=-L/2:dx:L/2-dx;
y=x;
[X,Y]=meshgrid(x,y);
f=exp(-pi*(X.^2+Y.^2));
figure(1)
mesh(x,y,f)

在这里插入图片描述

奇异函数 δ ( x ) \delta(x) δ(x)

clc;
clear;
close all;

L=10;
M=500;
dx=L/M;
x=-L/2:dx:L/2-dx;

f=(x==0);
figure(1)
plot(x,f);

在这里插入图片描述

一维梳状函数

clc;
clear;
close all;

L=10;
M=500;
dx=L/M;
x=-L/2:dx:L/2-dx;
x = round(x*10^4)/10^4;%精确到小数点后4位
f = rem(x,1)==0;%place 1 in out where rem = 0
figure(1)
plot(x,f)

在这里插入图片描述

二维圆域函数

clc;
clear;
close all;

L=10;
M=500;
r = 1; 
dx=L/M;
x=-L/2:dx:L/2-dx;
y=x;
[X,Y]=meshgrid(x,y);
f=(X.^2+Y.^2<=r^2);
figure(1)
mesh(x,y,f);

在这里插入图片描述

4、欢迎各位批评指正,我将在第一时间解答

  • 12
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fightandstrive

创作不易,你的打赏,最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值