Guten Tag, ich bin gerade dabei ein Gitarrenaudiosignal zu analysieren. Ich habe das Signal schon abgetastet! Alle 64ms habe ich ein Hamming Fenster gebaut mit 512 Abtastwerten. Die Fenster sind überlappend angeordnet. Dieses habe ich dann mittels FFT analisiert und danach mit einer Spektralanalyse analysiert. Und da ist mein Porblem, ich kann die Werte nicht interpretieren. Wie berechne ich aus diesem Frequenzbild die Grundfrequenz? Im Anhang habe ich eine PDF welche die einzelnen Frames zeigen wie die ersten beiden Fourier Koeffizienten nach der Spektralanalyse aussehen. Solltet ihr merh Infos brauchen werde ich sie euch zusenden. Dazu habe ich noch das Signal visualisiert. Es sind drei Noten gespielt f, g und a! Mein Ziel ist es die Noten zu filtern, das heißt ich will rausfinden wann eine neue Note gespielt wird und wann sie aufhört. Mein Ansatz bisher: Ich schneide die Note ab sobald ein maximum bei einem Frame im ersten Fourier Koeffizient auftritt. Aber ich weiß nicht wann die Note aufhört. Ich hoffe ihr könnt mir helfen.
Hi Michi, Also generell, das Fachgebiet nennt sich "Music Information Retrieval" MIR und das was du machst ist eigentlich bekannt unter "Pitch detection". Du kannst das ganze natürlich über recht viele Wege (Algorithmen realisiern) ... z.b mit der Autokorrelation -> http://cnx.org/content/m11714/latest/ ... aber ich würde mir einfach einmal das Spektrogramm deines Signals anschaun d.h du nimmst dir am besten Matlab und mittels Specgramm kannst dir die Frequenzanteile deines Signals über die Zeit anschaun, wobei sich hier natürlich -> die dominanteste Frequenz ist dann deine Grundfrequenz. Das ganze wird natürlich richtig schwer zu analysieren wenn du Akkorde spielst bzw. Effekte auf dem Signal drauf hast. Wenn du kein Matlab hast ... Audacity ist ein Open Source Recording Programm welches auch Spektralanalysetools enthält bzw. gibt es natürlich auch scho fertige Tools zur Pitch detection. Wenn du die Grundfrequenz erhalten hast ... musst du natürlich noch auf deine Töne umrechnen ... http://de.wikipedia.org/wiki/Ton (Musik). Für die Time detection d.h zu welchem Zeitpunkt ein Ton kommt ... kannst einfach die Leistung deines Signals berechnen -> Signal^2 und dann mit einem Threshold die Startwerte setzen ... wobei natürlich berücksichtigen ist das das Anschlagen transient ist und noch nicht wirklich die Grundfrequenz enthält ... lg Peter
Hallo Michi, soll das ein Echtzeitsystem werden? Verstehe ich das richtig, Du hast schon die Fourierzerlegung für jeden Zeitschritt? Soll das ganze nur für einzelne Töne, oder auch für Kombinationen davon funktionieren? Was hältst Du davon erstmal mit sinussignalen zu üben? Grüße, Hans
Hi ... Hab gerade gesehen das der Link zu der Umrechnung zwischen Töne und Frequenzen aus Wikipedia nicht exakt ist ... also nochmal: http://de.wikipedia.org/wiki/Ton_%28Musik%29 lg Peter
Also danke schonmal für die Antworten. Das System stellt keinerlei Anforderung an eine Echtzeitanalyse. Ich analysiere das Signal das in Wave Form vorliegt. Ich hab das Signal soweit analysiert und mit der FFT ins Frequenzspektrum überführt und dann die Beträge der Fourier Koeffizienten berechnet. Jetzt ist meine Frage wie ich die Werte am besten verwende, da ich später Akkorde filtern will. Minimum Ziel: - Erkennung einzelner Noten Wünschenwertes Ergebnis: - Analyse Akkorde und die zugehörigen Noten - Ermittlung der Notenwerte(ganze, halbe Note) - Generierung Notenblatt - Erkennung der Verzierungen ( Abgedämpft) Es wäre mir sehr hilfreich wenn ihr mir helfen könnt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.