基于matlab的光学实验仿真
包括衍射和干涉。具体有单缝菲涅耳衍射、单缝夫琅禾费衍射、杨氏双缝干涉、光栅衍射、牛顿环干涉五种实验。可进行缝数、波长、缝宽、屏距等参数设置。并显示原理图及可视化结果。

在这里插入图片描述

以下是一个基于 MATLAB 的光学实验仿真实现示例。我们将模拟一个经典的光学实验——杨氏双缝干涉实验。该实验通过两束相干光波的干涉,产生明暗相间的干涉条纹。


1. 实验原理

杨氏双缝干涉实验的基本原理:

  • 光源发出的光经过两个狭缝后形成两束相干光波。
  • 两束光波在屏幕上叠加,产生干涉现象。
  • 干涉条纹的强度分布由以下公式描述:

[
I(x) = I_0 \cos^2\left(\frac{\pi d \sin\theta}{\lambda}\right)
]

其中:

  • (I(x)): 屏幕上的光强分布。
  • (I_0): 最大光强。
  • (d): 双缝之间的距离。
  • (\lambda): 光的波长。
  • (\theta): 光线与屏幕法线的夹角(近似为 (\sin\theta \approx x / L))。
  • (L): 双缝到屏幕的距离。
  • (x): 屏幕上的位置坐标。

在这里插入图片描述

2. MATLAB 实现代码

function young_double_slit_experiment
    % 杨氏双缝干涉实验仿真
    clc;
    clear;

    % 参数设置
    lambda = 632.8e-9; % 光波长 (m),红光 (He-Ne 激光)
    d = 0.1e-3;        % 双缝间距 (m)
    L = 1;             % 双缝到屏幕的距离 (m)
    I0 = 1;            % 最大光强
    screen_width = 0.01; % 屏幕宽度 (m)
    num_points = 1000; % 屏幕上的采样点数

    % 屏幕上的位置坐标
    x = linspace(-screen_width / 2, screen_width / 2, num_points);

    % 计算干涉条纹强度分布
    theta = x / L; % 近似 sin(theta) = x / L
    I = I0 * cos(pi * d * theta / lambda).^2;

    % 绘制结果
    figure;
    plot(x * 1e3, I, 'LineWidth', 1.5); % 将单位从米转换为毫米
    xlabel('屏幕位置 (mm)');
    ylabel('相对光强');
    title('杨氏双缝干涉实验仿真');
    grid on;

    % 添加注释
    text(-screen_width / 4 * 1e3, max(I) * 0.9, sprintf('波长: %.1f nm', lambda * 1e9), ...
        'FontSize', 12, 'Color', 'blue');
    text(-screen_width / 4 * 1e3, max(I) * 0.8, sprintf('双缝间距: %.1f mm', d * 1e3), ...
        'FontSize', 12, 'Color', 'blue');
end

在这里插入图片描述

3. 功能说明

  1. 参数设置:

    • 用户可以调整光波长 ((\lambda))、双缝间距 ((d)) 和屏幕距离 ((L)) 等参数。
    • 默认使用 He-Ne 激光器的波长 (632.8 nm)。
  2. 光强计算:

    • 使用干涉公式计算屏幕上各点的光强分布。
  3. 可视化:

    • 绘制干涉条纹的强度分布图,横轴为屏幕位置,纵轴为相对光强。
  4. 单位转换:

    • 屏幕位置以毫米为单位显示,便于观察。

4. 运行方法

  1. 将上述代码保存为一个 .m 文件,例如 young_double_slit_experiment.m
  2. 在 MATLAB 中运行该文件:young_double_slit_experiment
  3. 查看输出结果,包括干涉条纹的强度分布图。

5. 扩展功能

  1. 动态参数调整:

    • 添加 GUI 界面,允许用户动态调整波长、双缝间距和屏幕距离,并实时更新结果。
  2. 多缝干涉:

    • 扩展模型以模拟三缝或更多狭缝的干涉现象。
  3. 光源特性:

    • 考虑非单色光源的影响,引入波长分布以模拟白光干涉。
  4. 三维可视化:

    • 使用 surf 函数绘制三维光强分布图,展示更直观的干涉效果。

6. 示例输出

运行代码后,您将看到类似以下的干涉条纹图:

杨氏双缝干涉实验仿真
------------------------
波长: 632.8 nm
双缝间距: 0.1 mm

干涉条纹表现为明暗相间的曲线,中心位置光强最大,两侧逐渐减弱。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐