¿Cómo seleccionar la resolución de frecuencia y el tamaño de la ventana en FFT?

9

Estoy haciendo un análisis de espectro de una señal que varía en el tiempo con un cambio de frecuencia de 200Hz a 10kHz. Estoy usando la FFT para analizar el componente de frecuencia en la señal. Mis preguntas son:

  1. ¿Cómo decidir sobre la resolución de frecuencia y el ancho de la ventana para la señal?
  2. ¿Qué tipo de función de ventana es adecuada para la señal de tiempo variable?
  3. ¿Cuál debería ser el tamaño óptimo para FFT?

La frecuencia de muestreo de la señal es 44.1kHz.

nitina
fuente
2
¿Cuál es el patrón de cambio de frecuencia? ¿La señal salta abruptamente entre diferentes frecuencias, o el cambio de frecuencia es continuo? Si la señal salta, ¿durante qué período de tiempo puede suponer que la señal permanecerá en la misma frecuencia? Si el cambio de frecuencia es continuo, ¿qué patrón tiene este cambio (lineal, gaussiano, otro)?
Vasiliy
No salta, continúa variando la señal de forma similar a la señal Chirp. La amplitud de cada frecuencia puede cambiar aleatoriamente.
nitin
44
Dices que estás tomando el FFT para analizar el componente de frecuencia. Este es un paso intermedio, y para responder su pregunta con precisión, necesitamos saber qué está tratando de lograr. ¿Qué piensa hacer con esa información? ¿Por qué necesitas saber el componente de frecuencia? ¿Con qué frecuencia necesita actualizar esta información? Sin contarnos estas cosas, eres el único que puede saber cuál debe ser la resolución. De hecho, si solo necesita saber la respuesta en una o dos frecuencias, FFT puede que ni siquiera sea la mejor opción.
Scott Seidman
@ScottSeidman, leíste mi mente.
Vasiliy
1
@ trav1s, todos enseñamos de manera diferente. Si un estudiante mío vino a mí con esta pregunta formulada de esta manera, trataría de darle el mismo mensaje para llevar a casa que estaba recibiendo con mi comentario detallado arriba: "Un ingeniero debe entender por qué lo está haciendo. algo antes de embarcarse en ello ". Hay miles de recursos donde se pueden encontrar las ecuaciones que describen la resolución de frecuencia en función de N, y se sintió como si el interlocutor las tuviera disponibles, ¡pero ese mensaje no está adjunto a ellas! Con suerte, el pinchazo hizo que el autor de la pregunta se diera cuenta de que ya tenía la respuesta.
Scott Seidman

Respuestas:

4

Como está trabajando con una frecuencia de muestreo fija, la longitud de su FFT (que requerirá que su ventana tenga el mismo ancho) aumentará su resolución de frecuencia. El beneficio de tener una resolución de frecuencia más fina es doble: la aparente es que obtienes una resolución de frecuencia más fina, de modo que puedas distinguir dos señales que tienen una frecuencia muy cercana. El segundo es que, con una resolución de frecuencia más alta, su piso de ruido FFT será más bajo. El ruido en su sistema tiene una potencia fija, no relacionada con el número de puntos de su FFT, y esa potencia se distribuye de manera uniforme (si estamos hablando de ruido blanco) a todos sus componentes de frecuencia. Por lo tanto, tener más componentes de frecuencia significa que la contribución de ruido individual de sus intervalos de frecuencia se reducirá, mientras que el ruido integrado total permanece igual, lo que resulta en un piso de menor ruido. Esto le permitirá distinguir un rango dinámico más alto.

Sin embargo, existen inconvenientes al usar una FFT más larga. El primero es que necesitará más potencia de procesamiento. El FFT es un algoritmo O (NlogN), donde N es el número de puntos. Si bien puede no ser tan dramático como el ingenuo DFT, el aumento de N comenzará a desangrar su procesador, especialmente si está trabajando en los confines de un sistema integrado. En segundo lugar, cuando aumenta N, está ganando resolución de frecuencia mientras pierde resolución de tiempo. Con una N más grande, debe tomar más muestras para llegar al resultado de su dominio de frecuencia, lo que significa que necesita tomar muestras durante un tiempo más prolongado. Podrá detectar un rango dinámico más alto y una resolución de frecuencia más fina, pero si está buscando espuelas, tendrá una idea menos clara sobre CUANDO esa espuela ocurrió exactamente.

El tipo de ventana que debe usar es un tema completamente diferente, que no estoy tan informado para darle una respuesta a cuál es mejor. Sin embargo, diferentes ventanas tienen diferentes características de salida, de las cuales la mayoría (si no todas) son reversibles después del procesamiento del resultado FFT. Algunas ventanas pueden hacer que sus componentes de frecuencia sangren a las bandejas laterales (si no me equivoco, la ventana de Hanning hace que sus componentes aparezcan en tres bandejas), otras pueden brindarle una mejor precisión de frecuencia al introducir algunos errores de ganancia en sus componentes. Esto depende completamente de la naturaleza del resultado que está tratando de lograr, por lo que haría una investigación (o algunas simulaciones) para llegar a cuál es el mejor para su aplicación específica.

deadude
fuente
Tenga en cuenta que si bien puede ser intuitivo ejecutar evaluaciones FFT en bloques secuenciales, también es posible ejecutarlas en bloques superpuestos de datos de entrada, es decir, iniciar un FFT de 1024 puntos cada 256 muestras, lo que proporciona una resolución de tiempo algo mejor, aunque, por supuesto, en El costo de aún más cómputo.
Chris Stratton
0

Lo primero es lo primero, la frecuencia de muestreo debe ser al menos dos veces la frecuencia máxima de la señal que es (44.1kHz> 2x10kHz). Luego, si la longitud de la ventana en el dominio del tiempo es T, la resolución de frecuencia con FFT es exactamente 1 / T. La resolución en el dominio de la frecuencia utilizando la FFT no tiene nada que ver con la frecuencia de muestreo en el dominio del tiempo. Pero como se señaló en la respuesta anterior, la ventana del dominio del tiempo no puede ser demasiado grande porque entonces perdería información sobre las señales espurias que aparecen solo momentáneamente. Por lo tanto, debe haber un compromiso entre la resolución de frecuencia y la detección de señales espurias. Por último, FFT no es el único algoritmo que toma una señal del dominio del tiempo al dominio de la frecuencia. Si está buscando alta resolución en el dominio de la frecuencia con un número limitado de muestras en el dominio del tiempo, puede usar técnicas de estimación espectral de alta resolución como MUSIC y ESPIRIT. Estos también se utilizan para la estimación de la dirección de llegada (DOA), que es bastante similar al problema de estimación espectral.

Yasir Ahmed
fuente
um no ... releer nyquist. Si desea reconstruir de manera confiable una frecuencia, necesitaría 5-10x. Del mismo modo, una ventana más amplia permite la reconstrucción de la frecuencia más baja de interés para ir a sub armónicos. Una señal espuria no fiable puede ver en una FFT de todos modos como un pulso Dirac puede tener un contenido de alta frecuencia Su deber es "aleatorio" sólo se mostrará un componente fiable / periódica con una amplitud significativa
JonRB
el rango de frecuencia de la señal de interés es de 200Hz a 10kHz ... por lo que la frecuencia de muestreo es al menos 4.41 veces la frecuencia de la señal ... si observamos el extremo inferior del espectro, la frecuencia de muestreo es 220.5 veces ... Es posible que necesitemos saber cómo se distribuye estadísticamente la frecuencia ... de todos modos, ¡creo que la frecuencia de muestreo no es un problema aquí!
Yasir Ahmed