在生活中,我们经常为了炫耀每天的锻炼成果,会用摇手机的方式来增加步数。当我们摇晃手机的时候也会产生加速度,那么传感器的数据能够区分出来吗?人走路的时候频率一定是在某一个范围之内的,比方说一秒钟走出了多少步,或者说一分钟只能走出多远,如果人拿着手机晃的频率非常的快,那么这个数据会被算法中的数字滤波器滤除。如果几乎一致呢?那就没有办法区分了。讲了这么多,就是为了引出一个基本知识:加速度数据中涉及的滤波器的带宽是多少呢?如何设定呢?
我一般采用函数firpm来生成滤波器的系数!当然也可以采用fir1函数来进行设计。firpm的介绍请见matlab的官方技术文档。以实例说明一下firpm的用法。
f = [0 0.3 0.4 0.6 0.7 1.0];
a = [0 1.0 0.0 0.0 0.5 0.5];
b = firpm(50,f,a);
[h,w] = freqz(b,1,512);
plot(f,a)
hold on
plot(w/pi,abs(h))
legend('Ideal','firpm Design')
xlabel([ 'Radian Frequency', ' w/pi'])
ylabel('Magnitude')
提问:可否用此函数设计点陷滤波器呢?
当然可以!!!
写到这,有必要回顾一下相关的理论知识!
firpm函数实现Parks-McClellan算法,该算法使用Remez交换算法和Chebyshev逼近理论来设计在指定频率响应和实际频率响应之间具有最佳拟合的滤波器。
这种滤波器可最小化指定频率响应和实际频率响应之间的最大误差,从这种意义上而言,它们是最优的滤波器;它们有时被称为minimax滤波器。以这种方式设计的滤波器在频率响应方面表现出等波纹特性,因此也称为等波纹滤波器。Parks-McClellan FIR 滤波器设计算法可能是最流行和最广泛使用的FIR滤波器设计方法。
fir1函数采用的是窗函数设计法,这里就不再赘述了。本公众号里面有大学课程《数字信号处理》,里面进行了详细的讲解。
一起来看看算法程序吧!这里展示的是计步功能,后续的文章将展示计步和心率检测结合的算法!为什么要结合?模式识别是心率算法的前提!程序涉及的数据采集文件已经上传到网盘,本系列文章中会多次给出下载链接!
责任编辑:haq
-
仿真
+关注
关注
50文章
4068浏览量
133528 -
信号
+关注
关注
11文章
2789浏览量
76723 -
智能手表
+关注
关注
36文章
3281浏览量
113951
原文标题:数字信号处理之信号处理仿真 第六章 智能手环之技术应用(4)—计步算法
文章出处:【微信号:gh_30373fc74387,微信公众号:通信工程师专辑】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论