使用 PulseSensor 脉搏传感器测量心率之三:脉搏波信号处理(时域)(Python)1

为了分析脉搏传感器测量的心率数据,就需要对原始数据进行回放,从而有助于直观的认识采集的数据,以便进一步的分析和处理,使用Python可以轻而易举的在时域显示波形。

需要进行如下操作:
A 将保存的心率数据TXT 数据读入一个临时变量中,进行整理,整理后追加到一个数组中RawY_win[ ]
B 对RawY_win[ ]进行操作,实现RawY_win[ ]中的数据移动
C 绘图,实现动态效果

1、Python时域波形显示示例
1,将保存的心率数据TXT 数据读入一个临时变量中,进行整理,整理后追加到一个数组中RawY_win[ ]

with open('Plusedatald0517.txt', 'r') as f:while True:line = f.readline()     # 逐行读取    

以「S」为前缀的,表示脉搏数据(脉象图的数值化表示),因此,我们需要判断,判断是「S」为前缀的数据后,将line数据转换为整数类型,存入 Sensor3

  if lineS:# print(lineS)# print(re.findall(r'\d+', line))  #cut off the leading 'S'Sensor1 = re.findall(r'\d+', line)    #convert the string to usable muberSensor2 = Sensor1[0]Sensor3 = int(Sensor2)    #convert the string to usable int

2,对RawY_win[ ]进行操作,实现RawY_win[ ]中的数据移动
对RawY_win[ ]进行操作先删除第一个数据,然后将读入的Sensor3追加到末尾,就实现了数组的动态变化

        del RawY_Win[0]RawY_Win.append(Sensor3)

3, 绘图,实现动态效果

   plt.clf()   plt.ylim((0, 1000))plt.plot(RawX_Win,RawY_Win,"b--",linewidth=1) plt.draw()plt.pause(0.0001)

2、脉搏波波形显示(时域)完整程序

# -*- coding: utf-8 -*-"""  
@author: viswang@163.com
"""import re
from matplotlib import pyplot as pltRawY_Win = [555]*400
RawX_Win = [n for n in range(1, 401)]with open('Plusedatald0517.txt', 'r') as f:while True:line = f.readline()     # 逐行读取lineS=line.startswith('S', 2,3)  #leading 'S' for sensor data# lineB=line.startswith('B', 2,3)  #leading 'B' for BPM data#  lineQ=line.startswith('Q', 2,3)  #leading 'Q' means IBI data if lineS:# print(lineS)# print(re.findall(r'\d+', line))  #cut off the leading 'S'Sensor1 = re.findall(r'\d+', line)    #convert the string to usable muberSensor2 = Sensor1[0]Sensor3 = int(Sensor2)    #convert the string to usable int#Sensor3 = (1023 - int(Sensor2)) - 212del RawY_Win[0]RawY_Win.append(Sensor3)plt.clf()plt.ylim((0, 1000))plt.plot(RawX_Win,RawY_Win,"b--",linewidth=1) plt.draw()plt.pause(0.0001)if not line:breakplt.xlabel("Time(s)") #X轴标签  
plt.ylabel("Pluse")  #Y轴标签  
plt.title("Pluse") #图标题
plt.show()    #显示图  

写在最后的话,对原始数据进行回放,对采集的数据有直观的认识后,才能进一步的分析和处理,其中涉及到多方面的知识及反复迭代。
《难经.六十一难》将四诊概括为:望而知之谓之神、闻而知之谓之圣、问而知之谓之工、切而知之谓之巧,通过脉搏传感器测量心率,就是要实现“巧”为目标。
作为Python以及中医初学者,隐隐的有这种感觉,可以通过《难经.六十一难》为入手点,应用编程手段进行辅助诊断,可以进行如下结合
望而知之–图像分析
闻而知之–语音分析
问而知之–语音互动
切而知之–脉搏分析
有兴趣的朋友,可以邮件沟通:viswang@163.com

本文链接:https://my.lmcjl.com/post/15336.html

展开阅读全文

4 评论

留下您的评论.