当前位置: 首页 > 工具软件 > REPET-Matlab > 使用案例 >

matlab 谐振腔,matlab 利用快速傅里叶变换计算谐振腔的模式 - 计算模拟 - 小木虫 - 学术 科研 互动社区...

越国源
2023-12-01

%%利用二维快速傅里叶变换方法计算谐振腔中的模式

clear;

clc;

lambda=1.064*10^-6;      %波长

k=2*pi/lambda;           %波数

a=0.5*10^-3;             %镜子的半径

fnum=5;                  %菲涅尔数

z=a^2/fnum/lambda;       %腔长

repet=100;               %迭代次数

M=129;N=129;

x=linspace(-a,a,M);

y=linspace(-a,a,N);

[X,Y]=meshgrid(x,y);

u0=ones(M,N);

u1=zeros(M,N);

H=exp(1j*k*z).*exp(-1j*pi*lambda*z.*(X.^2+Y.^2));

for inter=1:repet

U0=fft2(u0);

U1=U0.*H;

u1=ifft2(U1);

u1=u1./max(abs(u1(:));

u0=u1;

end

Ie=u1.*conj(u1);

Ie=Ie./max(Ie(:);

surf(X,Y,Ie);

shading interp;

axis([-a,a,-a,a,0,1]);

box on; grid off;

这是修改后的,结果还是有点问题,

 类似资料: