Detecting analog pulses in Software
-
I posted this [^] on another forum but got no answer. I'm referencing it here in case you want some background on why I need to do this. In short, I want to detect analog beacon radar pulses, that have already been converted from an A/D board to values between 1 and 256, the Y component or amplitude levels. The data is sampled at a 2 ns rate or 500 Mhz which comprises the X component. Typically, from what I've been told is that pulse lead edge detection and time stamping the LE is done using hardware. I'm not planning on posting all of the requirements but suffice it to say that I will meet all requirements if I can design the foundation of which this topic addresses. I'm approaching this in two ways based mostly on my empirical observations of the raw data. Using a plot program I can plot the continuous waveform and see where hardware or software would have some problems separating the pulses. Pulses must meet a minimum width and have various pulse to pulse and other timing tolerances. Of course, individual pulses are really part of a pulse train of a particular type of message, and can be correlated by amplitude and bit position once the pulses have been extracted as pulse records with attributes for the LE, TE, pulse width, plateau or amplitude, overlapped, etc. 1) Pulses of different signal level or amplitude can be intermixed, interleaved, or overlapped sometimes causing wide pulses where two or more pulses of different amplitudes may be joined and the Trailing Edge (TE) from the first pulse may not be detectable, though recoverable, using extrapolation of any downward slope. Pulses, that do not meet minimum width constraints and occasionally of significant amplitude are most likely noise and can be discarded or not stored. Noise can also interfere with pulse width sometimes causing a TE to be initially indiscernible or undetectable unless a small TE can be detected first. 2) I am performing my code design based on how I, a human, would interpret the individual pulses based on an empirical observation. Consequently, I and the program would process the data from left to right or for the direction of X where X equals time, in an increasing time reference. Before I get too far, my initial question regarded using a state machine as part of the design to perform the pulse processing. Sin