数字信号软件低通滤波算法
时间:10-02
整理:3721RD
点击:
[p=154, null, left][size=144px]Yn=a* Xn+[p=154, null, left][size=144px]([p=154, null, left][size=144px]1-a[p=154, null, left][size=144px])[p=154, null, left][size=144px]*Yn-1 [p=144, null, left][size=144px]式中
[p=144, null, left][size=144px]Xn[p=144, null, left][size=144px]——[p=144, null, left][size=144px]本次采样值
[p=154, null, left][size=144px]Yn-1[p=154, null, left][size=144px]——[p=154, null, left][size=144px]上次的滤波输出值;
[p=144, null, left][size=144px],[p=144, null, left][size=144px]a[p=144, null, left][size=144px]——[p=144, null, left][size=144px]滤波系数,其值通常远小于[p=144, null, left][size=144px]1[p=144, null, left][size=144px];
[p=154, null, left][size=144px]Yn[p=154, null, left][size=144px]——[p=154, null, left][size=144px]本次滤波的输出值。[p=154, null, left][size=144px]Yn=a* Xn+[p=154, null, left][size=144px]([p=154, null, left][size=144px]1-a[p=154, null, left][size=144px])[p=154, null, left][size=144px]*Yn-1 [p=144, null, left][size=144px]式中
[p=144, null, left][size=144px]Xn[p=144, null, left][size=144px]——[p=144, null, left][size=144px]本次采样值
[p=154, null, left][size=144px]Yn-1[p=154, null, left][size=144px]——[p=154, null, left][size=144px]上次的滤波输出值;
[p=144, null, left][size=144px],[p=144, null, left][size=144px]a[p=144, null, left][size=144px]——[p=144, null, left][size=144px]滤波系数,其值通常远小于[p=144, null, left][size=144px]1[p=144, null, left][size=144px];
[p=154, null, left][size=144px]Yn[p=154, null, left][size=144px]——[p=154, null, left][size=144px]本次滤波的输出值。
[p=154, null, left][size=144px]Yn=a* Xn+[p=154, null, left][size=144px]([p=154, null, left][size=144px]1-a[p=154, null, left][size=144px])[p=154, null, left][size=144px]*Yn-1 [p=144, null, left][size=144px]式中
[p=144, null, left][size=144px]Xn[p=144, null, left][size=144px]——[p=144, null, left][size=144px]本次采样值
[p=154, null, left][size=144px]Yn-1[p=154, null, left][size=144px]——[p=154, null, left][size=144px]上次的滤波输出值;
[p=144, null, left][size=144px],[p=144, null, left][size=144px]a[p=144, null, left][size=144px]——[p=144, null, left][size=144px]滤波系数,其值通常远小于[p=144, null, left][size=144px]1[p=144, null, left][size=144px];
[p=154, null, left][size=144px]Yn[p=154, null, left][size=144px]——[p=154, null, left][size=144px]本次滤波的输出值。
低通数字滤波的算法是
#define a 50 //定义加权系数
char value;//上一次采样值
char filter()
{
char new_value;//本次采样值变量
new_value=get_ad();
return (100-a)*value+a*new_value://返回的本次滤波结果
}
各位高手!请教一下,低通滤波的算法我虽然知道如上所示,可却不知道如何在程序中应用? 上一次采样值value在程序中该如何处理? value是通过上次采集数据得到的值,也是get_ad(); ?
太多不懂的疑问 ,请各位指点迷津,或者能否提供些程序中应用的实例供参考理解? 谢谢!
[p=144, null, left][size=144px]Xn[p=144, null, left][size=144px]——[p=144, null, left][size=144px]本次采样值
[p=154, null, left][size=144px]Yn-1[p=154, null, left][size=144px]——[p=154, null, left][size=144px]上次的滤波输出值;
[p=144, null, left][size=144px],[p=144, null, left][size=144px]a[p=144, null, left][size=144px]——[p=144, null, left][size=144px]滤波系数,其值通常远小于[p=144, null, left][size=144px]1[p=144, null, left][size=144px];
[p=154, null, left][size=144px]Yn[p=154, null, left][size=144px]——[p=154, null, left][size=144px]本次滤波的输出值。[p=154, null, left][size=144px]Yn=a* Xn+[p=154, null, left][size=144px]([p=154, null, left][size=144px]1-a[p=154, null, left][size=144px])[p=154, null, left][size=144px]*Yn-1 [p=144, null, left][size=144px]式中
[p=144, null, left][size=144px]Xn[p=144, null, left][size=144px]——[p=144, null, left][size=144px]本次采样值
[p=154, null, left][size=144px]Yn-1[p=154, null, left][size=144px]——[p=154, null, left][size=144px]上次的滤波输出值;
[p=144, null, left][size=144px],[p=144, null, left][size=144px]a[p=144, null, left][size=144px]——[p=144, null, left][size=144px]滤波系数,其值通常远小于[p=144, null, left][size=144px]1[p=144, null, left][size=144px];
[p=154, null, left][size=144px]Yn[p=154, null, left][size=144px]——[p=154, null, left][size=144px]本次滤波的输出值。
[p=154, null, left][size=144px]Yn=a* Xn+[p=154, null, left][size=144px]([p=154, null, left][size=144px]1-a[p=154, null, left][size=144px])[p=154, null, left][size=144px]*Yn-1 [p=144, null, left][size=144px]式中
[p=144, null, left][size=144px]Xn[p=144, null, left][size=144px]——[p=144, null, left][size=144px]本次采样值
[p=154, null, left][size=144px]Yn-1[p=154, null, left][size=144px]——[p=154, null, left][size=144px]上次的滤波输出值;
[p=144, null, left][size=144px],[p=144, null, left][size=144px]a[p=144, null, left][size=144px]——[p=144, null, left][size=144px]滤波系数,其值通常远小于[p=144, null, left][size=144px]1[p=144, null, left][size=144px];
[p=154, null, left][size=144px]Yn[p=154, null, left][size=144px]——[p=154, null, left][size=144px]本次滤波的输出值。
低通数字滤波的算法是
#define a 50 //定义加权系数
char value;//上一次采样值
char filter()
{
char new_value;//本次采样值变量
new_value=get_ad();
return (100-a)*value+a*new_value://返回的本次滤波结果
}
各位高手!请教一下,低通滤波的算法我虽然知道如上所示,可却不知道如何在程序中应用? 上一次采样值value在程序中该如何处理? value是通过上次采集数据得到的值,也是get_ad(); ?
太多不懂的疑问 ,请各位指点迷津,或者能否提供些程序中应用的实例供参考理解? 谢谢!
value = filter();不就可以了吗?打赏积分
有没有完整版的参考例程,抱歉啊 因为我是初学的菜鸟 所以有太多不懂的地方? 相信慢慢积累了以后就会了
顶!