主题:[讨论]Matlab的小问题
function F=fft017(M,BOE,p,w,z)
%宽度 M=4mm,BOE=150mm,迭代次数p=260,
%波长 w=0.6328e-3mm AB间距z=1e3mm
% Part 1 A: 高斯分布
N=BOE/(w*z);
X=[-M/2:1/N:M/2];
m=length(X)
A=zeros(1,m);
Z1=exp(-0.09*(X.^2)); %高斯分布
A=Z1;
u=([-N/2:1/M:N/2]);
xf=u.*(w*z);
wc=90;
%所需谱面振幅=巴特沃斯分布 (近似矩形)n=7
B=sqrt(1./(1+((u.^2).^7.*(wc^(-14)))));
% Part 2 实现FFT
FB=ifft(B);
FB0=FB; %初值
FBi=angle(FB0);
FBi0=exp(i*FBi);
FBB=FBi0;
for k =1:p
AA = A.*FBB; %振幅替换为高斯分布
FA=fft(AA);
FAm=abs(FA);
FAi1=angle(FA);
FAi=exp(i*FAi1);
BB=B.*FAi; %振幅替换为矩阵分布
FB=ifft(BB);
FBi1=angle(FB);
FBi=exp(i*FBi1);
FBB=FBi;
end
% Part Ⅲ 结果表示
Ba=FAi1;
C0=pi/(w*z)*(xf.^2);%近轴球面波因子
Aa=-C0+FBi1; %二元光学元件H的相位
Da=mod(Aa,2*pi); %相位取小于2π
Da=round(Da/(pi/4)); %相位二值化,取n=3
出错的地方
??? Input argument "BOE" is undefined.
Error in ==> fft017 at 5
N=BOE/(w*z);
附件有PDF的源代码,我是菜鸟级的水平,很多都不懂,希望高手和热心人帮忙,我不知道怎么才能让程序按这些注释正确运行%宽度 M=4mm,BOE=150mm,迭代次数p=260,
%波长 w=0.6328e-3mm AB间距z=1e3mm
我的邮箱basowxf2002@163.com
[em10][em10][em10][em10][em10][em10][em11][em10][em11]