LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Pulse oximeter that read data from datasheet(.csv)

I realize that English is not your first language, however, data was posted and not your algorithm.   I have read your assignment and now see that your instructor's goal is to have you implement an algorithm in LABVIEW.  This is why I asked for the algorithm.  Use Google to search for Pulse oximeter Beer's Law.  Ask your instructor to help you with calculating the SAO2 and PULSE RATE by hand (no computer).

 

I have a few observations and suggestions to improve with your LONG-TERM learning (this will not help you with your assignment):

 

1) Labview = Data-Acquisition.   I suggest that you use measure an analog oximeter signal (http://tinyurl.com/oximeter1) to learn how Labview can be quickly used measure signals.  The video shows an Nellcor N600X analog pleth signal collected with MATLAB using an Arduine Due: the concept is the same.   

 

2) MATLAB = Signal Analysis.   A mathematics package like MATLAB is the place to prototype the algorithm.  The upper plot shows your red data:

 

Selection_115.png

 

 

I think that because of the order in which the data is stored, the data is 'backwards': the MATLAB command fliplr() was used to create the lower graph which (from experience) depicts a more realistic pleth waveform.  I discarded the first data point and first column.    Although this is a NI board and NI has made significant progress in the last 20 years regarding signal processing, MATLAB or NumPY would be my first choice.

 

3) Finally, I would suggest that you focus on either the algorithm OR the data-acquisition: NOT both.  The algorithm involves Beer's law and it would be helpful (maybe necessary) to have an undergraduate EE degree.  If you are an undergraduate or in highschool I suggest using wiring a Nonin iPod 3150 oximeter to a PL2303HX Converter USB To RS232 TTL USB To COM to demonstrate that you can wire up a device correctly and read a signal.  I have mentored students serial communications and have 2 devices remaining that are 'plug and play.

Message 11 of 19
(1,552 Views)

Hi gatorback.
Thank you for your suggestion. I relized that yesterday after the comment from GerdW. I started doing everything from the start and manage to get Sp02 rate. For heart rate I will take the time between to peaks and 1/T is the heart rate.

 

0 Kudos
Message 12 of 19
(1,527 Views)

Guys, How can I detect two adjacent peaks from array? And show their value and index?
Thanks

 

P.S. I am sending you the .csv file from which I have to detect peaks.

0 Kudos
Message 13 of 19
(1,506 Views)

Hi Gajo,

 

How can I detect two adjacent peaks from array? And show their value and index?

Simple algorithm:

- search first peak and show its value/index

- then search the second peak starting and index of first one +1…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 14 of 19
(1,501 Views)

Search it with which function?

0 Kudos
Message 15 of 19
(1,497 Views)

Hi Gajo,

 

LabVIEW comes with a lot of signal processing functions, including "Peak Detection"…

 

What have you tried so far?

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 16 of 19
(1,495 Views)

I tried array min and max, but that only returns one value, and peak detect but I cannot connect my array with that vi.

0 Kudos
Message 17 of 19
(1,494 Views)

Hi Gajo,

 

peak detect but I cannot connect my array with that vi.

Attach your current VI with your tries to use PeakDetection…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 18 of 19
(1,490 Views)

Here is the .vi

0 Kudos
Message 19 of 19
(1,488 Views)