01_数字滤波器调研
1. 数字滤波器的常用几种形式:
1)自适应数字滤波器(DF)
常用的自适应滤波技术有:最小均方(LMS)自适应滤波器、递推最小二乘(RLS)滤波器格型滤波器和无限冲激响应(IIR)滤波器等。
2)复数数字滤波器
在输入信号为窄带信号处理系统中,常采用复数 DF 技术。
3)多维数字滤波器
在图像处理、地震、石油勘探的数据处理中都用到多维DF(常用是二维 DF)。
2. 常规的数字滤波算法
1) 限幅滤波
限幅滤波的方法是考虑到被测参数在两次采样时间间隔内,一般最大变化的增量 ,总是在一定的范围内,如果前后两次采样的实际增量 ,则认为是正常的,否则认为是干扰造成的,则用上次的采样代替本次采样。由此得到限幅滤波的算法算式:
2) 限速滤波
3)中值滤波
中值滤波能有效地克服因偶然因素引起的波动干扰。对温度、液位等变化缓慢的被测参数采用此办法能收到良好的滤波效果。但对于流量、速度等快速变化的参数一般不宜采用中值滤波法。
4) 算术平均滤波
算术平均值对周期性干扰具有良好的抑制作用,对脉冲干扰的抑制不够理想。
5)去极值平均滤波
算术平均滤波不能消除脉冲干扰引起测量值的偏差,中值滤波因只采样点,只有很窄的滤波范围。去极值平均滤波防脉冲干扰的算术平均滤波是把上述两种滤波方法结合起来,做到既防止脉冲干扰的影响,又能使周期性干扰得到平滑处理。具体的算法是对连续采集的多个采样用排队的方法按大小顺序排列,然后除去两端的最大值和最小值,剔除明显脉冲干扰的影响,取剩余的采样进行平均,所得结果作为本次滤波输出。
这种方法兼有算术平均滤波和中值滤波的优点,对快变参数和慢变参数都有抑制干扰作用,有利于提高采样的真实性。但应注意到,若采样点数太少,则趋于中值滤波的作用。若为了加快测量计算速度,也不能太大。常取为,即为四取二再取平均值法。它具有计算方便、速度快、存储量小等特点。
6)滑动平均滤波
以上介绍的各种平均滤波算法有一个共同点,即每取得一个有效采样值必须连续进行若干次采样,当采样速度较慢如双积分型A/D转换或目标参数变化较快时,系统的实时性得不到保障。滑动平均滤波算法只采样一次,将这一次采样值和过去的若干次采样值一起求平均,得到的有效采样值即可投入使用。如果取n个采样值求平均,RAM中必须开辟n个数据的暂存区。每新采集一个数据便存人暂存区,同时去掉一个最老的数据,保持这n个数据始终是最新的数据。这种数据存放方式可以用环型队列结构方便地实现,每存入一个新数据便自动冲去一个最老的数据。
滑动平均滤波法对周期性干扰有良好的抑制作用,平滑度高,灵敏度低但对偶然出现的脉冲性干扰的抑制作用差,不易消除由于脉冲干扰引起的采样值的偏差。因此,它不适用于脉冲干扰比较严重的场合,而适用于高频振荡系统。通过观察不同值下滑动平均的输出响应来选取值,以便既减少占有时间,又能达到最好的滤波效果。
2. 信号分析基本原理:
1)采样定理
2)变换:离散傅里叶变换IDFT/快速傅里叶变换FFT
3)谱分析:指的是把时间域的各种动态信号通过变换变换到频率域进行分析,谱分析一般泛指:
频谱分析:包括幅值谱和相位谱。
功率谱分析:包括自谱和互谱。
频率相应函数分析:系统输出信号频谱与输入信号频谱之比。
相干函数分析:系统输入信号与输出信号之间谱的相关程度。
倒频谱分析:频谱本身再进行Fourier变换而得到新的谱,包括功率倒频谱和复倒频谱。
4)随机信号的统计特征
均值:代表随机信号变化的中心趋势,即稳定分量或直流分量;
均方值:反应信号的强度或功率;
方差:反映的是信号幅值相对于均值的分散程度.
3.数字滤波的相关开源库(C++版)
1.) SP++ 3.0
SP++ (Signal Processing in C++) 是一个关于信号处理与数值计算的开源C++程序库,该库提供了信号处理与数值计算中常用算法的C++实现。(开源博客+源代码)
博客链接:https://my.oschina.net/zmjerry/blog/13049
Github链接:https://github.com/ceze/tspl
2.) eDSP
Github链接: https://github.com/mohabouje/eDSP
3.) Armadillo
链接: http://arma.sourceforge.net/docs.html#part_sigproc
4.) libdspl-2.0
Github链接:https://github.com/Dsplib/libdspl-2.0#libdspl-20-free-digital-signal-processing-algorithm-library
5.) IT++
链接:http://itpp.sourceforge.net/4.3.1/modules.html