购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 信号预处理

在对信号进行分析处理之前,必须进行预处理工作,以便发现和处理数据中可能存在的各种问题。常见的数据预处理方法主要包括异常值处理、零均值化处理、消除趋势项、加窗处理、滤波。

2.2.1 异常值处理

在传感器采集数据、信号调理到A/D转换这一过程中,任何一个中间环节的瞬时失常或外界随机干扰都可能导致数字信号中含有异常值。数字信号中的各种分析处理方法对异常值的容错程度也各不相同,在部分情况下,即使是一个异常值的存在,也会在很大程度上影响处理结果,这就对异常值的识别和处理提出了要求。

3 σ 规则是常用的异常值处理方法,该规则基于对测试数据的平稳正态假设,其主要特点是计算简便。尽管平稳正态性过程具有广泛的代表性,但并非适用于所有测试数据,因此,3 σ 规则在处理实际问题时具有一定的局限性。当然,异常值处理的其他方法还有很多,如模式识别的方法等。但在实际工况监视与故障诊断系统中,考虑到分析、诊断的实时性要求,必须从处理方法的简便性和有效性两方面进行权衡。

2.2.2 零均值化处理

零均值化处理又称中心化。由于各种原因,测试所得的信号均值往往不为零,为了简化后续处理的计算工作,在分析数据之前一般要将被分析的数据转换为零均值的数据,这种处理就称为零均值化处理。零均值化处理对信号的低频段有特殊的意义,这是因为信号的非零均值相当于在此信号上叠加了一个直流分量,而直流分量的傅里叶变换是在零频率处的冲激函数。因此,如果不去掉均值,在估计信号的功率谱时,将在零频率处出现一个很大的谱峰,并会影响在零频率左、右处的频谱曲线,使之产生较大的误差。

对连续样本记录 x t t )采样后所得离散数据序列为 x i n ), n =1,2,…, N ,其均值 常通过下式估计:

零均值化就是定义一个新的信号{ u i }, n =1,2,…, N ,有

此时的{ u i }即为零均值化的信号,以后处理信号时,就以新信号{ u i }为出发点。

根据上述零均值处理的原理,计算两张图片的零均值归一化互相关函数的MATLAB代码如下。

2.2.3 消除趋势项

趋势项是样本信号中周期大于记录长度的频率成分。这可能是测试系统本身由于各种原因引起的趋势误差。数据中的趋势项,可以使低频时的谱估计失去真实性,所以,从原始数据中去掉趋势项是非常重要的工作。但是,如果趋势项不是误差,而是原始数据中本来包含的成分,那么,这样的趋势项就不能消除,所以,消除趋势项时要特别谨慎。消除趋势项最常用的方法是最小二乘法,它能使残差的平方和最小。该方法既能消除多项式趋势项,又能消除线性趋势项。对于其他类型的趋势项,可以用滤波的方法来去除。

设记录到的信号 x t )如图2-1(a)所示,它包含了图2-1(b)所示的趋势项和图2-1(c)所示的真实信号。趋势项是一个缓变的信号,可以用一个多项式来拟合该趋势项,多项式的阶次随趋势项的形状而定。一旦该多项式被确定,那么从 x t )中减去趋势项,就可以近似得到真实信号。

图2-1 消除趋势项示意

使用MATLAB实现消除趋势项的代码如下。

2.2.4 加窗处理

在实际进行数字信号处理时,往往需要把信号的观察时间限制在一定的时间间隔内,从而只需要选择一段时间信号进行分析。这样取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗处理操作。这样操作以后,常常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄露”。当进行离散傅里叶变换时,时域中的截断是必要的,因此,泄露效应也是离散傅里叶变换所固有的,必须进行抑制。要对频谱泄露进行抑制,可以通过窗函数加权抑制离散傅里叶变换的等效滤波器的振幅特性的副瓣,或用窗函数加权,使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。在后面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列。另外,在功率谱估计中也会遇到窗函数加权问题。

1.窗效应

加窗处理是截取测量信号中的一段信号,必然会带来截断误差,使得截取的有限长信号不能完全反映原信号的频域特性,即产生窗效应。如图2-2所示,正弦原始信号经过矩形窗函数之后,信号增加了新的频率成分,变成了无限带宽信号。这种信号在频率轴分布扩展的现象称为泄露。具体来说,加窗处理会增加新的频率成分,并且使谱值大小发生变化。从能量角度来讲,泄露现象相当于原信号各种频率成分处的能量渗透到其他频率成分上,所以,又称为功率泄露。

图2-2 矩形窗的频域波形

信号截断以后产生的能量泄露现象是必然的,因为窗函数的频谱为无限带宽,所以,即使 x t )为带限信号,经截断后必然成为无限带宽信号。由采样定理可知,无论采样频率多高,只要信号一经截断,就不可避免地引起混叠,因此,信号截断必然导致一些误差,这是信号分析中不容忽视的问题。但是当窗口宽度 T 趋于无穷大时,窗谱 W ω )将变为 δ ω )函数,而 δ ω )与 X ω )的卷积仍为 X ω ),这说明,如果窗口无限宽,即不截断,就不存在泄露误差。不过,要使窗口达到无限宽也是不可能的。

2.常用窗函数

实际应用的窗函数可以分为以下主要类型。

(1)幂窗:采用时间变量的某种幂次的函数,如矩形、三角形、梯形或其他时间变量的高次幂。

(2)三角函数窗:应用三角函数,即正弦或余弦函数等组合成的复合函数,如汉宁窗、海明窗等。

(3)指数窗:采用指数时间函数,如e -st 形式、高斯窗等。

下面介绍几种常用窗函数的性质和特点。

1)矩形窗

矩形窗是时间变量的零次幂窗,函数形式为

相应的窗谱函数为

使用MATLAB生成一个长度为100的矩形窗,代码及结果如下。

2)三角窗

三角窗是幂窗的一次方形式,函数形式为

相应的窗谱函数为

三角窗与矩形窗相比,主瓣宽约为矩形窗的两倍,但旁瓣小,而且无负旁瓣,如图2-3所示。

图2-3 三角窗的时域及频域波形

使用MATLAB生成一个长度为100的三角窗,代码及结果如下。

3)汉宁窗

汉宁窗可以看成3个矩形窗的频谱之和,函数形式为

相应的窗谱函数为

汉宁窗的时域及频域波形如图2-4所示。

图2-4 汉宁窗的时域及频域波形

从图2-4中可以看出,汉宁窗的主瓣加宽,旁瓣则明显减小,从减小泄露的观点出发,汉宁窗优于矩形窗。但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨率下降。

使用MATLAB生成一个长度为64的汉宁窗,代码及结果如下。

4)海明窗

海明窗也是余弦窗的一种,又称为改进的升余弦窗,其时间函数表达式为

相应的窗谱函数为

海明窗与汉宁窗都是余弦窗,只是加权系数不同。海明窗加权的系数能使旁瓣更小。实验表明,海明窗与汉宁窗都是很有用的窗函数。海明窗的时域及频域波形如图2-5所示。

使用MATLAB生成一个长度为64的海明窗,代码及结果如下。

图2-5 海明窗的时域及频域波形

5)布莱克曼窗

布莱克曼窗函数与汉明窗和汉宁窗函数的定义很像,不过增加了升余弦的二次谐波分量,其窗函数的定义为

使用MATLAB生成一个长度为64的布莱克曼窗,代码及结果如下。

6)切比雪夫窗

切比雪夫窗是一种对局部进行优化的时窗,因为它满足窗函数的最大振幅比原则,所以也称为最大振幅比时窗函数。其特点是旁瓣具有等波动性,也就是所有旁瓣高度相同。切比雪夫窗的函数形式为

式中, γ 为切比雪夫窗的形状参数。

使用MATLAB生成一个长度为64的切比雪夫窗,代码及结果如下。

图2-6所示为几种常用窗函数的波形图,其中矩形窗主瓣窄、旁瓣大,频率识别精度最高,幅值识别精度最低;切比雪夫窗主瓣宽、旁瓣小,频率识别率最低,但幅值识别精度高。

图2-6 几种常用窗函数的波形图

对于这几个常用的窗函数,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,如测量物体的自振频率等;如果分析窄带信号,且有较强的干扰噪声,则可选用旁瓣幅度比较小的窗函数,如汉宁窗、三角窗等;对于随时间衰减的函数,可采用指数窗来提高信噪比。

下面给出一个具体的例子,来说明上述窗函数的不同特性。

3.选窗原则

根据窗函数对于数据处理的影响,可参照下述原则选取理想的窗函数来改善频谱能量泄露问题。

(1)窗函数频谱的主瓣应尽可能窄,即能量尽可能集中在主瓣内,以提高谱估计时的频域分辨率和减少泄露,在数字滤波器设计中获取较小的过渡带。

(2)尽可能减小窗函数频谱最大旁瓣的相对幅度,以便使旁瓣高度随频率尽快衰减。

如果这两条不能同时满足,往往是增加主瓣宽度以换取对旁瓣的抑制。总之,在应用窗函数时,除要考虑窗函数频谱本身的特性外,还应充分考虑被分析信号的特点及具体处理要求。在一般情况下,当信号在“远”频段包含强干扰时,选用具有高旁瓣的窗函数;当信号在有用频率附近包含强干扰时,选择具有较低的大旁瓣级别的窗函数;当需要在某一频率附近分离两个或多个信号时,选择具有窄主瓣而平滑的窗函数;在信号频率组成的幅值比其频率精度位置更重要的场合,选择具有宽主瓣的窗函数;当信号频段较宽时,可采用均衡的窗函数或不加窗函数。

2.2.5 滤波

数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先必须对输入模拟信号进行限带、采样和模/数转换。数字滤波器输入信号的采样率应大于被处理信号带宽的两倍,其频率响应具有以采样频率为间隔的周期重复特性,且以折叠频率即1/2采样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号必须经数/模转换、平滑。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。

数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器,以及FIR滤波器。

传统的抗混叠滤波器设计采用的都是无源元件,如广泛使用的RC滤波器。这类滤波器在设计上有如下缺点。

(1)截止频率不可调,特别是对于通用的数据采集系统,采集频率可以人为设定,也要求截止频率能够人为设定,通常的做法是把截止频率固定为系统最高的采集频率,乘以一个大于2的系数作为最终的截止频率。

(2)高阶滤波器设计复杂,采用元件较多,参数调试不方便。

(3)有源器件和无源器件等元件之间的分布参数复杂,滤波器的性能很难保证。

(4)RC无源滤波器的截止频率呈非线性,依靠调节RC元件的参数调节很难适应这个非线性,灵活性差。

正是由于测控系统对滤波器的特殊要求,促进了集成有源滤波器、可编程有源滤波器的发展。有源滤波器的发展,一方面提供了高精度、高稳定性、高性能的集成有源滤波器;另一方面提供了通用的有源滤波器。可编程有源滤波器的出现是开关电容技术发展的结果,正是由于开关电容技术的成熟,使得可编程有源滤波器的实现成为可能。

基本的抗混叠滤波器有巴特沃斯(Butterworth)滤波器、贝塞尔(Bessel)滤波器、切比雪夫(Chebyshev)滤波器和椭圆(Elliptic)函数型滤波器4种。

根据不同的设计方法,以二阶有源低通滤波器为例,常用的类型及特点如表2-1所示。

表2-1 常用的滤波器类型及特点

工程上常用的数字滤波方法如下。

1.限幅滤波法(又称程序判断滤波法)

方法:根据经验判断,确定两次采样允许的最大偏差值(设为 A ),每次检测到新值时判断,如果本次值与上次值之差小于或等于 A ,则本次值有效;如果本次值与上次值之差大于 A ,则本次值无效,放弃本次值,用上次值代替本次值。

优点:能有效克服因偶然因素引起的脉冲干扰。

缺点:无法抑制那种周期性的干扰,平滑度差。

2.中位值滤波法

方法:连续采样 N 次( N 取奇数),把 N 次采样值按大小排列,取中间值为本次有效值。

优点:能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果。

缺点:对流量、速度等快速变化的参数不宜。

3.算术平均滤波法

方法:连续取 N 个采样值进行算术平均运算,当 N 值较大时,信号平滑度较高,但灵敏度较低;当 N 值较小时,信号平滑度较低,但灵敏度较高。 N 值的选取原则如下:一般流量测量,可取 N =12;对压力的测量,可取 N =4。

优点:适用于对一般具有随机干扰的信号进行滤波,这种信号的特点是有一个平均值,信号在某一数值范围附近上下波动。

缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM。

4.递推平均滤波法(又称滑动平均滤波法)

方法:把连续 N 个采样值看成一个队列,队列的长度固定为 N ,每次采样到一个新数据放入队尾,并扔掉原来队首的数据(先进先出原则)。对队列中的 N 个数据进行算术平均运算,就可获得新的滤波结果。 N 值的选取原则如下:一般流量测量,可取 N =12;对压力的测量,可取 N =4;对液面的测量,可取 N =4~12;对温度的测量,可取 N =1~4。

优点:对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。

缺点:灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM。

5.中位值平均滤波法(又称防脉冲干扰平均滤波法)

方法:相当于“中位值滤波法+算术平均滤波法”,连续采样 N 个数据,去掉一个最大值和一个最小值,然后计算 N -2个数据的算术平均值。 N 的取值范围为3~14。

优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。

缺点:测量速度较慢,和算术平均滤波法一样,比较浪费RAM。

6.限幅平均滤波法

方法:相当于“限幅滤波法+递推平均滤波法”,每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理。

优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。

缺点:比较浪费RAM。

7.一阶滞后滤波法

方法:取 a =0~1,本次滤波结果=(1 -a )×本次采样值+ a ×上次滤波结果。

优点:对周期性干扰具有良好的抑制作用,适用于波动频率较高的场合。

缺点:相位滞后,灵敏度低,滞后程度取决于 a 值大小,不能消除滤波频率高于采样频率的1/2的干扰信号。

8.加权递推平均滤波法

方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权,通常,越接近当前时刻的数据,权取得越大,给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。

优点:适用于有较大纯滞后时间常数的对象和采样周期较短的系统。

缺点:对于纯滞后时间常数较小、采样周期较长、变化缓慢的信号,不能迅速反映系统当前所受干扰的严重程度,滤波效果差。

9.消抖滤波法

方法:设置一个滤波计数器,将每次采样值与当前有效值比较,如果采样值等于当前有效值,则计数器清零。如果采样值不等于当前有效值,则计数器加1,并判断计数器是否大于或等于上限 N (溢出)。如果计数器溢出,则用本次值替换当前有效值,并清计数器。

优点:对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的开/关反复跳动或显示器上的数值抖动。

缺点:对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统。

10.限幅消抖滤波法

方法:相当于“限幅滤波法+消抖滤波法”,先限幅后消抖。

优点:继承了“限幅”和“消抖”的优点,改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统。

缺点:对于快速变化的参数不宜。

下面通过一个具体的案例来说明滤波在具体的信号处理中的作用及效果,可以看出,原信号经过滤波处理后,过滤了大部分噪声。

(1)在MATLAB命令行中输入“filterDesigner”,打开滤波器设计工具箱。

(2)设计一个滤波器:巴特沃斯低通滤波器,阶数为10阶,采样频率为500Hz,截止频率为50Hz,如图2-7所示。源代码见Filter_IIR_Butterworth.m。

图2-7 设计一个滤波器

以.m文件的形式导出到MATLAB中,如图2-8所示。

图2-8 以.m文件的形式导出到MATLAB中

(3)新建脚本,应用设计好的滤波器,如图2-9所示。源代码见Apply_Filter_IIR_Butterworth.m。

图2-9 新建脚本 Rv6IR9ptVdV0hmoBZDsue0RTCugv9yH6eQUlHfhyrpASgn+vFqISt+zWqPBmd4em

点击中间区域
呼出菜单
上一章
目录
下一章
×