top of page

FFT Excel - Arduino


Resulta que varios grupos de estudiantes, pasantes o ingenieros no están equipados con software y hardware adecuado para calcular los espectros de frecuencia de amplitud de una señal, y sobre todo de una señal real de voltaje (hablamos de 220 VAC). La implementación del programa puede ser de mucha ayuda usando Microsoft Excel. Utilizando el complemento > herramientas para el análisis de Microsoft Excel, un tranformador de voltaje para obtener la señal, y un Arduino.


Si no tienes el complemento de excel descárgalo de aquí:


ANÁLISIS DE FOURIER

El análisis de Fourier es una construcción matemática para reconstruir una onda en funciones senoidadles y cosenoidales, cualquier señal periódica puede ser representada como la suma de ondas sinosoidales elegidas correctamente (Fourier 1807).


La DFT (Discrete Fourier Transformer) es un miembro de 4, de una familia de la Transformada de Fourier.


La FFT (Fast Fourier Transformer) es un método para calcular los espectros de frecuencia, el cual es mucho más rápido que la DFT, esto se debe a que opera descomponiendo de un punto N del dominio del tiempo a N señales.


En este blog no explicaré elmarco teórico de la DFT, FFT, Dualidad, Correlación, entre otros, para todo ello te recomiendo el libro de Steven W. Smith: "The Scientist and Engineer's Guide To Digital Signal Processing".


FFT con Excel

Un FFT con Matlab no es la creación de una obra de arte, ya que si quisieras ver todo lo que pasa en el dominio de la fecuencia, Matlab no es tan explícito, por otra parte Microsoft Excel es una herramienta extraordinaria mediante el comando>Análisis de datos>Análisis de Fourier.


Circuito Eléctrico

Puedes implementar el circuito de adquisición de señal de corriente o voltaje como se muestra en los diagramas adjuntados despues de este párrafo, así, de esta manera no ponemos en riesgo el microcontrolador ATmega del Arduino, y estaremos trabajando con una señal real a 220 VAC.


Comunicación Excel-Arduino

Descarga PLX-DAQ, para poder iniciar el envío de datos mediante el puerto serial entre Arduino y Excel.




Introducción y Conceptos Básicos

Para procesar el algoritmo, debe ser en cantidades de muestra de 4,8,16,32,64,128,256,512,2048 ó 4096, esto es generalmente por dos razones, primero, que el almacenamiento de datos utiliza abordaje binario, y segundo, el algoritmo más eficiente de la DFT, es la FFT, y esta en Log(2)N.


A continuación se muestra el código para la toma de muestras que se introduce en el sketch de Arduino, se tomará hasta 512 muestras.


CÓDIGO ARDUINO AQUÍ:


/* DISCRETE FOURIER TRANSFORMER - FAST FOURIER TRANSFORMER BY: JEISON OSMAR ALTAMIRANO SORIA

visita la web para saber más de estos temasm, y deja tus comentarios: http://jasonhd.wix.com/jason

El siguiente códig envía datos de arduino mediante el puerto Serial hacia excel a traves de la aplización PLXDAQ de Parallax

instrucciones: - ubicar el puerto COM de conexión COM4 en mi caso - identificar la velocidad brp = 128000 en mi caso y explora las mediciones.

*/

int i=0 ; int row=0;

void setup() { Serial.begin(128000); Serial.println("CLEARDATA"); Serial.println("LABEL,Time,[i],V[i]");

}

void loop() { row++; int V[]={ analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, // hasta aaquí hay 256 muestras analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, }; for(i=0;i<=511;i++){ Serial.print("DATA,TIME,"); Serial.print(i);Serial.print(","); Serial.println(V[i]); if(row>1){ row=0; Serial.println("ROW,SET,2"); } } }

/*FIN DEL CÓDIGO ARDUINO*/

Entradas destacadas
Entradas recientes
Archivo
Buscar por tags
No hay tags aún.
Síguenos
  • YouTube Social  Icon
  • Facebook Basic Square
bottom of page