I'm looking for schematics of some simple opamp-based analog filter, which has a sharp band-pass functionality. I want it to control small robot with sounds of different pitch.

The matter is like this - to amuse my pupils I already made a robot which is controlled by digital filters. Perhaps this short demo explains better. However some of them asked if they can build similar thing.

My design is rather simple, but makes usage of a small MCU and about hundred lines of code. They complain they are not advanced enough in programming so I'm thinking of proposing "more analog" solution to them.

That is why I'm looking for substituting digital filter (and MCU at all) with analog schematics. I do know how to build first-order low-pass and high-pass with RC chain. And I can use several of them with opamps...

But filtering of 20 or 40 dB per decade seems to be not too sharp for my goal. The main problem is that controlling pitches should not be too far (e.g. I do not want to use 261 and 440 Hz) to ensure that sounds have roughly equal loudness. With simple plastic recorder tones of 784, 880 and 988 are ones of most easily produced and quite loud (indoors) - that is why I used them.

So now I'm looking for schematic consisting of preferably opamps, resistors and capacitors (preferably no coils) which will allow to extract very narrow band. Currently it gives about 0.3-0.4 of amplitude on, say, 784 or 988 Hz filter output when 880 Hz tone is played (and amplitude on 880 Hz filter is about 1.0).

Probably I just do not know proper keywords for googling. What such kind of filter could be called?

Thanks in advance for any suggestions!

  • \$\begingroup\$ What might work are LC resonators tuned to the frequencies you want. It is possible to replace the inductor by an "electronic inductor" consisting of a gyrator and a capacitor. The gyrator can probably be made with opamps (I never tried this). But this all becomes quite complicated ! Would it not be easier to measure the frequency directly or using a frequency-to-voltage circuit (like a PLL) to convert the frequency to a voltage and measure that ? \$\endgroup\$ May 25 '16 at 6:37
  • \$\begingroup\$ LC-resonator for such frequency may consist of 4.7 uF capacitor and 10 mHn inductance. I'm troubled with suspicion that such a coil will have significant ohmic resistance which will make its Q rather low. Though probably I should at least test such an approach. As about measuring frequency directly - I'm not sure how to do this, given that input is not pure sine wave and I want circuit to be full-analog, without MCU. Though I'm open to suggestions! \$\endgroup\$ May 25 '16 at 10:16
  • \$\begingroup\$ A 10mH inductor can have a low series resistance if you're willing to spend the $$$ For example in loudspeaker filters low series R coils are used in the mH range but these use thick wire and are therefore expensive. No MCU, but "proper" electronics, good for you ! I like that :-) Then again I suggest the PLL option, for example a HEF4046 PLL, make it lock between 600 Hz and 1 kHz. Then detect the locking on the tuning voltage with some comparators. I once made an infrared remote receiver this way to turn a volume knob. \$\endgroup\$ May 25 '16 at 11:45

This might sound silly, but it could work and result in a simple circuit with large margins for errors: demodulate the signal to a lower frequency.

By multiplying the signal with a ~750 tone, you will have a ~30Hz and ~250Hz signals, that can easily be separated with a first order filter.

You can easily achieve this by “chopping” the signal with the output of a 750Hz astable and a transistor or two, or even just with some diodes. You also need to low-pass it at ~400Hz to remove the images.

A simpler alternative, because it would reuse circuits and concepts, would be to have two oscillators/demodulator/filter chains. One at ~750Hz the other at ~950Hz. You just have to use stable capacitors for the oscillators, the rest can have very large tolerances.

This design can easily be moved to any desired frequency, just by retuning the oscillators.


The simple answer is that you are out of luck.

With "tones of 784, 880 and 988" Hz, a second-order filter simply won't work. While, in theory, you could make the Q high enough to get the selectivity you need, component sensitivity will eat you alive.

Instead, you'll need to take another approach. The early days of DTMF touch-tone detection used PLLs, with the LM567 being the classic chip.

For Googling purposes, try "touch tone detection" and "touch tone detection pll". The problem with the first string is that for quite some time now the digital approach (such as you originally used) has been the norm, and most recent articles assume a digital approach.

In some respects, while a PLL will work well, it does not address your students' objections that they don't know enough to properly use the recommended circuit. While understanding code can be a problem, PLL theory is not a beginner's field, either.

So another possible way to do it is to use a synchronous demodulator, which will give excellent results, but this will require enough digital skills to produce the clock frequencies you'll need, and this too may be too much for your students.

Frankly, I don't see an easy path for you. Your tones are very close to each other, and simple circuits are not going to work.


If you want to do things Analog you could consider a BiQuad Active filter that is a modification of the Classic State Variable Filter .Your Frequency is low so you do not need special Opamps so this will be cheap .You do not need too much Q so component tolerances will not be a problem .Your Cap values will not be to big because frequenvy is not too low.When these approaches were commonly taught in colleges opamps were expensive but it can be shown that the effect of component tolerances are not as bad as single opamp designs.


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.