Hello NG (again) :o) How would you DSP wizards go about solving this apparently simple problem?: A signal (time, sample-value) is given and in this a pulse is present at an unknown time t. The shape of the pulse is not known nor is the duration, only that it rises significantly above the noise-level, so it should be recognizable, at least by manual inspection. I would like to write a program that can detect this pulse. So what strategy should one employ to detect this unknown waveform? Since the exact shape is not known, cross-correlation is no good.. So should I just detect when the amplitude rises above an average noise-value? Or implement some sort of running diff. that will suddenly rise with a sudden increase in the slope of the signal? Any ideas? Any standard way to proceed? Thanks! Best, M.L.
Detection of signal
Started by ●March 23, 2006
Reply by ●March 23, 20062006-03-23
"M.L." <morten.langer@gmail.com> wrote in message news:1143144105.889215.158840@i40g2000cwc.googlegroups.com...> Hello NG (again) :o) > > How would you DSP wizards go about solving this apparently simple > problem?: > > A signal (time, sample-value) is given and in this a pulse is present > at an unknown time t. The shape of the pulse is not known nor is the > duration, only that it rises significantly above the noise-level, so it > should be recognizable, at least by manual inspection. I would like to > write a program that can detect this pulse. > > So what strategy should one employ to detect this unknown waveform? > Since the exact shape is not known, cross-correlation is no good.. So > should I just detect when the amplitude rises above an average > noise-value? Or implement some sort of running diff. that will suddenly > rise with a sudden increase in the slope of the signal? > > Any ideas? Any standard way to proceed? >What's up with autocorrelation? Best of luck - Mike
Reply by ●March 23, 20062006-03-23
M.L. wrote:> Hello NG (again) :o) > > How would you DSP wizards go about solving this apparently simple > problem?: > > A signal (time, sample-value) is given and in this a pulse is present > at an unknown time t. The shape of the pulse is not known nor is the > duration, only that it rises significantly above the noise-level, so it > should be recognizable, at least by manual inspection. I would like to > write a program that can detect this pulse. > > So what strategy should one employ to detect this unknown waveform? > Since the exact shape is not known, cross-correlation is no good.. So > should I just detect when the amplitude rises above an average > noise-value? Or implement some sort of running diff. that will suddenly > rise with a sudden increase in the slope of the signal? > > Any ideas? Any standard way to proceed?Sounds similar to a question I was asking in this group a few weeks ago. If you expect the signal to have some frequency characteristic rather than just amplitude, and you want to use FFT methods, you could try Time Frequency Reassignment. You run two or three FFT's over the same data but with differently weighted windows, and you not only get an estimate of the frequency but an approximation of the location of the centroid of that frequencies energy within the FFT window by the using the differences between the results of the FFT's with different windows. For instance you could use a rectangular window and a ramp from -1 to 1 window. If you find a magnitude peak above the noise in the first FFT, and the same bin in the two FFT's are of opposite phase, then the pulse was on the left side of the window, same phase = right side, etc. Note that this method gives the centroid. So two pulses would look like one pulse in between, for instance. After you get a frequency estimate, you could go back to the time domain data and sweep some sort of linear phase matched filter (perhaps several, of different widths) across the data to measure the envelope more accurately. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
Reply by ●March 24, 20062006-03-24
M.L. wrote:> Hello NG (again) :o) > > How would you DSP wizards go about solving this apparently simple > problem?: > > A signal (time, sample-value) is given and in this a pulse is present > at an unknown time t. The shape of the pulse is not known nor is the > duration, only that it rises significantly above the noise-level, so it > should be recognizable, at least by manual inspection. I would like to > write a program that can detect this pulse. > > So what strategy should one employ to detect this unknown waveform? > Since the exact shape is not known, cross-correlation is no good.. So > should I just detect when the amplitude rises above an average > noise-value? Or implement some sort of running diff. that will suddenly > rise with a sudden increase in the slope of the signal? > > Any ideas? Any standard way to proceed?If you are looking at mostly DC pulses as opposed to frequency bursts, you could look at this as a statistics problem. Characterize the noise. For some deviation away from the mean, a set of samples greater in amplitude or total energy becomes less likely to be noise than some alien pulse, depending on your system. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
Reply by ●March 24, 20062006-03-24
Ron N. wrote: ...> If you are looking at mostly DC pulses as opposed to frequency > bursts,DC pulses?
Reply by ●March 24, 20062006-03-24
Andor wrote:> Ron N. wrote: > ... > > If you are looking at mostly DC pulses as opposed to frequency > > bursts, > > DC pulses?Direct Current (as opposed to AC / Alternating Current). I meant the kind of signal where most of the energy shows up in the bin 0 of an FFT spanning the pulse. As opposed to an AC tone burst, where much/most of the energy would end up in some higher bin. What are the more proper terms for these different types of signals? IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
Reply by ●March 24, 20062006-03-24
Andor wrote:> Ron N. wrote: > ... >> If you are looking at mostly DC pulses as opposed to frequency >> bursts, > > DC pulses? >I guess the pulse rate would be fairly low :-) Steve
Reply by ●March 24, 20062006-03-24
M.L. wrote:> Hello NG (again) :o) > > How would you DSP wizards go about solving this apparently simple > problem?: > > A signal (time, sample-value) is given and in this a pulse is present > at an unknown time t. The shape of the pulse is not known nor is the > duration, only that it rises significantly above the noise-level, so it > should be recognizable, at least by manual inspection. I would like to > write a program that can detect this pulse. > > So what strategy should one employ to detect this unknown waveform? > Since the exact shape is not known, cross-correlation is no good.. So > should I just detect when the amplitude rises above an average > noise-value? Or implement some sort of running diff. that will suddenly > rise with a sudden increase in the slope of the signal? > > Any ideas? Any standard way to proceed?There are really no standard ways. One way is to try to think of what a "worse case" waveform would look like and try to design a detector to the worst case. Some people would consider a burst of noise to be a worst case signal. You can approach the unknown duration problem by using a bank of detectors that span some min/max duration. Since you imply that your signal is high SNR, simple is usually good enough.> > Thanks! > > Best, > > M.L. >
Reply by ●March 24, 20062006-03-24
Thanks to all of you. I'll give the different ideas a try and get back. Please don't hesitate with more suggestions if you have any - I'll keep an eye on the thread. Thanks again. Best, M.L.
Reply by ●March 24, 20062006-03-24
M.L. wrote:> Thanks to all of you. I'll give the different ideas a try and get back. > Please don't hesitate with more suggestions if you have any - I'll keep > an eye on the thread. Thanks again. > > Best, > > M.L. >IF you're into overkill, try googling on "Quickest Detection", "Pages eest", or "Page-Hinkley tests".






