Click here to Skip to main content
15,908,173 members
Home / Discussions / Design and Architecture
   

Design and Architecture

 
AnswerRe: Opinions about user identification in multi-tier environment Pin
cpkilekofp25-Sep-08 6:38
cpkilekofp25-Sep-08 6:38 
GeneralRe: Opinions about user identification in multi-tier environment Pin
Wendelius29-Sep-08 3:53
mentorWendelius29-Sep-08 3:53 
QuestionObject Databases, Non Volatile RAM and Far Caches Pin
FrankSzendzielarz17-Sep-08 3:12
FrankSzendzielarz17-Sep-08 3:12 
Questionsub routines Pin
CodingYoshi16-Sep-08 4:40
CodingYoshi16-Sep-08 4:40 
AnswerRe: sub routines Pin
Pete O'Hanlon16-Sep-08 12:05
mvePete O'Hanlon16-Sep-08 12:05 
AnswerRe: sub routines Pin
Paul Conrad16-Sep-08 12:30
professionalPaul Conrad16-Sep-08 12:30 
GeneralRe: sub routines Pin
CodingYoshi22-Sep-08 13:04
CodingYoshi22-Sep-08 13:04 
QuestionDetecting analog pulses in Software Pin
JohnnyG11-Sep-08 14:20
JohnnyG11-Sep-08 14:20 
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. Since that time, I already have started coding some of this in the manner #2 described above. When separating individual pulses from combined pulses and when separating pulses when TE's do not return to zero or the noise floor, changes in direction of slope (downward or upward ) I am running into some slight problems.

I've decided that a sliding window history (implemented as a circular queue) of my last 5 slope directions that the pulse is/was travelling could be used to construct a scoring algorithm to try to determine how confident I am about the waveform's future detection into individual pulses. For example, if I am following a TE pulse to about the 3 db point below the pulse's plateau, if I get say 3 consecutive hits in a change of direction initially from a downward slope to a rising slope, then depending on the existing pulse's width up to that point, I could be processing a noise spike, or a second pulse. Suffice it to say, I now just assume that if I have reached a -3 db point (~ 70% of pulse plateau level) and the pulse meets minimum width tolerance, I can just declare it a pulse and save its characteristics.

I want to assign a higher score based on a high degree of confidence that the direction change in slope is not momentary but for a longer period of time. I could also use a second scoring algorithm to assign higher levels of confidence to pulses that do return more to the noise floor perhaps all the way to the floor or the -6 db point.

Now, getting back to program design, IMHO I have discovered that, to me, there is no easy way to code this. There are several possibilities that exist once the LE, and plateau have been acquired: a normal TE could follow resulting in a clean pulse, a noise spike can temporarily occur as part of the TE widening the pulse slightly, a noise spike can be of significant enough of amplitude or width to be possibly interpreted as a secondary pulse adjacent to or following the pulse we were processing, an actual second pulse could be occurring intermixed with noise such that the first pulse's TE never returned to the noise floor or the noise floor is high as compared to the pulse or pulse train's amplitude level. Consequently, the LE for the second pulse may only be observable from say the -3 db point below the second pulse's plateau level.

After thinking about these possibilities and that you or the algorithm processing the continuous waveform won't really know what condition you have until after it occurs, this does not allow for calling of functions in a sequential or logical manner and have found that most or all possibilities must be included in a single function that looks for all of these possibilities. Needless to say I have made some progress and would appreciate any suggestions in design or in helping with coding suggestions.
QuestionClearing controls Pin
CodingYoshi5-Sep-08 6:26
CodingYoshi5-Sep-08 6:26 
AnswerRe: Clearing controls Pin
led mike5-Sep-08 7:10
led mike5-Sep-08 7:10 
GeneralRe: Clearing controls Pin
CodingYoshi5-Sep-08 7:34
CodingYoshi5-Sep-08 7:34 
GeneralRe: Clearing controls Pin
led mike5-Sep-08 7:44
led mike5-Sep-08 7:44 
GeneralRe: Clearing controls Pin
Ray Cassick18-Sep-08 19:42
Ray Cassick18-Sep-08 19:42 
GeneralRe: Clearing controls Pin
led mike22-Sep-08 6:46
led mike22-Sep-08 6:46 
GeneralRe: Clearing controls Pin
Paul Conrad5-Sep-08 8:59
professionalPaul Conrad5-Sep-08 8:59 
AnswerRe: Clearing controls Pin
Leslie Sanford13-Sep-08 17:40
Leslie Sanford13-Sep-08 17:40 
AnswerRe: Clearing controls Pin
darkelv24-Sep-08 4:56
darkelv24-Sep-08 4:56 
Questioncreating VB.NET project to use C++ source code Pin
theBulldog_312-Sep-08 10:57
theBulldog_312-Sep-08 10:57 
AnswerRe: creating VB.NET project to use C++ source code Pin
Paul Conrad2-Sep-08 19:10
professionalPaul Conrad2-Sep-08 19:10 
AnswerRe: creating VB.NET project to use C++ source code Pin
Ju@ncho11-Sep-08 8:40
Ju@ncho11-Sep-08 8:40 
Questionfrom c pointer function to good object design Pin
mp3butcher2-Sep-08 5:14
mp3butcher2-Sep-08 5:14 
GeneralRe: from c pointer function to good object design Pin
led mike2-Sep-08 5:23
led mike2-Sep-08 5:23 
GeneralRe: from c pointer function to good object design Pin
mp3butcher2-Sep-08 5:53
mp3butcher2-Sep-08 5:53 
GeneralRe: from c pointer function to good object design Pin
led mike2-Sep-08 6:37
led mike2-Sep-08 6:37 
General[Message Deleted] Pin
mp3butcher2-Sep-08 22:10
mp3butcher2-Sep-08 22:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.