嵌入式学习之数字一阶低通滤波器

admin 2024-11-15 118人围观 ,发现202个评论

俗话说得好,一流程序员靠数学,二流靠算法,三流靠逻辑;今天就和大家聊一聊嵌入式中的常用算法。

一阶低通滤波器

一阶低通滤波器是通过软件算法模拟硬件上的RC滤波器,用来抑制干扰信号,数学表达式为:

y(t)=k*x(t)+(1-k)*y(t-1)(1k0)【1】

式中:y(t)是此次滤波器的输出,x(t)是此次滤波器的输入信号,y(t-1)是上一次滤波器的输出;k为数字滤波器的采样系数,实际取值取决于滤波时间常数和采样周期;

若采样间隔△t足够小,则滤波器的截止频率为:

f=k/(2*pi*△t)

例如,采样频率为19.2KHz,K为0.06518,则截止频率为200Hz

时域仿真模型

接下来我们用matlab编写一个.m文件,加上一阶低通滤波器看下他的效果;

一阶低通滤波器

原始信号为50Hz,幅值为5;采样频率为19.2KHz,K为0.06518;可以看到经过低通滤波器后已经将高频噪音信号滤除掉了,非常接近原始信号。这里要注意,低通滤波器的截止频率一定要高于原始信号,否则会导致原始信号失真。

滤波器效果比较

如上图,原始信号均为幅值为5的正弦信号,左图的频率为500Hz,右图的频率为2000Hz;可以看到幅值和相位都被改变了;所以在使用低通滤波器时候一定要注意了,不能让波形失真。

结语
猜你喜欢
    不容错过