LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

waveform fuzzy recognition?

Sorry,I really don't know if my question belongs in this category.Please see the attached file.There are 105 data points and they are plotted as the waveform.
It is not such regular waveform as sine/square/triangle
.From eyes we can see there are three peaks and three valleys respectively in the waveform.I wonder
if the computer can do this.There is a "peak and valley detection" example in labview and it does work to some extent.But if there are some pseudo-peaks(valleys) it does not work as well as what I expected.
Can Matlab or any other software do this job?Is it related to the knowledge of signal processing(wavelet or ...??) Could anyone give me some helpful hints?
Thanks in advance.
0 Kudos
Message 1 of 3
(2,791 Views)
I would think that the Peak Detector.vi in LabVIEW should handle this quite nicely with a careful selection of width and threshold parameters. Do you have a VI that shows the detection of the pseudo-peaks/valleys? Looking at your current data I would start with a width of 8 for both peaks and valleys, a threshold of 1 for peaks and a threshold of -4 or so for valleys.

Often peak detection can be improved through the use of a conditioning or filtering step before the peak detection. For example, you might try median or lowpass filtering to smooth your data.

The Peak Detector.vi in LabVIEW uses only "local" second order polynomial models, but does not implement a global model of data. Do you have a model to which you could fit your data? Can you give detail
s about your data and how it was acquired?
0 Kudos
Message 2 of 3
(2,791 Views)
Greetings!

I understand your question fine 🙂 There are a couple of things you want to do. First, you might just try a different INTERPOLATION. The graph pallette gives you a few choices in this regard, the default is linear. If that doesn't work sufficiently, you want to try waveform averaging. Depending on how many points you average, you can eliminate "local" peaks while retaining longer peaks. There is a Waveform Average vi. in the NI code archives..(I think it's the one I submitted myself a while back!) Keep in mind that when you average a waveform, your peaks will be offset by half of the averaged samples....no way of gettin around this without "cheating". Hope this gives you some ideas. And yes, this can be done in Matlab quite nicely, and t
here is probably already a waveform average in the Matlab Tools.

Goood Luck

eric
Eric P. Nichols
P.O. Box 56235
North Pole, AK 99705
0 Kudos
Message 3 of 3
(2,791 Views)