我怎样才能用这个实现 Goertzel 算法?
How can i implement the Goertzel Algorithm with this?
我在这里得到了代码:
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;
}
我想使用该算法转换音频数据(来自上面 link 中的 wave 文件 reader)。我怎样才能做到这一点?谢谢
如果您正在进行 DTMF 检测,请尝试 "phoneToneDecoder" COM。它会检测来自声卡的 DTMF 音调。 (我认为它是专有的)
我在这里得到了代码: 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;
}
我想使用该算法转换音频数据(来自上面 link 中的 wave 文件 reader)。我怎样才能做到这一点?谢谢
如果您正在进行 DTMF 检测,请尝试 "phoneToneDecoder" COM。它会检测来自声卡的 DTMF 音调。 (我认为它是专有的)