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

15

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 filtfiltlas 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/ifftmé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/ifftmé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?

Kouichi C. Nakamura
fuente
Pregunta relacionada (pero no necesariamente duplicada): electronics.stackexchange.com/questions/100348/why-use-a-filter/…
helloworld922
Usar una FFT para filtrar una señal es absolutamente válido, pero hay algunas cosas a tener en cuenta. Consulte esta pregunta / respuesta similar para obtener más información: stackoverflow.com/a/2949227/565542
sbell
55
Preguntas como esta podrían ser más apropiadas para el sitio de procesamiento de señales .
Jason R
2
Creo que la Guía del científico e ingeniero para el procesamiento de señales digitales de Steven W. Smith tiene una respuesta. Creo que dice que la muestra dentro - fuera de muestra es mucho más eficiente con un filtro digital. Pero, hay un ancho mínimo de la ventana (64 muestras o más, no recuerdo exactamente) cuando es más apropiado invocar la conversión FFT donde puede tener un filtro de ladrillo en el dominio de frecuencia. La eficiencia no es el único problema. El filtro de ladrillo implica que necesita usar muestras del futuro, lo cual es imposible en tiempo real.
Val
Gracias, estaba buscando algo como el sitio de procesamiento de señales, pero no pude encontrarlo.
Kouichi C. Nakamura

Respuestas:

9

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 ).

Dave Tweed
fuente
1
Muchas gracias por la respuesta detallada en palabras simples. Ahora puedo ver que en mi pregunta debería haber mencionado que mi trabajo es principalmente para el análisis fuera de línea en lugar del procesamiento en línea o en tiempo real. Editaré la pregunta. Su punto es bastante claro: debido a que FFT requiere toda la duración de los datos, debe esperar hasta que la grabación haya terminado.
Kouichi C. Nakamura
1
OK bastante justo. Permítanme señalar una cosa más sobre el filtrado del dominio de frecuencia que puede o no ser un problema para usted: los filtros no serán causales en el dominio del tiempo. En otras palabras, sus respuestas impulsivas se extienden tanto en tiempo positivo como negativo. Esto puede tener algunos efectos sorprendentes si no eres consciente de ello.
Dave Tweed
Gracias. Busqué "Filtro causal" en Wikipedia. Por definición, al vagón FFT no le importa el tiempo, por lo que puedo ver que no es causal. Esa naturaleza explica por qué no se puede usar para el filtrado en tiempo real.
Kouichi C. Nakamura
3
@DaveTweed: su afirmación acerca de requerir una FFT de 8 millones de puntos para filtrar una canción de 3 minutos muestreada a 44,1 kHz es incorrecta. Los algoritmos de convolución basados ​​en FFT se usan mucho en la práctica. Se utilizan métodos como overlap-save y overlap-add para que se requieran tamaños FFT más modestos (y, por lo tanto, latencia de procesamiento). Estas técnicas hacen exactamente lo que sugiere su segundo párrafo: use bloques más pequeños mientras maneja los "efectos de borde" que ocurren entre ellos.
Jason R
2
@DaveTweed: no estoy de acuerdo. Los métodos de convolución rápida como overlap-save y overlap-add son equivalentes (hasta precisión numérica) a la convolución lineal directa (es decir, implementar el filtro en el dominio del tiempo). No hay compromiso de rendimiento en condiciones de límite de ningún tipo en comparación con el procesamiento en el dominio del tiempo, y su latencia limitada todavía los hace útiles para muchas aplicaciones en tiempo real. Sostengo que la afirmación de que el filtrado del dominio de la frecuencia requiere una gran FFT en toda la señal de entrada no es cierta, y no estoy seguro de lo que quiere decir con el procesamiento "puro" del dominio de la frecuencia en este contexto.
Jason R
2

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.

Scott Seidman
fuente
1
Para una explicación realmente clara de las ventanas y el filtrado de bloques, mire el libro Digital Filters de RW Hamming. Disponible en Dover, muy bien de precio. (Por cierto, Scott, creo que este es el nombre de la ventana Hamming y von Hann es el que consiguió su nombre al nombrar su ventana)
The Photon
Además, estoy bastante seguro de que un furgón implementado con FFT es, por definición, perfectamente plano en la banda de paso. Cuando decimos que el filtro de Butterworth es "máximo plano", creo que estamos hablando de él solo en el contexto de los filtros causales (y Wiki dice que aun así es posible hacer un filtro inverso de Chebychev que sea más plano que un Butterworth).
El fotón
1
Acordado para la longitud infinita ideal, pero no tan seguro de que después de truncamiento y de ventanas
de Scott Seidman
@ThePhoton Gracias por la corrección de Hamming / von Hann. No pude visualizar mi estantería correctamente desde casa.
Scott Seidman
@The Photon; Gracias por el libro de filtros digitales de Hamming . Lo miré y parecía escrito especialmente para estudiantes de primaria. Lo compré con una esperanza. :)
Kouichi C. Nakamura
0

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

Kouichi C. Nakamura
fuente