Lettura segnale analogico (analizzatore di spettro)

Ciao a tutti, spero possiate aiutarmi o darmi qualche dritta, vengo subito al mio progetto e vi spiego come sto impostando il tutto.

In pratica dovrei leggere un segnale analogico, formato da diverse armoniche sovrapposte in un range di frequenza che va da 20hz a 80hz, campionando un hz per volta, quindi poi vorrei generare una matrice contenente frequenza e ampiezza:

es:
20hz 4v
21hz 3.5v
22hz 6v
...
80hz 1.8v

una volta generata questa matrice la invierò su pc dove in visual c++ disegnerò il grafico corrispondente facendo la sommatoria delle sinusoidi. Diciamo che a me interessa anche con una approssimazione disegnare il grafico del segnale, che tra l'altro farò sia nel dominio del tempo, sia della frequenza. so che qui il teorema di fourier potrebbe venirmi in contro per generare quella matrice, ma è qui che appunto chiedo il vostro aiuto! :wink:

Grazie anticipatamente a tutti per la considerazione.
ps: accetto volentieri anche strade differenti, non devo per forza intraprendere la mia, a me interessa solo il risultato!

Dimenticavo, al posto della matrice andrebbe bene anche solo un array in effetti, sapendo la prima posizione corrisponde a 20hz e cosi via

Devi usare la FFT (Fast Fourier Transfom) per passare del dominio del tempo a quello della frequenza:

http://wiki.openmusiclabs.com/wiki/ArduinoFFT

Ancora meglio la FHT, sulle piccole mcu a 8 bit è decisamente più efficiente e richiede meno risorse.

Ma visto che dovrai lavorare collegato al PC, potresti farla fare al PC la trasformata!

Per dirla tutta potrebbe acquisire il segnale con la scheda audio, così ha 16 bit di risoluzione, e fare tutto direttamente sul pc.

Si ma infatti io voglio solo capire come effettuare l'acquisizione, la parte di elaborazione verrà fatta tutta completamente in visual C, l'arduino lo utilizzo prettamente come datalogger, riuscite a farmi qualche esempio di codice sia per l'acquisizione e sia per poter calcolare le coordinate poi nel grafico in c? comunque voglio fare tutto da arduino perché poi ci sono altri dati che leggo che mi interessano

ho provato ad importare le librerie che mi avete suggerito (provato con tutte le versioni), ma nonostante l'ide le veda sembra che non mi riconosca le funzioni che si trovano al suo interno, per fare un prova ho caricato un codice di esempio contenuto nella libreria, ma nel momento in cui richiama appunto quelle funzioni mi da l'errore:

Arduino:1.6.11 (Windows 10), Scheda:"Arduino/Genuino Uno"

_window_func' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

_window_func' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

_reorder_table' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

_reorder_table' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

_cas_constants' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

_cas_constants' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

fht_log_out' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

fht_log_out' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

_log_table' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

_log_table' referenced in section .text.startup' of C:\Users\Daniele\AppData\Local\Temp\ccHMB4Rt.ltrans0.ltrans.o: defined in discarded section `.text' of sketch\sketch_oct01b.ino.cpp.o (symbol from plugin)

collect2.exe: error: ld returned 1 exit status

exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Uno.

Attualmente per risolvere il problema è stato necessario installare un versione più vecchia dell'ide di arduino, non le ho provate tutta ma sulla 1.6.5 pare la libreria giri senza problemi! Credo che il problema sia dipeso dal compilatore! Ma non so è il codice che va adeguato o se il compilatore abbia qualche direttiva da rivedere.