J'essaie d'analyser les musiques le plus précisément possible. Bien sûr, j'ai essayé la FFT, mais j'ai eu quelques problèmes.
J'ai trouvé que les basses fréquences ont une résolution très basse par rapport à l'ouïe humaine. J'ai essayé la FFT très longtemps pour résoudre ce problème, mais même en analysant avec 8192 échantillons / s à une fréquence d'échantillonnage de 44100 Hz (signifie un manque de résolution temporelle), je n'ai pas obtenu une résolution suffisante sur les basses fréquences.
J'ai trouvé qu'il y avait peu de solutions.
Tout d'abord, une interpolation quadratique sur les bacs FFT.
Mais cela ne semble pas être un moyen parfait. Les problèmes de cette méthode sont les suivants:
1. «Si je veux déterminer les fréquences entre les compartiments de fréquence, quels trois compartiments dois-je sélectionner pour effectuer une interpolation?
2. «Même si je le fais, il n'y a aucune information supplémentaire réelle sur le résultat. Je sais que les interpolations sont une sorte de méthode délicate.
Deuxièmement, extraire chaque bacs freq avec la fréquence souhaitée, afin que je puisse extraire les bacs de manière logarithmique.
Mais ont un problème critique de coût de calcul: (peut-être plus) N ^ 2.
Troisièmement, LFT (Logarithmic Fourier Transform).
Cela nécessite des échantillons espacés logarithmiquement et me donne le résultat exactement ce que je recherche avec une vitesse incroyablement rapide; /programming/1120422/is-there-an-fft-that-uses-a-logarithmic-division-of-frequency
Mais je n'ai aucune idée de cet algorithme. J'ai essayé de comprendre le document et de le mettre en œuvre, mais c'était impossible à cause du manque de mes compétences en anglais et en mathématiques.
J'ai donc besoin d'une aide pour la mise en œuvre de LFT.
Si l'analyse que vous souhaitez effectuer nécessite la fréquence des signaux dans chaque casier, vous pouvez utiliser la transformée de Fourier à court terme pour y parvenir.
Chaque bin de la FFT donne un nombre complexe représentant la composante réelle et imaginaire - ou après un peu de phase de manipulation et d'amplitude.
Comme la fréquence = dPhi / dt, (Phi == phase), en prenant des groupes correspondants de paires de spectres STFT consécutifs, vous pouvez calculer la fréquence.
DSP Dimension a un bon article sur le processus.
la source