¿Por qué debo usar filtros digitales para el paso de banda en lugar de simplemente manipular las señales en el dominio de la frecuencia y luego recuperarlas en el dominio del tiempo?

15

Soy bastante novato en el procesamiento de señales y sé que esta pregunta puede ser demasiado amplia. Pero todavía me gustaría escuchar sugerencias de expertos.

Se me enseñó a usar las funciones butter (para diseñar el filtro Butterworth, también conocido como el filtro de magnitud máxima plana) y las funciones filtfilt (filtrado digital de fase cero) para el filtrado de paso de banda de señales de EEG (electroencefalograma) en MATLAB sin conexión (es decir, después) la finalización de la grabación). De esta manera, puede evitar el "retraso" inevitable causado por el filtro digital (es decir, filtrado de fase cero).

Luego, alguien me preguntó por qué no podemos usar fft (transformada rápida de Fourier) para obtener la representación en el dominio de la frecuencia de la señal, y luego ajustar la potencia de las frecuencias no deseadas a cero, seguido de ifft (Fourier rápido inverso Transformar) para recuperar los datos filtrados en el dominio del tiempo para el mismo propósito. Esta manipulación en el dominio de la frecuencia me pareció más simple y razonable, y realmente no pude responder por qué.

¿Cuáles son las ventajas y desventajas de usar el método simple fft/ifft para el filtrado de paso de banda? ¿Por qué la gente prefiere usar los filtros digitales FIR o IIR?

Por ejemplo, ¿es el método fft/ifft más propenso a fugas espectrales u ondulaciones en comparación con los filtros digitales establecidos? ¿El método también sufre de retraso de fase? ¿Hay alguna manera de visualizar la respuesta de impulso para este método de filtrado para comparación?

    
pregunta John Smith

3 respuestas

9

La razón principal por la que el procesamiento del dominio de la frecuencia no se realiza directamente es la latencia involucrada. Para hacer, digamos, un FFT en una señal, primero debe grabar la señal completa del dominio del tiempo, de principio a fin, antes de poder convertirla al dominio de la frecuencia. Luego puede hacer su procesamiento, convertirlo de nuevo a dominio de tiempo y reproducir el resultado. Incluso si las dos conversiones y el procesamiento de la señal en el medio son efectivamente instantáneos, no se obtiene la primera muestra de resultados hasta que se registra la última muestra de entrada. Pero puede obtener resultados "ideales" en el dominio de la frecuencia si está dispuesto a soportar esto. Por ejemplo, una canción de 3 minutos grabada a 44100 muestras / segundo requeriría que hagas transformaciones de 8 millones de puntos, pero eso no es un gran problema en una CPU moderna.

Podría sentirse tentado a dividir la señal del dominio del tiempo en bloques de datos más pequeños y de tamaño fijo y procesarlos individualmente, reduciendo la latencia a la longitud de un bloque. Sin embargo, esto no funciona debido a los "efectos de borde": las muestras en cualquiera de los extremos de un bloque dado no se alinearán correctamente con las muestras correspondientes de los bloques adyacentes, creando artefactos objetables en los resultados.

Esto sucede debido a suposiciones que están implícitas en el proceso que se convierte entre el dominio del tiempo y el dominio de la frecuencia (y viceversa). Por ejemplo, la FFT y la IFFT "asumen" que los datos son cíclicos; en otras palabras, los bloques de datos idénticos en el dominio del tiempo vienen antes y después del bloque que se está procesando. Como en general esto no es cierto, obtienes los artefactos.

El procesamiento del dominio del tiempo puede tener sus problemas, pero el hecho de que pueda controlar la latencia y no produzca artefactos periódicos lo convierte en un claro ganador en la mayoría de las aplicaciones de procesamiento de señales en tiempo real.

(Esta es una versión ampliada de mi respuesta anterior .)

    
respondido por el Dave Tweed
2

Ciertamente, puedes usar filtros "boxcar" ideales en el dominio de la frecuencia. La dualidad dice que esto es equivalente a convolucionar con una función sinc de longitud infinita. Para reducir los artefactos asociados con hacer que la longitud sea finita, la función sinc a menudo se multiplica por una ventana. Es posible que haya oído hablar de Hamming, Hanning (en realidad, von Hann), coseno elevado y otras técnicas de ventanas. La convolución puede ser computacionalmente más simple que el enfoque fft / ifft, pero las respuestas son las mismas.

Cada método tendrá ventajas y desventajas. El Butterworth es IIR, y los vagones son FIR. Los Butterworths probablemente son más planos en la banda de paso, pero probablemente con una caída menos pronunciada, según el orden de la IIR y el ancho de la FIR. filtfilt sería más difícil de implementar en tiempo real.

    
respondido por el Scott Seidman
0

Preguntas relacionadas

¿Por qué es una mala idea filtrar y poner a cero los contenedores FFT? enlace

¿Eliminar valores de FFT resulta igual que filtrar? enlace

¿Por qué usamos ventana en el dominio del tiempo en lugar de FFT para modificar el espectro y no FFT inversa? enlace

    
respondido por el John Smith

Lea otras preguntas en las etiquetas