My application uses a MEMS microphone amplified by an AD8429 instrumentation amplifier with a bandpass filter to acquire signals. The phenomena I'm measuring occurs at a specific frequency and so I use I/Q demodulation on a 2-second time series sampled at ~16 kHz to extract that information.

I'd like to go one step further and improve SNR by using multiple microphones - six to eight, in fact. My question is how to best approach averaging the signals. One option would be to measure all microphones simultaneously with a simultaneous-sampling ADC like the AD7606 and average the signals after acquisition. The other option would be to connect the outputs of the instrumentation amplifiers to a unity-gain averaging amplifier arrangement (or something similar) and let the hardware do the averaging. The entire arrangement - microphones, amplifiers, and ADC - would be calibrated as if it were a single sensor.

I have two questions:

  1. Which is the preferable method for averaging, hardware or software?
  2. If it's hardware, what circuit should I investigate to perform this?

I'm leaning towards software averaging at the moment. I'm worried about constructing 8 truly identical inputs for the averaging amplifier (resistor choice being what it is). Any guidance is appreciated.

  • \$\begingroup\$ What's the application you speak of? \$\endgroup\$ – TonyM Nov 22 '19 at 19:26
  • \$\begingroup\$ @TonyM Photoacoustic spectroscopy. \$\endgroup\$ – Ben S. Nov 22 '19 at 19:27
  • \$\begingroup\$ Would beamforming to source help? ... with phase mixing using spacing and a DSP. Where/what is SNR? and need to be? invensense.com/wp-content/uploads/2015/02/… \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Nov 22 '19 at 20:34
  • \$\begingroup\$ @TonyStewartSunnyskyguyEE75, beamforming wouldn't help - consider that all the microphones will be placed equidistant from the point in space being measured, and that it's a fixed-frequency application. The signals should all be in phase for what I'm doing. \$\endgroup\$ – Ben S. Nov 22 '19 at 21:48
  • \$\begingroup\$ The purpose of beamforming is to focus the sound by attenuating noise. So pls reconsider and explain signal and noise if it is planar or point sources or omni-directional for both S,N \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Nov 22 '19 at 21:53

When you average AC signals, the answer is zero, unless EVERYTHING is phase-locked. This means every one of your microphones must be equidistant from the sound source, or errors will be introduced, dependent on the difference in distance and the frequency of the sound.

For 16kHz, the wavelength is 2.1cm, so this is a real problem.

For this reason, I would NOT average the raw mic data. I would process the data, demodulating as you mention, and then average the results.

So, I would lean toward the SSH solution, process each channel, and then average the resulting outputs.

Alternatively, you could demodulate then sample, and then use either technique.

  • \$\begingroup\$ On the other hand, carefully placed microphones can add together favouring a desired direction, and rejecting unfavourable directions. This is a fixed-frequency application. \$\endgroup\$ – glen_geek Nov 22 '19 at 20:39
  • \$\begingroup\$ As @glen_geek points out, this is a fixed-frequency application. Furthermore, it occurs at one point along the length of a cylindrical analysis cell, which is about 2 cm in diameter. The microphones would be in a radial array about this point along the circumference of the cell. \$\endgroup\$ – Ben S. Nov 22 '19 at 21:47
  • \$\begingroup\$ it's 18 degrees of phase noise for every 1mm of position error at 16kHz. I'm not in a position to say how important this is, but do point it out \$\endgroup\$ – Scott Seidman Nov 23 '19 at 0:51

In principle either will work, but what works "best" depends both on how you define "best" and what your noise sources are. Doing it in software will, of course, give you more flexibility, but it'll also require more hardware. Doing it in software will also let you average out more of the quantization noise and the noise from the amplifiers. Doing it in software, spacing out your microphones, and giving yourself enough processing power lets you choose to make the microphone directional, if you want.

Doing it in hardware should take less hardware, but you'll need to take care that you keep the noise down before things hit the ADC. I wouldn't worry too much about slightly mis-matched resistors -- even if you use 5% resistors, the extra noise contributed by some microphones getting a bit more gain than others should be minuscule (I get less than 1/5 of a percent extra noise contribution from a microphone pair with gains of 1.05 and 0.95, respectively; I suspect that's worst-case). If you use 1% resistors then things are just that much better.


Since you have enough room to place several microphones, it appears to me that the better way is to use a bigger microphone with higher sensitivity. Is it possible in your design?


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.