软件滤波设置通常涉及以下步骤和参数调整:
限幅滤波法
方法:根据经验判断确定两次采样允许的最大偏差值(设为A)。每次检测到新值时,如果本次值与上次值之差大于A,则本次值无效,放弃本次值,用上次值代替本次值。
优点:能有效克服因偶然因素引起的脉冲干扰。
缺点:无法抑制周期性的干扰,平滑度差。
应用:适用于需要克服偶然脉冲干扰的场景。
中位值滤波法
方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。
优点:能有效克服因偶然因素引起的波动干扰,对温度、液位等变化缓慢的被测参数有良好的滤波效果。
缺点:对流量、速度等快速变化的参数不宜。
应用:适用于对波动干扰敏感且被测参数变化缓慢的场景。
算术平均滤波法
方法:连续取N个采样值进行算术平均运算。N值较大时,信号平滑度较高,但灵敏度较低;N值较小时,信号平滑度较低,但灵敏度较高。
优点:适用于对一般具有随机干扰的信号进行滤波,信号有一个平均值,在某一数值范围附近上下波动。
缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM。
应用:适用于需要较高平滑度和一定灵敏度的信号滤波。
递推平均滤波法(滑动平均滤波法)
方法:把连续取N个采样值看成一个队列,队列的长度固定为N。每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据(先进先出原则)。把队列中的N个数据进行算术平均运算,获得新的滤波结果。
优点:适用于实时控制,滤波效果较好,计算简单。
缺点:需要存储N个采样值,对RAM需求较大。
应用:适用于实时性要求高且对RAM资源有限制的场合。
使用MATLAB设计滤波器
方法:在MATLAB中,可以使用FDAtool工具或滤波器设计工具来设计数字滤波器。选择滤波器类型(如FIR或IIR),设置滤波器阶数、频率参数(如采样频率、通带截止频率等),并调整其他参数(如阻带衰减、通带纹波等)。
优点:设计过程直观,参数调整灵活,可生成用于FPGA配置的滤波器系数。
缺点:需要一定的MATLAB使用经验,设计过程可能较为复杂。
应用:适用于需要高精度滤波且对实时性有一定要求的场合。
建议
选择合适的滤波方法:根据具体应用场景和需求选择合适的滤波方法。例如,对于需要克服偶然脉冲干扰的场景,限幅滤波法是一个简单有效的方法。
调整参数:根据实际测量的信号特性和干扰情况,调整滤波器的参数(如A值、N值等),以达到最佳的滤波效果。
测试和验证:在实际应用中,对滤波器进行测试和验证,确保其性能符合预期。