2015-01-21 183 views
-1

我在这里得到了代码: https://naudio.codeplex.com/discussions/270762我该如何实现Goertzel算法?

戈泽尔算法是这样的:

public double goertzel(List<double> sngData, long N, float frequency, int samplerate) 
    { 
     double skn, skn1, skn2; 
     skn = skn1 = skn2 = 0; 
     samplerate = this.sampleRate; 
     frequency = this.freq; 

     double c = 2 * pi * frequency/samplerate; 
     double cosan = Math.Cos(c); 

     for (int i = 0; i < N; i++) 
     { 
      skn2 = skn1; 
      skn1 = skn; 
      skn = 2 * cosan * skn1 - skn2 + sngData[i]; 
     } 

     return skn - Math.Exp(-c) * skn1; 
    } 

我想通过使用算法(在上面的链接从波形文件阅读器)来转换的音频数据。我怎样才能做到这一点?谢谢

回答

0

如果您正在进行DTMF检测,请尝试“phoneToneDecoder”COM。它会从您的声卡中检测DTMF音调。 (我认为它是专有的)