Blood Pressure Measuring Algorithm

Discussion in 'The Projects Forum' started by mojo_risin, Mar 2, 2014.

  1. mojo_risin

    Thread Starter Member

    Jul 3, 2013

    I am still working on my project, the BP monitor. I am done with the hardware, so now I am developing the measurement routine. To wrap up: right now my circuit performs measurement and sends the values to PC, where I am using C to extract all the data I need. I am planning on using Measure While Inflating method, which basically pumps the air slowly, capturing the signals from the pressure sensor, until a preset value is reached. Then air is released and calculations are performed.
    My sampling frequency for both pressure and pulse oscillation signals is 500 Hz. The output is actually pretty decent and I am happy with it. The device stops pumping when the pressure in the cuff reaches 160 mmHg.
    Here is a plot of what I have up to this moment:


    Upper left: Raw data from MCU
    Upper right: Filtered data. Filtering is done in real time. Results are OK.
    Lower left: All signals on one graph.
    Lower right: This is where it gets interesting. The MCU would analyze the data in real time, starting to capture each peak in pulse oscillations after the third second, and pushing its value, along with the corresponding pressure value and sample number, into a 2d array.All this works and the graph shows the plotted contents of that array. I am able to determine the pulse rate and the mean arterial pressure (MAP) without any problems.

    Everything is fine, but I get to the point where I need to determine the points of the systolic and diastolic pressure. I really hope that someone who has experience with that kind of stuff reads this forum :)
    I am using a table to determine the value of the pulse corresponding to SYS and DIA (J Moraes). The problem is that when I get these values, they are way out of where they are supposed to be. Recommended values are 0.5*MAP for SYS and 0.75*MAP for DIA pulse magnitude. The values I get are pretty close, so they are not a problem; the problem is that when I calculate the pressure, corresponding to SYS or DIA pulse, it is really wrong. MAP is around 90 mmHg most of the times. This leads me to believe that the commercial algorithms decrease the magnitude of the pulse on the left and the right of the MAP pulse. But I cannot find anything about that, nor any examples.

    You can see that there is a considerable periodic alteration of the pulse magnitude - that's caused by breathing. I consider it normal that pulses on the both sides of MAP are not diminishing with the same rate... but I am not sure.

    So my problem is how to condition my signal so calculations of SYS and DIA coefficients would render accurate results. I would be happy to hear from experienced people.

    Thanks a lot for reading!