m0_70174328 2023-05-26 22:48 采纳率: 0%
浏览 109
已结题

数值模拟结果不对,求修改

matlab程序。用拉盖尔高斯光束和平面波干涉的干涉条纹做光栅,发生菲涅尔衍射,得到拉盖尔高斯光束。现程序无报错,但结果和推导不符。


```bash
clc
close all

N = 1024*3;            % 取样点数
lambda = 632.8e-9;   % 波长632.8nm
k = 2*pi/lambda;     % 波数
w0 = 5e-2;
x = linspace(-5e-6, 5e-6, N); y = x;
[X, Y] = meshgrid(x, y);
[theta, r] = cart2pol(X, Y);
p = 0;                 % 径向指数
Z_R = pi*w0^2/lambda;  % 瑞利长度
z = 0;
w_z = w0*sqrt(1 + (z/Z_R)^2);  % 光束在z位置的半径
L=1;

% 计算光束的复振幅
E1 = sqrt(2*factorial(p)/pi/(p+factorial(abs(L))))*(1/w_z)*(sqrt(2)*r/w_z).^abs(L)...
        .*exp(-r.^2/w_z^2).*laguerre(p, abs(L), 2*r.^2/w_z^2).*exp(-1i*L*theta).*exp(-1i*k*z)...
        .*exp(-1i*k*r.^2*z/2/(z^2+Z_R^2))*exp(-1i*(2*p+abs(L)+1)*atan(z/Z_R));
E2 = exp(-1i*k*X);       % 平面波
C1 = E1 + E2;           % 干涉场的复振幅

% 计算干涉图样的强度分布
I = C1.*conj(C1);
% 菲涅尔衍射
z = 4e-3 ;  % 菲涅尔衍射距离
T = fftshift(fft2(I));% 光栅的频域表示
H = exp(1i*k*z)*exp(-1i*pi*lambda*z*(X.^2 + Y.^2));  % 菲涅尔传播函数
U = H.*T;  % 菲涅尔衍射
u = ifftshift(ifft2(U));
uu= u.*conj(u);
% 显示衍射图像
figure ;
imagesc(x, y, uu);
axis square;
colormap gray;
title('Fresnel Diffraction');
xlabel('x');
ylabel('y');
%拉盖尔多项式
function result = laguerre(p,L,x)
result = 0;
if p == 0    
    result = 1;
elseif p == 1    
result = 1+abs(L)-x;
else   
  result = (1/p)*((2*p+L-1-x).*laguerre(p-1,abs(L),x)-(p+L-1)*laguerre(p-2,abs(L),x));
end
end


```

  • 写回答

7条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-27 08:20
    关注
    获得3.20元问题酬金
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7509232
    • 这篇博客你也可以参考下:Matlab:涡旋光束与平面光波、球面光波干涉
    • 除此之外, 这篇博客: 利用MATLAB绘制箱线图—箱线图在高光谱图像处理中的应用中的 一、箱线图在高光谱图像处理中的应用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      箱线图也称箱须图、箱形图、盒图,用于反映一组或多组连续型定量数据分布的中心位置和散布范围。箱形图包含数学统计量,不仅能够分析不同类别数据各层次水平差异,还能揭示数据间离散程度、异常值、分布差异等等。

      目前已经在异常检测,目标探测,红外小目标检测、分类等多个方向上有广泛的应用,具体箱线图的含义,读者可以百度,或者查看第三部分的相关参考文献,此处不再赘述。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 赞助了问题酬金20元 5月26日
  • 创建了问题 5月26日

悬赏问题

  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛