LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PPG signal Processing

Solved!
Go to solution

Hello everyone,

I have basic knowldge in LabView.

My project is based on using PPG signal to measure Capillary Refilling Time (CRT). It is priciple is that, an LED and a photodiode are placed on the patient finger, then the doctor applies a pressure to let the boold out of the area under pressure (skin gets white), then he/she releases the pressure and read the time the skin gains its colour back (red).

I am using PPG to get: normal PPG signal, a signal during pressure and a signal after releasing the pressure all in one chart or in real time. This can be seen in the attached file named ( PPG and CRT).

I am acquiring the data using DAQ Pilot Express VI at 1000 smaples. My approach in measuring CRT so far, is by using peak and valley detectors as shown in VI for PPG. I need to get the difference between T2 which is the first peak (denoting that it is the first normal PPG) that appears after releasing the pressure and T1 which is a valley that occur at the time the pressure is released.  I think there is something wrong in the code but I dont know where and how to get the write readings. Any help will be appreciated greatly.

Please when you send a VI could you please make it in version 2012?

 

Thank you in advance.

Download All
0 Kudos
Message 1 of 4
(4,466 Views)

You are using Third-Party Software (DAQPilot) to which I don't have access, hence I cannot tell what you are doing inside the Express VIs.  Since I don't know what you are trying to do, don't know what you are observing, and don't know the nature of your problem, it is difficult to suggest a solution.

 

I know that somewhere there are 1000 samples.  It's not clear where, as the only number I see is the count of 100 on the For loop.  I can't tell the parameters of data acquisition (is it 1000 samples at 1KHz?  Are you sampling N Samples or Continuously?), nor the parameters of the other Express VIs.

 

Here's a suggestion:  Write some Documentation.  [One Principle from Software Engineering, not universally adopted, is Write the Documentation First]. Say something like the following:

  • Acquire M points from N channels at F Hz.  [Consider whether you want to take one long continuous sample or process "in chunks", and describe].
  • Filter (and describe the filter, including distinguishing between continuous or "in chunks").
  • Further preliminary processing [I'm looking at the block labelled "Collector", not understanding what it does].
  • Post-processing (what are you looking for, what algorithms do you want to use, how do you want to "see" the data and the results.

If the above outline doesn't "fit" your task, modify accordingly.  I have a sneaky suspicion that you really want to do something for which the VI for PPG code is sub-optimal, but without knowing the "what", it is difficult to advise on the "how".

 

Bob Schor

0 Kudos
Message 2 of 4
(4,430 Views)

Hi Bob

 

thank you for your reply.

I have attached:

1. VI containing read from measurement file, subVI containing peak/valley detectors and calculation of time from location using the equation [Time locations (i) = t0 + dt*Locations] to get the time when the peak and valleys occured.

2. a recorded PPG signal: starts with normal PPG, then large valley followed by unstable signal, then another valley followed by a large peak (These are the peak and valley I want to measure there time and then subtract it to get CRT), then normal PPG. Unable to upload this attachment; the website says (the attachment content does not matvj its file extension and has been removed !. I can send it by email.  Please let me know if you would like to have it by email.

3. a JPG contains instructions that are provided by our lab supervisor regarding the set up of the DAQ ( this all what I know about DAQ).

 


The recorded signal is filtered using bandpass butterwoth filter with:

Low frequency = 0.1 hz

High frequency = 6 Hz

order = 4


 

The algorithms I am after are:

1. Peak and valley detecor that detect only the second narrow valley and peak, get the time of occurance the detected valley and peak and calculating  CRT = time of the peak - time of the valley.

- The second peak occure at amplitude of 4.9 so I set this as a threshold for peak detector.

- The valley goes down to -1.5 but there is another valley before this one that goes bellow -9 which causes difficalties !

2. trasition measurements: as the peak that I am interested in rises, it is possible to use transition measurements to obtain rise time which should directly equal CRT but the VI does not work and gives an Error 20310: the waveform did not have enough edges, this error appear even if I changed the reference level !

 

Any help will be appreciated.

 

I look forward to your reply.

 

Thank you in advance

Arwa

 

Download All
0 Kudos
Message 3 of 4
(4,418 Views)
Solution
Accepted by topic author Bio-Med

There's only one VI attached.  You need to do a little more of your own work.  If you have questions about an NI Function, right-click it and choose Help.  Think about the problem.  If you need to visualize the data, put a Graph or Chart on the Front Panel and wire the data to it.

 

Bob Schor

Message 4 of 4
(4,403 Views)