Ich versuche die Musik so genau wie möglich zu analysieren. Natürlich habe ich FFT ausprobiert, aber einige Probleme bekommen.
Ich fand, dass niedrige Frequenzen eine sehr niedrige Auflösung haben als das menschliche Gehör. Ich habe sehr lange versucht, dieses Problem mit FFT zu lösen, aber selbst bei der Analyse mit 8192 Samples / s bei einer Abtastrate von 44100 Hz (bedeutet mangelnde Zeitauflösung) habe ich bei niedrigen Frequenzen nicht genügend Auflösung erhalten.
Ich habe festgestellt, dass es nur wenige Lösungen gibt.
Erstens eine quadratische Interpolation auf FFT-Bins.
Aber es scheint kein perfekter Weg zu sein. Probleme dieser Methode sind:
1. 'Wenn ich Frequenzen zwischen den Frequenzbins bestimmen möchte, welche drei Bins sollte ich auswählen, um eine Interpolation durchzuführen?'
2. Auch wenn ich dies tue, gibt es keine tatsächlichen zusätzlichen Informationen zum Ergebnis. Ich weiß, dass Interpolationen eine knifflige Methode sind. '
Zweitens, jedes Freq-Bins mit der gewünschten Häufigkeit extrahieren, damit ich die Bins logarithmisch extrahieren kann.
Habe aber ein kritisches Rechenkostenproblem: (vielleicht über) N ^ 2.
Drittens LFT (Logarithmic Fourier Transform).
Dies erfordert logarithmisch beabstandete Abtastwerte und gibt mir mit unglaublich hoher Geschwindigkeit genau das, was ich suche. /programming/1120422/is-there-an-fft-that-uses-a-logarithmic-division-of-frequency
Aber ich habe keine Ahnung mit diesem Algorithmus. Ich habe versucht, das Papier zu verstehen und umzusetzen, aber es war unmöglich, weil ich keine Englisch- und Mathematikkenntnisse hatte.
Ich brauche also Hilfe bei der Implementierung von LFT.
Wenn die Analyse, die Sie durchführen möchten, die Frequenz der Signale in jedem Bin erfordert, können Sie die Kurzzeit-Fourier-Transformation verwenden , um dies zu erreichen.
Jeder Behälter der FFT ergibt eine komplexe Zahl, die die reale und imaginäre Komponente darstellt - oder nach einer gewissen Manipulationsphase und -größe.
Als Frequenz = dPhi / dt (Phi == Phase) können Sie die Frequenz berechnen, indem Sie entsprechende Bins aus Paaren aufeinanderfolgender STFT-Spektren entnehmen.
DSP Dimension hat einen guten Artikel über den Prozess.
quelle