pulse burst averaging circuit

Discussion in 'The Projects Forum' started by cwaitang, May 19, 2009.

  1. cwaitang

    Thread Starter New Member

    May 19, 2009
    I am looking for circuit for detecting avaerage of pulse bursts as small as 50mV, not the rms value of signal almost zero.

    The signal frequency is 15-33khz with 50% duty cycle which translates to 15 to 30usec pulse width, in bursts of 4 to 8 cycles every 250ms. An internal ADC within a MCU is used to do the sampling. It has acquistion delay of 10s of usec. This is typical conversion time of most common inexpensive ADCs.

    Hence I need averaging circuit which produces an output corresponding to the average of pulse amplitudes within single burst (the larger the pulses, the larger the output) and can hold it for ADC conversion.

    Anyone can help please provide pointers. Thanks!

    I came across the following circuit. Can this circuit work to above purpose?

    1)What happens when rail to rail limitation of op amp sets in? How to correct for this?
    2)Does pulse amplitude need greater than Vbe for pnp transistor to turn on? if so, any way to go around this to make circuit work for input amplitude low as 50mV?
  2. mik3

    Senior Member

    Feb 4, 2008
    You said the larger the pulses. Do you mean the amplitude or the duty cycle?
  3. DonQ

    Active Member

    May 6, 2009
    It's a little hard to tell from your description, but it sounds like you want something between a "sample-and-hold" and a "peak-detector", maybe with a bit of a resettable integrator thrown in. The circuit you included does, at most, the integrator part of this, and does not do even that very well (e.g. it is not resettable and is probably non-linear).

    You may want to search using some of those terms to see what is available.

    A couple of questions:

    Do you want to average only the amplitude of the pulses? or the total energy? ignore the duration? or are the durations always equal? Some options make the circuit easier to define, other options make it much more difficult.

    When you say average... Average is usually described as the total quantity divided by the number of samples. To do a real average, you will also have to have a count of the pulses. Is that what you want? Maybe "time averaged" across a fixed time interval, or a moving average?? Or do you just want a filtered (IIR?/FIR?) response.

    My best response at this point would be to sample each pulse individually. Do a peak detect on each pulse, hold the value in a sample-and-hold, do the A-D conversion on the peak currently in the sample-and-hold while you're resetting the peak detector in preparation for the next pulse. You've got up to 30μS till you have to re-enable the sample-and-hold and 10μS till the A-D is complete. When the conversion is complete, save the value in a list, reset the sample-and-hold and prepare for the next peak (you still have ~20μS). When you time-out on the last peak (since you don't know in advance how many you will be getting) do the calculations in the micro-controller to find the type of average you want.