Como comenté en una publicación anterior, el método de análisis de frecuencia de tiempo conocido como "transformada de Fourier a corto plazo" es equivalente a un banco de filtros, analizando su señal x . Para una ventana de análisis dada w n , de tamaño N , el filtro a la frecuencia k / N es:
XxwnNk/N
hnorte= w- nmij 2 πn knorte
Para las ventanas de análisis habituales (Hann, Hamming o incluso un rectángulo), esto corresponde a un filtro de paso bajo, con una frecuencia de corte de alrededor de , que se "desplaza" al bin de frecuencia (gracias a la compleja modulación exponencial) , por lo tanto, conduce a un filtro de paso de banda.k1 / Nk
En este punto, para responder directamente a su preocupación por reflejar la percepción humana, algunas personas derivaron la ["transformación Q constante" (CQT)] [Brown91]. Se basa en el mismo principio que el FT, en su interpretación del banco de filtros. Sin embargo, los centros no están linealmente espaciados como para un FT "normal", sino que están separados por log2. La escala está entonces estrechamente relacionada con una escala musical occidental: si uno elige , entonces obtenemos 12 frecuencias por octava (¿suena una campana? :-)), y el ancho de banda se establece en, por ejemplo,f k + 1 = 2 1 / 12 f kFkFk + 1= 21 / 12Fk. También puede elegir otros centros, según sus necesidades.21 / 12- 12Fk
Puede encontrar implementaciones del CQT aquí y allá, una reciente del Prof. Klapuri, que viene con un inverso bastante decente aquí . El grupo Audio de Telecom ParisTech también tiene una implementación del Prof. Prado, pero aún no lo he probado.
[Brown91] J. Brown, "Cálculo de una transformación espectral Q constante", Journal of the Acoustical Society of America, 1991, 89, 425-434
EDITAR 20121014: algunas respuestas y comentarios a sus preguntas (de bryhoyt).
Solo ideas generales sobre sus propios comentarios a la pregunta principal: Parece que le interesan muchas aplicaciones que, para mí, no son problemas triviales para abordar. El "modelado de timbre" me parece más relacionado con el reconocimiento de voz o similares, para los cuales la resolución o precisión de tono o frecuencia no es un gran problema (considere cómo se calculan los MFCC).
Considere también cuántos investigadores importantes ( F. Pachet y el equipo de repmus en IRCAM, Francia , por citar algunos) están trabajando en el tema de la improvisación automática y el acompañamiento: la tarea no es imposible, pero requiere experiencia en muchas áreas. Para resumir, un sistema típico necesita imitar el sistema auditivo humano (al menos), implementar la percepción de sonido / música / tono / ritmo, conocer la teoría de la música y tomar decisiones basadas en las estimaciones de todos los pasos anteriores. La transformación de Fourier, o cualquier representación de señal, es solo un paso (pequeño) hacia el objetivo final, y potencialmente, en mi opinión, el mejor entendido hasta ahora.
Dicho esto, todavía existe la posibilidad de que todos estén mirando mucho más allá de lo que realmente sucede, ¡y que usted pueda acabar con una solución simple y elegante! ¡No olvides publicarlo una vez que esté listo! :-)
una muestra de 0.1s a 44kHz es suficiente para contener un amplio rango de frecuencias
Fs/ N= 44.100 / 4.410 = 10 Hz
La FFT no puede detectar esto para frecuencias bajas y altas, pero usted dice que otros algoritmos pueden: ¿cuál es la compensación?
Respuesta corta: ¡lee mi tesis sobre estimación de melodías!
Para elaborar un poco más: muchos algoritmos de estimación de tono van más allá de las limitaciones del FT, gracias a los supuestos sobre los sonidos a procesar. Esperamos que las notas de los sonidos naturales (voz humana, oboe, saxo, piano ...) sean más complejas que las sinusoides individuales. La mayoría de los sonidos agudos son más o menos armónicos, lo que significa que pueden modelarse como sumas de sinusoides cuya frecuencia es un múltiplo de la frecuencia fundamental.
Por lo tanto, es útil tener en cuenta estos armónicos al estimar el tono, ya que existen métodos que utilizan funciones de detección como sumas espectrales, productos espectrales o funciones de autocorrelación. Alguien comenzó un tema relacionado recientemente.
¿Cuáles son las compensaciones? Más específicamente, ¿qué nivel de precisión de frecuencia puedo esperar para una ventana razonablemente corta? (Entiendo que el tamaño de la ventana en CQT es variable, ¿cuánto?) Incluso más específicamente, ¿qué tan cerca podré llegar a mi aprox. objetivo de 0.5% de diferencia de frecuencia con una ventana de 0.005s?
Como se dijo anteriormente, con una ventana de 0.005s, puede esperar algo así como 200Hz de "fuga de frecuencia". Eso es realmente un problema solo cuando tienes 2 sinusoides con frecuencias que están más cerca de 200Hz, de modo que el FT no podrá mostrar que son 2 sinusoides diferentes. Bueno, estamos lejos de su 0.5% (por cierto, ¡un semitono está al 6% de la frecuencia!) Y 0.005s es realmente un poco pequeño para su propósito. Sin embargo, si desea proporcionar una estimación cada 0.005s, aún puede procesar fotogramas superpuestos más largos, como generalmente se hace en el procesamiento de voz / música. ¿Es eso lo que realmente quieres?
nortek= FsFk( 21 / B- 1 )
siB = 48Fk= 100 Hzrequieren ventanas de aproximadamente 0.7s de largo. No es nada decir que luego perdemos un poco de la resolución temporal ... Pero como se mencionó anteriormente, este es un problema solo si olvidamos la estructura del sonido. Además, la psicoacústica considera que por debajo de 500Hz, los humanos realmente no distinguen tan bien las sinusoides: incluso los humanos son desafiados allí. Por supuesto, podemos esperar que nuestras computadoras funcionen mejor que nosotros, pero aquí, ¡enfrentamos un problema difícil!
Por último, tenga en cuenta que existen otras formas de calcular una representación en tiempo y frecuencia de un sonido, considere, por ejemplo, los bancos de filtros gammatone. La ventaja de la CQT que mencioné anteriormente es que hay software tanto para la transformación como para su inversión. Personalmente, todavía me quedo con el STFT, sin embargo, por su simplicidad y porque, hasta ahora, nunca necesité una mejor resolución en bajas frecuencias, incluso para la separación de la fuente.
[Schoerkhuber2010] Schoerkhuber, C. y Klapuri, A., "Caja de herramientas de transformación Constant-Q para procesamiento de música", 7ma Conferencia de computación de sonido y música, Barcelona, España, 2010.