LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

waveform peak and valley detection

I'm working on acquiring an arterial waveform. A pressure transducer is introduced into an animal's artery and acquired through labview which displays a waveform.

 

I searched for several days and found a few similar projects but I'm still having difficulties acheiving what I want.

 

The waveform is 'sinusoidal' with some noise in it; I'm trying to detect the peaks and valleys (high and low points) and then I want to average the high and low points over 10seconds (ie measure all the peaks in a 10sec cycle and give an average, same for the valleys). This will need to run continuously.

 

So far I tried the "max-min waveform" function and the "peak detect" function and they seem to give different values with the max-min giving more accurate results. So I guess my questions are:

1. Which is the best way to detect the peaks and valleys ?

2. How can I average the results over 10secs?

 

Thanks for any help!

0 Kudos
Message 1 of 5
(5,084 Views)

Hello,

 

The best way to detect the peaks and valleys will be what works the best for your application. This could be using the min and max functions or could be the peak detector. You could also write your own peak detector that works exactly the way you would like. For averaging over 10 seconds, there are multiple ways to do this. One way would be to setup an array and only keep the most recent 10 samples in it and then average the array each time. Shifting the elements in this array can be slightly inefficient so another method would be to utilize the queue functions to create a FIFO. Here is an example of that: http://decibel.ni.com/content/docs/DOC-12057

 

-Zach

0 Kudos
Message 2 of 5
(5,058 Views)

I would break up the waveform into individual cycles, the use the min/max function on each cycle.  Accumulate the min and max values into an array, then use the Mean function to get the array averages.

- tbob

Inventor of the WORM Global
0 Kudos
Message 3 of 5
(5,050 Views)

Use the example finder. Toolbar->help->Find examples. Then serach for peak. This will give you a push in the correct direction



Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
(Sorry no Labview "brag list" so far)
0 Kudos
Message 4 of 5
(5,044 Views)

Thanks for all the great suggestions!!

 

After all the reading I did, I think that using wavelet function seems the best to me (for both noise reduction and also to help in extracting data from the waveforms)... I tried reading about wavelets, but I guess it is way above my understanding... I was able to grasp the simple idea behind it and the different types of wavelets...

 

Is there a simple way for me to select the best wavelet for my data? Do I just look and select the wavelet that most resembles my data, or is there another way?

 

Again, I appreciate all the help

0 Kudos
Message 5 of 5
(5,017 Views)