Die traditionelle diskrete Fouriertransformation (DFT) und ihre Cousine, die FFT, erzeugen Bins, die gleichmäßig voneinander beabstandet sind. Mit anderen Worten, Sie erhalten so etwas wie die ersten 10 Hertz im ersten Bin, 10.1 bis 20 Hertz im zweiten Bin usw. Allerdings brauche ich etwas anderes. Ich möchte, dass der Frequenzbereich, der von jedem Bin abgedeckt wird, geometrisch zunimmt. Angenommen, ich wähle einen Multiplikator von 1,5. Dann haben wir 0 bis 10 im ersten Fach, ich möchte 11 bis 25 im zweiten Fach, 26 bis 48 im dritten usw. Ist es möglich, den DFT-Algorithmus so zu modifizieren, dass er sich auf diese Weise verhält?
16
Antworten:
Um meine Dissertation zu zitieren:
quelle
Es gibt signifikante mathematische Annahmen in der DFT (FFT). Das Bedeutsamste in diesem Fall ist, dass Sie eine abgestumpfte Sinustransformation mit unendlich langer Zeit durchführen. Das zweite ist, dass angenommen wird, dass die verkürzten Zeit- und die verkürzten Frequenzsignale modulo-umhüllt sind (zirkular). Die in einer normalen FFT beabstandeten Bins bilden nur aufgrund dieser Annahmen (und des geraden arithmetischen Abtastabstands) eine orthonormale Menge Zeit <-> Frequenzpaare sind daher perfekt umkehrbar.
Die Konstante-Q-Transformation schneidet nicht so gut ab, daher liefert jede praktische Implementierung keine perfekte ortho-normale Paarung. Der Kernel ist eine unendlich lange, exponentiell abklingende Sinuskurve und kann daher nicht den oben angegebenen kreisförmigen Vorteil haben. Wenn Sie nicht abschneiden, bilden sie eine orthonormale Menge.
Die Wavelet-Transformationen haben typischerweise einen Abstand zur Zweierpotenz, was für eine feinkörnige Frequenzschätzung nicht sehr nützlich ist.
Bei dem Vorschlag, eine Standard-Sinus-DFT ungleichmäßig zu verteilen, werden Informationen in dem weit auseinander liegenden Bereich übersehen, während Informationen in dem dicht auseinander liegenden Bereich dupliziert werden. Es sei denn, für jede Frequenz wird eine andere Apodisationsfunktion verwendet ... sehr kostspielig.
Eine praktische Lösung besteht darin, ein Halbspektrum-> 2-mal-dezimiertes Verfahren durchzuführen, um auf Oktaven basierende Unterabschnitte zu erhalten, die einen gewissen Minimax-Schätzfehler pro Oktave erfüllen. Das Verhältnis von Portionsspektrum zu Dezimierung kann auf ein beliebiges Verhältnis eingestellt werden, um die gewünschte Granularität zu erzielen. Trotzdem ziemlich rechenintensiv.
quelle