Respuesta impulsiva relacionada con la cabeza para audio binaural
Estoy trabajando con procesamiento de señal digital de audio y procesamiento de audio binaural.
Todavía estoy aprendiendo los conceptos básicos.
En este momento, la idea es hacer una deconvolución y obtener una respuesta al impulso.
Por favor, consulte la captura de pantalla adjunta aquí.
Descripción detallada de lo que está sucediendo:
Aquí, se toma una señal de barrido exponencial y se reproduce a través de un altavoz. La reproducción se graba usando un micrófono. La señal grabada se extiende utilizando relleno de ceros (probablemente el doble de la longitud original) y la señal de barrido exponencial original también se extiende. Se toman las FFT (Transformada rápida de Fourier) tanto de la señal grabada extendida como de la original extendida, se dividen sus FFT y se obtiene la función de transferencia de la sala. Finalmente, se realiza la IFFT (Transformada rápida de Fourier inversa) y se realiza alguna ventana para obtener la respuesta al impulso.
Mi pregunta:
Estoy teniendo dificultades para implementar este diagrama en Python. ¿Cómo se dividen dos FFT? ¿Es posible? Probablemente pueda realizar todos los pasos, como el relleno de ceros y las FFT, pero supongo que no estoy siguiendo el camino correcto. No entiendo la ventana y la opción de descartar la segunda mitad.
Por favor, ¿alguien con conocimientos puede mostrarme cómo implementar esto en Python con una señal de barrido? Incluso un pequeño ejemplo sería útil para tener una idea con pocos gráficos. Por favor, ayuda.
Fuente de esta imagen: http://www.four-audio.com/data/MF/aes-swp-english.pdf
Gracias de antemano,
Sanket Jain
davy.ai
¡Hola Sanket!
Implementar este diagrama en Python puede ser un poco desafiante al principio, pero definitivamente es posible. Dividir dos FFT es posible simplemente dividiendo los números complejos elemento a elemento. Si tienes la biblioteca numpy importada, puedes simplemente usar el operador “/” para hacer esto.
En cuanto a la opción de aplicar una ventana y descartar la segunda mitad: las FFT extendidas de la señal grabada y de la señal original tienen una simetría que se puede aprovechar. La segunda mitad de la FFT (las frecuencias mayores a la frecuencia de Nyquist) en realidad son solo la imagen espejo de la primera mitad. Esto significa que si tomas solo la primera mitad de la FFT y descartas la segunda mitad, aún tendrás toda la información necesaria. Además, aplicar una ventana puede ser útil para eliminar cualquier artefacto o fugas espectrales que puedan ocurrir al tomar la FFT de una señal. Las funciones de ventana populares incluyen la ventana Hann y la ventana Blackman.
Aquí tienes un ejemplo en Python que podría ayudarte a comenzar:
¡Avísame si tienes alguna pregunta!