En matemáticas y procesamiento de señales , la transformada de Q constante y la transformada de Q variable , simplemente conocidas como CQT y VQT , transforman una serie de datos al dominio de la frecuencia . Está relacionada con la transformada de Fourier [1] y muy estrechamente relacionada con la transformada wavelet compleja de Morlet [2] . Su diseño es adecuado para la representación musical.
La transformación puede considerarse como una serie de filtros f k , espaciados logarítmicamente en frecuencia, donde el filtro k -ésimo tiene un ancho espectral δf k igual a un múltiplo del ancho del filtro anterior:
donde δf k es el ancho de banda del k -ésimo filtro, f min es la frecuencia central del filtro más bajo y n es el número de filtros por octava .
La transformada de Fourier de tiempo corto de x [ n ] para un marco desplazado a la muestra m se calcula de la siguiente manera:
Dada una serie de datos con una frecuencia de muestreo f s = 1/ T , siendo T el período de muestreo de nuestros datos, para cada intervalo de frecuencia podemos definir lo siguiente:
El núcleo de transformación equivalente se puede encontrar utilizando las siguientes sustituciones:
Después de estas modificaciones, nos quedamos con
La transformación de Q variable es la misma que la transformación de Q constante, pero la única diferencia es que el filtro Q es variable, de ahí el nombre de transformación de Q variable. La transformación de Q variable es útil cuando la resolución temporal en frecuencias bajas es importante [ se necesitan ejemplos ] . Hay formas de calcular el ancho de banda de la VQT, una de ellas utilizando el ancho de banda rectangular equivalente como valor para el ancho de banda del bin VQT. [3]
La forma más sencilla de implementar una transformación de Q variable es agregar un desplazamiento de ancho de banda llamado γ como este: [ cita requerida ]
Esta fórmula se puede modificar para tener parámetros adicionales para ajustar la nitidez de la transición entre Q constante y ancho de banda constante de la siguiente manera: [ cita requerida ]
con α como parámetro para la nitidez de la transición y donde α de 2 es igual a la escala de frecuencia sinusoidal hiperbólica , en términos de resolución de frecuencia.
El cálculo directo de la transformada de Q constante (ya sea mediante la transformada de Fourier discreta ingenua o el algoritmo de Goertzel , ligeramente más rápido ) es lento en comparación con la transformada de Fourier rápida . Sin embargo, la transformada de Fourier rápida se puede emplear, junto con el uso de un núcleo , para realizar el cálculo equivalente pero mucho más rápido. [4] En 2006 se propuso una implementación inversa aproximada a dicha; funciona volviendo a la transformada de Fourier discreta y solo es adecuada para instrumentos de tono. [5]
Un desarrollo de este método con una invertibilidad mejorada implica realizar CQT (a través de la transformada rápida de Fourier) octava por octava, utilizando resultados filtrados con paso bajo y submuestreados para tonos consecutivos más bajos. [6] Las implementaciones de este método incluyen la implementación de MATLAB y la implementación de Python de LibROSA. [7] LibROSA combina el método submuestreado con el método de transformada rápida de Fourier directa (al que denomina "pseudo-CQT") haciendo que este último procese las frecuencias más altas como un todo. [7]
La transformada de Fourier discreta deslizante se puede utilizar para un cálculo más rápido de la transformada de Q constante, ya que la transformada de Fourier discreta deslizante no tiene que tener un espaciado de frecuencia lineal y el mismo tamaño de ventana por contenedor. [8]
Como alternativa, la transformación de Q constante se puede aproximar utilizando múltiples transformadas rápidas de Fourier de diferentes tamaños de ventana y/o frecuencia de muestreo en diferentes rangos de frecuencia y luego unirlas. Esto se llama transformada de Fourier de tiempo corto multirresolución , sin embargo, los tamaños de ventana para las transformadas rápidas de Fourier multirresolución son diferentes por octava, en lugar de por bin. [9] [ ambiguo ]
En general, la transformada es adecuada para datos musicales, y esto se puede ver en algunas de sus ventajas en comparación con la transformada rápida de Fourier. Como la salida de la transformada es efectivamente amplitud/fase contra frecuencia logarítmica, se requieren menos intervalos de frecuencia para cubrir un rango dado de manera efectiva, y esto resulta útil cuando las frecuencias abarcan varias octavas. Como el rango de audición humana cubre aproximadamente diez octavas desde 20 Hz hasta alrededor de 20 kHz, esta reducción en los datos de salida es significativa.
La transformación muestra una reducción en la resolución de frecuencia con intervalos de frecuencia más altos, lo cual es deseable para aplicaciones auditivas. La transformación refleja el sistema auditivo humano, por lo que en frecuencias más bajas la resolución espectral es mejor, mientras que la resolución temporal mejora en frecuencias más altas. En la parte inferior de la escala de piano (alrededor de 30 Hz), una diferencia de 1 semitono es una diferencia de aproximadamente 1,5 Hz, mientras que en la parte superior de la escala musical (alrededor de 5 kHz), una diferencia de 1 semitono es una diferencia de aproximadamente 200 Hz. [10] Por lo tanto, para los datos musicales, la resolución de frecuencia exponencial de la transformación de Q constante es ideal.
Además, los armónicos de las notas musicales forman un patrón característico del timbre del instrumento en esta transformación. Suponiendo que las intensidades relativas de cada armónico sean las mismas, a medida que cambia la frecuencia fundamental, la posición relativa de estos armónicos permanece constante. Esto puede facilitar mucho la identificación de los instrumentos. La transformación de Q constante también se puede utilizar para el reconocimiento automático de claves musicales en función del contenido cromático acumulado. [11]
En comparación con la transformada de Fourier, la implementación de esta transformada es más complicada. Esto se debe a la cantidad variable de muestras utilizadas en el cálculo de cada intervalo de frecuencia, lo que también afecta la longitud de cualquier función de ventana implementada. [12]
Tenga en cuenta también que, debido a que la escala de frecuencia es logarítmica, no hay un término CC/frecuencia cero real, lo que puede ser un inconveniente en aplicaciones que estén interesadas en el término CC. Sin embargo, para aplicaciones que no estén interesadas en la CC, como el audio, esto no es un inconveniente.