There are multiple algorithms out there for generating synthetic EKG signals (for test and validation of heart rate estimation algorithms). All you plug in is the desired heart rate, and the algorithm outputs an EKG signal with the desired heart rate.

I need to create a similar algorithm - but for pulse oximetry. I would like to implement a signal generator which generates a synthetic infrared and red (photodiode) signal based on a user-specified/pre-defined SPO2 rate. I then want to take the synthetic red and infrared signal and let them be processed by an SPO2 estimation algorithm. If the algorithm outputs an SPO2 estimate which is close to the pre-defined (i.e. the true SPO2) SPO2 value, then I know that the algorithm works.

How would I go about creating such a signal generator?

  • $\begingroup$ how did this work out? Were you able to produce anything suitable? $\endgroup$ Aug 24 '15 at 15:28
  • $\begingroup$ I never got around to it because the task became irrelevant after my client decided to stick to using their low-quality hardware. $\endgroup$ Aug 24 '15 at 18:17


(1.) Mindless and without understanding method that would work well.

This is as quick and easy as is likely to be possible, should work 'well enough' and would be 'easy enough' to implement without any in depth understanding past ensuring that simulated sensor output characteristics (impedance etc) match those of the target sensor.

  • Obtain known good SPO2 meter and sensor.

  • Monitor data signals from LEDs and record

  • Connect sensor to "patients" or test samples of choice and adjust SPO2 level. (Patients can easily 'adjust' SPO2 level over a wide range by controlled breathing. Ask me how I know :-) ).

  • At a range of SPO2 levels log waveforms and store in simulator

  • 'Play back' signals as required.

(2.) The path to understanding - much harder.

See "Real World sensor Outputs" below for a set of raw and processed sensor output signals for IR and visible red LEDs in an SPO2 measurement environment. Using the related evaluation kit (or an equivalent circuitry of your choice) would allow examination of SPO2 sensor waveforms at various SPO2 levels. From these it would be "simple enough" to provide analog levels corresponding to equivalent sensor outputs either at selected SPO2 levels or, potentially, continuously variable ones. Available on ebay.

As noted below, the transferability of sensor signals from one system to others from other manufacturers is far from certain.

Note: Below I have provided detailed information from a single supplier. I have no involvement with the company or their products. They seem to "know their stuff" and examples show that TI have used their equipment in their development work.


Simplistically, SPO2 is measured by comparing the attenuation of two wavelengths of red light by a portion of the body which has blood flowing through it. The wavelengths are chosen such that one is attenuated in a manner which is a function of Oxygen content when it passes oxygenated haemoglobin and the attenuation of the other is independent of haemoglobin oxygenation percentage. Oxygenated haemoglobin attenuation is a function of blood vessel optical path length and haemoglobins saturation versus Oxygen partial pressure "transfer function".

Haemoglobin saturation versus oxygen partial pressure.

enter image description here

The oxygen-unnaffected signal provides a reference attenuation against which the affected signal can be compared to deduce oxygen saturation level, after taking the factors mentioned above into account.

For a much more complete and competent explanation see here

Not too surprisingly, it's not that easy. SPO2 assessment is a black art - far less straight forward than one might expect when considering the method used. I base this claim on an interesting and detailed Hewlett Packard report which I read many years ago, which said as much, and then set out to demonstrate how empirical the art is in practice. That this is still the case to some extent is amply demonstrated by the myriad internet pages and ads comparing brand x with the seller's brand Y and showing how unreliable the other brand is under various conditions. For example:

Example: Brand A & Band B versus two of "ours"

enter image description here

And again ...

enter image description here

So - if I was required to build a SPO2 sensor simulator, in the absence of known good sensor signal data, I would take as many reputable SPO2 meters as I could find and observe the signals produced by their sensors under various conditions and displayed SPO2 values. An issue is that sensors and SPO2 meters may be to some extent matched. A sensor pair which works with brand A SPO2 meter may implement assumptions which make it unsuited for use with a brand B meter. Determining to what extent this is true is one of the first steps in evaluating algorithm performance.

Fortunately, at least one company seems keen to help you do this ...

Real world sensor outputs:

To start - super cheap complete pulse-oximeters on ebay for about $US20 all up. Unbelievable - and performance totally unknown CMS50DL SPO2 Monitor OXYMETRE SATUROMETRE POULS METRE ECG OXYMETER OM1 - the "OM1" in the title is probably a hat-tip / pretend similarity to an APM model.

Buy one. Test. IF it works (IF) buy several.
Pull apart, bring out LED signals, use, play ... .

and - much more "real"

APMKOREA Home Page - easier to look at than describe - sensors evaluation boards, application notes, waveform photos, ... .

APM provide both PPG (essentially pulse waveform) and SPO2 measurement equipment. By the time I realised they were overlapping I had somewhat mixed PPG and SPO2 references as they overlap. Sorting out which is which I leave as "an exercise for the student" as anyone interested enough to follow this up will probably find it all of interest and relevance.

Likely of most relevance - APM's ICOM1 (RS232) and ICOM2 (USB) Pulse oximetry modules

SPO2 and PlethysmoGraphy discussion looks useful.

SPO2 modules

APMKOREA " Leading PhotoPlethysmoGraphy Sensor Technology"

Offer a wide range of emitters, detectors, reflective and transmissive (through tissue) sensors.

Plus an sensor evaluation and development board which will work with onboard reflective sensors or external transmissive or reflective ones.

enter image description here

And finally, the heart of what looks helpful is these example signals - presumably available from their evaluation systems for SPO2 levels of your choice

enter image description here

Larger version here - MUCH easier to read


Appears to be very useful application guide

Nonin "Acurate Pulse Oximeter"

Ecostore Wireless pulse oximeter


Lung function and anaesthesia

  • $\begingroup$ Thank you Russell. That is probably the best and most detailed answer I ever received on stackexchange. Will check it out! The information you provided is very, very helpful! So thank you again... $\endgroup$ Jun 5 '15 at 12:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.