打印

一个非常适合单片机的算法(内附匠人分析见14楼)

[复制链接]
楼主: whlz58
手机看帖
扫描二维码
随时随地手机跟帖
楼主
SUM=SUM-SUM/n+S

这个迭代公式实际上是指数函数, 冲击响应的离散序列为 (1 - 1/n)^k. 也可以被理解为 RC 滤波的数字形式。

使用特权

评论回复
沙发
highgear| | 2010-5-5 21:10 | 显示全部楼层
顶顶楼主, 这种公式很有用, 自己能总结出来非常了不起。

使用特权

评论回复
板凳
highgear| | 2010-5-6 21:26 | 显示全部楼层
25 楼 HWM:
搂主的公式没有问题, 不会越搞越大. 你的推导大致也是对的, 这样写更清楚些:
y(k+1) = y(k)*(1-1/n) + x(k+1)

这个迭代公式是收敛的,不会越搞越大. z变换公式:
y*z = y *(1-1/n) + x*z. 

a = 1 - 1/n 得到:
y/x = z/(z-a)

这个公式的传递函数是 z/(z-a), 教科书上可以查到这个公式是一个指数函数: a^k (k = 0, 1, 2, 3, ..... )
由于a<1, 所以 a^k 是收敛的. 如果 b = 1/a = a^(-1) 则时间域冲击响应的方程为:
f(t) = (1 - a^t) = 1 - b^(-t) , 也可以变换为:
f(t) = 1 - e^(-t/T) -------> 这也是 RC 滤波器的冲击响应函数.




 

使用特权

评论回复
地板
highgear| | 2010-5-6 23:12 | 显示全部楼层
更正 30 的错误, 
f(t) = (1 - a^t) = 1 - b^(-t), f(t) = 1 - e^(-t/T) 是阶越响应. 
f(t) = b^(-t), f(t) = e^(-t/T) 才是冲击响应函数.

使用特权

评论回复
5
highgear| | 2010-5-13 20:46 | 显示全部楼层
我再顶搂主一次。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则