¿Por qué usar la transformada rápida de Fourier para reducir el ruido en lugar de un filtro electrónico clásico?

17

Me gustaría saber cómo eliminar el ruido ambiental de una grabación de voz.

He investigado un poco y he notado que la mayoría de los métodos propuestos usan la transformada 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 un FFT?

    
pregunta Jazis

6 respuestas

25
  

Me gustaría saber cómo eliminar el ruido ambiental de una grabación de voz.

Bueno, ahora está almacenado digitalmente, ¿verdad? Entonces, ¿está planeando poner su micrófono al lado del altavoz después de un filtro analógico para volver a grabarlo?

Basta de andar por ahí, hablaré en serio.

Para hacer que un filtro se atenúe más en un rango de frecuencias más pequeño, también conocido como 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 post-procesamiento. 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 al mañana cuando llueva. Esperas que funcione exactamente de la misma forma, ¿no?

En los circuitos analógicos tienes todos estos "5% de resistencia", "1% de condensador" y todo lo demás. Entonces, si quiere hacer algo exacto definitivamente necesitará recortar el circuito luego para que coincida con el filtro deseado a la perfección. Si desea aumentar el orden del filtro ... tristemente ... 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 levemente, la respuesta de frecuencia cambiará, un par de Hz allí, algunos allí, cuantos más componentes tenga en sus circuitos, es más probable 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 postprocesarlo, a menos que tenga cintas de cassette. No estoy 100% seguro de qué medio musical analógico se utiliza para grabar / borrar 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 gratis, el otro requiere componentes, partes físicas.

Pero no creas que los filtros analógicos son malos, tienen sus usos, como eliminar armónicos desagradables en motores de CC grandes o hacer Motores paso a paso ultra silenciosos para impresoras 3D al suavizar la corriente. Y muchos 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 de hacer. 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 bandstop.

Y lo último que quiero agregar ... esta respuesta es tan larga, lo siento. Pero si usa un filtro analógico y ... se equivoca con sus cálculos y luego piensa que todo está bien y excelente y lo usa en algún evento serio, como entrevistar al rey de Suecia (Knugen). Y se equivocó con el tamaño de un condensador, en lugar de filtrar el ruido de 16 kHz, está filtrando el "ruido" de 4 kHz. Si, por el contrario, trata con él digitalmente, solo es cuestión de cambiar algunas variables, no necesita desoldar - > Soldar otro componente. También se arruina la entrevista.

    
respondido por el Harry Svensson
7

Pero, ¿por qué no puedes usar un filtro electrónico clásico para eliminar las frecuencias de ruido?

¿Quién dice que no puedes? Así se hizo 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) y reducir el ruido.

Para cintas de cassette y otros sistemas de grabación de cintas analógicas como DNL y Dolby se utilizaron filtros que solo cuando la señal es débil significa que el ruido es más audible. Luego, cuando la señal es más fuerte, el filtro se desvanece. Consulte: Artículo de Wikipedia sobre reducción de ruido

El habla se puede limitar a una banda de frecuencia estrecha, como de 300 Hz a 3 kHz, a la vez que es 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. Tales 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, como 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 (de cristal), el filtro será mucho más preciso en comparación con una implementación analógica .

    
respondido por el Bimpelrekkie
6

Bueno, el primer paso para entender por qué necesitamos FFT es entender cómo funciona el filtrado digital.

Básicamente, tienes 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 que vienen lentamente una por una.

En la vida real, en lugar de eso, lo más probable es que obtengas un marco que consta de varias muestras. Cuando quiera filtrar eso, convolverá las muestras con los coeficientes de filtro. Eso 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 está en su inicio 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, será mucho más rápido convertir una señal en el dominio de la frecuencia utilizando una FFT, filtrar la señal en el dominio de la frecuencia y luego volver a convertirla utilizando IFFT. El truco que estamos usando es una de las propiedades de la convolución, es decir, que la convolución en el dominio del tiempo puede, en algunas circunstancias, modelarse como una multiplicación en el dominio de la frecuencia.

Para resumir, 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 o menos.

    
respondido por el AndrejaKo
2

Los métodos basados en FFT (aún tendrá que trabajar con las modificaciones de ventanas y superposición-adición o superposición-desplazamiento) tienen como principal ventaja que el diseño está sólidamente en el dominio de la frecuencia, y un filtro de Wiener o una resta espectral o una serie de otros sistemas que se basan en estadísticas de señales y un modelo realmente funcionan fundamentalmente en el dominio de la frecuencia.

En cambio, la cancelación de eco y las diversas 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 para mantener la correlación de la señal restante con el canal de ruido mínimo. Para esas técnicas, la FFT no es tan útil (cuando se permiten demoras considerables de la señal resultante y de las actualizaciones del filtro, pueden emplearse como un componente en un FIR de caja negra con demora por razones de rendimiento, pero no son realmente útiles para su capacidad de representación en el dominio de la frecuencia).

    
respondido por el user166620
2

Los filtros analógicos son fáciles de diseñar, pero la limitación es que debe seguir agregando elementos de filtro físicos para lograr un filtrado de banda de frecuencias determinadas. Y necesita 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 necesita agregar otro amplificador para cada muesca que desee. Para una muesca más selectiva, se necesitarían dos amplificadores por muesca.

En términos prácticos, lo más probable es que te sirva un filtro de paso bajo de tercer orden que puedas hacer con un solo filtro de acción o un filtro de paso bajo de quinto orden que requiera dos. Use el (los) filtro (s) 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 el postproceso. Con una grabación limpia como esa, puede aplicar filtros FFT para crear filtros de paso alto, paso de banda y paro de banda según sea necesario.

    
respondido por el Barleyman
1

El filtrado invariante de tiempo lineal que hace un "filtro electrónico clásico" es solo una multiplicación "tonta" en el dominio de Fourier. Pero la información que encuentra en una FFT le brinda más detalles que solo la respuesta de un filtro, que es solo una combinación lineal de esos componentes. Usando esa información, puede dirigir el procesamiento de los datos y adaptarlos 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 los armónicos no es lo mismo 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 básico" de alguna manera, podemos dirigir el filtrado y adaptarlo más a los datos.

    
respondido por el mathreadler

Lea otras preguntas en las etiquetas