基于MATLAB的单缝菲涅尔衍射光强分布仿真结果及分析,包含不同参数下的光强分布图与灰度图实现方法:
一、核心仿真代码框架
%% 参数设置
lambda = 632.8e-9; % 波长(氦氖激光)
a = 0.2e-3; % 缝宽(可调整)
z = 0.5; % 观察距离(可调整)
N = 1000; % 采样点数%% 坐标计算
x = linspace(-0.01,0.01,N); % 观察屏坐标(m)
u = sqrt(2/(lambda*z)) * (x + a/2); % 菲涅尔积分变量%% 菲涅尔衍射积分计算
C = fresnelc(u); S = fresnels(u);
I = 0.25 * ( (C(2:end) - C(1:end-1)).^2 + (S(2:end) - S(1:end-1)).^2 );%% 可视化
figure;
subplot(1,2,1);
imagesc(x*1e3, z, I); % 转换为毫米单位
colormap(gray); axis equal tight;
title('菲涅尔衍射灰度图');
xlabel('位置 (mm)'); ylabel('距离 (m)');subplot(1,2,2);
plot(x*1e3, I/max(I));
xlabel('位置 (mm)'); ylabel('归一化光强');
title('光强分布曲线');
grid on;
二、不同参数下的衍射图样
1. 缝宽变化的影响(保持λ=632.8nm,z=0.5m)
| 缝宽a (mm) | 光强分布特征 | 灰度图特点 |
|---|---|---|
| 0.1 | 中央主极大宽,次极大明显 | 中心区域灰度均匀,边缘渐变 |
| 0.3 | 主极大收缩,次极大减弱 | 中心出现明亮尖峰,两侧暗纹清晰 |
| 0.5 | 衍射效应消失,趋近几何投影 | 灰度图呈现均匀亮斑 |
代码调整:修改a值后重新计算积分。
2. 观察距离变化的影响(保持a=0.2mm,λ=632.8nm)
| 距离z (m) | 光强分布特征 | 灰度图特点 |
|---|---|---|
| 0.1 | 近场菲涅尔区,条纹不规则 | 灰度分布呈现波动状纹理 |
| 0.5 | 过渡区域,主极大开始收缩 | 中心亮斑扩大,次极大可见 |
| 2.0 | 远场夫琅禾费区,条纹规则 | 对称明暗条纹,灰度对比度高 |
代码调整:修改z值后重新计算。
3. 波长变化的影响(保持a=0.2mm,z=0.5m)
| 波长λ (nm) | 光强分布特征 | 灰度图特点 |
|---|---|---|
| 405 | 衍射效应增强,条纹更宽 | 高频振荡明显,灰度层次丰富 |
| 632.8 | 标准衍射图样 | 典型单峰双谷结构 |
| 1550 | 衍射效应减弱,主极大变窄 | 低频成分主导,灰度平坦 |
代码调整:修改lambda值后重新计算。
三、参数解析
-
菲涅尔数(Fresnel Number)
\(F=\frac{a^2}{λ_z}\)
- 当F > 1时:菲涅尔衍射主导(近场)
- 当F << 1时:夫琅禾费衍射主导(远场)
- 通过调整
a和z可观察衍射区过渡过程
-
光强分布公式
菲涅尔衍射光强由菲涅尔积分计算:

其中\(r=\sqrt{z^2+x^2}\),积分通过
fresnelc和fresnels函数实现
四、高级仿真示例
1. 三维演化图(菲涅尔→夫琅禾费过渡)
% 参数设置
lambda = 632.8e-9;
a = 0.001;
z_range = linspace(0.05, 2, 50); % 0.05m(菲涅尔)→2m(夫琅禾费)% 计算三维光强矩阵
[X,Z] = meshgrid(linspace(-0.01,0.01,500), z_range);
I = zeros(size(Z));
for i = 1:numel(Z)u = sqrt(2/(lambda*Z(i))) * (X(:) + a/2);I(i,:) = 0.25 * ( (fresnelc(u(2:end)) - fresnelc(u(1:end-1))).^2 + ...(fresnels(u(2:end)) - fresnels(u(1:end-1))).^2 );
end% 可视化
figure;
surf(X*1e3, Z, I, 'EdgeColor','none');
colormap(jet); shading interp;
xlabel('横向位置 (mm)'); ylabel('距离 (m)');
zlabel('归一化光强'); view(135,30);
效果:展示衍射图样随距离的动态演化过程
2. 噪声环境下的条纹定位
% 添加噪声
I_noisy = imnoise(I_true, 'gaussian', 0, 0.1);% 定位算法对比
method1 = peak2peak_spacing(I_noisy); % 峰值谷值法
method2 = autocorr_spacing(I_noisy); % 自相关法% 误差分析
fprintf('峰值法误差: %.2f%%, 自相关法误差: %.2f%%', method1_err, method2_err);
应用场景:实际实验中处理噪声干扰和过曝问题
五、实验结果对比
| 方法 | 定位精度 | 抗噪能力 | 计算效率 |
|---|---|---|---|
| 峰值谷值法 | 高 | 差 | 快 |
| 平移相关法 | 极高 | 优 | 慢 |
| 傅里叶变换法 | 中 | 中 | 最快 |
参考代码 给出不同情况下单缝菲涅尔衍射的光强分布图和灰度图 www.youwenfan.com/contentcno/95930.html
六、扩展应用建议
- 动态演示:结合App Designer创建交互式GUI,实时调整参数观察变化
- 实验验证:使用CCD采集实际衍射图像,与仿真结果对比分析误差
- 多缝干涉:扩展代码模拟多缝衍射,研究光栅特性