07-26-2010 12:18 PM
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!
07-27-2010 11:20 AM
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
07-27-2010 12:00 PM
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.
07-27-2010 12:20 PM
Use the example finder. Toolbar->help->Find examples. Then serach for peak. This will give you a push in the correct direction
07-29-2010 02:22 PM
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