光电工程师社区

标题: 分享FOX-LIX 程序 [打印本页]

作者: yyhutao    时间: 2009-5-1 00:17
标题: 分享FOX-LIX 程序
%————初始化—————————————
lm=632.8e-9;    %波长
L=100*lm;         %腔长
a=25*lm;           %腔镜线宽
k=2*pi/lm;         %波失
x1=linspace(-a,a,1000);%取1000个点积分
Un_n=zeros(1,1000);
Un_n_1=Un_n;
%———求解第一次的迭代结果——————
for m=1:1000
    x=x1(m);
y=exp((-i*k*(x-x1).^2)/(2*L));
Un_n(m)=sqrt(i/(pi*L)*exp(-i*k*L))*sum(y(1:1000));
end
%————对第一次的归一化————
a=zeros(1,1000);
a=abs(Un_n);%求解振幅
yabsmax=max(a);%振幅最大值
Un_n=Un_n/yabsmax;%归一化
Un_2=a/yabsmax;%振幅归一化
Yn_2=angle(Un_n);%相位分布
%————迭代299次重复第一次过程——
for m=1:299
    for n=1:1000
         x=x1(n);
    y= exp((-i*k*(x-x1).^2)/(2*L)).*Un_n;
   Un_n_1(n)=sqrt(i/(pi*L)*exp(-i*k*L))*sum(y(1:1000));
    end
     Un_n= Un_n_1;
    a=zeros(1,1000);
a=abs(Un_n);
yabsmax=max(a);
Un_n=Un_n/yabsmax;
end
Un_300=a/yabsmax;
Yn_300=angle(Un_n);
%————迭代第300次重复第一次过程——
for n=1:1000
         x=x1(n);
    y= exp((-i*k*(x-x1).^2)/(2*L)).*Un_n;
   Un_n_1(n)=sqrt(i/(pi*L)*exp(-i*k*L))*sum(y(1:1000));
end
Un_n= Un_n_1;
a=zeros(1,1000);
   a=abs(Un_n);
yabsmax=max(a);
Un_n=Un_n/yabsmax;
Un_301= a/yabsmax;
Yn_301=angle(Un_n);
%———画出振幅特性————
plot(Un_2) ;
hold on;
plot(Un_300,'r') ;
hold on;
plot(Un_301,'g') ;
%———画出相位特性————
figure;
plot(Yn_2) ;
hold on;
plot(Yn_300,'r') ;
hold on;
plot(Yn_301,'g') ;
作者: Leelaser    时间: 2009-5-3 10:47
very good 顶
作者: 再也不能这样    时间: 2009-5-3 15:29
many thanks to yyhutao................
作者: matthewlas    时间: 2009-5-8 16:35
怎么是死循环 呢 ????????????




欢迎光临 光电工程师社区 (http://bbs.oecr.com/) Powered by Discuz! X3.2