加速度数据中涉及的滤波器的带宽是多少

描述

在生活中,我们经常为了炫耀每天的锻炼成果,会用摇手机的方式来增加步数。当我们摇晃手机的时候也会产生加速度,那么传感器的数据能够区分出来吗?人走路的时候频率一定是在某一个范围之内的,比方说一秒钟走出了多少步,或者说一分钟只能走出多远,如果人拿着手机晃的频率非常的快,那么这个数据会被算法中的数字滤波器滤除。如果几乎一致呢?那就没有办法区分了。讲了这么多,就是为了引出一个基本知识:加速度数据中涉及的滤波器的带宽是多少呢?如何设定呢?

我一般采用函数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

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

全部0条评论

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

×
20
完善资料,
赚取积分