# Can I compress the dynamic range of ns pulses to better fit ADC range using log amp or mixer?

I have an experiment in which the signal I want to measure is a 1 ns pulse that occurs somewhere around 0-100 ns after a trigger. I want to digitize the pulses to extract the time they occurred and the amplitude. The problem is the amplitude of the pulse also falls off exponentially with time (along with other effects we are measuring). I can compensate for the exponential decay in processing to extract the 'true' amplitude, but I have a dynamic range issue with the ADC/digitizer. If I turn up the analog gain enough for the digitizer to measure the smallest pulse, then a pulse occurring closer to the trigger saturates. Conversely, if I tune the gain so an earlier pulse is just right, later pulses are so small they barely (or don't) fit within the bit depth of the digitizer. We could tolerate some distortion, etc. especially if it's consistent enough to calibrate out and still get an estimate on relative amplitudes and timings. Signal consists of 1 ns pulses, around 1 uV - 1 V amplitude, driving a 50 Ohm load.

Question: Is there a low noise, high speed way I can alter the signal to better fit the range of pulse amplitudes to the digitizer's dynamic range? (Preferably using off the shelf components)

Research:

I can think of a couple ways to solve this... in principle. Finding products that will work is a little trickier since I lack experience dealing with RF components and am unsure how to understand some of the data sheets.

Idea #1: Undo the decay by multiplying the signal by a compensating exponential ramp function.

Generating the ramp should be doable with a fast enough arbitrary waveform generator. It doesn't have to be perfect. However, how do I multiply the signals at this bandwidth (I estimate sig1: 1-350MHz, sig2(ramp): 1-50Mhz, out: 1-350MHz). Would a normal RF mixer work? My understanding is that they basically act like multipliers - at least with single frequency inputs, but I don't know what's happening to the phase, so I don't know how they'd respond to a wide bandwidth (short time) pulse. Maybe something like this Minicircuits ZAD-1-1? Or a variable gain amplifier with the ramp signal on the gain? I don't know how fast the gain responds and can't find it on the datasheet.

Idea 2: Use a non-linear amplifier - such as a log amp - to 'compress' the dynamic range. I think this would be the better/simpler solution if possible, especially since I don't always know the exact nature of the exponential decay for tuning a compensating function.

My problem here is I'm not sure if any commercial products will work. Most 'log amps' seem to be giving the log of the envelope of an RF pulse. Since I have just a single 1 ns pulse the envelope and the signal are the same in theory, so maybe that would work? The fastest I've found is the AD641 which claims a bandwidth of 250MHz. That might be ok - I'd lose some signal energy (and therefor SNR), and the output pulses would be a little wider and shorter - but not so much that we couldn't still get a good estimate on amplitude and time. Also, I can't find an evaluator kit or ready-made circuit for anything like that, so it'd be a little trickier to implement.

Other ways to approach this?

• Do you have a two channel ADC? If so, split the signal into two paths, one with high gain and the other low gain. Could also be implemented with one ADC channel and a spool of coax cable as a time delay, but that gets annoying. Jan 26, 2023 at 22:46
• Adding channels is difficult/expensive since digitizers in this range (e.g. >5 GS/s) are around $10k-$20k, and even then it still only reduces the problem a little - ideally I'd want to break it into many more channels. That being said the two channel version might be 'better enough'. The delay idea could also work - if I buffered and limited the signal (digitizer doesn't have a very large safety margin). Tricky to implement, and I'm afraid it would add noise though. Jan 26, 2023 at 22:56
• If you know there is only 1 pulse per 100 ns, you could actually have an array of amplifiers with different gain and a few nanoseconds delay between them. However, I wonder if part of the problem is your ADC. If you want to localize in time, you might be better off with a slower, higher dynamic range ADC as peak fitting strongly depends on bits/SNR too, not just sampling rate. Jan 26, 2023 at 23:07
• Perhaps an AD8310 95 db, 440 MHz bandwidth, multistage logarithmic ... Jan 27, 2023 at 7:19
• Jan 27, 2023 at 7:27

Assuming these are current pulses (high source impedance): Pass them through a diode and measure the voltage across the diode. Add a 50 Ω resistor in parallel with the diode to discharge it quickly after the pulse.

If the source impedance is low, then also add another resistor in series with the source to raise the impedance.

• What kind of diode? Any way to tune the nonlinear response to match the application? We tried to use a zener diode as a limiter a while ago before we realized that it had enough capacitance that it was filtering out the signal almost completely out. The signal we care about are 1ns pulses spanning a range of about 10uA - 10 mA. Feb 10, 2023 at 4:41
• @argentum2f Use the lowest capacitance Schottky diode you can find. There are ultrafast diodes that switch in the 100 ps range. The 1N5711 is a very old part as a starting point, but I suppose you can find much better now. Digikey has a very good parametric search for diodes. And of course, SMD versions for tight layout are advised Feb 10, 2023 at 5:00
• @argentum2f Depending on the current range and the diode's conduction voltage, you may have to increase the parallel resistor. The idea is that it conduct less than perhaps 10% of the total pulse current, if you want to maintain an exponential voltage output Feb 10, 2023 at 5:06
• Wait - wouldn't this do the opposite of what I want? The bigger peaks get even bigger relative to the smaller ones? Edit: Never mind. Looking at the voltage response the wrong way. Feb 10, 2023 at 5:19
• I found a part there with 0.15 pF at 0 V. Has a nice I(V) dependence in your current range, roo. It can tolerate only 2 V reverse but I guess you don't plan to subject it to any kind of reverse voltage. For your weakest pulse of 1e-14 As, that diode should still get something like 50-70 mV change. @argentum2f Feb 10, 2023 at 6:21

My suggestion would be to decouple the amplitude estimation from the TOA estimation.

I'll suggest a combination of certain aspects that have worked in the past, with others that are just suggestions for an eventual system.

For the time of arrival problem (TOA) problem:

Instead of trying to brute-force sampling your gaussian monocyles (they're those, no?), you could try triggering a switch (after a certain threshold has been surpassed) that disconnects a capacitor held at some voltage (say 3.3V) and connect a precision current source. The decay of the voltage is linear and its slope is known $$\=\frac{I_{D}}{C_D} \$$. Then, you can solve for the TOA as follows: $$\tau_{TOA} = t_{sample} - \left(3.3V - V_{sample}\right)\frac{I_D}{C_D}$$

Picture extracted from my own master thesis :)

I cannot recommend an IC in particular for this, but there are many precision current sources in the market. The TOA errors you'll make will depend on the tolerance of your current source and capacitance value. It'll also depend on the resolution of your ADC, but you can tune your decay curve so that it fits well with the resolution of your ADC.

You can then solve for every TOA value from every single sampled value, get an average and a distribution for your TOA.

In order to enable the discharge, you're going to need a fast comparator to trigger on the pulse with a well-defined propagation delay. I can recommend the ADCMP573, which has a 150ps propagation delay and a 15ps overdrive and slew rate dispersion (which will contribute to your TOA error, the nominal propagation delay you can calibrate for). I worked with a TOA system that used it with good results.

You can have this comparator set a latch that then enables the discharge through the capacitor.

To further work with the subsequent smaller pulses, you could have the 1st latch enabling a subsequent comparator (with a lower threshold, of course) so that you can perform the same operation over again.

Amplitude detection:

This is a more complicated matter. I do not know of the existence of a detector that is able to follow such a fast attack and hold the peak precisely.

As you said, most RF detectors rely on relatively slow changes on RF envelopes, so I'm also not sure it'd work, unless you have enough density of pulses to track a meaningful envelope.

I can only think of a level-crossing scheme where you have parallel comparators set with spaced thresholds that can give you estimation of the amplitude you're dealing with. Then, having the highest-threshold set a latch that triggers the discharge I mentioned above.

I guess you'll need some fancy logic to decide how the highest-threshold comparator will set the current source. But anyhow, as I said, decent amplitude detection, in my opinion, is more difficult.

Perhaps a diode with a known V-I relationship (perhaps recorded with a look-up table so that you can translate every pulse amplitude), as @tobalt suggested, could also work as sort of a non-linear detector for the pulses.

• Interesting. I don't think this would work very well for some of what we care about - very low SNR (e.g. around 1) since a threshold trigger would have to be well outside of outliers in the noise. It does potentially solve another problem I've been thinking about though. Could you have two switches - one to trigger the discharge and one to stop it, so the ADC doesn't need to be that fast to read out the voltage? It could be useful to be able to extract ns timings using slower (cheaper, easier, smaller, etc) ADC. Feb 10, 2023 at 5:04
• @argentum2f The threshold placement is Indeed a problem. You could try low-pass filter it (such that only noise and no signal is present), add some voltage margin on top of it and feed it as a threshold to your comparator. Feb 10, 2023 at 6:18
• @argentum2f what would you base your "stop discharging" trigger signal on? Feb 10, 2023 at 6:21
• @argentum2f if you have an SNR of 1, then how do you even discard the false alarms from your real signal with your current solution? Feb 10, 2023 at 9:05
• There is a start trigger - what I really want is the time between the start trigger and the pulse detection. Can't really get rid of false alarms in that case, but as long as the pulse is a little above the noise you get more true detections then false alarms, and there are other heuristics available to get rid of some of the false alarms. Feb 11, 2023 at 14:20