I'm trying to make a peak hold circuit for a very high frequency bandpass filter that needs to be able to operate at 16 Mhz, 40 Mhz, and 48 Mhz.

I've singled out the peak hold part of my overall circuit to try to get it to work. Here's the one I'm currently trying, which isn't working:

enter image description here Here(below) is the rest of the circuit with one of the other peak hold circuits I tried using (also doesn't work.) The circuit is supposed to take in a frequency and determine whether or not it is within ~500 kHz of 16 Mhz. I'm using a 2nd order Chebshev resonant frequency filter as a bandpass for the incomming signal, then I'd like to use a peak hold circuit to get the amplitude of it before pushing it to a comparator, which will determine if it is within the desired frequency. If there is a easier way to approach this that doesn't involve and FPGA, that will work as well.

enter image description here

I was mainly wondering if there are other peak hold circuits that will work at high frequencies (16, 40 and 48 MHz.) I've tried other circuits with BJTs and they haven't worked either. Do the OP amps I have selected have anything to do with these problems?


  • \$\begingroup\$ A standard trick to check if the opamp is the limiting factor is to use an ideal opamp. An ideal opamp can be made in a simulator by using a voltage-controlled-voltage-source. Give it a gain of 1000 and if possible limit the otuput voltage to the value of the supply, so -5 V and +5 V for your case. You can also just look at the output voltage of of the opamp if that has the voltage you expect. \$\endgroup\$ Nov 8, 2016 at 21:18
  • \$\begingroup\$ Did you run an AC analysis on each section to find out if there are peaks in the operating frequency range of the circuit? \$\endgroup\$
    – Voltage Spike
    Nov 8, 2016 at 21:27
  • \$\begingroup\$ Sounds like an X-Y problem. An alternative strategy would be to mix with a 16MHz LO (Local Oscillator) and low pass filter to 500kHz instead. It avoids most of the problems of precision measurements of 16MHz signals. \$\endgroup\$
    – user16324
    Nov 8, 2016 at 21:41
  • \$\begingroup\$ Use a true synchronized "sample/hold" (4 Schottky diodes paired and polarized off). Sample time less the 1-5 ns, with a generator delivering 2 opposed exact synchronized pulses to unlock (through a line 1:1 transfo). \$\endgroup\$
    – Antonio51
    Nov 9, 2021 at 8:42

4 Answers 4


Opamp + diode based peak detectors are useful for narrow band and low frequencies only. This is mainly due to the reverse recovery time of the diodes and the opamp bandwidth + slew rate considerations. Such peak detectors might be good at giving you a relative measure of signal strengths at various frequencies, but will not give you true absolute accurate dynamic range.

Furthermore,as you need a bleed resistor on your peak detect capacitor, this essentially limits the bandwidth you can detect accurately because you have a fixed RC time constant to work with. You need to look into other ways of detecting a signals magnitude, power etc, depending on the dynamic range, accuracy and frequency you need.

Your choice of diode is also not ideal, you need to use schottky types

Check out: AD8307, this is a broadband Log detector, it uses a completely different topology to achieve good dynamic range and bandwidth!

  • 1
    \$\begingroup\$ The 1N4148 has a reverse recovery time of 4 ns - how short do you suggest it be (see also my answer which actually used a BAS16W at circa 40 MHz and worked just fine). \$\endgroup\$
    – Andy aka
    Nov 8, 2016 at 21:45
  • \$\begingroup\$ I will definetely give this a shot. Unfortunately, LTSpice and Multisim both don't have the AD8307 model so I don't think I'll be able to simulate it, but I'll order it and see if it works. Thanks! \$\endgroup\$ Nov 8, 2016 at 22:21
  • \$\begingroup\$ Analog Devices provides samples. Moreover, you can order a proper shielded module from ebay for about £10. You will most certainly have to shield it and lay your board, if you do, carefully to get good results. \$\endgroup\$
    – MAM
    Nov 8, 2016 at 22:22

If you can live with a signal range limited to between 0V and 5V use a MAX999 comparator and a BAS16\$^1\$ diode with a zero ohm feedback after the cathode to the inverting input. Using a 1uF output capacitor is asking for trouble - something more like 100 pF is more suitable along with a bleed resistor of a few kohm.

You might also wish to improve things with a feedback diode for the "unused polarity" directly from the output to the inverting input. Doing this last thing also ensures the device doesn't enter saturation when the wrong signal polarity is being processed. You can also employ this "other" diode as a negative peak detector (but you will need feedback resistors and not zero ohms feedback resistors). Don't do what you have done with D3 and D1 - that won't work; you need to use this topology: -

enter image description here

In your circuit R2 would be zero ohms.

I've used this type of peak hold circuit on a variable amplitude data signal toggling at 80 Mbps and it works.

\$^1\$ Reverse recovery time for the BAS16 is 4 ns and about the same as a 1N4148.

  • \$\begingroup\$ I tried this out but it didn't quite seem to work. Any suggestions?: imgur.com/gallery/eoRBU \$\endgroup\$ Nov 8, 2016 at 22:14
  • \$\begingroup\$ explain what didnt work and why are you still using that relatively slow op amp. \$\endgroup\$
    – Andy aka
    Nov 8, 2016 at 22:51

You might be able to extend the range of a standard diode peak detector with the circuit below. It uses an op-amp to DC-compensate the diode detector's forward voltage. Note that the op-amp is dealing with near-DC voltages, not RF. Germanium diodes might work best, if you can match D1 & D2. The low-amplitude response is still compressed, but not as much as a bare diode peak detector.


simulate this circuit – Schematic created using CircuitLab Adil Malik's suggestion of using an AD8307 is a good one too - it gives output voltage proportional to dBm and has very wide dynamic range. Its input impedance is about 1k ohm.


1) You are really asking for trouble using an LT1812 at this frequency. With a 100 MHz GBW, you only have an open-loop gain of 6 at 16 MHz. Combined with the non-linear feedback network your circuit is likely in trouble.

2) As Adi Malik has pointed out, your output capacitor is far too large, and you need a bleed resistor on it..

3) You also need a load resistor on D1. As configured, you are attempting to look at the reverse characteristics of a 1N4148 under a load current of a few microamps, and this is not remotely a good idea.

4) Even ignoring the current issues with D1, you are almost certainly having issues with parasitic capacitance of D1 feeding a distorted signal to the - input. What this does to the loop behavior can't be good, particularly since any attempt to acquire a new peak will provide a slew rate limited transient as the output of the op amp comes out of saturation and tries to reach a signal level of some volts. This large transient will overwhelm the op amp input. Andy_aka's use of a limiting diode is appropriate, but I'm not at all certain how well the idea will work out with a feedback path consisting entirely of diodes.


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.