Me gustaría saber cómo eliminar el ruido ambiental de una grabación de voz.
Investigué un poco y noté que la mayoría de los métodos propuestos utilizan la transformación rápida de Fourier. Pero, ¿por qué no puedes usar un filtro electrónico clásico para eliminar las frecuencias de ruido? ¿Por qué molestarse en hacer una FFT?
Respuestas:
Bueno, ahora está almacenado digitalmente, ¿verdad? entonces, ¿planeas poner tu micrófono al lado del altavoz después de un filtro analógico para volver a grabarlo?
Basta de perder el tiempo, voy a hablar en serio.
Para hacer que un filtro se atenúe más en un rango más pequeño de frecuencias, es decir, hacer que la curva de respuesta de frecuencia sea más vertical, entonces solo necesita aumentar el orden del filtro.
Eso es algo que es razonablemente fácil de hacer en Matlab. También es algo que es factible hacer postprocesamiento. También se trata de la repetibilidad, si aplica el filtro en un día soleado hoy, entonces espera que funcione de manera idéntica para mañana cuando esté lloviendo. Esperas que funcione exactamente igual, ¿verdad?
En los circuitos analógicos, tiene todos estos "5% de resistencia", "1% de condensador" y todo lo demás. Entonces, si desea hacer algo exacto , definitivamente necesitará recortar el circuito después para que coincida perfectamente con el filtro deseado. Si desea aumentar el orden del filtro ... entonces, lamentablemente, hará que el filtro sea mucho más grande físicamente. En lugar de ocupar el tamaño de una tarjeta de crédito, ocupará el tamaño de, no sé, depende del orden del filtro y de lo que está de acuerdo.
Con respecto a la repetibilidad, hacer algo hoy ... cálido ... mañana ... más frío ... las resistencias cambiarán muy ligeramente, la respuesta de frecuencia cambiará, un par de Hz allí, algunos allí, cuantos más componentes tenga en sus circuitos , lo más probable es que sus componentes cambien sus valores. Y luego tienes humedad, oxidante ...
Y aquí está la frase clave que debería haber dicho primero, realmente no se puede procesar posteriormente, a menos que tenga cintas de cassette. No estoy 100% seguro de qué medio musical analógico se está utilizando para grabar / eliminar fácilmente. Los discos LP serían una pesadilla ...
Y no olvidemos el precio. Uno es el software, si lo escribe usted mismo, entonces es esencialmente gratuito, el otro requiere componentes, partes físicas.
Pero no piense que los filtros analógicos son malos, tienen sus usos, como eliminar armónicos desagradables en grandes motores de CC o hacer motores paso a paso ultra silenciosos para impresoras 3D al suavizar la corriente. Y toneladas de otros usos. - Además, si lo resolviera con un filtro analógico, nadie pensaría que sería una mala solución.
Creo que estoy respondiendo indirectamente por qué FFT es una mejor manera de hacerlo, después del procesamiento. La conclusión es que es mucho más barato hacerlo. También puede aplicar un filtro de muesca si sabe a qué frecuencia está el ruido. O un filtro más ancho, también conocido como bandtop.
Y lo último que quiero agregar ... wow, esta respuesta es tan larga, lo siento. Pero si usas un filtro analógico y ... te equivocas con tus cálculos y luego piensas que todo está bien y elegante y lo usas en algún evento serio, como entrevistar al rey de Suecia (Knugen). Y te equivocaste con el tamaño de un condensador, en lugar de filtrar el ruido de 16 kHz, estás filtrando el "ruido" de 4 kHz. Si en cambio lo manejas digitalmente, entonces solo es cuestión de cambiar algunas variables, no necesitas desoldar -> soldar otro componente. También la entrevista está arruinada.
fuente
Pero, ¿por qué no puedes usar un filtro electrónico clásico para eliminar las frecuencias de ruido?
¿Quién dice que no puedes? Es así como se hizo esto en los días previos al procesamiento de la señal digital. El problema es que filtrar el ruido siempre es un compromiso entre mantener intacta la señal deseada (voz, música) mientras se reduce el ruido.
Para las cintas de cassette y otras grabaciones analógicas se utilizaron sistemas como DNL y Dolby que filtran solo cuando la señal es débil, lo que significa que el ruido es más audible. Luego, cuando la señal es más fuerte, el filtro se desvanece. Ver: Artículo de Wikipedia sobre reducción de ruido
El habla se puede limitar a una banda de frecuencia estrecha, como 300 Hz a 3 kHz, sin dejar de ser perfectamente comprensible. Podría hacer un filtro analógico simple para esa banda, pero eso limitaría la cantidad de ruido que se suprime. Para filtrar más efectivamente las frecuencias fuera de esta banda se requeriría un filtro analógico complejo. Dichos filtros son difíciles de diseñar, construir y fabricar.
Aquí es donde entra el procesamiento de la señal digital. En el dominio digital es mucho más fácil implementar filtros complejos con muchos polos y ceros. Además, dado que la ubicación (en el dominio de la frecuencia) de estos polos y ceros está vinculada al reloj del DSP (Procesador de señal digital), que es un reloj preciso (cristal), el filtro será mucho más preciso en comparación con una implementación analógica .
fuente
Bueno, el primer paso para comprender por qué necesitamos FFT es comprender cómo funciona el filtrado digital.
Entonces, básicamente, tiene una estructura, como un registro de desplazamiento, con varios elementos de memoria, una entrada y una salida. Un valor de muestra entra en la entrada, se desplaza a través del registro y se mueve a la salida. En cada etapa del registro, se multiplica por un número llamado coeficiente de filtro.
Esta idea funciona bien cuando tienes un registro rápido haciendo multiplicaciones rápidas y tienes muestras entrando lentamente una por una.
En la vida real, en lugar de eso, lo más probable es que obtenga un marco que consta de una serie de muestras. Cuando desee filtrar eso, convolverá las muestras con los coeficientes del filtro. Es lo mismo que hacer el enfoque anterior, pero se ve un poco diferente.
Ahora viene la parte FFT. Resulta que la convolución crece en complejidad numérica muy rápidamente con el número de muestras. Por otro lado, la FFT es en principio numéricamente complicada, pero el número de operaciones necesarias crece mucho más lentamente con el aumento de los coeficientes de filtro en comparación con la convolución.
Lo que significa lo anterior es que por encima de un cierto número de muestras, va a ser mucho más rápido convertir una señal en el dominio de frecuencia usando una FFT, filtrar la señal en el dominio de frecuencia y luego volver a convertirla usando IFFT. El truco que estamos usando es una de las propiedades de la convolución, a saber, que la convolución en el dominio del tiempo puede, en algunas circunstancias, modelarse como multiplicación en el dominio de la frecuencia.
En resumen, si el número de coeficientes de filtro que tiene es lo suficientemente grande, FFT es más rápido. El "grande" podría ser tan pequeño como cien.
fuente
Los métodos basados en FFT (aún tendrá que trabajar con las modificaciones de ventanas y superposición-adición o superposición-cambio) tienen como ventaja principal que el diseño está sólidamente en el dominio de la frecuencia, y un filtro Wiener o sustracción espectral o una serie de otros sistemas que dependen de estadísticas de señal y un modelo realmente funcionan fundamentalmente en el dominio de la frecuencia.
Por el contrario, la cancelación de eco y varias variantes no se basan en un modelo del ruido sino en una grabación imperfecta altamente correlacionada con el ruido. Estos se realizan utilizando filtros variables (generalmente FIR) para restar una estimación de ruido de la señal y actualizar los filtros a fin de mantener la correlación de la señal restante con el canal de ruido mínimo. Para esas técnicas, FFT no es tan útil (cuando se permiten retrasos considerables de la señal resultante y de las actualizaciones del filtro, pueden emplearse como un componente en un FIR de caja negra con retraso por razones de rendimiento, pero no son realmente útiles por su capacidad de representación de dominio de frecuencia).
fuente
Los filtros analógicos son bastante fáciles de diseñar, pero la limitación es que debe seguir agregando elementos de filtro físicos para lograr el filtrado de parada de banda de frecuencias dadas. Y debe ajustar los valores de los componentes si desea mover las muescas. Un solo opamp puede hacer una muesca de parada de banda, por lo que debe agregar otro amplificador para cada muesca que desee. Para una muesca más selectiva necesitaría dos amplificadores por muesca.
En términos prácticos, es probable que le sirva mejor un filtro de paso bajo de tercer orden que puede hacer con un solo amplificador operacional o quizás un filtro de paso bajo de quinto orden que requiere dos. Utilice los filtros de paso bajo para atenuar las frecuencias por encima de la frecuencia de Nyquist (1/2 frecuencia de muestreo) con cierto margen y tendrá una muestra digital de alta calidad para procesar posteriormente. Con una grabación limpia como esa, puede aplicar filtros FFT para crear filtros de paso alto, paso de banda y parada de banda según sea necesario.
fuente
El filtrado invariante de tiempo lineal que hace un "filtro electrónico clásico" es simplemente una multiplicación "tonta" en el dominio de Fourier. Pero la información que encuentra en un FFT le brinda más detalles que solo la respuesta de un filtro, que es solo una combinación lineal de esos componentes. Con esa información, puede dirigir el procesamiento de datos y adaptarlo a los datos. El ruido tiene algunas características que las voces claras y los tonos musicales no tienen, por ejemplo, la correlación entre armónicos no es casi la misma para el ruido que para la voz o la música.
Entonces, si podemos identificar las correlaciones entre los componentes de frecuencia, es decir, encontrar un "tono de fondo" de alguna manera, podemos dirigir el filtrado y adaptarlo más a los datos.
fuente