打印

DSP的一阶低通数字滤波实现

[复制链接]
830|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Sode|  楼主 | 2017-10-26 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP的一阶低通数字滤波实现


将普通硬件RC低通滤波器的微分方程用差分方程来表求,变可以采用软件算法来模拟硬件滤波的功能,经推导,低通滤波算法如下:

   Yn=a* Xn+(1-a)*Yn-1
式中 Xn——本次采样值
     Yn-1——上次的滤波输出值;
     ,a——滤波系数,其值通常远小于1;
Yn——本次滤波的输出值。


由上式可以看出,本次滤波的输出值主要取决于上次滤波的输出值 (注意不是上次的采样值,这和加权平均滤波是有本质区别的),本次采样值对滤波输出的贡献是比较小的,但多少有些修正作用,这种算法便模拟了具体有教大惯性的低通滤波器功能。滤波算法的截止频率可用以下式计算:
                 fL= a/2Pit   pi为圆周率3.14…
                    式中 a——滤波系数;
                           ,t——采样间隔时间;


例如:当t=0.5s(即每秒2次),a=1/32时;fL=(1/32)/(2*3.14*0.5)=0.01Hz,当目标参数为变化很慢的物理量时,这是很有效的。另外一方面,它不能滤除高于1/2采样频率的干搅信号,本例中采样频率为2Hz,故对1Hz以上的干搅信号应采用其他方式滤除,低通滤波算法程序于加权平均滤波相似,但加权系数只有两个:a和1-a。为计算方便,a取一整数,1-a用256-a,来代替,计算结果舍去最低字节即可,因为只有两项,a和1-a,均以立即数的形式编入程序中,不另外设表格。虽然采样值为单元字节(8位A/D)。

为保证运算精度,滤波输出值用双字节表示,其中一个字节整数,一字节小数,否则有可能因为每次舍去尾数而使输出不会变化。   设Yn-1存放在30H(整数)和31H(小数)两单元中,Yn存放在32H(整数)和33H(小数)中。








相关帖子

沙发
Biiiz| | 2017-10-26 16:48 | 只看该作者
好,这个比较实用。

使用特权

评论回复
板凳
apple武| | 2017-10-30 20:11 | 只看该作者
学习了,谢谢

使用特权

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

本版积分规则

1049

主题

1522

帖子

8

粉丝