Wie findet man die Frequenz der ersten Harmonischen aus dem Frequenzspektrum einer Aufnahme dieser Harmonischen, die auf einer Gitarre angeschlagen wird?

Wie der Titel schon sagt, habe ich versucht, die Grundfrequenz einer Gitarrensaite bei verschiedenen Spannungen als Teil eines Experiments zu finden, um ihren Elastizitätsmodul zu finden. In dem Experiment habe ich die Gitarre über eine Aufnahmeschnittstelle mit dem Computer verbunden und aufgenommen, als die erste Harmonische (leere Saite) in Audacity angeschlagen wurde. Dann wurde ein kurzer Bereich der Aufnahme mit minimaler Resonanz einem Frequenzdiagramm unterzogen.

Das Gespenst

Das Problem bei meiner Methode ist, dass, wie auf dem Bild zu sehen, mehrere Spitzen erscheinen (dies ist eigentlich eine bessere Darstellung, da normalerweise mehrere größte Spitzen vorhanden waren). Darüber hinaus sind die Spitzen sehr breit oder vielleicht miteinander verschmolzen, so dass die Bestimmung der tatsächlichen Frequenz der Note sehr schwierig ist. Meine Frage ist, wie würde ich vorgehen, um die Frequenz aus einem solchen Diagramm zu bestimmen, oder allgemeiner: Haben Sie Vorschläge, wie ich die Grundfrequenz der Saite finden könnte, indem ich den Ton auf irgendeine Weise aufzeichne? Dies scheint eine realistische Erwartung zu sein, da es chromatische Stimmgeräte gibt, die die Frequenz (die Tonhöhe) der Note sehr genau bestimmen.

Eine Idee, die ich als Gitarrist hatte, war, mein musikalisches Gehör zu nutzen und die aufgenommene Tonhöhe mit der Tonhöhe eines reinen Tonhöhengenerators (wie diesem hier http://plasticity.szynalski.com/tone-generator.htm ) zu vergleichen sie klingen ähnlich. Dann konnte ich die Spitze finden, die der Frequenz des Tonhöhengenerators auf dem Diagramm am nächsten liegt. Es ist wirklich zuverlässig, weil das Gehör eines Musikers sehr genau ist, aber es ist keine wirklich "wissenschaftliche" Methode. Hat jemand eine Idee, wie ich diese Methode wissenschaftlicher gestalten könnte?

AKTUALISIEREN:

Vielen Dank an Floris, der eine Lösung für dieses Problem gefunden hat.

Im Allgemeinen bestand mein Fehler darin, ein möglichst kurzes Sound-Sample zu verwenden, um den Effekt von zufälligem Rauschen usw. zu minimieren. Je kürzer das Sample, desto geringer die Auflösung des Diagramms. Somit löste eine Erhöhung der Probenlänge das Problem.

Ein Hinweis zum Programm: Wer auch die Audacity-Funktion „Plot Spectre“ nutzen möchte, muss eine höhere „Größe“ wählen. Die Option "Größe" bestimmt die Anzahl der Frequenzteilungen, die der Analysator von der von Ihnen ausgewählten Probe verwendet. Eine größere Größe dieser Unterteilungen bedeutet schmalere Peaks, erfordert jedoch eine längere Stichprobe, um die Ergebnisse zu mitteln. Wie Floris in seiner Antwort feststellte, müssen Sie in der Algorithmusoption auch entweder das Hamming- oder das Hanning-Fenster auswählen. Ich persönlich fand das Hanning-Fenster deutlich präziser.

Ich fand die 1,5-Sekunden-Probe am besten für eine genaue Analyse. Es ist ungefähr die minimale Länge, die die Verwendung der größten "Größe" von Audacity ermöglicht, nämlich 65536. Alles über 1,5 scheint keinen großen Unterschied in der Auflösung zu machen, erzeugt aber eine höhere Wahrscheinlichkeit von Rauschstörungen. Unten sind drei Samples unterschiedlicher Länge aus derselben Aufnahme einer angeschlagenen Saite.

0,75 Sek. Sample: 0,751,5 Sek. Sample: 1,50Der erste Peak dazwischen 168 175 H z

2,25 Sek. Sample: 2.25Der erste Peak dazwischen 168 175 H z Der Peak ist in diesem etwas definierter. Dies ist jedoch auch ein ziemlich "glücklicher" Plot, da man normalerweise, wenn ein Sample länger als 2-3 Sekunden ausgewählt wurde, die Spitzen von Rauschinterferenzen und anderen unerwünschten Geräuschen sehen konnte.

Wenn jemand erwägt, ein ähnliches Experiment durchzuführen, wäre ein zusätzlicher Tipp, das erste auszuschließen 0,5 1 Sekunde der Aufnahme Ihres Samples, da das Anschlagen der Saite viele anfängliche Resonanzen und nicht harmonische Frequenzen erzeugt (bis sich die Saite stabilisiert) und weil die Tonhöhe am Anfang auch tendenziell etwas höher ist (wahrscheinlich aufgrund von diese nicht harmonischen Frequenzen erhöhen die Spannung in der Saite, aber das ist nur eine Vermutung).

Aus Ihrem Diagramm sieht es genau so aus, wie wir es erwarten würden - keine Reihe unendlich dünner Spitzen, sondern eine Reihe von "Buckeln". Alle realen Frequenzlinien haben Breiten. Aus Ihrer Grafik geht hervor, dass die Spitze irgendwo zwischen 300 und 500 Hz liegt, was ich von den tieferen Tönen einer Gitarre erwarten würde (haben Sie ein mittleres A gespielt?).
Ihr Update ist ein ERSTAUNLICHES Beispiel für "Zurückgeben" - jetzt werden die Frage und die Antwort zusammen eine nützliche Ressource für zukünftige Besucher sein. Vielen Dank dafür!

Antworten (2)

Ein paar Beobachtungen.

Erstens: Wenn Sie für kurze Zeit Ton aufnehmen, führt die Bandbreite des Samples zu einem Verschmieren der Spitzen. Dies ist nur dann wirklich wichtig, wenn das Sample sehr kurz ist – mit einem 1-Sekunden-Sample hätten Sie eine Auflösung von 1 Hz, aber wenn Sie 0,01 Sekunden lang sampeln, beträgt die Bandbreite 100 Hz.

Zweitens verwenden Sie eine Skala, die im interessierenden Bereich ziemlich komprimiert ist. Das lässt mich wiederum fragen, ob Sie Ihr Sampling nicht optimal für die interessierenden Frequenzen eingestellt haben.

Ich habe in der Vergangenheit eine billige iPhone-App verwendet, um Geräusche aufzunehmen (Signal Spy - ich bin nicht mit dem Produkt verbunden) und mir ein Bild von ihrem spektralen Inhalt zu machen. Ich habe gerade eine einfache Skala auf meiner Gitarre gespielt und Folgendes erhalten (Zeit entlang der horizontalen Achse, Frequenz vertikal, Intensität zeigt, welche Frequenzen erkannt werden):

Geben Sie hier die Bildbeschreibung ein

Ich habe das Gefühl, dass es ein Problem mit den Beschriftungen auf der logarithmischen Skala gibt, aber Sie können den Grundton und seine Harmonischen deutlich sehen; Sie sind viel besser gelöst als in Ihrem Fall.

Das bedeutet, dass entweder Ihre Frequenz nicht konstant ist oder Ihre Aufnahmeeinstellungen für die Aufgabe nicht optimal sind. Vielleicht können Sie die von Ihnen verwendeten Einstellungen kommentieren, und wir können herausfinden, wie Sie ähnliche Ergebnisse für Sie erzielen können. Sie haben die Worte "ein kurzer Bereich der Aufnahme mit minimaler Resonanz wurde verwendet ..." verwendet - ich frage mich, ob Ihr Aufnahmefenster zu kurz war. Ich frage mich auch, welche Fenstertechnik Sie verwendet haben. Wenn Sie eine Frequenzanalyse durchführen, führen Sie nicht einfach die Fourier-Transformation eines Tonschnipsels durch - denn wenn Sie dies tun, erzeugen Sie aufgrund der Art und Weise, wie das Signal am Anfang und am Ende "abschneidet", eine Reihe von Frequenzinhalten die Aufnahme. Stattdessen müssen Sie ein apodisierendes Fenster (normalerweise ein Hamming- oder Hanning-Fenster) anwenden, um Fremdspitzen zu beseitigen und sauberere Frequenzspitzen zu erhalten.

Wenn Sie einen Tonhöhengenerator haben, wäre es am genauesten, die bekannte Tonhöhe zu spielen und sie langsam hochzufahren, bis die Gitarrensaite zu schwingen beginnt. Das funktioniert sehr gut... da die Resonanzbreite recht schmal ist. Sie könnten die Frequenz innerhalb eines Bruchteils eines Hz bestimmen (vorausgesetzt, Ihr Tonhöhengenerator erzeugt genügend Leistung - vielleicht spielen Sie sie über ein Mikrofon und einen Verstärker in einen anständigen Lautsprecher).

Du hattest vollkommen recht. Ich habe versucht, ein möglichst kurzes Sample zu nehmen, um die Wirkung des Rauschens minimal zu halten. Ich habe nicht daran gedacht, dass ein längeres Sample eine höhere Auflösung bedeutet. Nachdem ich die Sample-Länge auf etwa 2-3 Sekunden erhöht hatte, bekam ich Spitzen mit einer Breite von 2-3 Hz an Stellen, wo sie sein sollten. Vielen Dank für deine Hilfe!
Schön, dass es funktioniert hat. Es wäre interessant, wenn Sie in Ihrer Frage ein "Nachher" -Bild als Update posten würden.
Gute Idee, werde ich heute nachholen.
Freuen Sie sich auf Ihre Ergebnisse. Sie werden feststellen, dass 2-3 Sekunden etwas lang sind, da der Klang einer Gitarrensaite in dieser Zeit erheblich abklingt. Vielleicht möchten Sie mit Zwischenzeiten experimentieren - ich vermute, dass 0,5 - 1 Sekunde die höchste Auflösung ergeben würden (ca. 1 Hz).
Tatsächlich war dies nicht der Fall. 1,5 erwies sich als optimal, aber größere Stichproben waren tatsächlich weniger genau. Ich habe ein paar Plots in der Aktualisierung meiner Frage gepostet.
Die Abtastfrequenz spielt eine Rolle. Wenn Sie mit 44 kHz abtasten und der FFT-Algorithmus eine Zweierpotenzgröße verwendet, sind 1,5 Sekunden als optimales Intervall sinnvoll. Schönes Update - danke!

Ich möchte Sie nicht enttäuschen, aber die Frequenz einer gezupften Saite ist fast unabhängig vom Elastizitätsmodul. Wenn Sie also versuchen, E zu messen, ist dies eine schlechte Methode!

Das war aber nicht die Frage, die Sie gestellt haben.

Das Problem bei dem Versuch, hier eine FFT zu verwenden, besteht darin, dass die FFT am besten funktioniert, wenn die Amplitude des Signals konstant ist, und das ist eindeutig nicht das, was Sie von einer Akustikgitarre aufnehmen, da der Ton abklingt.

Die Auflösung der FFT (dh die Schärfe der Spitzen) würde sich erhöhen, wenn Sie einen längeren Zeitabschnitt des Signals verarbeiten, aber die sich ändernde Amplitude verschlechtert dann die Reaktion, sodass es eine Zwischenlänge des Samples gibt, die empirisch das "Beste" ergibt. Ergebnisse.

Das eigentliche Problem ist, dass die FFT eine schlechte Methode zur Identifizierung des Frequenzspektrums ist. Es gibt viel bessere numerische Verfahren, die berücksichtigen, dass sich die Amplitude ändert, und nicht nur die Frequenz, sondern auch die Abklinggeschwindigkeit berechnen.

Dieses allgemeine Thema ist zu umfangreich, um es hier in einer Antwort zu behandeln (ganze Bücher wurden darüber geschrieben, und es ist immer noch ein Thema für Doktorandenforschung). Dies gibt einen allgemeinen (und nicht zu technischen) Überblick: http:// www .modalshop.com/techlibrary/Fundamentals%20of%20Modal%20Testing.pdf

Um diese fortgeschritteneren Methoden zu verwenden, benötigen Sie eine spezielle Software. Die Signalverarbeitungs-Toolbox in MATLAB wäre ein Ansatzpunkt.

Sie haben festgestellt, dass Sie mit der FFT bessere Ergebnisse erzielen, wenn Sie die ersten 0,5 Sekunden der Antwort ignorieren. Diese anfängliche Zeit umfasst einen anderen Satz von Frequenzen, die die Schwingungsmodi des Gitarrenkörpers und der Luft darin sind. Diese Frequenzen sind nahezu unabhängig von der Schwingung der Saiten. Die fortgeschritteneren numerischen Methoden sollten in der Lage sein, beide Frequenzgruppen zu finden, indem sie alle aufgezeichneten Daten verwenden.