Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

iscola

Determine si la combinación de superposición de ventanas es compatible con COLA

Descripción

ejemplo

tf = iscola(window,noverlap) Comprueba que la ventana y la superposición especificadas satisfacen la restricción Constant Overlap-Add (COLA) para asegurarse de que la transformación inversa de corto plazo de Fourier da como resultado una reconstrucción perfecta para espectros no modificados.

tf = iscola(window,noverlap,method) especifica el método de inversión que se va a utilizar.

[tf,m] = iscola(___) también devuelve la mediana de la suma COLA. Puede utilizar estos argumentos de salida con cualquiera de las sintaxis de entrada anteriores.

ejemplo

[tf,m,maxDeviation] = iscola(___) devuelve la desviación máxima de la mediana.m

Ejemplos

contraer todo

Cree una ventana raíz-Hann periódica de la longitud 120. Compruebe si la ventana es compatible con COLA con una superposición del 50%.

win = sqrt(hann(120,'periodic')); noverlap = 60;

Compruebe si la ventana es compatible con COLA con una superposición del 50%.

tf = iscola(win,noverlap)
tf = logical
   1

Cree una ventana periódica de Hamming de longitud 256. Establezca el método Overlap-Add como .'ola'

window = hamming(256,'periodic'); method = 'ola'; noverlap = 128;

Compruebe si la ventana es compatible con COLA con una superposición del 50%. Calcule también la mediana de la suma COLA y la desviación máxima de esa suma.

[tf,m,maxDeviation] =  iscola(window,noverlap,method)
tf = logical
   1

m = 1.0800 
maxDeviation = 2.2204e-16 

Argumentos de entrada

contraer todo

Ventana de análisis, especificada como vector.

Ejemplo: es una ventana Bartlett de longitud 120.win = bartlett(120)

Tipos de datos: double | single

Número de muestras superpuestas, especificada como un entero positivo menor que la longitud de .window

Tipos de datos: double | single

Método de superposición-añadir, especificado como:

  • — Superposición ponderada-Añadir.'wola'

  • — Overlap-Add.'ola'

Argumentos de salida

contraer todo

Cumplimiento de COLA, devuelto como un escalar lógico. Si la función devuelve un (true), la ventana y la longitud de superposición satisfacen la restricción COLA.1

Mediana de la suma COLA, regresó como un verdadero escalar. Si las entradas son compatibles con COLA, entonces es igual a la constante de suma COLA.m

Desviación máxima de la mediana .m Si y son compatibles con COLA, está cerca del error de precisión numérico esperado de la suma COLA.windownoverlapmaxDeviation

Nota

Puede concluir el cumplimiento seguro de COLA si está cerca del error de precisión numérico y está cerca de ella.m = 1maxDeviation

Más acerca de

contraer todo

Inverso corto tiempo Fourier Transform

La transformación inversa de corta distancia de Fourier se calcula tomando el IFFT de cada vector DFT del STFT y superponiendo las señales invertidas. El ISTFT se calcula de la siguiente manera:

x(n)=1/21/2m=Xm(f)ej2πfndf=m=1/21/2Xm(f)ej2πfndf=m=xm(n)

Dónde R es el tamaño del salto entre los sucesivos DFT, Xm es el DFT de los datos en ventanas centrados en el tiempo mR Y xm(n)=x(n)g(nmR). El STFT inverso es una reconstrucción perfecta de la señal original siempre y cuando m=ga+1(nmR)=cn donde elventana de análisis g(n) se utilizó para ventanar la señal original y c es una constante. La siguiente figura muestra los pasos seguidos en la reconstrucción de la señal original.

Restricción de superposición constante (COLA)

Para garantizar la reconstrucción correcta de espectros no modificados, la ventana de análisis debe satisfacer la restricción COLA. En general, si la ventana de análisis satisface la condición m=ga+1(nmR)=cn, la ventana se considera compatible con COLA. Además, el cumplimiento de COLA se puede describir como débil o fuerte.

  • El débil cumplimiento de COLA implica que la transformación de Fourier de la ventana de análisis tiene ceros a ritmo de fotogramas armónicos, de modo que

    G(fk)=0,k=1,2,,R1,fkkR.

    La cancelación de alias se ve perturbada por las modificaciones espectrales. El cola débil se basa en la cancelación de alias en el dominio de frecuencia. Por lo tanto, la reconstrucción perfecta es posible utilizando ventanas débilmente compatibles con COLA, siempre y cuando la señal no haya sufrido ninguna modificación espectral.

  • Para un cumplimiento sólido de COLA, la transformación de Fourier de la ventana debe estar bandlimitada de forma consistente con la reducción de la frecuencia de fotogramas de tal manera que

    G(f)=0,f12R.

    Esta ecuación muestra que la restricción COLA fuerte no permite alias. Además, para el cumplimiento sólido de COLA, el valor de la c debe ser igual a 1. En general, si el espectro de corto plazo se modifica de alguna manera, se prefiere una ventana compatible con COLA más fuerte.

Puede utilizar la función para comprobar el cumplimiento débil de COLA.iscola El número de sumas utilizadas para comprobar el cumplimiento de COLA viene determinado por la longitud de la ventana y el tamaño del salto. En general, es común utilizar a=1 En m=ga+1(nmR)=cn para superposiciones ponderadas -add (WOLA), y a=0 para superposición-añadir (OLA). De forma predeterminada, utiliza el método WOLA, aplicando un antes de realizar el método overlap-add.istftventana de síntesis

En general, la ventana de síntesis es la misma que la ventana de análisis. Puede construir ventanas WOLA útiles tomando la raíz cuadrada de una ventana OLA fuerte. Puede utilizar este método para todas las ventanas de OLA no negativas. Por ejemplo, la ventana root-Hann es un buen ejemplo de una ventana WOLA.

Reconstrucción perfecta

En general, calcular el STFT de una señal de entrada e invertirlo no da lugar a una reconstrucción perfecta. Si desea que la salida de ISTFT coincida lo más estrechamente posible con la señal de entrada original, la señal y la ventana deben cumplir las siguientes condiciones:

  • Tamaño de entrada — Si invierte la salida de using y desea que el resultado tenga la misma longitud que la señal de entrada, el valor destftistftx k = (length(x)-noverlap)(length(window)-noverlap) debe ser un entero.

  • Cumplimiento de COLA: utilice las ventanas compatibles con COLA, suponiendo que no ha modificado la transformación de Fourier de la señal de corta distancia.

  • Relleno — Si la longitud de la señal de entrada es tal que el valor de no es un entero, cero-pad la señal antes de calcular la transformación de Fourier de corto tiempo.k Retire los ceros adicionales después de invertir la señal.

Referencias

[1] Allen, J. B. “Short Term Spectral Analysis, Synthesis, and Modification by Discrete Fourier Transform” IEEE Transactions on Acoustics, Speech and Signal Processing. Vol. 25, No. 3, June 1977, pp. 235–238.

[2] Griffin, D. W., and J. S. Lim. “Signal Estimation from Modified Short-Time Fourier Transform.” IEEE Transactions on Acoustics, Speech and Signal Processing. Vol. 32, No. 2, April 1984, pp. 236–243.

[3] Smith, J. O. Spectral Audio Signal Processing. https://ccrma.stanford.edu/~jos/sasp/, online book, 2011 edition, accessed Nov 2018.

[4] Sharpe, Bruce. Invertibility of Overlap-Add Processing. https://gauss256.github.io/blog/cola.html, accessed July 2019.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Consulte también

Funciones

Introducido en R2019a