Actualmente estoy trabajando en un proyecto que incluye ADC MCP3919 y MCP3914 externos de 24 bits y MCU de 32 bits de la serie Tiva C. Estoy tratando de calcular los valores armónicos de la señal de entrada.
Estoy usando la biblioteca CMSIS DSP en Code Composer Studio. Las funciones FFT funcionan muy bien. No tengo ningún problema con la implementación de estas funciones. Los probé con una señal de pecado generada internamente y la modulé. Se esperan resultados.
Tengo el problema de que cuando leo la señal del mundo real del generador de señal, mis contenedores FFT cambian con el tiempo en señales n*50Hz. Cuando aumento 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 una señal de 50,9 Hz en lugar de 50 Hz (1*0,9 Hz) Señal de 152,7 Hz en lugar de 150 Hz (3*0,9 Hz) Señal de 254,5 Hz en lugar de 250 Hz (5*0,9 Hz)
Estoy compartiendo mis gráficos FFT Bin
**Fig1 : 50.0 Hz and 250.0Hz**
**Fig2 : 50.9 Hz and 254.5Hz**
Como resultado, con el cambio de frecuencia, los contenedores FFT son verdaderos. Necesito vuestras experiencias con este tema.
gracias de antemano
dragado
Use 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 del ADC provienen de diferentes fuentes de reloj. Mirando una señal que esperamos en el contenedor 2 ( ), y el resultado para el contenedor 1:
Si el período de muestreo contiene exactamente dos períodos de señal:
Si la señal es un poco más baja en frecuencia: , por lo que se muestra bastante energía en este contenedor.
Si utiliza una función de ventana que reduce el peso del principio y el final del período de muestreo, puede reducir este efecto.
Pedro Smith
dragado