I'm pretty new to digital signal processing, my degree touched on it briefly, but it's interested me since. I am trying to determine the fundamental frequency of a guitar note played into a mbed LPC1768.

I am currently reading the analog signal in and storing it as an array of floats, the data is currently sampled at 1000Hz for 1 second.

By plotting the values against 1-1000 (milliseconds) I can create this graph. This is a ~1 second snippet of an E String being played. enter image description here

I was hoping someone could give me a few pointers on the best library to use to convert my 1D array into a form which would give me the frequencies involved in this converting this data from time-domain to frequency-domain.

I have seen some libraries but I can't figure out how to actually implement them due to a lack of examples.

  • 1
    $\begingroup$ The place to search for the code is Github, not here. You can easily find something like this: github.com/bejayoharen/guitartuner. It is also worth to note that for using FFT for guitar tuners is not a good idea since it is more natural to analyze the whole signal without windowing. You can read dsp.stackexchange.com/questions/1317/… for more details. $\endgroup$ Dec 5 '15 at 19:28
  • 2
    $\begingroup$ You question is also miss-titled. The fundamental frequency is a pitch frequency. FFTs are for spectral frequencies, which is not usually the same as musical pitch. $\endgroup$
    – hotpaw2
    Dec 5 '15 at 20:24
  • $\begingroup$ Fair enough on the title. And your link helped Thank you hotpaw2 and your suggestion has also helped me @NikolayShmyrev $\endgroup$ Dec 5 '15 at 20:57