设为首页
联系站长
加入收藏
 您的位置: Pecker's Home >> 文章频道 >> 电子技术 >> 基础知识 >> 正文
  用于清除数据噪声的简单数字滤波器         
用于清除数据噪声的简单数字滤波器
[ 作者:Richard Rice    转贴自:电子设计技术    点击数:734    更新时间:2007-8-22    文章录入:pecker

  很多系统都用一个ADC对温度和压力传感器产生的模拟数据进行采样。有时候,系统噪声或其它因素会使原本缓慢波动的数据乱跳起来。为了降低高频噪声,设计师经常会在传感器和模/数转换器级之间接一个模拟RC(电阻器-电容器)低通滤波器。但是,这种方法并不总是很理想或很实用。例如,要获得分钟级的时间常数,就需要非常大的R、C值。

  图1显示的是一个模拟RC低通滤波器以及它的设计公式。去除ADC线性范围内的噪声信号还有另一种方法,即使用模拟RC低通滤波器的数字等式。该滤波器的软件只有两行C代码:

  LPOUT=LPACC/K,式中滤波器的输出值为LPACC除以一个常数。 LPACC=LPACC+LPIN-LPOUT,式中增加了输入与输出之间的差值以更新LPACC。所有变量均规定为整数。

  模/数转换每获得一个新的输入采样LPIN时,软件都产生一个输出值LPOUT,它由一个经低通过滤的输入采样组成。常数K值的计算要根据系统的采样速率以及滤波器所需时间常数:K=T×SPS,其中K>1,而SPS是系统的采样速率。例如,对于一个采样速率为200次采样/秒的系统,所需时间常数为30秒时,常数K等于6000次采样。程序输入加上一个步长变化需要6000次采样,才能在输出端达到最终值的63%左右。

  低通累加器LPACC对大的时间常数和大输入值而言可以增长到很大。它会增长到K与LPIN最大可能值的乘积。在这些情况下,需要保证LPACC不会溢出,并可能需要设定一个较大的数据类型来放置LPACC。为避免起动时长久的稳定时间,在开始采样循环以前,可以将LPACC初始化到K乘以电流输入值。

  还可以扩充这个基本的滤波器概念,采用顺序执行多个滤波器代码段,使之适合于更高阶的滤波器,从而有更好的高频抑制性能。另外,还可以对LPACC使用数组变量,并用一组对应滤波器信号的常数K值乘以各通道采集的数据。

分享到:
    免责声明:本文仅代表作者个人观点,与Pecker's Home无关。登载目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字和图片(或其他媒体形式内容)的真实性、完整性、及时性本站不作任何保证或承诺。请读者仅作参考,并请自行核实相关内容。如果有侵犯版权事宜,请通知master@peckerhome.com,我们将在第一时间删除该信息。
  • 上一篇文章: 可吸收和提供电流的运放

  • 下一篇文章: 怎样辨别视频线的好坏
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
    处理器架构消亡史[00141]
    通信恩仇,5G江湖[00282]
    官方辟谣扫码支付引爆加油…[00525]
    谷歌搭售是不是作恶?可以…[00286]
    你对Zigbee无线连接了解多…[00516]
     
     最新5篇推荐文章
    Pecker之家开通用于电子元…[02-13]
    印刷电路板图设计经验[04-04]
    基于电力线通信的家庭网络…[03-23]
    利用USB控制器设计的Windo…[01-20]
    基于ARM920T微处理器的IDE…[01-20]
     
     相 关 文 章
  • 无相关文章

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论