• 【光学】基于matlab模拟双孔干涉附matlab代码


    1 内容介绍

    通过Matlab软件编程,实现光学双缝干涉的计算机仿真.仿真结果对学生理解光学原理的基本概念很有帮助,提高了教学效果.

    2 部分代码​

    %REDME!!!该仿真模拟了双孔干事实验中光屏逐渐远离双孔时干涉图像的变化,按空格键仿真停止

    %—————————————————————————————————————

    flag = 1;

    t = 0;

    d = 0.2;                                            %两孔的距离(两孔中心正对干涉屏中心)

    %默认两孔平行于X轴

    Lambda = 500e-6;                                    %干涉光波长(mm)

    x_scale = 120;                                      %图像长度

    y_scale = 4000;                                     %图像宽度

    x_temp = linspace(-x_scale/2, x_scale/2, 601);

    y_temp = linspace(-y_scale/2, y_scale/2, 501);

    [X, Y] = meshgrid(x_temp, y_temp);                  %创建网格矩阵用于二维绘图

    while flag

        input = get(gcf, 'currentkey');

        if strcmp(input, 'space');

            clc;

            flag = 0;

        end

        D = 1500 + t;                                           %双孔到干涉屏的距离(mm)

        R1 = sqrt((X-d/2).^2+Y.^2+D^2);

        R2 = sqrt((X+d/2).^2+Y.^2+D^2);                     %计算网格坐标点到两孔的距离

        Delte = (R1-R2)/Lambda * 2*pi;                      %计算网格坐标点到两孔的相位差

        I = (1./R1).^2 + (1./R2).^2 + 2*(1./R1).*(1./R2).*cos(Delte);

        %计算两孔到网格坐标点的相对光强

        image(56 * I * D^2);                                %开始绘图

        colormap gray;

        axis off;

        axis equal;

        title('杨氏双孔干涉(Young’s double pinhole interference)','FontSize',12);

        pause(0.2);

        t = t + 15;

    end

    3 运行结果

    4 参考文献

    [1]赵鑫. 基于Matlab的光学双缝干涉实验仿真[J]. 科学中国人, 2015(12Z):1.

    博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

    部分理论引用网络文献,若有侵权联系博主删除。

     

  • 相关阅读:
    软考高项-计算题理解
    如何手动获取spring/springboot中的IOC容器(全局上下文对象)?
    肿瘤NGS测序行业背景介绍
    vant 按需导入 vue2
    宇宙始终处于完美状态
    【世界杯】free-api-worldcup2022 免费世界杯API
    Oracle数据中如何在 where in() 条件传参
    实验十三————网页爬虫
    岁月不饶人
    Java_只出现一次的数字
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/126940040