⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fftcal.m

📁 德国人开发的地震处理分析软件
💻 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 + -