fft_core.m

来自「MATLAB计算功率谱密度PSD的源代码」· M 代码 · 共 46 行

M
46
字号
function[mag_seg]=FFT_core(amp_seg,mmm,mH,mr_choice,h_choice);
%    
%   FFT_core.m  version 1.1    Jan 29, 2005 ')
%   By Tom Irvine   Email:  tomirvine@aol.com ')
%
clear mag_seg;
clear Y;
clear z;
clear H;
%
mu=mean(amp_seg);
if(mr_choice==1)
    amp_seg=amp_seg-mu;
end
%
if(h_choice==2)
%   disp(' Hanning window ');   
    H=zeros(1,length(amp_seg));
	for(i=1:mmm)
	    H(i)=(sin( (i*pi/mmm) )^2);       
    end
    ae=sqrt(8./3.);
    amp_seg=ae*amp_seg.*H;
end
%
%disp(' ')
%disp(' begin FFT ')
%disp(' ')
%
Y = fft(amp_seg,mmm);
%
for(i=1:mH)
   aa=real(Y(i));
   bb=imag(Y(i));
   z=sqrt(aa^2+bb^2)/mmm;
%
   if(i>1)
      mag_seg(i)= 2*z;
      mag_seg(i)=mag_seg(i)^2;  
      mag_seg(i)=mag_seg(i)/2;        
   else
      mag_seg(i)= z;
      mag_seg(i)=mag_seg(i)^2;       
   end
%   
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?