goertzel_algo.m

来自「Goertzel算法是DTMF信号检测的核心」· M 代码 · 共 29 行

M
29
字号
function  Goertzel_array = goertzel_algo (sig_array,K,Num_of_samples);
%
%
%            Function to implement Goertzel's algorithm
%
%   Author: Pranam Janney           Date: 15/05/04     Time: 17:50          
%   Email: pranamjanney@yahoo.com
%
% Usage :
%        Goertzel_array = goertzel_algo (sig_array,K,Num_of_samples);
% Inputs :
%        sig_array  = combination of two sinesoids 
%        Num_of_samples =  Number of samples
%        

 fst_stg(1) = 0;           % First stage output array 1 and 2 have been initialised
 fst_stg(2) = 0;           % to '0' because there is no negative array
 
 lst_stg(1)=0;
 lst_stg(2)=0;
 
 for v = 3:Num_of_samples                 % the recursive function
         fst_stg(v)= sig_array(v) + (2 * cos(( 2 * pi * K) / Num_of_samples)* fst_stg(v-1)) - fst_stg(v-2);
         sec_stg(v) = fst_stg(v) - ( fst_stg(v-1) * exp((-1) * 2 * i * K ));
         lst_stg(v) = abs(sec_stg(v)); 
         
  end
  Goertzel_array = lst_stg;
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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