吾爱光设

 找回密码
 注册
会员须知
会员须知
实用帮助
实用帮助
查看: 1321|回复: 1

高斯光束衍射光场与缓变振幅近似公式的一致性验证

[复制链接]
  • TA的每日心情

    2023-5-17 23:09
  • 签到天数: 37 天

    [LV.5]常住居民I

    10

    主题

    14

    回帖

    0

    积分

    小白

    积分
    0
    发表于 2022-5-8 16:16 | 显示全部楼层 |阅读模式
    如题,我想验证基尔霍夫衍射和高斯光束表达式中w(z)的一致性。代码结果与料想的不一样,请大家帮忙看看哪里有问题。
    正确效果应该是 两条曲线重合吧? (初步猜测原因在于 有限区域衍射和无限区域衍射的区别造成的)
    代码如下:

    clc;clear all; close all                        %单位:mm
    b = 2;                                %衍射屏区域大小
    x = 2;                                        %观察屏大小
    z = 20;                                        %观察距离
    lamda = 0.67e-3;                        %波长

    k = 2*pi/lamda;                                %wave number

    N = 5000;                                %采样数
    x1 = -bb/N):b;                        %衍射屏(孔)采样点
    x2 = -xx/N):x;                        %观察屏采样点
    Ein = ones(1,2*N+1);                        %定义输入单位矩阵
    Eout = zeros(1,2*N+1);                        %定义输出零矩阵
    w0 = 0.05;                                %高斯光束束腰


    zR = pi*(w0^2)/lamda;       % 瑞利长度
    z = 0;
    w_z = w0*sqrt(1+(z/zR)^2);  % z位置的光束半径
    E0 = 1;                     % 光强系数定义为1

    Ein_gauss = E0*exp(-1.*(x1./w_z).^2);
    figure;
    plot(x1,abs(Ein_gauss)/(max(abs(Ein_gauss))));                %画出衍射屏(孔)处的高斯光束光强
    grid on;
    title('衍射屏(孔)处的归一化光强');


    Ein_diff = Ein_gauss .* 1;                %衍射屏后的复振幅分布,把Ein_gauss用1取代则为平面波入射
    z = 20;
    cons = 1 / i * 2 * lamda;                %基尔霍夫衍射公式积分常数
    for m = 12*N+1)
         r_x = sqrt(z^2 + (x1 - x2(m)).^2);         %衍射屏x1到观察屏x2(m)的距离
         dEout = cons * Ein_diff .* ((r_x + z) ./r_x .^2) .* exp(i * k * r_x);
         %基尔霍夫衍射积分公式
         Eout(m) = trapz(x1,dEout);                  %衍射积分
    end

    Iout = Eout .*conj(Eout);                %衍射光强
    Iout = Iout /max(Iout);                 %衍射光强归一化
    figure
    plot(x2,Iout,'-.');
    axis([-2 2 0 1]);
    title('归一化的衍射光强');
    xlabel('mm');   ylabel('Relative Intensity');
    grid on;
    hold on;

    z = 20;
    w_z = w0*sqrt(1+(z/zR)^2);  % z位置的光束半径
    E_waist = E0*exp(-1.*(x2./w_z).^2);
    %高斯光束束腰处的复振幅分布
    plot(x2,abs(E_waist),'r');
    legend('衍射积分光强','束腰处光强');

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册

    ×
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情

    2023-5-17 23:09
  • 签到天数: 37 天

    [LV.5]常住居民I

    10

    主题

    14

    回帖

    0

    积分

    小白

    积分
    0
     楼主| 发表于 2022-5-9 15:51 | 显示全部楼层
    程序问题,高斯公式计算时没有进行归一化。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    联系我们|本论坛只支持PC端注册|手机版|小黑屋|吾爱光设 ( 粤ICP备15067533号 )

    GMT+8, 2024-4-27 22:41 , Processed in 0.093750 second(s), 23 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表