当前课程知识点:计算机控制导论 > 第九章 硬件约束 > 9.4 处理I/O接口数据 > 9.4.1 数字滤波
阅读材料:
计算机控制系统——分析、设计与实现技术
ISBN: 978 703 055 8091
相关阅读:
教材8.4节
在利用I/O接口数据进行控制运算之前
需要对数据进行预处理
使读入的数据满足控制运算的要求
数字滤波就是一种常用的预处理方法
在控制系统当中
滤波环节主要存在于三个位置上
一个是【前向通道】的DA位置
在这个位置,滤波器要对控制器输出的数值序列进行平滑
使输出模拟信号满足功率放大器的需求
在反馈通道的AD位置上通常会增加反馈滤波器
用来消除读入信号的噪声
在指令输入通道
一般会增加指令滤波器
用来消除指令信号的突变
对产生的微分进行抑制
这些滤波器,从类型来看,都属于低通滤波器
它们的作用主要是消除噪声、降低谐振
与通信系统不同
控制系统的滤波器对信噪比要求不高
更看重的是系统的实时性
也就是在穿越频率处,要保持相位最小
为了满足这个要求,有的时候可以牺牲信噪比
这些环节的滤波器可以是模拟滤波器
但更多的是采用数字滤波器
所谓的数字滤波实际是一段程序
这段程序对有限长度的时序信号进行平滑处理
来估计它的真实值
消除环境干扰,或者是噪声
从本质上来看
它实际上是一个信号估计算法
是利用统计原理
对有限长度的数据序列
估计它的期望值的一种数学方法
它不需要硬件实现
但是却具有模拟滤波器的性能
在计算机控制系统中
滤波方法有很多
我们介绍一下常用的几种
首先是限幅滤波
在使用限幅滤波的时候
需要根据经验预先估计出每一个采样周期信号变化的最大区间
并用这个区间作为信号变化的阈值
在采样之后
需要把当前的采样值和前一个采样时刻的采样值进行比较
如果在一个采样周期内
信号的变化幅值超过了预设的阈值
就说明读入的是一个含有干扰的信号
是一个虚假的信号
因此需要把这个信号抛弃
抛弃掉含有干扰的噪音信号之后
当前的采样时刻输出就使用前一个采样时刻的采样结果
限速滤波是在限幅滤波的基础之上改进的一种滤波算法
它同样是使用阈值对当前的采样值和前一个采样时刻的采样值进行比较
如果超出阈值的话,就认为读入的是一个含噪声的信号
与限幅滤波不同
限速滤波在抛弃掉含干扰的信号之后
为了估算信号的实际值
它假设在相邻的两个采样周期之内,信号的变化速率是一样的
因此,在计算当前采样输出的时候
它是用前一个相邻采样周期的信号变化速率与采样周期相乘
来计算当前采样周期里信号的变化幅度
再利用前一个采样时刻的采样值计算当前采样时刻信号的估计值
无论是限幅滤波还是限速滤波
仅限于估计明显的干扰信号
如果是一般的随机干扰
采用限幅或者限速滤波,效果是有限的
这个时候可以考虑中值滤波
它是在一个采样脉冲里连续地进行奇数次读取
然后对读取的结果进行排序
由小到大或者由大到小
排序之后,选择中间位置的数值作为当前的采样输出
可以看出来 这个位置的数值是最接近于这个采样序列的平均值的一个数
在实际编程当中
为了提高运算速度
在排序的时候,通常只进行一半数据长度的排序
只要把中间位置的数据找出来就可以了
没有必要对所有的数据进行完整的排序
也可以采用算术平均滤波来消除随机干扰
它是在一个采样脉冲里进行若干次连续读数
然后对读数进行求平均的算法
为了剔除采样当中有可能读入的极大或者是极小的明显的干扰信号
可以使用去极值算术平均滤波
它在进行算术平均值之前
需要把数据序列当中的极大值和极小值剔除
因此可以消除明显的干扰
也可以利用历史数据进行滤波
就是滑动平均滤波
它是把当前采样的值和前面若干时刻的历史数据作为一个有限长度的数据序列进行平均
这样有利于数据的平滑
在此基础之上,可以使用滑动加权平均滤波算法
对有限长度的历史数据进行加权平均滤波
每一个时刻的权重取决于我们对该时刻噪声对信号的贡献大小的估计
不同的数字滤波方法适用于不同的应用场合
我们在使用的时候
需要根据实际的信号特点加以选择
-名人堂
-关于考核
-课程大纲测试
-学习合同
-学习任务
--学习任务
-1.1 什么是计算机控制
-1.2 为什么学习计算机控制
-1.3 怎样学习计算机控制
-第1周作业
-用户需求调查问卷
-学习任务
--学习任务
-2.1 概述
--2.1 概述
-2.2 典型形式
-【思政阅读】马少梅,范建文:回望历史——记录我国自动化仪表的成长与发展
-第2周作业
-学习任务
--学习任务
-3.1 信号采样
-3.2 信号重构
-第3周作业
-学习任务
--学习任务
-4.1 回顾:连续系统的数学描述
-4.2 离散对象的数学描述
-4.3 系统模型的运算
-第4周作业
-学习任务
--学习任务
-5.1 回顾:连续系统的性能分析
-5.2 离散系统的指令响应
-5.3 离散系统的性能描述
-第5周作业
-学习任务
--学习任务
-6.1 模拟化设计
-6.2 离散化方法
-第6周作业
-学习任务
--学习任务
-7.1 数字化设计
-7.2 解析法
-7.3 试探法
-第7周作业
-学习任务
--学习任务
-8.1 可控实现形式
-8.2 数值精度问题
-8.3 计算时延问题
-第8周作业
-学习任务
--学习任务
-9.1 硬件约束的抽象化
-9.2 选择运算平台
-9.3 选择I/O设备接口
-9.4 处理I/O接口数据
-第9周作业
-学习任务
--学习任务
-10.1 需求分析
-10.2 架构设计
-10.3 任务调度策略
-10.4 可靠设计模式
-第10周作业
-期末考试卷【互评】