菲涅尔衍射的相对光强分布图和衍射图

菲涅尔衍射(Fresnel diffraction)是描述波前经过障碍物或孔口时产生的衍射现象,通常适用于较近的距离,其中波前的曲率不可忽略。菲涅尔衍射可以通过菲涅尔积分来描述,下面是通过 MATLAB 实现菲涅尔衍射的相对光强分布图和衍射图的示例代码。

一、菲涅尔衍射的光强分布 

菲涅尔衍射的光强分布 I(x,y,z)可以通过菲涅尔近似公式进行计算

MATLAB 实现菲涅尔衍射的代码,假设光源是点源或均匀光源,并计算其衍射图和相对光强分布图。

% 清空环境
clear; clc; close all;

% 光源与衍射系统的参数
lambda = 650e-9;      % 波长(单位:米)
z = 0.1;              % 传播距离(单位:米)
L = 0.01;             % 光源的尺寸(单位:米)
N = 500;              % 仿真分辨率(网格数量)
xMax = 0.005;         % 最大的x范围
yMax = 0.005;         % 最大的y范围
dx = 2 * xMax / (N - 1); % 网格间距
dy = 2 * yMax / (N - 1); % 网格间距

% 生成坐标网格
x = linspace(-xMax, xMax, N);
y = linspace(-yMax, yMax, N);
[X, Y] = meshgrid(x, y);

% 入射波函数(简单的光源为点源或均匀光源)
U0 = ones(N, N); % 假设光源为均匀光源(可根据实际情况修改)

% 波数
k = 2 * pi / lambda;

% 菲涅尔衍射积分的计算
% 生成衍射场U(x, y, z)
U = zeros(N, N);

for i = 1:N
    for j = 1:N
        % 计算衍射积分的核部分
        r = sqrt((X - x(i)).^2 + (Y - y(j)).^2 + z^2); % 传播距离
        U(i, j) = sum(sum(U0 .* exp(1i * k * r) ./ r)); % 菲涅尔积分
    end
end

% 计算光强
I = abs(U).^2;

% 绘制衍射图
figure;
imagesc(x, y, I);
axis equal;
colorbar;
xlabel('x (m)');
ylabel('y (m)');
title('菲涅尔衍射光强分布');

% 计算衍射中心的光强
figure;
plot(x, I(N/2, :));
xlabel('x (m)');
ylabel('光强 I(x, z)');
title('衍射中心处的光强分布');
grid on;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值