Is there a more reliable way to track a pulse in real time?

In summary, Zaprime is trying to track a pulse in real time, but the method is unreliable because it requires a lot of adjusting. He has sampled data and found that the pulses have a well-defined edge, width, and height. However, he is looking for ways to improve the reliability of the method. There are more advanced solutions that are more computationally expensive, but they may be more reliable.
  • #1
Zaprime
1
0
Hi.

I hope someone can assist me?

I have a sensor that is being used to detect a pulse triggered from a point on the surface of a disk rotating past the sensor. I am processing the data in real time to determine if the values would count as a pulse so that I can count up the number of revolutions.

Here is a picture of some sample data. The width of the pulse can vary quite significantly, as can the offset.

View attachment 8250

My current methodology is to take a cumulative average over time. I then calculate the percentage of the sensor value relative the average to normalise the data. I look at the normalised data and check for a high state and a low state. I also look at the period that elapses between declaring a high and low state to see if this is actually a realistic pulse.

I'm sampling every 5 ms. The problem I have with this method is that it requires a lot of adjusting and isn't proving very reliable across a bigger sample size. I'm wondering if there is a better way to track a pulse in real time?

I can post a CSV file with the values if someone would like to have a more detailed look at the data. There are some gaps in the data which I'm busy trying to track down and fix.
 

Attachments

  • Graph.PNG
    Graph.PNG
    35 KB · Views: 55
Mathematics news on Phys.org
  • #2
Zaprime said:
Hi.

I hope someone can assist me?

I have a sensor that is being used to detect a pulse triggered from a point on the surface of a disk rotating past the sensor. I am processing the data in real time to determine if the values would count as a pulse so that I can count up the number of revolutions.

Here is a picture of some sample data. The width of the pulse can vary quite significantly, as can the offset.
My current methodology is to take a cumulative average over time. I then calculate the percentage of the sensor value relative the average to normalise the data. I look at the normalised data and check for a high state and a low state. I also look at the period that elapses between declaring a high and low state to see if this is actually a realistic pulse.

I'm sampling every 5 ms. The problem I have with this method is that it requires a lot of adjusting and isn't proving very reliable across a bigger sample size. I'm wondering if there is a better way to track a pulse in real time?

I can post a CSV file with the values if someone would like to have a more detailed look at the data. There are some gaps in the data which I'm busy trying to track down and fix.

Hi Zaprime, welcome to MHB!

What is it that you need to adjust exactly?
And what is making it unreliable?

From your graph it seems to me that the pulses are fairly well-defined.
They have an edge-width of about 30 samples, a width of about 200-800 samples, and a height of 200 or more.

Possible improvements:
- Check the edge with a delta (like $a_{100(i+1)} - a_{100i}$), and see if it exceeds a threshold (e.g. 100).
- Use a median filter beforehand to eliminate the high frequency noise. That is, replace every sample by the median of the surrounding, say, 10 samples.
- Use a percentile instead of an average to identify the background level and the top of a pulse. For instance the 25% percentile to find the background level, and a 99% percentile to find the top of the pulse.

Note that medians and percentiles are more robust against noise and outliers than an average.

More advanced solutions, that are more computationally expensive, include:
- Use a Fourier transform to calculate the correlation to a pulse function.
- Use a Hough Transform technique.
 

1. What is the purpose of tracking a pulse in real time?

Tracking a pulse in real time allows for the continuous monitoring of a person's heart rate, providing valuable information about their cardiovascular health and any potential abnormalities or changes.

2. How is a pulse tracked in real time?

A pulse is typically tracked in real time using a pulse oximeter, which measures the oxygen saturation in the blood by detecting the pulsating flow of blood through the arteries. This information is then displayed on a screen in real time.

3. What are the benefits of tracking a pulse in real time?

Tracking a pulse in real time can provide immediate feedback on a person's heart rate and overall cardiovascular health. It can also help detect any irregularities or potential health issues, allowing for early intervention and treatment.

4. Can tracking a pulse in real time be done at home?

Yes, there are now portable and affordable pulse oximeters available for home use. However, it is important to consult with a healthcare professional for proper usage and interpretation of the results.

5. Are there any risks associated with tracking a pulse in real time?

The use of a pulse oximeter for tracking a pulse in real time is generally safe and non-invasive. However, prolonged or incorrect use may cause minor discomfort or skin irritation. It is important to follow the manufacturer's instructions and consult with a healthcare professional if any concerns arise.

Similar threads

Replies
14
Views
1K
Replies
12
Views
992
  • Engineering and Comp Sci Homework Help
Replies
10
Views
1K
Replies
2
Views
2K
Replies
5
Views
2K
Replies
3
Views
946
Replies
3
Views
1K
  • Materials and Chemical Engineering
Replies
12
Views
537
  • Electrical Engineering
Replies
5
Views
698
Back
Top