es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mascarar Audio STFT Matlab

Quiero implementar una máscara de tiempo-frecuencia de audio.

En primer lugar, estoy utilizando la función: S=spectrogram(x,window,noverlap,nfft) en Matlab, para extraer la STFT del ruido+señal objetivo (de un archivo WAV). Después de eso, estoy forzando que algunos coeficientes de la STFT (variable S) sean cero con base en un umbral determinado. Pero al hacer la ISTFT, obtengo valores complejos (no valores reales como esperaba, como una señal de audio).

¿Alguien puede explicar de dónde proviene el problema? ¿Y cuál es la solución aceptada para un problema de este tipo?

Nota:

Si estuviera realizando una FFT y manipulando la señal, me aseguraría de que la señal tenga propiedades para ser real en el tiempo, pero ¿cómo mantener las propiedades en el plano STFT?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La salida de valores complejos después de realizar la transformada inversa de Fourier en corto tiempo (ISTFT, por sus siglas en inglés) es esperada al realizar la técnica de enmascaramiento en la señal de audio en el dominio tiempo-frecuencia. El proceso de enmascaramiento implica establecer algunos coeficientes del espectrograma en cero, lo cual altera la información de fase de la señal. Esto resulta en una salida de valores complejos después de realizar la ISTFT.

    Para abordar este problema, una solución es utilizar una técnica llamada reconstrucción de fase. Esto involucra utilizar la información de fase original de la señal antes del proceso de enmascaramiento para reconstruir la fase de los coeficientes alterados. Esto se puede lograr utilizando el algoritmo de Griffin-Lim u otras técnicas similares.

    Otra solución es utilizar un método de enmascaramiento modificado, como el filtrado de Wiener o el enmascaramiento binario tiempo-frecuencia, los cuales preservan la información de fase al mismo tiempo que se obtienen buenos resultados de enmascaramiento.

    También es importante mencionar que antes de realizar la STFT y el enmascaramiento, se recomienda aplicar una función de ventana a la señal para reducir el efecto de fugas espectrales. Además, es importante elegir valores umbral adecuados para el proceso de enmascaramiento para garantizar un equilibrio entre la eliminación de ruido no deseado y la preservación de la señal deseada.

Comments are closed.