Pensé que DSP se haría usando FFT de porciones de una señal, modifique las muestras que resultan de FFT (ya que representan el espectro de nuestra señal + ruido) y elimine cualquier señal no deseada y luego haga una FFT inversa para obtener una representación en el dominio del tiempo de la señal filtrada (el ruido se ha eliminado ahora) . Sin embargo, esto no se hace, sino que hacemos todo el trabajo en el dominio del tiempo utilizando funciones de ventana. ¿Por qué?

Si multiplicamos la función de ventana en el dominio de tiempo, entonces estamos convolucionando la respuesta de frecuencia de la función de ventana con el espectro de nuestra señal en el dominio de frecuencia, ¿cómo funciona eso? Quiero decir, si hiciéramos todo el trabajo en el dominio de la frecuencia al multiplicar nuestra señal con la respuesta de frecuencia del filtro, eso sería como filtrar, ¿verdad? Pero aquí hacemos todas las cosas en el dominio del tiempo en lugar de usar la ventana.

-> Veamos dónde Mi confusión proviene de. Para los filtros analógicos, por ejemplo, el filtro de paso bajo, tenemos esta respuesta de frecuencia similar a un pulso. Cuando filtramos una señal, estamos multiplicando efectivamente el espectro de nuestra señal con la respuesta de frecuencia similar a un pulso del filtro. Esto reducirá todas las frecuencias en nuestra señal por encima de un corte a 0. Así es como funciona un filtro de paso bajo en esencia. ¿Por qué no hacer lo mismo con los filtros digitales también?

Comentarios

Respuesta

Las ventanas reducen el espectro fuga.

aña Supongamos que comienza con $ \ sin (y) = \ cos (\ omega_0 t) $. El período es obviamente $ 2 \ pi / \ omega_0 $.

Pero si nadie te dijo que el período es $ 2 \ pi / \ omega $ y eliges ciegamente el rango $ [0, 1.8 \ pi / \ omega_0] $ y tomas FFT de esta forma de onda truncada, observará componentes de frecuencia en otras frecuencias que son todas falsas porque los saltos creados al copiar y pegar la forma de onda truncada para la periodicidad no están realmente presentes en la señal original; es un artefacto de un truncamiento desafortunado que no captura la transición entre períodos sin problemas . Idealmente solo hay un componente espectral en $ \ omega = \ omega_0 $.

El propósito de utilizar ventanas en el dominio del tiempo es reducir todos estos componentes espectrales ficticios.

Respuesta

Se utiliza el sistema de ventanas porque los cálculos de DFT operan en la extensión periódica infinita de la señal de entrada. Dado que muchas señales reales no son periódicas en absoluto, o se muestrean en un intervalo diferente de su período real, esto puede producir componentes de frecuencia falsos en el «borde» artificial entre intervalos repetidos, llamado fuga . Al multiplicar primero la señal en el dominio del tiempo por una función de ventana que llega a cero en ambos extremos, crea una transición suave entre intervalos repetidos en la extensión periódica infinita, mitigando así la creación de estos componentes de frecuencia artificial cuando luego tomamos la DFT.

Este artículo ofrece una visión más profunda de este fenómeno, así como una idea de los efectos de las diferentes funciones de ventanas.

Respuesta

Creo que estás confundiendo dos operaciones diferentes.

Las ventanas en el dominio del tiempo se explican con @ sam, así que no repetiré eso. Pero el uso de ventanas no se hace para realizar el filtrado. El filtrado multiplicando la FFT de una señal por la respuesta de frecuencia del filtro es completamente razonable en muchas situaciones, y de hecho está hecho. La alternativa para el filtrado es el tiempo -convolución de dominio (que es diferente al sistema de ventanas). Esto tiene sus propias ventajas, como operar en una señal en «tiempo real e «ya que se mide sin esperar a que todo se almacene y luego se transforme.

Entonces, a su pregunta» ¿Por qué no hacer lo mismo con los filtros digitales también? «, la respuesta es simplemente» lo hacemos , cuando conviene. «

Comentarios

  • También tengo la impresión de que la convolución y la ventana se mezclaron en la pregunta. ¡Qué bueno que lo hayas señalado!

Respuesta

Ha habido varias buenas respuestas a esta pregunta. Sin embargo, creo que un punto importante no ha quedado del todo claro. Una parte de la pregunta era por qué no simplemente multiplicamos la FFT de una señal con la respuesta de filtro deseada. Por ejemplo, si queremos filtrar nuestra señal de paso bajo, simplemente podríamos poner a cero todos los componentes de frecuencia más altos que la frecuencia de corte deseada. . Esta es de hecho una aplicación simple del conocido método de muestreo de frecuencia para diseñar filtros FIR. El problema es que podemos simplemente poner a cero los componentes de frecuencia discretos calculados por la FFT. No tenemos control sobre lo que sucede entre estas frecuencias discretas .Resulta que una versión tan simple de filtrado solo dará una atenuación de banda de supresión deficiente (independientemente de la longitud de la FFT). Si tiene acceso a matlab u octave, es muy instructivo probarlo usted mismo:

x=2*rand(1024,1)-1; X=fft(x); Y=X.*[ones(200,1);zeros(625,1);ones(199,1)]; % lowpass filter y=real(ifft(Y)); % real() just to remove numerical errors Y=fft(y,4096); plot(20*log10(abs(Y(1:2048)))),axis([0,2048,-30,50]) 

Respuesta

Si no utiliza una ventana no rectangular, los resultados de FFT ya estarán convolucionados con la transformación de una ventana rectangular predeterminada (un Sinc periódico) antes de realizar cualquier filtrado en el dominio de frecuencia. p.ej. obtendrá dos filtros aplicados, uno de los cuales probablemente no desee.

Al utilizar ventanas en el dominio del tiempo, antes de la FFT y el filtrado del dominio de frecuencia, reemplaza cualquier filtrado (las llamadas «fugas» ) realizado mediante ventanas rectangulares y, por lo tanto, no obtiene una convolución de filtro no deseada adicional.

La otra forma de hacer esto es usar métodos de guardar superposición-agregar o superponer en ventanas consecutivas, donde los efectos de uno la ventana rectangular se cancela por efectos similares de las ventanas adyacentes.

Respuesta

Ventana en el dominio del tiempo porque

  • podemos garantizar cero en los bordes de la ventana
  • las funciones de ventana tienen una expresión analítica agradable en el dominio espacial
  • muchas funciones de ventana tienen un espectro de forma extraña que sería difícil de aproximar
  • solo se necesita un número finito de muestras (se pueden hacer ventanas a medida que la señal fluye)

ej. de wikipedia

ingrese la descripción de la imagen aquí

El cortar yendo a cero de las funciones de ventana significa que en el dominio espectral tienen lóbulos laterales que van a cero muy lentamente. Si nos deshacemos de esta restricción podemos tener funciones que son compactas en los dominios espaciales y espectrales, como el filtro gaussiano. Esto significa que puede filtrar a través del dominio espectral, pero eso requiere que se conozca toda la señal.

Si ya tiene la señal completa, otra alternativa sería usar wavelets

Respuesta

Tenía la misma pregunta.

Una convolución es la suma integral / acumulativa de la señal en el dominio del tiempo multiplicada por la ventana. Esto no debe confundirse con la señal de dominio de tiempo «en ventana».

aña El final de este artículo me ayudó mucho.

Básicamente dice que las señales reales son finitas y que cortar abruptamente una señal real da como resultado muchas frecuencias / artefactos no deseados en el dominio de la frecuencia.

Para evitar / minimizar estos artefactos puede usar una función de ventana suave (por ejemplo, en forma de campana) de modo que su muestra comience y termine con un cero, en lugar de terminar abruptamente con un valor escalar distinto de cero.

Corte suave

La muestra con ventana de arriba tendrá menos artefactos en el dominio de frecuencia que la muestra sin procesar a continuación.

Corte abrupto

Responder

Hay dos categorías amplias asociadas con una FFT y son 1) una forma eficiente de implementar un filtro FIR y 2) Análisis espectral.

Para FIR Filtering, uno no se preocupa por las ventanas y no las usa, a menos que la ventana corresponda a un filtro, pero eso no es una característica común. g para hacer. Las fugas no son motivo de preocupación.

bosque El análisis espectral es donde uno usa ventanas. Aquí es donde miras un sensor conectado a una gran máquina industrial y tratas de averiguar si en el fondo de sus entrañas, un cojinete está fallando. Los rodamientos chillan cuando fallan, pero el ruido que pueden hacer suele ser mucho más bajo que los otros sonidos que hace la máquina. Aquí es donde entran en juego las fugas y el promedio. Dados los tonos fuertes, las fugas inundarán la señal débil que estamos buscando. Mejora la sensibilidad del Análisis espectral a señales débiles en presencia de señales fuertes. Hay un efecto similar cuando el ruido de fondo está inclinado. La información que buscamos está en el dominio de la frecuencia. Este es el mismo problema en RADAR, y SONAR, y Geofísica. Ver la señal débil es el objetivo.

Respuesta

Se requieren ventanas en el dominio del tiempo para evitar que una sola frecuencia que no esté exactamente en un intervalo de frecuencias se extienda en todo el espectro. Quizás esta página ayude: http://www.sm5bsz.com/slfft/slfft.htm Linrad (mi proyecto de 20 años) usa una FFT en ventana y luego aplica un filtro en el dominio de la frecuencia (haga cero lo que no queremos.) Aplique una ventana – no vaya abruptamente del peso 1 al peso 0 en los intervalos de frecuencia. Luego aplique una FFT al revés, pero ahora en un número mucho menor de puntos. No es necesario incluir todos los intervalos de frecuencia que sabemos que son cero !! Como resultado, obtenemos una función de tiempo con un tamaño mucho más pequeño, es decir, con una frecuencia de muestreo mucho menor. El procedimiento filtra y diezma en un solo paso.Esto es muy eficaz en caso de que se quiera filtrar varios canales al mismo tiempo. La página de inicio de linrad está aquí: http://www.sm5bsz.com/linuxdsp/linrad.htm

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *