青江的个人站

“保持热爱,奔赴星海”

  • 主页
  • 目录
  • 图床
  • 留言板
  • -关于我-
友链 搜索文章 >>

青江的个人站

“保持热爱,奔赴星海”

  • 主页
  • 目录
  • 图床
  • 留言板
  • -关于我-

【作业】衍射光场分布仿真


阅读数: 0次    2024-11-02
字数:2.6k字 | 预计阅读时长:12分钟

现代光学作业:利用空间频率分析方法,基于MATLAB平台仿真夫琅禾费衍射与菲涅耳衍射中的各个类型的衍射光场分布。

作业要求:

12

1. 夫琅禾费衍射

1.1 矩形孔

衍射场强度分布公式:

I(x,y)=∣U(x,y)∣2=(abλz)2sinc2(axλz,byλz)I(x,y) = \left | U(x,y) \right | ^ 2 = (\frac{ab}{\lambda z}) ^ 2 sinc ^ 2(\frac{ax}{\lambda z},\frac{by}{\lambda z})I(x,y)=∣U(x,y)∣2=(λzab​)2sinc2(λzax​,λzby​)

仿真程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
clc; clear;
lambda = 500e-9; % 光波长
a = 80e-6; % 矩孔宽
b = 60e-6; % 矩孔长
z = 10; % 观察面离衍射屏的距离
L = 1; % 观察范围边长
N = 1000; % 采样点数
x = linspace(-L/2, L/2, N); % x轴
y = (linspace(-L/2, L/2, N))'; % y轴
% 衍射强度分布公式
I = (a*b/(lambda*z))^2*(sinc(a*x/(lambda*z))).^2.*(sinc(b*y/(lambda*z))).^2;
figure; imagesc(x,y,sqrt(I)); % 绘制振幅分布图
colormap("hot"); title('矩形孔的夫琅和费行射');

得到衍射场分布图样为:

1

则夫琅禾费衍射光强分布与波长的平方成反比,与衍射孔到观察面的距离的平方成反比,与衍射孔面积的平方成正比,并在x=y=0x=y=0x=y=0处取最大值。

1.2 单缝

当a→∞a \to \inftya→∞或者b→∞b \to \inftyb→∞时,就得到了单缝夫琅禾费衍射光强分布。

仿真程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
clc; clear;
lambda = 500e-9; % 光波长
a = 100e-6; % 矩孔宽(趋于0)
b = 1; % 矩孔长(趋于∞)
z = 10; % 观察面离衍射屏的距离
L_x = 0.9; % 观察范围宽
L_y = 0.3; % 观察范围高
N = 1000; % 采样点数
x = linspace(-L_x/2, L_x/2, N); % x轴
y = (linspace(-L_y/2, L_y/2, N))'; % y轴
% 衍射强度分布公式
I = (a*b/(lambda*z))^2*(sinc(a*x/(lambda*z))).^2.*(sinc(b*y/(lambda*z))).^2;
figure; imagesc(x,y,sqrt(I)); % 绘制振幅分布图
colormap("hot"); title('单缝的夫琅和费行射');

得到衍射场分布图样为:

2

1.3 圆孔

衍射场强度分布公式:

I(r)=(πR2λz)2[2J1(2πRrλz)2πRrλz]2I(r) = (\frac{\pi R^2}{\lambda z}) ^ 2 \left [\frac{2 J_1 (\frac{2 \pi R r}{\lambda z})}{\frac{2 \pi R r}{\lambda z}}\right ] ^ 2I(r)=(λzπR2​)2[λz2πRr​2J1​(λz2πRr​)​]2

仿真程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
clc; clear;
lambda = 500e-9; % 光波长
R = 5 * lambda; % 衍射孔半径
D = 2 * R; % 衍射孔直径
z = 10; % 观察面离衍射屏的距离
r_Airy = 1.22 * lambda * z/D; % 爱里斑半径
L = 5 * 2 * r_Airy; % 观察范围边长
N = 1000; % 采样点数
x = linspace(-L/2, L/2, N); % x轴
y = (linspace(-L/2, L/2, N))';% y轴
r = sqrt(x.^2+y.^2); % 点的极径
term = 2 * pi * R * r/(lambda * z); % 临时项
% 衍射强度分布公式
I = (pi * R^2 / (lambda*z)).^2 * (2*besselj(1,term)./term).^2;
figure; imagesc(x,y,sqrt(I)); % 绘制振幅分布图
colormap("hot"); title('圆孔的夫琅和费行射');

得到衍射场分布图样为:

3

圆孔衍射的光强分布一般称为爱里图样,中间亮斑称为爱里斑。

1.4 正弦振幅光栅

衍射场强度分布公式:

I(x,y)=∣U(x,y)∣2=(l22λz)2sinc2(lyλz)⋅{sinc2(lxλz)+m24sinc2[lλz(x+ξ0λz)]+m24sinc2[lλz(x−ξ0λz)]}I(x,y) = \left | U(x,y) \right | ^ 2 = (\frac{l^2}{2 \lambda z}) ^ 2 sinc ^ 2(\frac{ly}{\lambda z}) \cdot \left \{ sinc ^ 2(\frac{lx}{\lambda z}) + \frac{m^2}{4} sinc ^ 2 \left [\frac{l}{\lambda z} (x + \xi_0\lambda z) \right ] + \frac{m^2}{4} sinc ^ 2 \left [\frac{l}{\lambda z} (x - \xi_0\lambda z) \right ] \right \}I(x,y)=∣U(x,y)∣2=(2λzl2​)2sinc2(λzly​)⋅{sinc2(λzlx​)+4m2​sinc2[λzl​(x+ξ0​λz)]+4m2​sinc2[λzl​(x−ξ0​λz)]}

仿真程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clc; clear;
lambda = 500e-9; % 光波长
m = 1; % 0<m≤1
l = 10 * lambda; % 正方形正弦振幅光栅的边长
xi_0 = 1e6; % 光栅空间频率E_0
z = 10; % 观察面离行射屏的距离
L = 20; % 观察范围宽
N = 1000; % 采样点数
x = linspace(-L/2, L/2, N); % x轴
y = 0; % y轴
term1 = (l^2/(2*lambda*z))^2;
term2x = (sinc(l*x/(lambda*z))).^2;
term2y = (sinc(l*y/(lambda*z))).^2;
term3p = (m^2/4) * (sinc(l*(x+xi_0*lambda*z) / (lambda*z))).^2;
term3n = (m^2/4) * (sinc(l*(x-xi_0*lambda*z) / (lambda*z))).^2;
I = term1 * term2y .* (term2x+term3p+term3n);
figure; plot(x, I/max(I)); % 绘制光强分布图
title('正弦振帽光栅行射光强分布曲线');

得到衍射场分布曲线为:

4

由图可见,正弦型振幅光栅夫琅禾费衍射只有000和±1\pm 1±1级频谱分量。

1.5 正弦相位光栅

衍射场强度分布公式:

I(x,0)=(l2λz)2∑n=−∞∞Jn2(m2)sinc2[lλz(x−nξ0λz)]I(x,0) = (\frac{l^2}{\lambda z}) ^ 2 \sum_{n = -\infty}^{\infty} J_n^2 (\frac{m}{2}) sinc ^ 2 \left [\frac{l}{\lambda z} (x - n \xi_0\lambda z)\right ]I(x,0)=(λzl2​)2n=−∞∑∞​Jn2​(2m​)sinc2[λzl​(x−nξ0​λz)]

仿真程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clc; clear;
lambda = 1; % 光波长
m = 8; % m为任意实数
l = 80 * lambda; % 正方形正弦相位光栅的边长
xi_0 = 0.05; % 光栅空间频率E_0
z = 300; % 观察面离衍射屏的距离
L = 180; % 观察范围宽
N = 2000; % 采样点数
x = linspace(-L/2, L/2, N); % x轴
term1 = (1 / (lambda * z)).^2;
term2 = 0;
for n = -10000:10000
term2 = term2 + (besselj(n, m/2).^2)* (sinc((l/(lambda*z))*(x-n*xi_0*lambda*z)).^2);
end
I = term1 * term2;
figure; plot(x, I); % 绘制光强分布图
title('相位光栅行射强度分布曲线');

得到衍射场分布曲线为:

5

2. 菲涅耳衍射

2.1 圆孔轴线

衍射场强度分布公式:

I(0,φ)=4sin⁡2(πR22z)I(0,\varphi ) = 4 \sin ^ 2 (\frac{\pi R^2}{2z})I(0,φ)=4sin2(2zπR2​)

仿真程序:

1
2
3
4
5
6
7
8
clc; clear;
lambda = 500e-9; % 光波长
R = 1e-3; % 圆孔半径
z = linspace(0, 5, 2000); % 观察面离衍射屏的距离
% 衍射强度分布公式
I = 4 * (sin(pi*R^2./(2*lambda*z))).^2;
figure; plot(lambda*z/R^2, I/4); % 绘制光强分布曲线
title('圆孔轴上菲涅耳行射光强分布曲线');

得到衍射场分布曲线为:

6

2.2 正方形

衍射场强度分布公式:

I(x,y)=14{[C(v2)−C(v1)]2+[S(v2)−S(v1)]2}×{[C(w2)−C(w1)]2+[S(w2)−S(w1)]2}I(x,y) = \frac{1}{4} \left \{ \left [ C(v_2) - C(v_1) \right ]^2 + \left [ S(v_2) - S(v_1) \right ]^2 \right \} \times \left \{ \left [ C(w_2) - C(w_1) \right ]^2 + \left [ S(w_2) - S(w_1) \right ]^2 \right \}I(x,y)=41​{[C(v2​)−C(v1​)]2+[S(v2​)−S(v1​)]2}×{[C(w2​)−C(w1​)]2+[S(w2​)−S(w1​)]2}

对于方形孔,菲涅耳衍射的复振幅和光强沿xxx和yyy的分布相同。

仿真程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
clc; clear;
lambda = 500e-9; % 光波长
k = 2 * pi/lambda; % 空间圆频率(波数)
z = 3; % 观察面离衍射屏的距离
a = 5e-3; % 方孔边长
L = 8 * a; % 观察范围边长
N = 5000; % 采样点数
m = linspace(-L/2, L/2, N);
n = (linspace(-L/2, L/2, N))';
U_Sigma = rectpuls(m/(2*a)).*rectpuls(n/(2*a));
x = linspace(-L/2, L/2, N); % x轴
y = (linspace(-L/2, L/2, N))'; % y轴
%传递函数
h = exp(1i*k*z) / (1i*lambda*z) * exp(1i*k*(x.^2+y.^2)/(2*z));
H = fftshift(fft2(h)); % 传递函数频谱
A_Sigma = fftshift(fft2(U_Sigma)); % 衍射面处输入频谱
A = H.*A_Sigma; % 观察面处输出频谱
U = fftshift(ifft2(A)); % 观察面处输出(振幅)
figure; imagesc(abs(U)); % 绘制衍射振幅分布图
colormap("hot");
title('矩形孔菲涅耳衍射振幅分布');
figure; plot(abs(U/max(U)));
title('矩形孔菲涅耳衍射振幅曲线');

得到衍射场振幅分布图样为:

7

衍射场振幅分布曲线为:

8

2.3 单缝

单缝菲涅耳衍射可作为方孔衍射的一个特例来处理,只需将方孔的一个对边向yyy(或xxx)方向无限延伸,便成为单缝。此时有w1=−∞w_1 = -\inftyw1​=−∞,w2=∞w_2 = \inftyw2​=∞。

衍射场复振幅分布公式:

U(x,y)=(1−i)eikz2{[C(v2)−C(v1)]+i[S(v2)−S(v1)]}U(x,y) = \frac{(1-i)e^{ikz}}{2} \left \{ \left [ C(v_2) - C(v_1) \right ] + i \left [ S(v_2) - S(v_1) \right ] \right \}U(x,y)=2(1−i)eikz​{[C(v2​)−C(v1​)]+i[S(v2​)−S(v1​)]}

衍射场光强分布公式:

I(x,y)=12{[C(v2)−C(v1)]2+[S(v2)−S(v1)]2}I(x,y) = \frac{1}{2} \left \{ \left [ C(v_2) - C(v_1) \right ]^2 + \left [ S(v_2) - S(v_1) \right ]^2 \right \}I(x,y)=21​{[C(v2​)−C(v1​)]2+[S(v2​)−S(v1​)]2}

仿真程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
clc; clear;
lambda = 500e-9; % 光波长
k = 2 * pi/lambda; % 空间圆频率(波数)
z = 3; % 观察面离衍射屏的距离
a = 1e-3; % 缝宽
b = 1e3; % 缝长
L = 20 * a; % 观察范围边长
N = 5000; % 采样点数
m = linspace(-L/2, L/2, N);
n = (linspace(-L/2, L/2, N))';
U_Sigma = rectpuls(m/(2*a)).*rectpuls(n/(2*b));
x = linspace(-L/2, L/2, N);
y = (linspace(-L/2, L/2, N))';
%传递函数
h = exp(1i*k*z) / (1i*lambda*z) * exp(1i*k*(x.^2+y.^2)/(2*z));
H = fftshift(fft2(h)); % 传递函数频谱
A_Sigma = fftshift(fft2(U_Sigma)); % 衍射面处输入频谱
A = H.*A_Sigma; % 观察面处输出频谱
U = fftshift(ifft2(A)); % 观察面处输出(振幅)
figure; imagesc(abs(U)); % 绘制衍射振幅分布图
colormap("hot");
title('单缝菲涅耳衍射振幅分布');
figure; plot(abs(U(1,:)/max(U(1,:))));
title('单缝菲涅耳行射振幅曲线');

得到衍射场振幅分布图样为:

9

衍射场振幅分布曲线为:

10

2.4 直边

求直边的菲涅耳衍射光场分布可以只考虑狭缝的一个边,而将其另一个边看作在无限远处。此时,可以取v1=−∞v_1 = -\inftyv1​=−∞以及C(−∞)=S(−∞)=−12C(-\infty) = S(-\infty) = -\frac{1}{2}C(−∞)=S(−∞)=−21​。

衍射场复振幅分布公式:

U(x,y)=(1−i)eikz2{[C(v2)+12]+i[S(v2)+12]}U(x,y) = \frac{(1-i)e^{ikz}}{2} \left \{ \left [ C(v_2) + \frac{1}{2} \right ] + i \left [ S(v_2) + \frac{1}{2} \right ] \right \}U(x,y)=2(1−i)eikz​{[C(v2​)+21​]+i[S(v2​)+21​]}

衍射场光强分布公式:

I(x,y)=12{[C(v2)+12]2+[S(v2)+12]2}I(x,y) = \frac{1}{2} \left \{ \left [ C(v_2) + \frac{1}{2} \right ]^2 + \left [ S(v_2) + \frac{1}{2} \right ]^2 \right \}I(x,y)=21​{[C(v2​)+21​]2+[S(v2​)+21​]2}

采用数值积分方法计算函数

仿真程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
clc; clear;
lambda = 500e-9; % 光波长
L = 0.05;

x = -0.001: 0.000003: 0.001;
w = sqrt(2 / lambda/L).*x;
I_0 = 1;
C = linspace(0, 0, length(x));
S = linspace(0, 0, length(x));
for n=1:length(x)
C(n) = integral(@cos_fun,0,w(n));
S(n) = integral(@sin_fun,0,w(n));
I = I_0/2.*((C + 0.5).^2+(S + 0.5).^2);
F = C + 1i.*S;
end
figure; % 绘制衍射振幅分布图
imagesc(x, max(x), I);
colormap("hot");
title('直边菲涅耳衍射振幅分布');

% 余弦函数
function Z_Fresnel_integral = cos_fun(t)
Z_Fresnel_integral = cos(0.5*pi*t.^2);
end

% 正弦函数
function Z_Fresnel_integral = sin_fun(t)
Z_Fresnel_integral = sin(0.5*pi*t.^2);
end

得到衍射场振幅分布图样为:

11

本文来源: 青江的个人站
本文链接: https://hanqingjiang.com/2024/11/02/241102_matlabDiffractionDistributionSimulation/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
知识共享许可协议
赏

谢谢你请我喝可乐~

支付宝
微信
  • Homework
  • MATLAB

扫一扫,分享到微信

微信分享二维码
【C语言学习笔记】二、数据类型
【FPGA学习笔记】一、数电基础
  1. 1. 1. 夫琅禾费衍射
    1. 1.1. 1.1 矩形孔
    2. 1.2. 1.2 单缝
    3. 1.3. 1.3 圆孔
    4. 1.4. 1.4 正弦振幅光栅
    5. 1.5. 1.5 正弦相位光栅
  2. 2. 2. 菲涅耳衍射
    1. 2.1. 2.1 圆孔轴线
    2. 2.2. 2.2 正方形
    3. 2.3. 2.3 单缝
    4. 2.4. 2.4 直边
© 2021-2025 青江的个人站
晋ICP备2024051277号-1
powered by Hexo & Yilia
  • 友链
  • 搜索文章 >>

tag:

  • 生日快乐🎂
  • 新年快乐!
  • 小技巧
  • Linux
  • 命令
  • 语录
  • 复刻
  • Blog
  • Notes
  • Android
  • C
  • FPGA
  • Homework
  • MATLAB
  • Server
  • Vivado

  • 引路人-稚晖
  • Bilibili-稚晖君
  • 超有趣讲师-Frank
  • Bilibili-Frank