滤波器的设计(二)

这篇博文以最简单的一阶低通滤波器为例,来叙述一个滤波器从设计到嵌入式实现的过程:

对于一个一阶低通滤波器,其控制模型就是一个简单的惯性环节,写成传递函数的形式: H ( s ) = 1 T s + 1 H(s)= \frac {1} {Ts+1} H(s)=Ts+11 T T T为时间常数,令 1 T = w c \frac {1}{T}=w_c T1=wc w c w_c wc为截止频率,单位为 r a d / s rad/s rad/s,令 2 π f c = w c 2\pi f_c=w_c 2πfc=wc,截止频率 f c f_c fc的单位为 h z hz hz

我们令这个低通滤波器的截止频率为25hz,画出其bode图如下:

在这里插入图片描述

可以看到,幅值下降 − 3 d B -3dB 3dB处,对应截止频率 25 h z 25hz 25hz;我们现在得到了一个简单的一阶低通滤波器的传递函数表达,接下来需要对上述滤波器进行离散化处理(z变换),以便在嵌入式平台实现,通过上一节我们知道z变换有很多种方法,但是对低通滤波器来说,一般使用一阶向后差分,其表达形式如下:

s = 1 − z − 1 T s s=\frac{1-z^{-1}}{T_s} s=Ts1z1

带回可得:

H ( z ) = S o u t ( z ) S i n ( z ) = T s 1 − z − 1 2 π f c + T s H(z)=\frac{ S_{out}(z)}{S_{in}(z)}=\frac{T_s}{\frac{1-z^{-1}}{2\pi f_c}+T_s} H(z)=Sin(z)Sout(z)=2πfc1z1+TsTs

R C = 1 2 π f c RC=\frac{1}{2\pi f_c} RC=2πfc1,整理可得:

S o u t ( z ) = R C R C + T s S o u t ( z ) z − 1 + T s R C + T s S i n ( z ) S_{out}(z)=\frac{ RC}{ RC+T_s } S_{out}(z)z^{-1}+\frac{T_s}{RC+T_s} S_{in}(z) Sout(z)=RC+TsRCSout(z)z1+RC+TsTsSin(z)

即:

S o u t ( n ) = R C R C + T s S o u t ( n − 1 ) + T s R C + T s S i n ( n ) S_{out}(n)=\frac{ RC}{ RC+T_s } S_{out}(n-1)+\frac{T_s}{RC+T_s} S_{in}(n) Sout(n)=RC+TsRCSout(n1)+RC+TsTsSin(n)

T s R C + T s = a \frac{T_s}{RC+T_s}=a RC+TsTs=a则有:

S o u t ( n ) = a S i n ( n ) + ( 1 − a ) S o u t ( n − 1 ) S_{out}(n)= aS_{in}(n)+ (1-a)S_{out}(n-1) Sout(n)=aSin(n)+(1a)Sout(n1)

下面是PX4中的一阶低通滤波器实现源码:

float BlockLowPass::update(float input)
{
       if(!PX4_ISFINITE(getState())) {
           setState(input);
       }
       float b = 2 * float(M_PI) * getFCut() * getDt();
       float a = b / (1 + b);
       setState(a* input + (1 - a)*getState());
       return getState();
}

滤波效果测试:
令输入信号为 y = y 1 + y 2 + y 3 y=y_1+y_2+y_3 y=y1+y2+y3,且
y 1 = 2 s i n ( 2 π f c 1 t ) y_1=2sin(2\pi f_{c1}t) y1=2sin(2πfc1t)
y 2 = 3.5 s i n ( 2 π f c 2 t ) y_2=3.5sin(2\pi f_{c2}t) y2=3.5sin(2πfc2t)
y 3 = 5 s i n ( 2 π f c 3 t ) y_3=5sin(2\pi f_{c3}t) y3=5sin(2πfc3t)
f c 1 = 5 h z , f c 2 = 35 h z , f c 3 = 45 h z f_{c1}=5hz,f_{c2}=35hz,f_{c3}=45hz fc1=5hz,fc2=35hz,fc3=45hz采样频率取100hz,则对该信号滤波前后的效果图如下所示:

在这里插入图片描述
频谱图如下所示:
在这里插入图片描述
可以看到,频率大于截止频率的信号幅值得到了衰减,这表明惯性滤波器可以较好的滤除掉信号中的高频部分,但是它的缺点也很明显:高频段幅值下降的不够快,并且有较大的相位滞后

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值