Guten Tag! Ich bin zu faul mir ein Klavierstück herauszuhören und deshalb wollte ich mich mal an der FFT versuchen. Nun hab ich noch nicht alles daran verstanden, hätte allerdings mal eine Frage. Der höchste Ton auf einem Klavier ist ja ein A mit der Frequenz 4186,01 Hz. Das heißt doch, dass eine Abtastrate von 2*4186,01 Hz = 8372,02 Hz ausreicht oder hab ich da was am Abtasttheorem falsch verstanden? Falls das Stimmt, warum haben dann zum Beispiel mp3s eine Abtasrate von 44100 Hz? Das scheint mir dann ja sehr hoch zu sein wenn ich mir anhöhre wie hoch schon das A ist.
Schau Dir mal das Spektrum einer Klaviernote an. Es sind nicht nur reine Sinus-Töne, die das Klavier erzeugt. mfg, Stefan
Aber wenn die Obertöne bei der Analyse "abgeschnitten" werden wäre es ja nicht schlimm, da ich diese ja eh nicht erkenne will. Oder funktioniert das so nicht?
>Guten Tag! Ich bin zu faul mir ein Klavierstück herauszuhören
schon mal was von Melodyne gehört? Viel Spaß damit.
Weil mp3s auch geeignet sind fuer absolut klavierlose Musik. Die 22050 Hz Bandbreite ergeben sich aus dem Frequenzgang des Ohres, plus ein bisschen Sicherheitsabstand (Wenn Du wirklich bis ganz knapp an die obere Granzfrequenz filtern willst beim Aufnehmen brauchst Du einen ziemlich schwierig zu implementierenden (und erst recht in Masse zu produzierenden! Abgleich notwendig....) analogen Filter.
Ok dann hab ich es aber soweit verstanden denke ich. Danke für die Antworten
Die Oberwellen sind auch noch zu berücksichtigen. Da es sich nicht nur im saubere Sinusschwingungen handelt, wird es schwer herauszufiltern, ob es sich im z.B. um ein c' oder g' handelt. Eine FFT wird auch deshalb nicht so der bringer sein, weil der Zeitliche zusammenhang nicht mehr so klar ist. Da sind short time fourier, wavelets etc besser.
Wie schon genannt, Melodyne ist das richtige Stichwort: http://www.heise.de/newsticker/meldung/Melodyne-Erfinder-Peter-Neubaecker-Was-der-Mensch-kann-965452.html gibts allerdings nicht für umsonst, da stand irgendwo etwas von 333€ oder noch mehr
Tilo Lutz schrieb: > Eine FFT wird auch deshalb nicht so der bringer sein, weil der Zeitliche > zusammenhang nicht mehr so klar ist. Da sind short time fourier, > wavelets etc besser. Oh ja...da habe ich mir gewaltig die Finger verbrannt für einen einfachen grafischen Spektrumanalysator. Mit FFT sieht das ganze höchst unmusikalisch aus, z.B. sind pulsierende Bässe überhaupt nicht als springende Balken zu sehen o.ä. Falls jemand Erfahrung mit sowas hat, wäre ich um ein paar Tipps sehr froh ;-)
Die FFT ist doch die Basis für jeden Spektrumanalyzer und da springen die Bässe aber ganz gewaltig.
Die Fouriertransformation und auch die FFT, sind mathematische Verfahren, bei denen zunächst eine bestimmte Datenmenge in einer bestimmten Zeit gesammelt wird. Erst dann wird berechnet – und zwar die Amplituden- und Phasenanteile- aller in dieser Erfassungszeit vorkommenden Frequenzen. Die Information wann eine spezielle Frequenz aufgetreten ist, ist im Spektrum nicht mehr enthalten, d.h. die zeitliche Tonauflösung geht verloren. Beispiel: Abtastrate 1 ms Anzahl der Daten pro FFT Berechnung 2048 Messzeit 2.048 Sekunden Wenn ich also innerhalb dieser Messzeit von 2 Sekunden 10 unterschiedliche Töne habe, kann ich im Spektrum zwar ihre Frequenz bestimmen, aber nicht wann genau sie innerhalb der 2 Sekunden aufgetreten sind.
> ber nicht wann genau sie innerhalb der 2 Sekunden aufgetreten
Das kann man dann wieder, wenn man mehrere FFTs interlaced, also auf
verschiedene Bereiche der Samples bezieht und aus der Amplitude
ermittelt, welche am Besten getroffen hat.
Für ein gute Audio FFT zu MEszwecken braucht man eine sehr hohe
Frequenzauflösung, wenn man Feinheiten abbilden will, da die Instrumente
leicht gegeneinander verstimmt sind und nicht auf den chromatischen
Frequenzen sitzen, die im Buch stehen.
Um kleine Hübe leicht zu erkennen, sind Auflösungen von 0,5 Hz nötig ->
2*32k FFT @ 31,5kHz. Für so ein typisches Audiospektrum reichen 8k@44,1
Jürgen Schuhmacher schrieb: >> ber nicht wann genau sie innerhalb der 2 Sekunden aufgetreten > Das kann man dann wieder, wenn man mehrere FFTs interlaced, also auf > verschiedene Bereiche der Samples bezieht und aus der Amplitude > ermittelt, welche am Besten getroffen hat. Das bringt einem aber noch nicht die hüpfenden Bässe. >Für so ein typisches Audiospektrum reichen 8k@44,1 Die Audioprogramme, die ich kenne gehen da aber eher in Richtung 16k, 192kHz. Wieso wohl?
Jen Aer schrieb: > Jürgen Schuhmacher schrieb: >>> ber nicht wann genau sie innerhalb der 2 Sekunden aufgetreten >> Das kann man dann wieder, wenn man mehrere FFTs interlaced, also auf >> verschiedene Bereiche der Samples bezieht und aus der Amplitude >> ermittelt, welche am Besten getroffen hat. > Das bringt einem aber noch nicht die hüpfenden Bässe. Es ging bei diesem Beispiel ja um eine hochgenaue Messung. Um dies zu realisieren braucht die FFT eine gewisse Datenzahl. Will man nur den Frequenzbereich grob abtasten, geht es auch mit weniger. In jedem Fall lässt sich der von Dir gewünschte Effekt des "hüpfenden Basses" dadurch erzeugen, dass man die Abtastperiode der Anzeige (ms-Bereich) anpasst und genügend stark überlappt. Die erfassten Bassfrequenzen drängen sich dann mal mehr und dann wieder weniger in das FFT-Fenster. Wichtig ist dabei aber auch eine gute Fensterfunktion! Blackman-Harris wäre das zu nennen. >>Für so ein typisches Audiospektrum reichen 8k@44,1 >Die Audioprogramme, die ich kenne gehen da aber eher in Richtung 16k, >192kHz. Wieso wohl? Nun die professionellen Tools arbeiten sogar mit 128k-FFTs. Das müssen sie allerdings auch, weil mit steigender Abtastfrequenz auch die Punktezahl steigen muss, sonst geht Auflösung verloren. Dein Beispiel 192/16k wäre dann schon ungenauer, als meine 44,1k/8k.
:
Bearbeitet durch User
Ich komme von dem Thema Beitrag "Frequenzen erkennen und Abweichungen messen" hierher und hätte dazu eine Frage: Offenbar hat der TE dasselbe Problem, eine Frequenz genau zu bestimmen. Wie berechne ich exakt die benötigte Länge der FFT, um eine bestimmte Frequenzauflösung zu bekommen? Kann ich einfach sagen 100 kHz Abstastrate durch 100 Punkte sind 1 Hz? Wie wird dann z.B. 3.75 einsortiert? Sind das 75% bei 4Hz und 25% bei 3 Hz? Wie genau ist der Zusammenhang zwischen der angesprochenen Überlappung der einzelnen FFTs und der Auflösung? Ich möchte das gerne mit einer FFT lösen und hätte auch genügend Zeit, da es nicht in Echtzeit laufen muss. Ich brauche zwar kontinuierliche Werte, aber Latenz wäre akzeptabel.
Martin K. schrieb: > Kann ich einfach sagen 100 kHz Abstastrate durch 100 Punkte sind 1 Hz? Im Prinzip ja. Wobei weder 100 kHz eine übliche Abtastrate für Audio sind (eher 96 kHz), noch 100 Punkte üblich für eine FFT sind (hier hat man Zweierpotenzen).
Das ist schon klar, ich kann mir bei mir aber die Rate ausuchen. Ich denke, ich könnte auch 102,4 kHz hinbekommen, um 1024 FFTs zu machen und bei 0,1 Hz zu landen. Wichtiger wäre die andere Frage nach der Verteilung einer Frequenz. Wir haben heute mit dem Analyzer gemessen und die Sache sieht eher nicht so aus, als ob es eine eindeuttige oder leicht zu analysierende Zuordnung der Frequenzen gäbe. Es sieht etwa so aus: Eine FFT mit 0,1 Hz Auflösung offline sieht für 80,1 Hz genauso aus wie bei 80.0 Hz - nur ist die Kurvenform etwas verschoben. Schwerpunktbestimmung liefert falsche Werte. Wie geht man da vor?
Wenn Du einfach nur immer 1024 aufeinanderfolgende Werte des Signals im Zeitbereich durch eine FFT ziehst, dann ist Deine Fensterfunktion im Zeitbereich eine Rechteckfunktion. Will sagen, im Frequenzbereich faltest Du mit einer si-Funktion. Das erklärt, wieso ein Sinus "verschmiert" aussieht, wenn er nicht exakt auf einem der FFT-Bins liegt. Sprich, wenn in 1024 Werte im Zeitbereich keine ganzzahligen Perioden des Sinus reinpassen.
Hallo, > > Wie berechne ich exakt die benötigte Länge der FFT, um eine bestimmte > Frequenzauflösung zu bekommen? > > Kann ich einfach sagen 100 kHz Abstastrate durch 100 Punkte sind 1 Hz? > > Wie wird dann z.B. 3.75 einsortiert? Sind das 75% bei 4Hz und 25% bei 3 > Hz? Leider nicht, du holst dir da, wenn nicht schön periodisch in Bezug aufs Sample-Window (also mit Sprüngen) Artefakte, die du nur mit genannter Fensterung kleinkriegst, aber dabei geht natürlich Information verloren. Ansonsten ist deine Annahme so in etwa korrekt, kommt noch der Faktor zwei rein (positive/negative Frequenzen) und N=Zweierpotenz gilt auch noch für die FFT. Mal ganz davon abgesehen ist das immer eine Heisenbergsche Geschichte, die zeitliche Auflösung der Frequenz geht invers mit der Auflösung im Frequenzraum. Für eine gewisse Frequenz kannst du schon die optimale Window-Grösse bestimmen, aber für die andern nimmer. > > Wie genau ist der Zusammenhang zwischen der angesprochenen Überlappung > der einzelnen FFTs und der Auflösung? > > Ich möchte das gerne mit einer FFT lösen und hätte auch genügend Zeit, > da es nicht in Echtzeit laufen muss. Ich brauche zwar kontinuierliche > Werte, aber Latenz wäre akzeptabel. Ich würde mir mal die Sliding DFT-Methoden ansehen. Für optimale laufende Detektion einer Frequenz oder mehrerer Frequenzen ist die ev. passender. Auch mit ganz einfachen IIR-Filtern ist man u.U. schneller und kann genau solche Frequenzabweichungen in wenigen Prozent sehr gut bestimmen. Eine Abweichung von einer Referenzfrequenz kannst du als solche ansehen, oder als laufende Phasenschieberei. Hatte nich mal jemand schon die digitale PLL genannt? Auch da musst du natürlich wieder ein Fenster definieren (sinnvolle Intervalle in Bezug auf die Änderung der Frequenz), aber nicht dasselbe für alle dich interessierenden Frequenzen. Bei der Sliding-Geschichte kannst du rechnerisch viel Information mitführen (Frequenz/Phasen-Redundanzen a la Wavelet), die dir nachträglich erlaubt, die wichtigen Details zu erkennen. Grade bei Obertönen oder speziell geformten Radar-Pings erleichtert das eine Erkennung z.b. eines Klaviertons beziehungsweis Materialcharakteristik oder sogar Flugzeugform. Das was Fledermäuse schon lange können :-) FFT ist für eine breitbandige Diagnose gut, aber für solche Zwecke muss man gehörig frickeln und kommt mit der Standardlösung (Matlab u.a. Libraries) nicht unbedingt weiter.
Martin K. schrieb: > Wie geht man da vor? Naja, wenn man sich die Kurve anschaut würde ich ja als erstes mal Gauß-fitting machen und darüber die Mitte der Verteilung bestimmen. Was aber hier noch garnicht genannt wurde, ist die Wigner-Ville-Distribution. Liefert einen guten Kompromiss aus Zeit- und Frequenzauflösung. Leider gibt es dabei Interferenzphänomene, die gegebenenfalls störend sein könnten. Dann kann man wieder Fensterfunktionen anwenden, und ist dann bei der Reduced Intereference Distribution gelandet.
Martin K. schrieb: > Wie geht man da vor? Du musst vor der FFT eine Fensterfunktion anwenden. Ein guter Start ist das Hamming-Fenster. Außerdem solltest/kannst Du mehrere FFTs überlappend kombinieren, z.B. 50%. Du brauchst dann natürlich entsprechend mehr Sampling-Material.
Spektra schrieb: > So sieht ein Klavier im Spektrum aus. Ein Klavier, ein Klavier - Mutter wir danken dir! https://www.youtube.com/watch?v=Lbz5sy8jPXA Gruss WK
Hallo, naja, das sieht doch sehr geregelt aus, würde ich sagen. Schön die Harmonischen und auch das Abklingen der Saiten sieht man sehr schön. Interessant. Ich habe hier http://privatfrickler.de/der-klang-der-schnecken-beim-fressen/ vor langem mal ein solches Spektrogramm der Fressgeräusche von Weinbergschnecken gemacht, deutlich weniger aussagekräftig leider, im Vergleich zu dem Klavier sieht man allerdings deutlich weniger Sustain :-) Vlg Timm
Spektra schrieb: > So sieht ein Klavier im Spektrum aus. Da sind aber recht aggressive Obertöne im 3k+ Bereich bei den Basssaiten. Ungewöhnlich. Ist das ein echtes Klavier oder was aus dem Sampler? Oder klingt da gleichzeitig der Diskant mit?
Spektra schrieb: > So sieht ein Klavier im Spektrum aus. Fensterung und so ist mir bekannt. Die Frage ist überhaupt, wie genau man auflösen muss, um einen Klavierton eindeutig zu identifizieren. Horst schrieb: > Was aber hier noch garnicht genannt wurde, ist die > Wigner-Ville-Distribution. Liefert einen guten Kompromiss aus Zeit- und > Frequenzauflösung. Danke für den Tipp.
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.