stringtranslate.com

Transformada de Q constante

En matemáticas y procesamiento de señales , la transformada Q constante y la transformada Q variable , conocidas simplemente como CQT y VQT , transforman una serie de datos al dominio de la frecuencia . Está relacionado con la transformada de Fourier [1] y muy estrechamente relacionado con la compleja transformada wavelet de Morlet . [2] Su diseño es adecuado para la representación musical.

Transformada de Q constante aplicada a la forma de onda de un acorde de piano de do mayor . El eje x es la frecuencia , asignada a tonos musicales estándar , desde bajo (izquierda) hasta alto (derecha). El eje y es el tiempo, comenzando al presionar el acorde de piano en la parte inferior y soltando el acorde de piano en la parte superior, 8 segundos después. Los píxeles más oscuros corresponden a valores más altos de la transformación Constant-Q. Los picos corresponden estrechamente a las frecuencias precisas de las cuerdas vibrantes del piano. Por tanto, los picos se pueden utilizar para detectar las notas tocadas en el piano. Los 3 picos más bajos son las frecuencias fundamentales del acorde de do mayor (do, mi, sol). Cada cuerda también vibra en múltiplos de la fundamental, conocidos como armónicos , que corresponden a los picos más pequeños restantes a la derecha de los tonos fundamentales. Los armónicos tienen menor intensidad que el tono fundamental.
Audio del acorde de piano de Do mayor utilizado para generar la transformación de Q constante anterior.
Su forma de onda no comunica visualmente información de tono como puede hacerlo la transformada Constant-Q.

La transformada se puede considerar como una serie de filtros f k , espaciados logarítmicamente en frecuencia, con el k -ésimo filtro teniendo 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 .

Cálculo

La transformada de Fourier de corto tiempo de x [ n ] para un cuadro 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:

A continuación se muestra que es el número entero de ciclos procesados ​​a una frecuencia central f k . Como tal, esto define de alguna manera la complejidad temporal de la transformación.
Dado que f s / f k es el número de muestras procesadas por ciclo en la frecuencia f k , Q es el número de ciclos enteros procesados ​​en esta frecuencia central.

El núcleo de transformación equivalente se puede encontrar utilizando las siguientes sustituciones:

Después de estas modificaciones, nos quedamos con

Cálculo de ancho de banda Q variable

La transformación Q variable es la misma que la transformación Q constante, pero la única diferencia es que el filtro Q es variable, de ahí el nombre de transformación Q variable. La transformada Q variable es útil cuando la resolución temporal en bajas frecuencias es importante [ se necesitan ejemplos ] . Hay formas de calcular el ancho de banda del VQT, una de ellas utiliza un ancho de banda rectangular equivalente como valor para el ancho de banda del contenedor VQT. [3]

La forma más sencilla de implementar una transformación Q variable es agregar un desplazamiento de ancho de banda llamado γ como este: [ cita necesaria ]

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 como este: [ cita necesaria ]

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.

Cálculo rápido

El cálculo directo de la transformada Q constante (ya sea utilizando DFT ingenuo o un algoritmo de Goertzel ligeramente más rápido ) es lento en comparación con la transformada rápida de Fourier (FFT). Sin embargo, la FFT se puede emplear, junto con el uso de un kernel , para realizar el cálculo equivalente pero mucho más rápido. [4] En 2006 se propuso una implementación inversa aproximada a dicha implementación; Funciona volviendo al DFT y solo es adecuado para instrumentos de tono. [5]

Un desarrollo de este método con invertibilidad mejorada implica realizar CQT (a través de FFT) octava por octava, utilizando resultados filtrados de paso bajo y muestreados para tonos consecutivamente 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 FFT directo (al que denomina "pseudo-CQT") haciendo que este último procese frecuencias más altas en su conjunto. [7]

La DFT deslizante se puede utilizar para un cálculo más rápido de la transformada Q constante, ya que la DFT deslizante no tiene que tener un espaciado de frecuencia lineal y el mismo tamaño de ventana por contenedor. [8]

Alternativamente, la transformada Q constante se puede aproximar utilizando múltiples FFT de diferentes tamaños de ventana y/o frecuencia de muestreo en diferentes rangos de frecuencia y luego unirlas. Esto se llama STFT multiresolución ; sin embargo, los tamaños de ventana para las FFT multiresolución son diferentes por octava, en lugar de por contenedor. [ cita necesaria ] [ ambiguo ]

Comparación con la transformada de Fourier

En general, la transformada se adapta bien a los datos musicales, y esto se puede ver en algunas de sus ventajas en comparación con la rápida transformada de Fourier. Como la salida de la transformada es efectivamente amplitud/fase contra frecuencia logarítmica, se requieren menos contenedores de frecuencia para cubrir un rango determinado de manera efectiva, y esto resulta útil cuando las frecuencias abarcan varias octavas. Como el rango del oído humano cubre aproximadamente diez octavas desde 20 Hz hasta alrededor de 20 kHz, esta reducción en los datos de salida es significativa.

La transformada 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 del 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. [9] Entonces, para datos musicales, la resolución de frecuencia exponencial de la transformada 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 transformada. Suponiendo las mismas intensidades relativas de cada armónico, 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 Q constante también se puede utilizar para el reconocimiento automático de claves musicales en función del contenido cromático acumulado. [10]

En relación con la transformada de Fourier, la implementación de esta transformada es más complicada. Esto se debe al número variable de muestras utilizadas en el cálculo de cada intervalo de frecuencia, lo que también afecta la duración de cualquier función de ventana implementada. [11]

También tenga en cuenta que debido a que la escala de frecuencia es logarítmica, no existe un verdadero término de frecuencia cero/CC, lo que puede ser un inconveniente en aplicaciones que están interesadas en el término CC. Aunque para aplicaciones que no interesan al DC como el audio, esto no es un inconveniente.

Referencias

  1. ^ Judith C. Brown , Cálculo de una transformada espectral Q constante, J. Acoust. Soc. Soy. , 89(1):425–434, 1991.
  2. ^ Transformada Wavelet continua "Cuando la wavelet madre se puede interpretar como una sinusoide en ventana (como la wavelet de Morlet), la transformada wavelet se puede interpretar como una transformada de Fourier Q constante. Antes de la teoría de las wavelets, las transformadas de Fourier Q constante ( como los obtenidos de un banco de filtros clásico de tercio de octava) no eran fáciles de invertir, porque las señales base no eran ortogonales".
  3. ^ Cwitkowitz, Frank C. Jr (2019). "Transcripción de música de un extremo a otro mediante bancos de filtros Q variable ajustados" (PDF) . Instituto de Tecnología de Rochester : 32–34 . Consultado el 21 de agosto de 2022 .
  4. ^ Judith C. Brown y Miller S. Puckette, Un algoritmo eficiente para el cálculo de una transformada Q constante, J. Acoust. Soc. Soy. , 92(5):2698–2701, 1992.
  5. ^ FitzGerald, Derry; Cychowski, Marcin T.; Cranitch, Matt (1 de mayo de 2006). "Hacia una transformada Q constante inversa". Convención de la Sociedad de Ingeniería de Audio . 120 . París: Sociedad de Ingeniería de Audio.
  6. ^ Schörkhuber, cristiano; Klapuri, Ansi (2010). "CAJA DE HERRAMIENTAS CONSTANT-Q TRANSFORM PARA PROCESAMIENTO DE MÚSICA". VII Jornadas de Informática del Sonido y la Música . Barcelona . Consultado el 12 de diciembre de 2018 .papel
  7. ^ ab McFee, Brian; Battenberg, Eric; Lostanlen, Vicente; Thomé, Carl (12 de diciembre de 2018). "librosa: core/constantq.py en 8d26423". GitHub . librosa . Consultado el 12 de diciembre de 2018 .
  8. ^ Bradford, R, ffitch, J & Dobson, R 2008, Deslizamiento con una Q constante, en las actas de la 11.ª Conferencia internacional sobre efectos de audio digital (DAFx-08), del 1 al 4 de septiembre de 2008, Espoo, Finlandia . DAFx, Espoo, Finlandia, págs. 363-369, Proc. del Int. Conf. sobre efectos de audio digital (DAFx-08), 09/01/08.
  9. ^ http://newt.phys.unsw.edu.au/jw/graphics/notes.GIF [ archivo de imagen de URL simple ]
  10. ^ Hendrik Purwins, Benjamin Blankertz y Klaus Obermayer, Un nuevo método para rastrear modulaciones en música tonal en formato de datos de audio, Conferencia conjunta internacional sobre redes neuronales (IJCNN'00). , 6:270-275, 2000.
  11. ^ Benjamin Blankertz, La transformada Q constante, 1999.