I'm trying to create a microphone array and take readings into a raspberry pi. I'm having an 8 bit ADC connected to the pi via I2C (SCL and SDA pins). I'm able to read samples (0-255) into my pi using this.

What I actually want to do is read input from 2 mics and find the cross correlation between the signals (to find direction of arrival of sound). Is an 8 bit ADC and I2C the right choice of tools for this? I would also want to do FFT on the signals.

If I'm using a 10-bit ADC, will I be able to plot an approximate waveform on my raspberry pi?

  • \$\begingroup\$ What are your frequency requirements? \$\endgroup\$
    – Tom L.
    Nov 25 '14 at 6:04
  • \$\begingroup\$ This rely on how fast you need sample with your ADC, and the SNR you need. Generally, I2C is a low speed interface. Though it has a similar name with I2S, but that doesn't mean they are changable, I2S is unrelated to I2C. \$\endgroup\$
    – diverger
    Nov 25 '14 at 6:13
  • \$\begingroup\$ Generally I2S is used in progfessional audio codecs, which supports different types of audio standards starting 441.Khz to 196Khz.....Based on sampling rate, and processing (real time or off line) interface selection depends.....If you want to do continously instead of burst of audio then I2S is mandatory.... \$\endgroup\$
    – user19579
    Nov 25 '14 at 8:45
  • \$\begingroup\$ I will be working on 300 - 3000 Hz range. I do not intent to record the sound. However, I would like to plot a frequency spectrum in real time. \$\endgroup\$ Nov 25 '14 at 9:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.