在上一节中实现原始数据在时域的回放,这样有助于直观的认识采集的数据,以便进一步的分析和处理,数据处理时,我们可以从波形中提取和时间及强度相关的信息,并由此推演出其它物理量。
同时,我们也知道时域的波,是多个波叠加的结果,在某一时刻,为多个震动在此时刻的叠加,这部分知识,可以回顾一下这篇文章,傅立叶变换应用与性质。
参考:傅立叶变换应用与性质(https://blog.csdn.net/viswang/article/details/80727833)
如下图所示


映射到多个脏象上,那么可以认为此时的脉搏波,在这一时刻,为多个脏象震动叠加到血液上的结果,因此,通过频域分析,就可以了解到多个脏象震动的情况,从而提取到多个脏象频率及强度相关的信息,对于某个脏象可以单独把这个频率的相关的波单独提取出来,并由此推演出其它物理量。
本节只进行时域到频域的变换,直观的认识一下,由于我们使用原始数据只是一个简单的测量值,在测量过程中由于有没有出错,有没有误差我们不得而知,因此此次不涉及单独频率的反变换,后续章节将讨论反变换及误差问题。

时域到频域的变换需要进行如下操作:
A 对的量心率进行FFT变换,既对RawY_win[ ] 进行变换
B 绘图,实现动态效果

1、Python时域波形显示示例
A 对的量心率进行FFT变换,既对RawY_win[ ] 进行变换

导入numpy库

import numpy as np

FFT变换

xf = np.fft.fft(RawY_Win)

B 绘图,实现动态效果
分割窗口,时域放上面

 plt.subplot(2,1,1) #表示将整个图像窗口分为2行1列, 当前位置为1plt.ylim((0, 1000))plt.plot(RawX_Win,RawY_Win,"b--",linewidth=1)

分割窗口,频域放下面

plt.subplot(2,1,2)  #表示将整个图像窗口分为2行1列, 当前位置为2
plt.ylim((-10000, 10000))
plt.plot(xf,"b--",linewidth=1)

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

# -*- coding: utf-8 -*-"""
@author: viswang@163.com
"""import re
from matplotlib import pyplot as plt
import numpy as npRawY_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)xf = np.fft.fft(RawY_Win)plt.clf()plt.subplot(2,1,1) #表示将整个图像窗口分为2行1列, 当前位置为1plt.ylim((0, 1000))plt.plot(RawX_Win,RawY_Win,"b--",linewidth=1) plt.subplot(2,1,2)  #表示将整个图像窗口分为2行1列, 当前位置为2plt.ylim((-10000, 10000))plt.plot(xf,"b--",linewidth=1)plt.draw()plt.pause(0.0001)if not line:breakplt.show()    #显示图  

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

使用 PulseSensor 脉搏传感器测量心率之三:脉搏波信号处理(频域)(Python)2相关推荐

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

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

  2. 使用 PulseSensor 脉搏传感器测量心率之二:数据采集及保存( ProcessingPython)

    通常使用Pulse sensor心率传感器和arduino UNO搭建完硬件平台后,使用上位机PulseSensor_Amped_Processing_Visualizer软件,就可以查看实时心率图. ...

  3. 使用 PulseSensor 脉搏传感器测量心率之一:平台搭建

    转自:玩的就是心跳 -- 使用 PulseSensor 脉搏传感器测量心率 作者:邵国际 网址:https://zhuanlan.zhihu.com/p/27665378 写文章 https://pi ...

  4. 【实测PulseSensor 脉搏传感器】玩的就是心跳 —— 使用 PulseSensor 脉搏传感器测量心率

    https://zhuanlan.zhihu.com/p/27665378 转自:玩的就是心跳 -- 使用 PulseSensor 脉搏传感器测量心率  作者:邵国际  网址:https://zhua ...

  5. STM32cube之Pulse Sensor脉搏传感器测试

    首先介绍一下Pulse Sensor PulseSensor 脉搏传感器介绍 基本参数 供电电压: 3.3~5V 检测信号类型: 光反射信号(PPG) 输出信号类型: 模拟信号 输出信号大小: 0~V ...

  6. 光电脉搏传感器的研制和噪声分析

    光电脉搏传感器的研制和噪声分析 1 引 言 人体心室周期性的收缩和舒张导致主动脉的收缩和舒张, 使血流压力以波的形式从主动脉根部开始沿着整个动脉系统传播, 这种波称为脉搏波.脉搏波所呈现出的形态.强度 ...

  7. 采用arduino UNO和pulse sensor心率传感器进行心率测量

    转自:anning86525的博客 网址:https://blog.csdn.net/anning86525/article/details/80096816 1.准备工作 首先阅读一遍我们编写的pu ...

  8. Arduino Pulsesensor脉搏心率的检测

    开发板与传感器的型号 开发板:Arduino mega 2560 传感器:Pulsesensor脉搏心率传感器,我的模块购买链接https://m.tb.cn/h.fJbXs9y?tk=Wro828I ...

  9. 基于51单片机的心率计脉搏体温测量仪WIFI传输APP设计方案原理图

    系统的功能分析及体系结构设计 (末尾附文件) 系统功能分析 本系统采用STC89C52单片机+LCD1602液晶+脉搏传感器+温度传感器DS18b20+WIFI模块电路设计而成. 1.LCD1602液 ...

最新文章

  1. sbt+Scala IDE建立Scala项目
  2. linux中cp:overwrite提示的问题
  3. mysql 中default 和NULL
  4. Mysql主从复制原理以及实现
  5. Nginx负载均衡策略之least_conn
  6. c语言解析url编码,在C语言中如何实现对编码后的URL进行解码
  7. varnish关于Grace mode和Saint mode这两中模式配置
  8. 【算法笔记】B1015 德才论
  9. 中国输卵管癌治疗行业市场供需与战略研究报告
  10. java switch原则_Java switch case语句
  11. 【SQL】CONNECT BY 层次化查询
  12. CSS:设置文字不可选
  13. Python 爬虫 PhantomJs 获取JS动态数据
  14. c语言 键盘扫描码 c-free,FreeBarcode条形码制作工具
  15. matlab计算并联电阻怎么输入,如何用计算器快速计算并联电阻,并联电阻的计算方法...
  16. 家庭局域网接入Internet
  17. CVPR 2020 | 旷视研究院提出数据不确定性算法 DUL,优化人脸识别性能
  18. 模糊照片怎么修复清晰?快来看看这两个方法
  19. TNFBA治疗强柱达52周时脊柱新骨形成与慢性炎症损害和脂肪变性有关
  20. 八、血条的制作和boss敌人的产生(雷霆战机)

热门文章

  1. 2020082329奚铭泽
  2. cocos2d-x-lua工程的lua脚本加密
  3. 位运算,左移位,右移位
  4. 论文的教程-----笔杆网
  5. oracle数据库客户端安装完后连接测试服务端不成功时如何配置?
  6. Dell R740服务器配置RAID5+1/RAID6 配置实战
  7. Python常用类型转换函数
  8. 花旗整合全球财富管理业务
  9. F. Easy Fix
  10. Flutter开发之——交互组件-Slider