Detecting peaks in blood pressure waveform.

Hello all.
I am studying human pulse waveforms and attempting to detect peaks in real time. I have a continuous stream of data coming in a serial port, this is converted from characters into integer values which are then plotted as a moving waveform. It is a good clean signal with little noise so I thought the easiest way was to keep a running array of values and, when the present value is less than the one before the previous value, (to allow for any single sample noise) that is the point where the peak has just happened. I then switch an LED.
The point then is that I don't want the LED to stay on all the way down the slope, just flash briefly. Then I guess I need to ignore the comparison until the signal has gone past the valley and then start looking for a downward slope again.
Can anyone tell me how, once the peak has been detected, to ignore looking for it until I'm on the upward slope again, maybe some sort of latching case structure, unlatched by a positive slope?
I know there are peak detection functions in LV but they don't seem to suit real time waveforms. And I can't have thresholds because the signal amplitude may vary considerably.
Thanks for any help.
Andrew
BTW, I'm using LabView 2012.

Hi ASH2020,
how about calculating the signal's discret first derivation; the derivation's sign should indicate a positive or negative slope.
Alex
♜♖ LabView 8.6 - LabView 2014 ♖♜
Attachments:
2013-05-09_ddx.vi ‏13 KB

Similar Messages

  • Blood pressure monitoring

    good day all,
    I am currently carrying out a blood pressure monitor project. basically it uses the oscillometric method to detect the blood pressure. Currently my hardware comprises of a pressure sensor, instrumentation amp, ADC (pic16f877a) and is connected to the pc via rs232. Currently the voltage readings can be obtained using VISA serial and i can see the waveform. What i need to do now is to obtain specific peaks (amplitude of the peaks will be used to calculate the pressure). How the oscillometric method works isthat the amplitude of change of pressure in the inflattable arm cuff is monitored. As air is slowly released, there will be a sudden spike (when the pulse breaks from its obstruction). The amplitude of this spike is useful for the Systolic pressure. As the pressure is further released, there will be a further increase in the pulse amplitudes and would then start to diminish. The diastolic pressure is when the pulses start diminishing so the amplitude level would need to be measured. I would appreciate any help or guidance... or just simply for someone to show me in the right direction...
    Thanks...

    Hi Lawrence,
    Thank you for posting to the National Instruments Discussion
    Forums.
    You can easily detect the peak of an array of X values using
    the Threshold Peak Detector VI. This provides you with the index of the
    detected peak from a given set of data. The index can be fed back into an index
    array to read the actual amplitude.
    Hope this helps!
    Abhinav T.
    Applications Engineering
    National Instruments India
    LabVIEW Introduction Course - Six Hours
    Getting Started with NI-DAQmx
    Measurement Fundamentals
    Attachments:
    Peak Detector.JPG ‏14 KB

  • How do I instal Omron blood pressure monitor soft wear on my Mac pro when the soft wear supplied only refers to Windows

    How do I instal a Omron blood pressure monitor on to my Mac Pro.It came with an installation softwear that is only compatable with Windows.I have contacted Omron and they inform me that it should be possible using Bootcamp.How do I do this.I am using Lion OX.

    Basically, the software Omrom uses is made by Microsoft and will only run on Microsoft Windows. There are two ways to run it on your Mac Pro, both require a copy of Microsoft Windows. Option one is to use Boot Camp, which sets aside a section of your hard drive to use for an installation of Windows. Once installed, you can then boot to Windows rather then OS X. The other option is to use something like VMWare Fusion to run Windows on top of OS X. A quick Google search has confirmed that the Omrom software has no issues running in VMWare.
    In my opinion, VMWare is a simpler option. But it does require purchasing the VMWare Fusion software as well as a copy of Windows (I think they sell a bundled version of VMWare that includes Windows).

  • Applied an update to an app that records blood pressure. Am unable to retr ieve previously stored info. When following directions in update I cannot "add" data to import because message states data are stored elsewhere and I cannot find where. Help?

    Applied an update to an app that records blood pressure. Am unable to retrieve previously stored info. When following directions in update, I cannot "add" data to import because message states data are stored elsewhere, and I cannot find where. Help?

    You'll have to contact the app developer for help with this.

  • How to use peak detection in labview to detect peaks from data acquisition information

    Hi
    I am a university engineering student who is working in a team to develop a coin detector, its purpose is to recognize different coinage and detect fakes.
    For this we are using LabVIEW 8.5.1. I am relatively new to labview and have had no experience of using to before. We are trying to integrate four voltage signals produced by an electromagnet, straingauge, optical sensor and a proximity sensor. We have already developed signal conditioning for these tests and now wish to put them into labview.
    Our plan is to use peak detection on each of the tests so that labview can detect peaks which correspond to different coin types, provided they meet set criteria for each coin. Then to combine these either using logic or mathscript to produce a Boolean output for each coin.
    One of our advisors helped us develop a peak detection program for a simple simulated sine wave however we are struggling to adapt this for data acquisition information and itegrate it with mathscript and to be honest it does not make much sense. I have attached the program below. Thanks in advance for your assistance. 
    Attachments:
    Strain 2.vi ‏25 KB

    Chris,
    Here are several ways to help  you get started with peak detection:
    1. On your functions palette, you can search for "peak detect" and you'll find several different variations of VIs that will do peak detection.
    2. You may also want to take a look at this tutorial: Peak Detection Using LabVIEW and Measurement Studio
    3. There's an example in the example finder called "Peak detection and display" that will probably be useful. 
    Hope this helps, 
    Misha

  • How can i order a large replacement cuff for the iHealth Blood Pressure Dock from the apple store???

    How can I order a large replacement Blood Pressure Cup for iHealth Blood pressure Dock from apple?

    Do you know from what company i could do this or if any other kind of cuff that can be picked up from a local drug store will work in place of it?

  • Could I do the spectral analysis of blood pressure data only use your software?

    Dear,
    I am doing an experiment about baroreflex (Blood pressure reflex) using a system of PowerLab (ADInstruments). I have many data that I want to do Spectral analysis and try to find specific software to do that. I found from literature that you may have a software (LabView?) could do spectral analysis of blood pressure.  If so, could I do the spectral analysis only use your software?
    Thank you,

    Hello mlin,
    LabVIEW can interface with your transducers using hardware.  Once the acquisition is over, LabVIEW can get the data and convert the time information into the frequency domain so that you can see the amplitude of each of the frequencies involved with the signal.  I am just curious about the equipment you will be using.  You will need some data acquisition cards that have drivers for LabVIEW unless you are just getting the information from a desktop instrument.  If you are using a desktop instrument, then LabVIEW could send the commands to automate the process.  I hope this answers your question.
    Steven T.

  • Blood pressure data acquisition

    Hello,
    I have some problems with blood pressure measuring.
    I have Blood Pressure Sensor connected to the SensorDAQ interface. I can see installed SensorDAQ in NI MAX, but i really dont know how to get data from sensor to LabView by using DAQ assistant. (there is no option for blood pressure measuring and other measurement types from data acquire doesn't work)
    Does someone have any idea or knows any way to get data do my pc?
    Thanks for any help.
    I'm attaching pictures with measurement types and self-test of SensorDAQ in NI MAX.
    Solved!
    Go to Solution.

    I have labview 2013 version. 

  • Blood Pressure monitoring system using the LABVIEW

    i m currently doing a project on blood pressure monitoring which i need to get two values which is the systolic and diastolic in the labview.. but i can't seems to save the two datas as when i try to save, the whole program stops. how do i go about?
    Sheena

    look at modifide version of your vi
    Incorporated a save to file section
    Hope this helps
    Attachments:
    BP(trial)_save.vi ‏407 KB

  • Is there any way to print out information from the Health Dashboard such as Blood Pressure readings to take to doctor?

    I am having to keep track of my blood pressure for several weeks and then take them to the doctor just to make sure I'm doing okay.  Is there a way to print out the readings that I have entered into the dashboard on the Health App?  Or am I going to have to copy down all those weeks worth of readings by hand?

    Thanks for the reply. I hope in the near future they make it an option. Maybe that you can email it like you can with notes.
    I will have my phone with me but they will need a hard copy to scan in to my records or at least to enter manually in to their system. Maybe I will just start keeping track of my health info in the notes app again so I can email myself a copy to print.

  • Problem: Microlife Blood Pressure Monitor and Health Vault Connection Center

    I have model BP3NQ1-4W. The HV Connection Center does recognize and install drivers when the device is connected for the first time. However each time the device is connected after the initial connection the HVCC prompts me to add
    a new device. I could add it as a new device every time I connected it. Each time it is added a device appears in the
    Windows Device Manager under the Portable Devices object.
    I can work around this problem by
    Disabling the Microlife Blood Pressure Monitor device object in the
    Windows Device Manager
    Connect the BPM device
    Ignore the HVCC Add Device wizard
    Enable the BPM device in the Windows Device Manager
    Is there any possibility that this behavior could be corrected in a new driver or HVCC release?
    Thank you.

    Hello Tom,
    There are some models of Microlife BP Monitors that do not connect with HealthVault Connection Center.  Did you see a Microsoft HealthVault symbol on the box?  I searched for this model number on our list of devices and do not see it on the
    list (https://account.healthvault.com/us/en-US/Directory) .Can you please confirm with Microlife that they provided drivers for this model?
    Thanks
    Tomas
    MS HealthVault Support

  • What is the best way to detect peak to peak voltage for the following waveform ?

    I have two channels of waveform train ( ie W1 & W2 ), each of them is of frequency 64KHz.
    Each channel of waveform train consists of sinewaves of 64KHz of fixed amplitude, say 2 V pk to pk, running for 100 cycles, and then rest for 0.15 sec continue with a sinewave of 64KHz of another fixed amplitude, say 1 V pk to pk running for 100 cycles as well, and then rest for 0.15 sec. The above cycle considered as a complete waveform cycle.
    The above complete waveform cycle repeat for 10 cycles and rest for 1.3 sec and repeated itself.
    From the two simulated waveforms (ie W1 & W2), I need to detect and measure the peak to peak voltage of each of the 100 cycles sinewaves.
    What is th
    e best way to achieve that ?

    The waveform is free running as described above, ie sinewave running at approximate 64 KHz for about 100 cylce at fixed amplitude, say 2V ( actual number of cylce unknown, could slightly more or sightly less, depanding on the machine ) then rest for approximately 0.15sec, another sinewave running at approx. 64KHz at fixed amplitude, say 1.5V ( actual number of cylce unknown, could slightly more or sightly less, depanding on the machine ) running for approx 100 cycles continue...then rest for approx. 0.15 sec .....the above waveform repeated itself and free running .....I would like to capture or trigger each of the 100 cycles sinewave (rest time of 0.15 sec between each approx100 cycles of sinewave) to measure the peak to peak voltage and st
    ore them in array for analysis purpose....what is the best way to achieve that as I do not have time reference, I only know that the waveform is running at the pattern described above.
    Thanks for your help !

  • 30 second counter for detecting peaks

    Hello,
    I want to count number of peaks detected in a 30sec interval from a pulse signal acquired using DAQ.I made this programme and in this each second is almost taking 12 sec's more as compared to the real clock second.As a total it taking more than what I need(30sec).In real time the sinesimalutesignal vi will replaced with the DAQAssistant.And also the programme is not always running when the run is clicked but rather running sometimes.
    Can some help me with this.
    thanks in Advance.
    Attachments:
    Peak_detection.vi ‏81 KB

    Hi PatanGova,
    I am not sure if I understand your question properly. However, I took a quick look at your program and modified it a bit. I removed the outer while-loop and the case structure and added some error handling and initialization. I also removed the 1 sec timing in your loop, because if you open the simulated signal express vi, then under timing you can choose "simulate acquisition timing" to run the loop in the rate specified by the signal collection rate (1000 Hz with 1000 samples equals one second worth of data).
    What happens now is that you generate a sine wave with the frequency of your choice. You will collect 1000 samples for every loop cycle, executed once every 1 second. You count the number of peaks in real-time and also the total after the 30 second countdown.
    Please tell me if this helped anything or try to specify your question again.
    Attachments:
    Peak_detection_mod.vi ‏116 KB

  • Detecting audio volume for creating waveform

    Hello all,
    I need to display waveform from a sound file.
    I know to use Graphics in java for drawing lines, etc
    But, I don't know how to get the rate volume of a sound (in miliseconds) for creating a text log looks like:
    23,40,54,32,2,43,4,45With these numbers (coordinates) I will draw a waveform.
    In conclusion: How can I draw a waveform from a sound file in java?

    sabre150 wrote:
    AndrewThompson64 wrote:
    sabre150 wrote:
    ..The magnitude is easy ( Math.abs() ) and the running average is relatively easy.. It is as difficult as it is useful. (I.E. not difficult and not useful).I disagree - I have done it this way for 40+ years. The average of some function of a time series is the average taken over the last N values. The running average is the application of this continuously so the running average at time 't' is is the average taken over the last N samples (t,t-1,t-2 etc) so this has a smoothing effect on the time series. Whether one use abs() on each value or any other function does not change the concept. Maybe not the concept, but certainly the end 'volume' number. If you do not use the abs value, the end volume (in the situation I outlined, where the buffer size covers a single wavelength) would be 0 for sawtooth wave spanning -1 <-> 1, -0.5 <-> 0.5 or -2 <-> 2.
    ..For what the OP is trying to do, square() is probably better than abs() but that is for the OP to decide.
    Further consideration is normally given as to whether or not to do some band pass filtering of the time series prior to taking the running average. I would do so but the OP may decide not to. You lost me with the band pass filtering. I thought that required Fourier transforms, and whenever I have looked up FFTs on the net, the formulae made my eyes cross.
    As to the the calculation of running average. All one needs is a ring buffer containing the last N sample values. Uh-huh. I'm with you there. A buffer of values is also required for RMS calculations.
    ..Care must be taken to stop the build up of rounding errors. ..O..K I was not even considering built up rounding errors when I commented.
    ..An approach to this is to recalculate the mean of the ring buffer.. 'ring buffer'? The group of the last 'n' instantaneous values?
    (quick Google later, confirming same)
    Um.. OK. Forget I ever writ that and pretend I knew it all along. ( Thanks ;)
    ..from scratch every now and again but there are many many approaches.
    ..(the incremental approach can be used where for each sample that arrives one adds it in to the average and removes the oldest from the average). ..Let us assume, for simplicity, that the signal is a sawtooth wave that spans from -1 to 1. The average when you happen to be keeping as many samples as fit in a single wavelength will be exactly 0.5. Assuming that you mean the average of the abs() then yes but the average of the unprocessed signal will be zero and not 0.5.
    Now shift the sawtooth signal to span from 0 to 2 and the average is exactly 1, even though the end user would hear exactly the same signal and volume as the original signal that spanned from -1 to 1.Sorry but I don't see your point. My point was that to an end user, listening to the output, both sawtooth waves would sound identical, indistinguishable, yet the values for the average of the absolute values would be different, while the RMS values would be ..identical.
    Compare that to the [RMS volume|http://en.wikipedia.org/wiki/Root_mean_square]. The RMS value would be identical for the -1 <-> 1 signal, and the 0 <-> 2 signal (both values greater than 0).
    Now you have really lost me. I understand 'mean' . I understand 'root mean square'. Both are 101 concepts. Are you just trying to say that one must perform high pass filtering first (i.e. get rid of the mean prior taking the abs() or square() or whatever)? Again. Huh? I was not ever considering any form of filtering.
    ..With sound recordings this occurs naturally since microphones tend not to be able to measure absolute pressure but I would certainly filter out anything below the standard human low frequency cut-off point.Um.. OK.
    I pointed to some code earlier. That code is used in renderings of sound signals. Its primary purpose is to plot the audio signal itself (real perty like), but I was also interested in offering left/right channel 'volume'. After much successful research (and unsuccessful experimentation), I settled on the RMS as the way to calculate the instantaneous volume.
    You can view the results in both Tracker (designed for individual tracks compatible with Java Sound as well as MP3s) and DukeBox (that is designed to parse/play M3U playlists of JavaSound + MP3 playlists). On the lower left/right of the sound trace rendering, often 'visually boosted' (since RMS values tend to be low, there is an option to display the square root of the actual calculated RMS volume, measured from 0-1, which is the default for most of the the preconfigured renderings) in a real time situation.
    I mention this only for the fact that the OP can use either of those apps. to see the end effect of the RMS style calculation.
    ..Where did the OP go, BTW?

  • Use LabVIEW FPGA as a DAQ and detect peak

    Hi everyone, need your help now.
    I want to use Labview to encode a FPGA to achieve following function:
    1.Acquire data as a DAQ from a Photodetector 
    2.then use peak detect VI to measure the peak information
    3. some simple mathematical operations
    is it possible for me to achive all these only using one FPGA? and is it OK to connect DAQ's output and the input of the peak detect VI?
    thanks a lot. I am a beginner, so it confused me a lot.

    Hi
    What is you hardware? cRIO? FlexRIO?  And what your signal type? Anolog or digital?
    You can refer to the help of Peak detect.vi to comfirm if the data (sigle point integer or integer array ) can be wired directly. I am afraid you can not wire the FPGA IO OUT directly to the Peak detect.vi, but you can create a array for the data and then use the peak detect.vi
     

Maybe you are looking for