Show Posts
Pages: [1]
1  International / Software / Re: Problema con la libreria FFT on: November 14, 2012, 06:32:04 am
@leo72: avevo già guardato la FHT perchè nel mio caso sarebbe stata più utile e veloce. Purtroppo però l' unica cosa che cambia dalla FFT precedente è che riempe l' array solo con dati reali, e quindi il vettore fft_input[] è grande la metà. Oltre ciò rimane sempre il problema della traduzione dei bit in ASCII...

@astrobeed vittorio68 : io non mando un segnale continuo con il potenziometro perchè altrimenti mi darebbe sempre 0.  Muovo il potenziometro velocemente così da produrre un segnale a diversa ampiezza e variabile nel tempo.

Ciao
Kama90
2  International / Software / Re: Problema con la libreria FFT on: November 14, 2012, 06:00:45 am
Ora rispondo a tutte le domande
1) L' IDE che sto usando è 1.0.1 ma credo che la libreria del sito http://code.google.com/p/neuroelec/downloads/detail?name=ffft_Library.zip&can=2&q= sia solo per 1.0
2) il mio progetto è quello di costruire un analizzatore di campi magnetici che attraverso una sonda di hall mi determini l' intensità del campo e la frequenza delle onde magnetiche. Per la determinazione dell' intensità del campo non penso di avere problemi, ma per portare il segnale dal dominio del tempo a quello della frequenza è necessario utilizzare la FFT sulle differenti tensioni inviate dalla sonda di hall ad Arduino.

Grazie ancora per tutti questi consigli  smiley-lol
3  International / Software / Re: Problema con la libreria FFT on: November 13, 2012, 06:22:14 pm
Grazie a tutti per i consigli!!
 Ora sto riscrivendo lo sketch ma rileggendo le istruzioni sulla funzione fft_run() ( http://wiki.openmusiclabs.com/wiki/FFTFunctions ), non capisco bene cosa voglia dire che in ingresso sono necessari un blocco di dati già in SRAM.
Ecco la bozza del codice:
 
Code:
#define LOG_OUT 1
#define FFT_N 256

#include <FFT.h>


void setup() {
  Serial.begin(115200);
 
    }

void loop () {
  int sensorvoltage = analogRead(A0);
  float voltage = sensorvoltage * (5.0 / 1023.0);
  for( int i=0 ; i< 512 ; i += 2) {
 
    fft_input[i] = voltage;
    fft_input[i+1] = 0;
  }
    fft_window();
    fft_reorder();
    fft_run();
    fft_mag_log();
    Serial.write(255);
    Serial.write(fft_log_out, 128);
   
   
    }


Grazie ancora!  smiley-grin
4  International / Software / Re: Problema con la libreria FFT on: November 13, 2012, 07:03:31 am
Ecco il codice...

Code:
#define LOG_OUT 1 // use the log output function
#define FFT_N 256 // set to 256 point fft

#include <FFT.h> // include the library

void setup() {
  Serial.begin(115200); // use the serial port
  TIMSK0 = 0; // turn off timer0 for lower jitter
  ADCSRA = 0xe5; // set the adc to free running mode
  ADMUX = 0x40; // use adc0
  DIDR0 = 0x01; // turn off the digital input for adc0
}

void loop() {
  while(1) { // reduces jitter
    cli();  // UDRE interrupt slows this way down on arduino1.0
    for (int i = 0 ; i < 512 ; i += 2) { // save 256 samples
      while(!(ADCSRA & 0x10)); // wait for adc to be ready
      ADCSRA = 0xf5; // restart adc
      byte m = ADCL; // fetch adc data
      byte j = ADCH;
      int k = (j << 8) | m; // form into an int
      k -= 0x0200; // form into a signed int
      k <<= 6; // form into a 16b signed int
      fft_input[i] = k; // put real data into even bins
      fft_input[i+1] = 0; // set odd bins to 0
    }
    fft_window(); // window the data for better frequency response
    fft_reorder(); // reorder the data before doing the fft
    fft_run(); // process the data in the fft
    fft_mag_log(); // take the output of the fft
    sei();
    Serial.write(255); // send a start byte
    Serial.write(fft_log_out, 128); // send out the data
  }
}
5  International / Software / Problema con la libreria FFT on: November 12, 2012, 06:04:01 pm
Salve a tutti, sono un nuovo arrivato appassionato di programmazione ed elettronica.
Ultimamente mi sono interessato all' analisi in frequenza di un segnale . Dopo essermi informato ho tentato di utilizzare il mio Arduino Uno con la libreria FFT. Ho provato a utilizzare il programma di esempio che si trova nella libreria per fare alcune prove,collegando alla porta analogica A0 un potenziometro e variando manualmente la tensione. Il programma di esempio dovrebbe mostrare i valori determinati dalla FFT sul monitor seriale ma nel mio caso mostra strane lettere e parentesi che si ripetono ad intermittenza, perchè?
Grazie a tutti e scusate l' ignoranza!!!
Pages: [1]