带着之前对频谱的疑问去查看程序!天啊,竟然犯了一个非常愚蠢的错误!画频谱图时居然没有用到fft函数!哎,蠢到家了!只能先修订错误了!然后再看看心率检测程序的运行结果了!心率估计采用频谱估计的方式!此刻作为老程序员又在担心了:还会不会有其他的什么错误呢?虽然开始了担心,但总得先看程序的运行结果吧!
错了就再改,程序员还能怕反复吗?这个过程是失败走向成功的必由之路!那早年我读研究生的时候有没有在算法上碰壁呢?经常碰壁!给大家看看当年的老古董程序,也是关于lms算法的。当年用的是matlab 4.0软件!20年就这么过去了!天啊,我的青春没了,而且感到一事无成!怎么办?抓紧时间写文章讲解程序吧,再小的岗位也能发出光和热!
当年看过的论文!
2004年的一篇论文!
看到这,时间彷佛回到了过去!
此刻,我又想起自己深夜写代码累了去篮球场上练习投篮的场景,人生第一个三分球是在中科院上海天文台的篮球场上出现的,那晚周边很安静!当年的拼搏历历在目!拼搏不一定保证有美好的未来,但不拼博肯定没有!
认真的回顾程序!框图里面也是输出的是误差信号!
这两个框图是不是类似啊!当面后面少画了一根反馈线。误码信号要用来调整自适应滤波器中的权值!写到这,我可以明确的告诉大家,PPG中去除运动伪迹的方法完全实用于语音中的噪声消除!后续我也将给出语音消噪的一系列文章,敬请期待!
看看当下的程序吧!硬件环境在不断的提高,但我的算法水平呢?也有提高,不过提高的很慢!如何加速?身体好的时候就多写代码呗!下面展示LMS算法结合频域检测心率值的程序!
% example_lms_v2_2_1
% data:2021-10-26
%%% 程序说明
% 滤波器输入是原始的三轴加速度信号!
% 采用频谱估计来计算心率!
% 强化心率计算过程,采用窗口滑动方法!
% 30秒累积数据处理一次!
% 软件环境:2021a
close all;clear all;
%%%%%%%%%%%%%%%% 数据读取
%%%%%%% 采集数据
%%% 文件名
PPG_filename = ‘walk20211015-1.csv’; % PPG数据
%%% 读入数据
PPG_data = readmatrix(PPG_filename);
%%% 三轴数据
x_data = PPG_data(:,3);
y_data = PPG_data(:,4);
z_data = PPG_data(:,5);
% d3_data = x_data;
d3_data = sqrt(x_data.^2+y_data.^2+y_data.^2)/100;
%%% 心率数据
% 采样频率 25Hz
Fs = 25 ;
% 绿光数据
责任编辑:haq
全部0条评论
快来发表一下你的评论吧 !