¿Por qué utilizamos ventana en el dominio del tiempo en lugar de FFT modificar el espectro y no FFT inversa

16

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

Si multiplicamos la función de la ventana en el dominio del tiempo de lo que estamos involucrando la respuesta de frecuencia de la función de la ventana con el espectro de nuestra señal en el dominio de la frecuencia, ¿cómo funciona eso? Quiero decir, si simplemente hiciéramos todo el trabajo en el dominio de la frecuencia multiplicando 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 de dónde viene mi confusión. Para filtros analógicos, por ejemplo, filtro de paso bajo, tenemos este pulso como respuesta de frecuencia. Cuando filtramos una señal, multiplicamos efectivamente el espectro de nuestra señal con el pulso como respuesta de frecuencia del filtro. Esto reducirá todas las frecuencias en nuestra señal por encima de un límite 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?

quantum231
fuente

Respuestas:

7

Las ventanas reducen las fugas espectrales.

Digamos que comienzas con un . El período es obviamente 2 π / ω 0 . pecado(y)=cos(ω0 0t)2π/ /ω0 0

Pero si nadie le dijo que el período es y elige ciegamente el rango [ 0 , 1.8 π / ω 0 ]2π/ /ω[0 0,1,8π/ /ω0 0] y toma FFT de esta forma de onda truncada, observará componentes de frecuencia en otras frecuencias que son 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 . ω=ω0 0

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

Joe
fuente
12

Las ventanas se usan porque los cálculos 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 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, llamados fugas . Al multiplicar primero la señal del dominio del tiempo por una función de ventana que llega a cero en ambos extremos, se 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 el 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.

Sam Maloney
fuente
11

Creo que estás confundiendo dos operaciones diferentes.

Las ventanas en el dominio del tiempo se explican por @sam, por lo que no repetiré eso. Pero la ventana no se realiza 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 se hace. La alternativa para el filtrado es la convolución en el dominio del tiempo (que es diferente a la ventana). Esto tiene sus propias ventajas, como operar con una señal en 'tiempo real' 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 "hacemos, cuando le conviene".

lxop
fuente
También tengo la impresión de que la convolución y las ventanas se mezclaron en la pregunta. ¡Bien, lo has señalado!
Deve
11

Ha habido varias buenas respuestas a esta pregunta. Sin embargo, creo que un punto importante no se ha aclarado por completo. Una parte de la pregunta era por qué no solo multiplicamos la FFT de una señal con la respuesta de filtro deseada. Por ejemplo, si queremos filtrar nuestra señal en paso bajo, podríamos simplemente poner a cero todos los componentes de frecuencia por encima de la frecuencia de corte deseada. De hecho, esta es una aplicación simple del conocido método de muestreo de frecuencia para diseñar filtros FIR. El problema es que podemos 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 proporcionará una atenuación de banda de detención pobre (independientemente de la longitud de FFT). Si tiene acceso a matlab u octava, '

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])
Matt L.
fuente
6

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

Al hacer ventanas en el dominio del tiempo, antes de la FFT y el filtrado del dominio de frecuencia, usted reemplaza cualquier filtrado (llamado "fuga") realizado por ventanas rectangulares, y así no obtiene una convolución de filtro adicional no deseada.

La otra forma de hacer esto es usar métodos de superposición de adición o guardado de superposición en ventanas consecutivas, donde los efectos de una ventana rectangular se cancelan por efectos similares de las ventanas adyacentes.

hotpaw2
fuente
5

Ventana en el dominio del tiempo porque

  • podemos garantizar cero en los bordes de la ventana
  • Las funciones de ventana tienen una buena expresión analítica 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 (la ventana se puede hacer a medida que la señal fluye)

por ejemplo de wikipedia

ingrese la descripción de la imagen aquí

El corte duro que va a cero de las funciones de ventanas 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

Geometrikal
fuente
2

Tenía la misma pregunta.

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

El final de esto artículo me ayudó mucho.

Básicamente dice que las señales reales son finitas y que el corte abrupto de una señal real produce 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 algún valor escalar distinto de cero.

Corte suave

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

Corto abrupto

Chandran Goodchild
fuente
1

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 el filtrado FIR, uno no se preocupa por las ventanas y no las usa, a menos que la ventana corresponda a un filtro, pero eso no es algo común. La fuga no es una preocupación.

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 descubrir si en el fondo de tus intestinos falla un rodamiento. Los rodamientos chirrían cuando fallan, pero el ruido que pueden producir suele ser mucho más bajo que los otros sonidos que hace la máquina. Aquí es donde entran las fugas y el promedio. Dados los tonos fuertes, las fugas desvanecerán la señal débil que estamos buscando en algunos contenedores. 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 es inclinado. La información que buscamos está en el dominio de la frecuencia. Este es el mismo problema en RADAR, SONAR y Geofísica. Ver la señal débil es el objetivo.


fuente
1

Se requiere una ventana en el dominio del tiempo para evitar que una sola frecuencia que no está exactamente en un intervalo de frecuencia se extienda por todo el espectro. Tal vez esta página ayude: http://www.sm5bsz.com/slfft/slfft.htm Linrad (mi proyecto de 20 años) usa una FFT en ventana, luego aplica un filtro en el dominio de frecuencia (haga cero lo que no queremos). Aplique una ventana - no pase abruptamente del peso 1 al peso 0 en los contenedores de frecuencia. Luego aplique una FFT hacia atrá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 más baja. El procedimiento realiza el filtrado y la destrucción en un solo paso. Esto es muy eficiente en caso de que uno quiera filtrar varios canales al mismo tiempo. La página de inicio de linrad está aquí:http://www.sm5bsz.com/linuxdsp/linrad.htm

sm5bsz
fuente