/FFT_Arduino

Libreria FFT para arduinos basados en (Arduino Uno)ATMEGA328 (Arduino Leonardo)ATMEGA32UA

Primary LanguageAssembly

Libreria FFT para arduino

Libreria FFT para placas basadas en (Arduino Uno)ATMEGA328 (Arduino Leonardo)ATMEGA32UA. Codigo basado en http://wiki.openmusiclabs.com/wiki/ArduinoFFT y https://github.com/adafruit/Adafruit_CircuitPlayground/

Codigo

Esta libreria define las siguientes funciones:

     /**
     * Computa las muestras a valores complejos.
     * @param const uint16_t * samples, entrada de 64 muestras.
     * @param complex_t* out, salida de 64 numeros complejos.
     **/
     void fft_input(const int16_t *samples, complex_t *out);

     /**
     * Procesa los valores complejos.
     * @param complex_t *input, entrada de la funcion, usualmente es la salida de la funcion fft_input.
     **/
     void fft_execute(complex_t *input);

     /**
     * Transforma los valores complejos a espectro.
     * @param complex_t *input, entrada de la funcion, usualmente es la salida de la funcion fft_execute.
     * @param uint16_t *spectrum, salida de la funcion.
     **/
     void fft_output(complex_t *intput, uint16_t *spectrum);

     /**
     * Captura n_samples del microfono y lo almacena en el parametro out.
     * @param int16_t *out, vector de tamanio n_samples donde se almacena la salida.
     * @param uint8_t n_samples, cantidad de muestras a tomar.
     **/
     void capture(int16_t *out, uint8_t n_samples);

     /**
     * Rutina que llama todas las funciones anteriores y retorna el spectro con 32 entradas
     * @param uint16_t *spectrum, salida del proceso de fft con muestras 32
     */
     void fft(uint16_t *spectrum);

Ademas define los siguientes tipos de datos:

  // Estructura de datos para representar numeros complejos
  typedef struct {
    int16_t r;
    int16_t i;
  } complex_t;



Creative Commons License
FFT_Arduino by Alex Vargas Benamburg
is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Based on a work at http://wiki.openmusiclabs.com/wiki/ArduinoFFT.