我正在使用LED和接收器制作手指体积描记器(FP)。传感器产生模拟脉冲波形,经过滤波,放大并馈入3.3-0V范围的微控制器输入。此信号将转换为数字形式。
Smapling率为8MHz,处理器频率为26MHz,Precision为10或8位。
我遇到问题,想出一种强大的峰值检测方法。我希望能够从手指体积描记器中检测心脏脉冲。我已设法使用阈值方法生成准确的心率测量。然而,FP对移动非常敏感,并且信号的偏移可以基于移动而改变。但是,信号的峰值仍然会出现,但电压偏移会有所不同。
因此,我提出了一种使用斜率检测峰值的峰值检测方法。例如,如果产生峰值,则最大点之前和之后的斜率将分别为正和负。
您认为这种方法有多可行?是否有更简单的方法使用微控制器执行峰值检测?
答案 0 :(得分:0)
移动设备时,您仍然可以检测到错误的峰值。无论您是时间平均峰值持续时间还是应用FFT(快速傅里叶变换),都会出现这种情况。
使用FFT,你应该能够忽略你正在考虑的频率范围之外的峰值(即那些<30 bpm和> 300 bpm,比如说)。
正如Kenny所说,8MHz可能会压倒26MHz的芯片。如此高采样率的任何特殊原因?
答案 1 :(得分:0)
与某些评论一样,我也建议降低您的采样率,因为您现在只关心脉搏(即心率)。因此,假设您将关注静息心率,您将处于亚1Hz至2Hz范围(60 BPM = 1Hz),具体取决于受试者的健康状况,年龄等。
为了隔离感兴趣的频率范围,我还建议使用简单的低阶数字滤波器。如果您可以访问Matlab,则可以使用其过滤器设计和分析工具(Introduction to the FDATool)来使用数字滤波器设计。正如您所知,数字过滤(wiki)的计算成本并不高,因为它是乘法和加法的问题。
要回答问题的检测部分,是的,在微控制器内的体积描记器波形上实现峰值检测当然是可行的。以您的为例,基于斜率的峰值检测算法将对您的波形数据进行操作,搜索斜率变化,基本上是斜率波形过零的位置。
以下是您应用程序需要考虑的其他一些事项:
当然,如果您进行文献检索,您会发现各种潜在的算法,但我认为基于斜率的检测非常简单。希望它有所帮助。
答案 2 :(得分:0)
如果你可以使用零交叉来检测周期,即使在10倍的10倍过采样时,也可以使用快速n边缘线的拟合来找到确切的周期,然后减去新波的样本。那个时期跟上一个,并得到一个DC偏移。周期测量将具有采样率的精度。对时间和幅度标准化数据进行操作将更加容易。
与FFT相比,这种想法在计算上很轻,而FFT仍然需要额外的数据处理。