Resultados extraños de la transformada de Fourier de señal desconocida, ¿qué estoy haciendo mal?

7

Ha pasado mucho tiempo desde que estudié ingeniería, perdona mis errores.

Obtuve datos de un acelerómetro digital. Se muestrea a 20 hz, luego se colapsa en épocas de 1 segundo. Los datos se filtran para eliminar el ruido. El sistema genera 0 en reposo, mucho más durante la actividad.

Estoy mirando la transformada de Fourier de la señal, 1024 muestras, muestreadas una vez por segundo. Estoy viendo esto:ingrese la descripción de la imagen aquí

Aquí hay una trama imaginaria real de los resultados imaginarios reales de la transformada de Fourier. ingrese la descripción de la imagen aquí

La señal parece ser una hélice en el dominio de la frecuencia. El sistema parece oscilar alrededor de algún ciclo límite dentro del dominio de la frecuencia.

es posible? ¿La transformación de Fourier es completamente incorrecta para la señal digital? ¿Debería usar solo el DFT para este tipo de análisis? ¿El tamaño de mi ventana es incorrecto? ¿Estoy viendo alias debido al tamaño incorrecto de la ventana ?

Han pasado algunos años desde mi última clase de ingeniería, y realmente agradecería cualquier ayuda sobre el tema. Tengo 3 libros sobre ingeniería, análisis de señales y transformaciones, pero se necesita tiempo para que este tipo de conocimiento vuelva a mí.

Alex Stone
fuente
No lo miré de cerca, pero mi reacción inmediata al ver las tramas es que tienes un alias.
No, la transformación de Fourier no está mal para las señales digitales. Sí, solo puede usar el DFT con señales discretas.
Endolith
¿Esa gráfica de aceleración en el tiempo se parece a lo que espera que se vea?
endolito
El gráfico del acelerómetro se ve bien. Lo he verificado dos veces y lo que estoy tramando es la tasa de cambio de aceleración por encima de un cierto promedio móvil. Funciona como se esperaba. La aceleración está presente por un breve momento cuando se toca el sensor, luego desaparece.
Alex Stone

Respuestas:

7

Mi suposición: nada que ver aquí. Superar.

Usted menciona que "la señal parece ser una hélice en [el] dominio de frecuencia". Afirmo que lo que realmente es esta hélice es un exponencial complejo. Y no hay nada de malo en eso, porque los exponenciales complejos son lo que obtienes cuando retrasas una señal:f(xa)f^(ξ)e2πiaξ. El patrón de hélice simplemente refleja que la mayor parte de la potencia en la señal que está adquiriendo no se encuentra enT=0. (¡Y no debería estar allí de todos modos!)

Eyeballing, el período de oscilación en su diagrama de frecuencia parece ser de ~ 28 muestras. A una frecuencia de muestreo de 20 hz, si lo que digo es cierto, entonces la mayor parte de la energía en su señal de dominio de tiempo debería centrarse aproximadamentet2820=1.4segundos. ¿Estaba cerca?

El verdadero problema aquí es probable que sean tus tramas. Parece que está trazando salidas DFT reales / imag sin procesar. No hagas eso. En cambio, calcule la magnitud / fase a partir de valores reales / imag, y trace eso.

rtollert
fuente
1
Gracias ! He limpiado la hélice, y oscila a 25 veces por segundo . Si comienzo a muestrear la señal a 25 hz, ¿centraría la mayor parte de mi señal en 1 segundo?
Alex Stone
He escuchado antes que las tramas se ven raras. Cuando hago FT simple con una onda sinusoidal o una suma de ondas sinusoidales, obtengo picos en la frecuencia fundamental, como se esperaba. Cuando trato de hacer lo mismo con los datos que obtuve, obtengo resultados extraños como este. Echaré un vistazo más de cerca a la magnitud de los contenedores.
Alex Stone
1
Esa trama FFT es bastante normal. Cuando tiene datos en el dominio del tiempo que tienen un pico grande en un instante, y está cerca de cero en otro lugar, entonces realice la FFT en esos datos, entonces se supone que debe obtener ese patrón de hélice (exponencial complejo) en el gráfico de frecuencia.
David Cary
3

Posibles iniciadores del pensamiento:

Asegúrese de que la entrada al ADC esté filtrada de paso bajo a una tasa de muestreo muy inferior a la mitad para evitar alias. A una muestra de 20 Hz, necesita un filtro de paso bajo de corte infinito de "puerta de granero" a 10 Hz o algo real a un nivel algo más bajo. La hoja 21 tiene una sensación de alias de componentes, pero tal vez no.

Las muestras de 1 segundo con una frecuencia de corte inferior a 10 Hz solo le dan algunas muestras. Puede que me esté perdiendo totalmente lo que realmente estás haciendo.

Las ventanas pueden ser necesarias para manejar ciclos de forma de onda distintos a los incluidos en la ventana muestreada. Para algunas muestras y componentes de frecuencia que tienen partes arbitrarias de un ciclo incluidas en un pase FFT, puede generar componentes fuertes e inexistentes.

FFT debe tratar con el ruido de banda de paso. Su "filtro de ruido" también puede ser un filtro de datos. Necesita un filtro de velocidad Nyquist como el anterior, pero cualquier cosa en la banda de paso restante es una señal potencialmente legítima.

Russell McMahon
fuente
2
Dijo "acelerómetro digital" que implica un acelerómetro con ADC incorporado y muestreo con reloj automático (por ejemplo, ADXL345). Tal acelerómetro presumiblemente tiene filtros anti-aliasing incorporados.
markrages
Sí, es de esperar que el acelerómetro tenga filtros anti-aliasing, pero el OP necesita filtrar nuevamente, antes de hacer "colapsado en épocas de 1 segundo", para obtener una señal que tenga sentido.
David Cary
2

Lo que está viendo es el hecho de que su ventana de "época" de 1 segundo no está sincronizada con sus datos. La fase de los resultados de FFT es relativa al borde de la ventana y, por lo tanto, rotará a medida que el borde de la ventana avance a diferentes relaciones de fase con su señal.

Si realmente le importa la fase o la fase relativa, bloquee el desplazamiento de la ventana al período de su señal. Si no le importa la fase, simplemente calcule la magnitud del resultado complejo y úselo.

hotpaw2
fuente
Esto tiene sentido. la ventana actual se desliza con los datos. ¿Tiene alguna sugerencia sobre si debería aumentar o disminuir mi ventana?
Alex Stone