一阶滤波算法公式推导

文章的标题起的有点大了,其实也没有太高深的理论,就是一些简单的转化。事情的起因是这样的,一位同事在网上看到了程序匠人写的一份关于一阶滤波算法的文章(文章链接:http://www.docin.com/p-745334438.html),对里面的一个推导过程不太理解,我就一时热心帮忙看了一下,顺便把推导过程记录在这里,和大家分享一下,也许会有人需要吧。公式如下图蓝色字体。

在推导之前我们先做一些符号定义:

N-----> 新采样值

O-----> 上次滤波结果

R-----> 本次滤波结果

A-----> (一级滤波系数÷256)

按照以上定义,公式原型为:R = N*A+O*(256-滤波系数)÷256

将上面的括号打开: R = N*A+O*256÷256 -O* 滤波系数÷256

进一步化简得到: R = N*A+O -O* A  

将上式提公因式:R =O +(N-O)*A

分类讨论:

当N > O 时:R =O +(N-O)*A

当N < O 时:R =O-(O-N)*A

将讨论结果中的符号替换成文字,就得到了图片中化简后的公式。

其实这一化简过程并没有什么难度,但是经过化简以后可以减轻CPU的计算负担,尤其是对做嵌入式系统来说,就想程序匠人说的可大大提高效率。

其实我觉得作为程序开发者不单单要只盯着编程语言,还要掌握一些数学的方法,数学可以帮之我们提高逻辑思维用于解决问题的能力,尤其是当我们遇到较为复杂的逻辑时除了在纸上画一画流程图缕清思路以外,也可是尝试一下数学的方法,帮我们把问题简化。

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值