ACGN4510471 2024-12-29 15:41 采纳率: 0%
浏览 3

关于#matlab#的问题:我利用matlab对fresnel衍射进行仿真,目前我有两张屏后电场、两张接收面的电场图(平方后),我想确认我matlab代码有没有问题

我利用matlab对fresnel衍射进行仿真,目前我有两张屏后电场、两张接收面的电场图(平方后),结果差的有点多,我想确认我matlab代码有没有问题

img

img

clc;
clear all;
close all;

load('picturedata_y2.mat'); %behind diffraction plane
Y = picturedata2;

%% parameter
mm=1e-3;
nm=1e-9;
d=50*mm; % receive plane distance
SL=30*mm; % plane size
lambda=890*nm; 
k=2*pi/lambda;% wavevector

u1 = transpose(Y);
X = linspace(-SL/2, SL/2,length(u1)); %(d=0)
X1 = linspace(-SL/2, SL/2,length(u1)); %(d=50mm)
N=length(u1); %sample

%% calculate
E0 = [];
for sx = 1:N
    E0(sx) = exp(-i*k*d)/(-i*lambda*d)*(sum(u1.*exp(-i*k/2/d*((X1(sx)-X).^2))));
end

figure;
plot(X1,power(abs(E0),2));

  • 写回答

5条回答 默认 最新

  • ACGN4510471 2024-12-29 15:47
    关注

    这是预期图,我对其他人文章进行仿真

    img

    评论

报告相同问题?

问题事件

  • 创建了问题 12月29日