fft_zhixindu_subfunc.asv

来自「再matlab下面实现信号的fft变换。 是fft函数。」· ASV 代码 · 共 59 行

ASV
59
字号
%利用置信度求基频的子函数
    function f0=fft_zhixindu_subfunc(xxx,N,p_size,Fs)

   
    xx=xxx;
    %xx=xx.*hamming(8*Winsiz);
    y=fft(xx,N);
   % y=y(1:4*Winsiz/2);
    y=y(1:N/2);
    y=y.*conj(y);    
    
    for i=1:length(y)
        if y(i)==max(y(5:N/2))               %选从开始选取是为了避免最开始的几条大幅度谱线的干扰
            max_data=i; 
            break;
        end
    end 
 
    %
   for j=1:5
       f(j)=floor(max_data/j);         
   end 
   
    for i=1:5   %求置信度
       K=f(i);
       E(i)=0;       
       for j=1:5
           for n=j*K-3:j*K+3 
               if n>2048
                  y(n)=0;    
               end    
           end
           for n=j*K-3:j*K+3
               if y(n)==max(y(j*K-3:j*K+3)) 
                  M=n;    
               end    
           end           
          E(i)=E(i)+y(M);
      end  
             
   end  
   for i=1:5
       if E(i)==max(E)
          m=i;          
       end        
   end  
   f0=Fs/N*f(m);
  
    
    
   







⌨️ 快捷键说明

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