I have four op-amps that are each amplifying signals from four different microphones. All of the microphones are recording a single source, but the location of the source moves, so the outputs from each amp are different magnitudes, based on the distance to the source. I want to create an AGC circuit or feedback network to automatically adjust the gains of each amplifier so that all the outputs are of equal magnitude. For example, the gain of the closest mic would be lowered, and the gain of the furthest mic would be raised, thus bringing the outputs to an equivalent level. Are there any existing designs that implement this?

  • \$\begingroup\$ There are designs for discreet AGC's but I find using a Maxim MAX9814 - Microphone Amplifier with AGC - a better solution. \$\endgroup\$ – Steve G Jun 20 '16 at 15:07
  • \$\begingroup\$ What is the acoustic signal you are wishing to control? How fast do you need the AGC to operate? How unequal could the outputs be whilst being acceptably near-enough (hint: equal magnitude is not feasible)? \$\endgroup\$ – Andy aka Jun 20 '16 at 15:14
  • \$\begingroup\$ It's my first real project as hardware engineer, so i vote for discrete implementation, maximum mcu-based implementation, so you will be able to experiment with different control algorithms, parameters, etc. \$\endgroup\$ – Gregory Kornblum Jun 20 '16 at 15:23
  • \$\begingroup\$ @Andyaka The signal is actually an impact, and I'm using the delay of arrival from each microphone to determine the impact location. So the speed of the AGC is pretty important, probably under a millisecond (or even shorter) \$\endgroup\$ – crocboy Jun 20 '16 at 15:28
  • 2
    \$\begingroup\$ Why do you need "equal amplitude"? \$\endgroup\$ – Andy aka Jun 20 '16 at 15:30

You cannot perform this function in real time with an analog AGC, although you can get close with a fast enough processor. The problem with traditional AGC is that it relies on previous information to set the gain, and if I understand your problem you are trying to measure impacts that may occur in different positions relative to the four mikes. The analog inputs previous to the impacts are not indicators of the impact amplitude and therefore can't be used to determine gain.

You will have to "look into the future" by sampling data and then analyzing a set of samples that contains your impact with some surrounding samples. Then you can then normalize the response and compare the timing on the processors. Do this repetitively with overlapping sample sets and you can get by with only a small lag in your output from the impact. DSP chips are ideal for this type of work.


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.