Estoy tratando de analizar las músicas de la manera más precisa posible. Por supuesto que probé FFT, pero tuve algunos problemas.
Encontré que las frecuencias bajas tienen una resolución muy baja que la del oído humano. Intenté mucho tiempo con FFT para resolver este problema, pero incluso analizando con 8192 muestras / s en una frecuencia de muestreo de 44100Hz (Significa falta de resolución de tiempo), no obtuve suficiente resolución en bajas frecuencias.
Encontré que hay pocas soluciones.
En primer lugar, una interpolación cuadrática en contenedores FFT.
Pero parece que no es una manera perfecta. Los problemas de este método son:
1. 'Si quiero determinar las frecuencias entre los contenedores de frecuencias, ¿qué tres contenedores debo seleccionar para hacer una interpolación?'
2. 'Incluso si hago esto, no hay información adicional real sobre el resultado. Sé que las interpolaciones son un tipo de método complicado.
En segundo lugar, extrayendo los contenedores de frecuencia con la frecuencia deseada, para poder extraer los contenedores logarítmicamente.
Pero tenga un problema crítico de costo computacional: (tal vez más) N ^ 2.
En tercer lugar, LFT (Transformación logarítmica de Fourier).
Esto requiere muestras espaciadas logarítmicamente y me da el resultado exactamente lo que estaba buscando con una velocidad increíblemente rápida; /programming/1120422/is-there-an-fft-that-uses-a-logarithmic-division-of-frequency
Pero no tengo idea con ese algoritmo. Traté de entender el documento e implementarlo, pero fue imposible debido a la falta de mi inglés y mis habilidades matemáticas.
Entonces, necesito una ayuda de implementación de LFT.
Si el análisis que desea realizar requiere la frecuencia de las señales en cada contenedor, puede usar la Transformada de Fourier de tiempo corto para lograrlo.
Cada contenedor de la FFT produce un número complejo que representa el componente real e imaginario, o después de un poco de fase y magnitud de manipulación.
Como frecuencia = dPhi / dt, (Phi == fase), al tomar contenedores correspondientes de pares de espectros STFT consecutivos, puede calcular la frecuencia.
DSP Dimension tiene un buen artículo sobre el proceso.
fuente