原理
陷波滤波器指的是一种可以在某一个频率点迅速衰减输入信号,以达到阻碍此频率信号通过的滤波效果的滤波器。陷波滤波器属于带阻滤波器的一种,只是它的阻带非常狭窄,起阶数必须是二阶(含二阶)以上。 简单的(二阶)陷波滤波器是RLC串联电路,这个电路滤除的频率可以通过这个公式计算:。
陷波器在实际的应用中需求十分广泛。比如,采集心电的产品中为了过滤工频的杂散信号,必须要使用这个滤波器,还有就是采集脑电的,以及音频防啸叫领域,都是必须的。
实例解析
算法的matlab其实已经有现成的函数,源码如下所示:
notchSpecs = fdesign.notch("N,F0,Q,Ap",2,0.5,10,1); notchFilt = design(notchSpecs) fvtool(notchFilt)
效果如下所示:
前面讲过,想在心电等生理信号测量领域测量心电信号,要使用二阶陷波器。这里的iirnot窗函数就是用来生成二阶陷波器的参数的。 源码如下所示:
F0 = 60; % Interference is at 60 Hz Fs = 3000; % Sampling frequency is 3000 Hz BW = 6; % Choose a bandwidth factor of 6Hz [num1,den1] = iirnotch(F0/(Fs/2),BW/(Fs/2)); fvtool(num1,den1,'Fs',Fs);
效果图如下所示:
从这上面可以看出,二阶陷波器的的阻带非常窄,可以用来消除工频干扰。
实物制作
前面只是原理,现实的情况是,我们该怎么才能制作一个陷波器呢? 这里要有几个基本的素材需要准备。一个是DSP处理平台,可以运行iirnotch算法。 另外一个就是c语言版的定点iirnotch算法。两个一旦具备,就可以做出一个实物的iirnotch滤波器了。 经过一段时间的摸索和积累。笔者终于在模块上实现了该功能,成功的在某些产品上用了。下面晒一下模块的图了。
作者:虚生 出处:https://www.cnblogs.com/dylancao/ 以音频和传感器算法为核心的智能可穿戴产品解决方案提供商 ,提供可穿戴智能软硬件解决方案的设计,开发和咨询服务。 勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |