Soy un novato en el procesamiento de señales y sé que esta pregunta puede ser demasiado amplia. Pero aún me gustaría escuchar sugerencias de expertos.
Me enseñaron a usar butter
(para diseñar el filtro de Butterworth, también conocido como filtro de magnitud máxima plana) y filtfilt
las funciones (filtrado digital de fase cero) para el filtrado de paso de banda de señales EEG (electroencefalograma) en MATLAB fuera de línea (es decir, después de la finalización de la grabación). De esta forma, puede evitar el "retraso" inevitable causado por el filtro digital (es decir, el filtro de fase cero).
Luego, alguien me preguntó por qué no podemos usar fft
(Transformada rápida de Fourier) para obtener la representación de la señal en el dominio de la frecuencia, y luego establecer la potencia de las frecuencias no deseadas en cero, seguido de ifft
(Transformada rápida rápida de Fourier) para recuperar los datos filtrados a tiempo dominio para el mismo propósito. Esta manipulación en el dominio de la frecuencia me pareció más simple y razonable, y realmente no podía responder por qué.
¿Cuáles son las ventajas y desventajas de usar el fft/ifft
método simple para el filtrado de paso de banda? ¿Por qué las personas prefieren usar filtros digitales FIR o IIR?
Por ejemplo, ¿es el fft/ifft
método más propenso a las fugas o ondas espectrales 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 comparar?
fuente
Respuestas:
La razón principal por la que el procesamiento del dominio de frecuencia no se realiza directamente es la latencia involucrada. Para hacer, por ejemplo, una FFT en una señal, primero debe registrar 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 nuevamente al dominio del 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 haya registrado la última muestra de entrada. Pero puede obtener resultados de dominio de frecuencia "ideales" si está dispuesto a soportar esto. Por ejemplo, una canción de 3 minutos grabada a 44100 muestras / segundo requeriría que realice transformaciones de 8 millones de puntos, pero eso no es gran cosa en una CPU moderna.
Es posible que sienta la tentación de romper 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 cualquier extremo 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 implícitas en el proceso que convierte entre dominio de tiempo y dominio de frecuencia (y viceversa). Por ejemplo, la FFT y la IFFT "asumen" que los datos son cíclicos; en otras palabras, que los bloques de datos idénticos en el dominio del tiempo vienen antes y después del procesamiento del bloque. Como esto en general no es cierto, obtienes los artefactos.
El procesamiento en el dominio del tiempo puede tener sus problemas, pero el hecho de que pueda controlar la latencia y que 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 ).
fuente
Ciertamente puede usar filtros ideales "furgones" en el dominio de la frecuencia. La dualidad dice que esto es equivalente a convolucionarse con una función sinc de longitud infinita. Para reducir los artefactos asociados con la longitud 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 son probablemente más planos en la banda de pase, pero probablemente con un rolloff menos pronunciado, según el orden del IIR y el ancho del FIR. filtfilt sería más difícil de implementar en tiempo real.
fuente
Preguntas relacionadas
¿Por qué es una mala idea filtrar poniendo a cero los contenedores FFT? /signals/6220/why-is-it-a-bad-idea-to-filter-by-zeroing-out-fft-bins
¿Eliminar valores del resultado FFT es lo mismo que filtrar? /signals/11487/removing-values-from-fft-result-same-as-filtering?noredirect=1&lq=1
¿Por qué usamos window in time domain en lugar de FFT modificar el espectro y no FFT inversa /signals/8911/why-do-we-use-window-in-time-domain-rather -than-do-fft-modificar-el-espectro-y-t? noredirect = 1 & lq = 1
fuente