Abtastrate für FFT bei Klavierstück

Gast #1816515
Lesenswert?

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.
Gast #1816569
Lesenswert?

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.
Gast #1816768
Lesenswert?

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.
#1817829
Lesenswert?

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 ;-)
Persönliche Seite #2311456
Lesenswert?

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.
Persönliche Seite #2323352
Lesenswert?

> 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
Gast #3390619
Lesenswert?

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?
Persönliche Seite #3390956
Lesenswert?

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.
Gast #4670294
Lesenswert?

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.
Gast #4671786
Lesenswert?

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?
Angehängte Dateien:
Gast #4671861
Lesenswert?

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.
Gast #4671909
Lesenswert?

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.
Gast #4671926
Lesenswert?

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.
(Firma: privatfrickler.de) #4675116
Lesenswert?

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
Gast #4680991
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren