I'm an entry- to mid-level electronics hobbyist and I've been tinkering around with a simple active noise cancellation circuit (audio frequencies) based in principle on the schematic here: http://headwize.com/?page_id=684

I've obtained fairly decent performance prototyping with some spare op-amps. The biggest problem (for me) is that the circuit depends on a potentiometer to manually adjust the volume of the inverted noise signal before it is summed back into the noise signal. In real life, this requires constant manual adjustment to zero out the noise as the noise level volume fluctuates over time.

EDIT: Although the original design allows for the anti-phase noise signal to be summed with a desired audio signal (ie, music), I am using the headphones only to attempt to create artificial silence.

So I want to improve the design to auto-control the inverted signal gain so as to always sum as close to zero as possible. Does anyone have good ideas on how to accomplish this (without using a microcontroller)? I was thinking of some type of comparator circuit or maybe I should move directly to a voltage-controlled amplifier for the the inverting op-amp? I really don't have any familiarity with these sort of circuits.

If anyone has a relevant circuit schematic or op amp model recommendations, it would be much appreciated.

  • \$\begingroup\$ I suspect that this type of circuit relies on your brain/ear to recognize the optimal neutralization of external sounds and instruct your hand to twiddle the manual pot to obtain this. The bigger problem is not some kind of auto-gain circuit but adding a "sniffer" microphone in each earpiece to detect when an optimum "cancellation" has occured and then automatically freeze the position of the pot. \$\endgroup\$
    – Andy aka
    Commented Sep 22, 2013 at 18:10
  • \$\begingroup\$ The NE5322 designators on the schematic are almost certainly a misprint: all the op-amps should be NE5532. \$\endgroup\$
    – Kaz
    Commented Sep 22, 2013 at 19:13
  • \$\begingroup\$ The schematic sends a stereo signal through dual op-amp stages in parallel, using one amp for left, one amp for right. This is silly thing to do. The crosstalk is not such a concern since as little as 20 dB of channel separation is good enough for audio. It's just, you can separate the circuitry better if the channels use their own IC's instead of sharing them! If you route the PCB traces for the stages of one channel, you can almost just cut and paste to do the other one. \$\endgroup\$
    – Kaz
    Commented Sep 22, 2013 at 19:16
  • \$\begingroup\$ What's the big deal about not using a processor. That is the easiest solution, and how it's done nowadays. Sticking to all-analog for some silly religious reason is pointless. \$\endgroup\$ Commented Sep 22, 2013 at 22:06

3 Answers 3


One analog approach is to add an Automatic Gain Control stage to the inverted signal path. The responsiveness of the AGC can be tuned to provide just enough tracking for the envisaged purpose.

If the AGC is placed early enough in the signal path, it will not need to handle much power, making design simpler.

This is a common enough requirement in analog-based noise cancellation designs that several manufacturers have published relevant app-notes about it. For instance, this page on Mouser might be a useful place to start reading up on it.

An AGC can be constructed using op-amps, Variable Gain Amplifiers (VGAs), or dedicated audio-use AGC ICs. The specific approach would be determined by preferences such as whether surface mount ICs are an option, and level of distortion that is acceptable.


I think there is a significant problem with an automated solution. At the point where external sound enters your ear, your current circuit is trying to apply an antiphase signal (via the headphones) and the only thing that knows when there is a good cancellation is YOU (your brain).

So your brain is instructing your hand to tweak the antiphase gain this way or that way until your brain/ear is satisfied that there can be no further improvement.

How will you automate this? You could add a small microphone in one earpiece and use an RMS measurement of net amplitude to determine when the "new" microphone is registering minimal sound level. It could be done but you might want to do it for both earpieces. You will need a small MCU to control the inverted gain via a multiplying DAC (or suchlike).

When you come to play a bit of "wanted" music you'll need to "freeze" the control system that does background noise cancellation.

It could turn out to be a very good product and I might suggest, that given the closeness of the earpiece speakers are to your ear, if, during the minimization of background sound they are alternated between speaker and microphone you might get it to work i.e. use each speaker as a microphone, detect the effective signal close to your ear from the external sources and apply an antiphase correction.

There should even be a way in which your circuit can monitor the loudness at your ear whilst adjusting the antiphase signal. Very interesting but would need some hard development time.

  • \$\begingroup\$ You keep talking about earpieces, but the OP said nothing about this being for headphones. Noise cancellation is used in a lot of places, not juste headphones. \$\endgroup\$ Commented Sep 22, 2013 at 19:47
  • \$\begingroup\$ @OlinLathrop the link the OP supplied takes you to "Build These Noise-Canceling Headphones" \$\endgroup\$
    – Andy aka
    Commented Sep 22, 2013 at 20:22
  • \$\begingroup\$ @Andy aka, since I'm using these to create silence only (just updated question), the idea of being able to rapidly switch the headphone speaker between Tx and Rx modes is very interesting and definitely would solve a number of issues. If this was done in excess of 30 kHz, it's even possible the human ear couldn't perceive the switching (although I don't have any hard evidence to back that up). Would I need to implement this with MCU, though, in order to sample-hold-compare or are there reasonably simple analog ways to get the Tx voltage equal to the "sampled" Rx voltage? \$\endgroup\$ Commented Sep 22, 2013 at 21:45
  • \$\begingroup\$ I didn't follow the link, and I shouldn't have to for basic information. Important facts like that should be in the question directly. Links should only be for background material, like datasheets, for example. \$\endgroup\$ Commented Sep 22, 2013 at 22:05
  • \$\begingroup\$ switching at 30k sounds appealing but it won't work because the speaker cone will still be in motion from the "driven" segment of time. There is a longshot method that involves driving the speaker and still being able to recover local audio microphonically.but it's a little tricky. But good ideas ain't those that are obvious so I'm going to sleep on it but suffice to say it's basically how a two wire regular telephone circuit works by avoiding pumping the amplified Mic signal into the earpiece. It's called sideline cancellation. \$\endgroup\$
    – Andy aka
    Commented Sep 22, 2013 at 22:06

Multiplying by a live value in analog electronics is tricky. Long ago before you could dedicate a computer to this sort of thing, I did a dynamic volume control via a resistor divider made from two LDRs (light-dependent resistors, CdS cells) and a LED to drive each one. That had the nice side effect of completely isolating the control circuit from where the volume control was placed. Speed is relatively slow, but fast enough for human-scale volume control.

However, this is really better done with a digital processor nowadays. You say you don't want to use a microcontroller, but gave no justification for that, so we can assume there is none. Doing this all digitally will be much easier and allow for much better tweaking on the fly and for debugging. You can even account for the propagation delay from noise pickup to cancellation output, which might be useful depending on the mechanics of your setup.

There are plenty of small and cheap DSPs available that can do this sort of manipulation audio signals. The Microchip dsPIC line, for example, is very accessible.

  • \$\begingroup\$ would the solution be to sample the signal into MCU and then play it back via DAC with phase inverted? I've build the design in op's question some time ago and was thinking about a digital solution. \$\endgroup\$
    – miceuz
    Commented Sep 22, 2013 at 20:40
  • \$\begingroup\$ @OlinLathrop, how would using the MCU allow one to account for propagation delay? Are you suggesting that instead of running in "realtime" mode, the MCU would be sampling multiple points within a repeated, periodic window and then applying minimization weights in a predictive fashion (injecting anti-phase signal into now's window based on sampling in prior window)? \$\endgroup\$ Commented Sep 22, 2013 at 21:25
  • \$\begingroup\$ @user: In the case of something like headphones (you never mentioned headphones, but Andy seems to think that's what you are doing), the distance between the noise-measuring mic and the sound output is so small that you can ignore the sound propagation delay from one to the other. In some other noise cancelling systems, this distance can be enough that taking the delay into account gives better results. This is easy to do with a bunch of samples in a digital rolling buffer. However, for headphones you don't need this. \$\endgroup\$ Commented Sep 22, 2013 at 22:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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