Wie kann man eine Toneingabe mit einem vorbestimmten Ton vergleichen?

8

Ausarbeiten:

Angenommen, ich spiele ein G auf meiner Gitarre und meine Soundkarte hat eine Eingabe gemacht. Wie kann ich meinen Computer erkennen lassen, dass es G ist? (Keine Einschränkungen in der Programmiersprache, obwohl Python oder C bevorzugen) (Links zu Artikeln oder bestimmten Ideen würden helfen. Keine Code-Schnipsel)

    
Hick 07.11.2011, 11:24
quelle

3 Antworten

1

Weder der Goertzel-Filter noch eine FFT sind gute Tonhöhenschätzer. Die FFT ist ein Frequenzschätzer, und die spektrale Spitzenfrequenz unterscheidet sich von der psychoakustischen Tonhöhe (aufgrund von Wahrnehmungs-Kuriositäten und der Physik tatsächlicher Musikinstrumente, wie fehlende oder schwache Grundlagen).

Suche im Stackoverflow nach Algorithmen für die musikalische Tonhöhenschätzung. Es gibt eine Menge.

    
hotpaw2 08.11.2011, 00:44
quelle
0

Verwenden Sie die schnelle Fourier-Transformation. Hier ist ein Code: Ссылка

    
Richard Green 07.11.2011 11:48
quelle
0

Wenn Sie nur nach wenigen Frequenzen suchen möchten, ist der Goertzel-Algorithmus möglicherweise einfacher zu implementieren. (Und zur Laufzeit schneller)

    
fnl 07.11.2011 13:03
quelle

Tags und Links