📄 fftcal.m
字号:
function fftcal
global numero;
global A;
global Afft;
global fftgraf;
global nfftgraf;
global nnfftgraf;
global fftN;
global fftfs;
global deltat;
global fftdeltaf;
global Limiteizq;
global Limiteder;
global numerofft;
nnfftgraf=fftgraf;
No=numero(fftgraf);
Nn=numero(fftgraf+1)-No;
if Limiteizq==Limiteder;
Nizq=0;
Nder=Nn;
else
Nizq=fix(Limiteizq/deltat(fftgraf));
Nder=fix(Limiteder/deltat(fftgraf));
end;
if Nizq>Nder;Nizq=Mud;Nizq=Nder;Nder=Mud;end;
if Nder>=Nn;
Nf=No+Nn-1;
else
Nf=No+Nder;
Nn=Nder-Nizq+1;
end;
NNfft=fix(fftN/2)+1;
Bfft=fft(A(No+Nizq:Nf),fftN);
Bfft=abs(Bfft(1:NNfft))*deltat(fftgraf);
df=1/deltat(fftgraf)/fftN;
fia=1;
fma=1;
Suma=Bfft(1)*Bfft(1);
if fftfs >= 1;
for i=2:NNfft;
fi=fix(i*2^(-1/2/fftfs));
fm=fix(i*2^(+1/2/fftfs));
if fi < 1;fi=1;end;
if fm > NNfft;fm=NNfft;end;
for j=fia:fi-1;
Suma=Suma-Bfft(j)*Bfft(j);
end;
for j=fma+1:fm;
Suma=Suma+Bfft(j)*Bfft(j);
end;
Nf=fm-fi+1;
fia=fi;
fma=fm;
Bfft(i)=sqrt(Suma/Nf);
end;
end;
ind=0;
j=0;
for i=nfftgraf;
j=j+1;
if i==fftgraf;
fftdeltaf(j)=df;
Afft=[Afft(1:numerofft(j)-1);Bfft;...
Afft(numerofft(j+1):length(Afft))];
dif=NNfft-numerofft(j+1)+numerofft(j);
if j==length(nfftgraf);
numerofft=[numerofft(1:j);numerofft(j)+NNfft];
else;
numerofft=[numerofft(1:j);numerofft(j)+NNfft;...
(numerofft(j+2:length(numerofft))+dif)];
end;
ind=1;
break;
end;
end;
if ind==0;
fftdeltaf=[fftdeltaf;df];
Afft=[Afft;Bfft];
nfftgraf=[nfftgraf fftgraf];
numerofft=[numerofft;numerofft(length(numerofft))+NNfft];
end;
fftgra;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -