基于MATLAB的IIR数字滤波器的设计与仿真
2022-07-20谢芳陆文骏
谢芳, 陆文骏
(安徽三联学院电子电气工程学院, 安徽合肥,230601)
欧盟将在2022 年7 月开始强制新车都必须配备驾驶员监测系统(Driver Monitor System), 提出两项要求, 其中一项是汽车驾驶员注意力不集中分心提示, 另一项是汽车驾驶员疲劳状态辨别及注意警示。但如何正确区分驾驶员清醒状态和疲劳状态依然是一个需要攻克的难题。借助脉搏测量技术实时监测驾驶员的脉搏信号, 对采集到的脉搏信号进行谱分析, 可以判断汽车驾驶员情绪状态及身体疲劳程度。问题是通过脉搏采集设备, 采集到的脉搏信号往往含有很多的噪声, 譬如人体呼吸等低频干扰,50 Hz的工频干扰以及其他的高频干扰, 所以对采集到的脉搏信号需要进行滤波处理, 滤除低频干扰、高频干扰保留纯净脉搏信号才能进行谱分析、特征值的提取等后续分析[1]。
本文针对采集到的含有低频和高频干扰的脉搏信号进行谱分析, 确定滤波器的性能指标, 采用双线性变换法设计3 种不同类型的高通与低通IIR 数字滤波器, 并在MATLAB 环境下仿真出3 种不同滤波器的频域特性, 验证设计的滤波器是否满足指标要求。
1 IIR 数字滤波器的设计原理
1.1 模拟滤波器
模拟滤波器的相关理论和设计技巧已经很成熟, 按功能分类有低通滤波器、高通滤波器、带通滤波器、带阻滤波器, 其中低通滤波器是最基础的, 且有典型的模板和闭合形式的公式。常用的典型模拟滤波器的模板有巴特沃斯型滤波器、切比雪夫型滤波器、椭圆型滤波器[4]。但是, 数字滤波器相比于模拟滤波器具有高准确性、高稳定性、灵活性好等优点。因此该文基于模拟滤波器理论设计无限长单位冲激响应数字滤波器(IIR)。从模拟滤波器设计IIR 数字滤波器就是要由H(s)变换得出H(z),即从s平面映射到z平面, 其中常用的变换法有脉冲响应不变法和双线性变换法[5]。其中脉冲响应不变法的设计原理是对模拟滤波器的单位脉冲响应进行等间隔采样, 模仿模拟滤波器的单位脉冲响应。其具体设计步骤:先将数字滤波器DF 的性能指标转换为模拟滤波器AF 的性能指标, 根据转换得到的性能指标设计模拟原型滤波器, 对模拟原型滤波器的传递函数H(s)取拉普拉斯逆变换得到h(t), 对h(t)进行时域采样得到h(n), 对h(n)进行z变换得出H(z)数字滤波器。该设计方法称为数字滤波器的间接设计方法[6], 因其准确、简便, 因而得到广泛的应用。
1.2 双线性变换法设计IIR 数字低通滤波器
1.3 IIR 数字滤波器的频率转换
实际使用的数字滤波器除了低通滤波器以外, 通常还有高通、带通、带阻等IIR 数字滤波器。为满足需要, 首先设计一个满足指标要求的模拟原型低通滤波器, 通过频率转换成所需要的各种不同功能的滤波器。模拟域频率转换具体指标如表1 所示[11]。
表1 模拟域频率转换
2 IIR 数字滤波器指标的确定
该文针对脉搏信号中的噪声问题, 采用双线性变换法设计IIR 数字滤波器。正常人的脉搏信号频率多在2~20 Hz 的范围内, 但在采集时会掺入0~1 Hz 的低频干扰、50 Hz 工频及高频干扰, 噪声干扰信号会严重影响后续分析, 所以需要设计相应滤波器滤除低频和高频噪声, 以实现脉搏信号的降噪处理、谱分析、特征值的提取等后续分析。根据需要确定滤波器的指标为: 滤除0~1 Hz 以及20 Hz 以上频率的噪声干扰信号。针对上述脉搏信号噪处理要求, 通常有2 种设计方案, 其中为fs阻带截止频率、fp为通带截止频率、fsam为抽样频率。
方案一: 利用带通滤波器直接进行滤波, 带通滤波器的设计指标为:fs1=0.1 Hz,fp1=0.9 Hz,fs2=20.9 Hz,fp2=20.1 Hz;
方案二: 利用高通滤波器与低通滤波器进行级联, 即将采集到的脉搏信号先通过高通滤波器, 滤除0~1 Hz 低频噪声, 然后将不含0~1 Hz 低频干扰的脉搏信号再通过低通滤波器, 滤除20 Hz 及以上高频干扰分量。高通滤波器的指标为:fp=0.9 Hz,fs=0.1 Hz,Ap=0.5 dB,As=40 dB; 低通滤波器的指标为:fp=20 Hz,fs=50 Hz,Ap=3 dB,As=60 dB; 将高通与低通滤波器进行级联进而实现对脉搏信号的降噪处理。
方案一由于设计的带通滤波器的过渡带很窄, 接近理想状态, 阶数很高, 故实现的成本也很高; 方案二设计出的滤波器阶数比方案一设计的滤波器阶数低, 易于实现, 故本文采用方案二进行设计。
3 MATLAB 仿真验证
MATLAB 拥有大量的执行计算任务的函数库[12], 并且具有强大的图形输出功能, 借助MATLAB 软件可以辅助设计滤波器, 以设计巴特沃斯滤波器为例, 常调用的函数有:
[N,wc]=buttord(wp,ws,Ap,As,′s′)% 确定巴特沃斯模拟滤波器的阶数N, 和3 dB 截频wc;
[num,den]=butter(N,wc,′s′)% 确定巴特沃斯模拟滤波器传递函数分子分母多项式系数;
[numt,dent]=lp2hp(num,den)%将模拟低通滤波器转换为模拟高通滤波器;
[numd,dend]=impinvar(num,den,Fs)%利用脉冲响应不变法设计数字滤波器;
[numd,dend]=bilinear(num,den,Fs)%利用双线性变换法设计数字滤波器。
借助MATLAB 软件丰富的函数和强大的图形输出功能, 帮助设计数字滤波器。本文分别以巴特沃斯滤波器、切比雪夫1 型、椭圆型模拟滤波器为模板利用双线性变换法设计IIR 数字高通滤波器和低通滤波器, 仿真结果如图1 所示。
图1 3 种不同滤波器仿真图
从MATLAB 仿真结果可以看出, 利用3 种不同模板设计的IIR 数字高通滤波器在0.1 Hz 频率点处的衰耗为50 dB, 在1 Hz 频率点的衰耗小于0.5 dB, 说明IIR 数字高通滤波器能够抑制1 Hz 以下的信号而1 Hz 以上的信号安全通过。
IIR 数字低通滤波器在20 Hz 频率点的衰耗小于3 dB, 在频率点50 Hz 处衰耗大于60 dB。表明该滤波器能够抑制50 Hz 以上的信号,20 Hz 以下的信号安全通过。
3 种滤波器满足设计指标的要求, 将含噪脉搏信号经过高通滤波器可以抑制1 Hz 以下的低频噪声信号, 再通过低通滤波器滤除50 Hz 以上的高频噪声, 因此将数字高通与数字低通滤波器进行级联可以实现对脉搏信号的降噪处理。其中以巴特沃斯、切比雪夫1 型为模板设计的IIR 数字高通滤波器的阶数为3, 椭圆型高通IIR 数字滤波器的阶数为2; 巴特沃斯IIR 数字低通滤波器的阶数为11, 切比雪夫1型IIR 数字低通滤波器的阶数为6, 椭圆型IIR 数字低通滤波器的阶数为5。阶数越高, 性能越好, 实现成本高, 巴特沃斯型滤波器的阶数最高, 但是巴特沃斯型滤波器在通带内具有最大平坦特性; 切比雪夫1型在通带内具有纹波, 椭圆型滤波器通带、阻带都有纹波, 所以巴特沃斯型滤波器的滤波效果最好。
4 结束语
本文针对采集到的脉搏信号中混有低频噪声和高频噪声问题, 提出2种降噪设计方案, 方案一因带通滤波器的过渡带窄难以实现, 故本文采用方案二即设计IIR 数字高通滤波器与IIR 数字低通滤波器,将IIR 数字高通滤波器与IIR 数字低通滤波器级联能够实现脉搏信号的降噪处理。并借助MATLAB 仿真验证了3 种不同类型的数字滤波器, 仿真结果表明双线性变换法设计的IIR 数字滤波器能够满足指标要求滤除0~1、50 Hz 工频及高频的噪声干扰信号, 且巴特沃斯型滤波器的滤波效果最好。