Terzspektrum aus N-Punkt FFT

Gast #2369236
Hallo!
Ich arbeite z.Zt. an einem Projekt im Bereich Akustik und habe folgendes 
Problem.
Ich möchte aus einer N-Punkt FFT das Terzspektrum berechnen.
Allerdings komme ich dort momentan nicht weiter.
Momentan gehe ich in etwa so vor:

1) Index des Wertes der unteren Grenzfrequenz des Terzbandes berechnen:


2) Das Gleiche dann nochmal für die ober Grenzfrequenz:


3) Ergbenis sind zwei Indezes, die den Positionen im FFT-Array (fast) 
entsprechen.

Das Problem ist, dass die Fenstergröße natürlich die Frequenzauflösung 
bestimmt und somit zu tiefen Frequenzen hin die Ergebnisse ungenau 
werden.
Kennt jemand eine Möglichkeit dieses Problem zu umgehen/zu lösen?

Vielen Dank schonmal,

Dennis
Persönliche Seite #2369471
Ich nehme an, Dein Problem besteht darin, dass die Frequenznummern nicht 
ganzzahlig passen. Du musst einfach interpolieren. Die Frequenzen laufen 
nach oben hin sowieso logarithmisch auseinander, also sind auch die 
Bereiche bei hohen F immer größer. Du gehst einfach von Bereich zu 
Bereich, bildest die lokalen Werte für Anfang und Ende, beziehst die 
Werte aus der FFT und rechnest dabei die Werte anhand der Brüche 
anteilig rein.

Ich mache sowas beim Audiospektrum im FPGA, geht in Echtzeit, während 
der FFT-Core die Frequenzen liefert.

Beim DSP solltest du aber überlegen, ob eine FFT Sinn macht und ob Du 
nicht lieber eine DFT nur über die relvanten Frequenzen/ 
Frequenzbereiche vollziehst.

Wenn die Terzanalyse Sinn machen soll, musst Du die Feinheit der FFT 
sowieso an der niedrigsten Frequenz / Nachbarfrequenz ausrichten und 
hast ein Minimum für Dein "n". Das wird dann sehr rechenzeitaufwändig. 
Wenn Du die Terzen mit wenigstens 20% Präzision treffen wills, brauchts 
Du > 4096 FFT-Länge@16kHz. Da sind 30+ DFTs u.U. präziser und schneller.
Persönliche Seite #2369763
Die Bereichsgrenzen der Frequenzen. Du musst ja definieren, welche 
Frequenzen der FFT zu einer bestimmten Terzfrequenz zugeordnen werden 
sollen.

Im Beispiel sieht man eine Zuordnung für 31 Frequenzen, die 
Frequenznummer, den Bereich von/bis und die Nummerd der Frequenzen für 
einen FFT von 32768 @ 96kHz.

Am Besten machst du Dir auch so eine Tabelle, die Dir das ales 
berechnet.


Peter Diener schrieb:
> Alternativ hab ich auch schon gesehen, dass solche Analysen einfach als
> eine Gruppe passend konfigurierter Bandfilter
Das ist ja nichts anderes, als eine DFT mit den selektierten Frequenzen.
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.