便携式人体脉搏检测系统(2)

LabView串口通信

LabView通过VISA能与GPIB、USB、串口等大多数仪器总线连接。

便携式人体脉搏检测系统(2)
一般的串口控制步骤是:

  • 配置串口;
  • 读写串口;
  • 关闭串口。

配置串口

便携式人体脉搏检测系统(2)
具体实例如下所示:
便携式人体脉搏检测系统(2)
图下方的while循环表明,如果没有选择端口,则不可读取数据。

数据读取处理

便携式人体脉搏检测系统(2)

  • 首先读取数据;
  • 显示出数据所描述的波形,得出单频测量模块的频率测量值;
  • 用三点法得出测量频率值;
  • 多周期计数法计测量脉搏信号;
  • 对测量所得数据处理及显示。

1. bytes at port确定字节数

便携式人体脉搏检测系统(2)

这个组合的功能是,读取VISA串口已有的全部数据。组合的前面,是 VISA 串口字节数,函数路径见上图。bytes at port 利用一个读取缓冲区字节数,读取到字节数,确定了 VISA要 读取的字节数,然后再通过读取 VISA 读出来。简而言之,前面的先侦测下串口缓冲区有多少数据,侦测完后告诉 VISA 读,VISA就全读出来。

2.Build Waveform

便携式人体脉搏检测系统(2)

读取数据后波形出来是个簇,包含三个分量:Y是波形数据,dt是时间间隔。
构建波形后,通过后面的测量模块可得到脉搏测量频率。

3.延时模块

便携式人体脉搏检测系统(2)

此部分是为了释放电脑核心,一个循环会占用CPU的一个核心,如果不加掩饰,配置低的电脑容易卡死。

4.交流电路参数测量——三点法

便携式人体脉搏检测系统(2)

这里采用时域方法——三点法处理。
三点法:建立在三角函数变换基础上的数据拟合方法。

  • 假设被测函数是正弦函数,在等间隔采样的前提下(包括非整周期采样)可以利用相邻3个数据样本,导出求解信号频率的线性方程,进而拟合出方程系数,最后求出频率。
  • N个样本,最小二乘法拟合可以得到一个较准确的cosθ。
  • 函数:Linear Fit Coefficients。

便携式人体脉搏检测系统(2)

一言以蔽之,取数组里面的3个数,将数1和数3相加,其作为曲线拟合的X,再把数2乘2作为曲线拟合的Y,得出斜率后,再做反余弦,反余弦后乘缩小100(采样频率)的两倍π,最后得出结果。

5.交流电路参数测量——多周期计数法产生方波信号

便携式人体脉搏检测系统(2)

采用多周期计数法,可以采用阈值法,将脉搏信号转化成方波信号,再进行后续处理。
数组的数量为for循环的次数,而后均值与数组中的数做比较,均值若大于数组中数则输出布尔值T,否则为F,从而后构建成方波信号。

6.交流电路参数测量——多周期计数法判断信号开始结束

便携式人体脉搏检测系统(2)

多周期计数法还需要判断一个周期的开始和结束,可采用过零法和阈值法,此例采用阈值法。若数组相邻索引值正好构成一个周期内的方波信号,则给选择结构的条件为真,输出索引数据,反之输出0。

7.交流电路参数测量(4)

便携式人体脉搏检测系统(2)

  • 数组索引的数相即为最终采样数据,相邻两个样本的差值即为当前周期的样本数,乘以采样周期,再取倒数,即为一个周期内的样本数。
  • 然后取多个周期,再取均值,即作为最后的频率测量值。
    m个周期的均值:

便携式人体脉搏检测系统(2)

  • 每分钟脉搏次数 = 脉搏频率 × 60s。

8.结束程序

便携式人体脉搏检测系统(2)
因为整个程序有两个循环,但只有一个结束按钮,如果直接挂局部变量,会报布尔动作的错误,所以采用此种形式。

关闭串口

便携式人体脉搏检测系统(2)
关闭串口,即通信结束。

整体展示

  • 前面板

便携式人体脉搏检测系统(2)

  • 后面板

便携式人体脉搏检测系统(2)

此程序整体采用顺序结构,把演示放在帧里还有一个好处是,循环开始时,先延时在开始后面循环里的程序。


END!

上一篇:Pyhton开源框架(加强版)


下一篇:Python开源框架