Problema de la bandeja FFT con un ADC de 24 bits externo (las bandejas FFT cambian con el tiempo)

2

Actualmente estoy trabajando en un proyecto que incluye ADC MCP3919 y MCP3914 externos de 24 bits y MCU de 32 bits Tiva C series. Estoy tratando de calcular los valores armónicos de la señal de entrada.

Estoy utilizando CMSIS DSP Library en Code Composer Studio. Las funciones FFT están funcionando muy bien. No tengo ningún problema con la implementación de estas funciones. Los probé con una señal de pecado interna y la modulé. Se esperan resultados.

  • ADC_Output: 3255 Hz
  • FFT_Size: 64 puntos
  • Window_Size: 2 * FFT_Size

Tengo el problema de que cuando leo la señal del mundo real del generador de señales, mis bandejas FFT están cambiando con el tiempo en señales n * 50Hz. Cuando aumenta la señal de entrada a 50.9 Hz, no hay problema. Es lo mismo con 150Hz, 250Hz, 350Hz. Parece que hay un error de frecuencia fijo relacionado con 50Hz.

Por ejemplo: las funciones FFT funcionan muy bien con Señal de 50.9 Hz en lugar de 50Hz (1 * 0.9Hz) Señal de 152.7 Hz en lugar de 150 Hz (3 * 0.9Hz) Señal de 254.5 Hz en lugar de 250 Hz (5 * 0.9Hz)

Estoy compartiendo mis gráficos de FFT Bin

**Fig1:50.0Hzand250.0Hz**

                    **Fig2 : 50.9 Hz and 254.5Hz**

Como resultado, con el cambio de frecuencia, los contenedores FFT son verdaderos. Necesito tus experiencias con este problema.

Gracias de antemano

dredg

    
pregunta dredg

1 respuesta

3

Utilice una forma de ventana diferente .

Esto sucede cuando la señal de entrada no es exactamente periódica con la longitud de la señal de entrada, por ejemplo. porque el seno generado y el reloj ADC son de diferentes fuentes de reloj. Observando una señal que esperamos en la bandeja 2 (\ $ e ^ {2ix} \ $), y el resultado para la bandeja 1:

  • Si el período de muestreo contiene exactamente dos períodos de señal: \ $ \ int_0 ^ {2 \ pi} \! {e ^ {2ix} e ^ {- ix} \ dx} = 0 \ $

  • Si la señal es un poco más baja en frecuencia: \ $ \ int_0 ^ {2 \ pi} \! {e ^ {1.99ix} e ^ {- ix} \ dx} = -0.063 + 0.002i \ $, por lo que se muestra bastante energía en este contenedor.

Si utiliza una función de ventana que reduce el peso del inicio y final del período de muestreo, puede reducir este efecto.

    
respondido por el Simon Richter

Lea otras preguntas en las etiquetas