Как я могу использовать алгоритм Герцеля, если формат волны следующий: - 2 канала - 32 бита - 48 кГц
Я уже искал об алгоритме Герцеля, но все, что я могу увидеть в Интернете, это обнаружение DTMF с форматом волны 2 канала, 16 бит и 8 кГц. Я не знаю, какую часть кода мне следует изменить, чтобы соответствовать моим требованиям.
Private Function Goertzel(ByVal sample As Byte(), ByVal N As Long, _
ByVal freq As Double, ByVal sampr As Long) As Double
Dim Skn As Double = 0
Dim Skn1 As Double = 0
Dim Skn2 As Double
Dim c As Double
Dim c2 As Double
Dim i As Integer
c = 2 * Math.PI * freq / sampr
c2 = Math.Cos(c)
For i = 0 To (N - 1)
Skn2 = Skn1
Skn1 = Skn
Skn = 2 * c2 * Skn1 - Skn2 + sample(i)
Next
Return Skn - Math.Exp(-c) * Skn1
End Function
Private Function power(ByVal val As Double) As Double
Return 20 * Math.Log(Math.Abs(val)) / Math.Log(10)
End Function