信号处理仿真LMS算法结合频域检测心率值程序

描述

带着之前对频谱的疑问去查看程序!天啊,竟然犯了一个非常愚蠢的错误!画频谱图时居然没有用到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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分