数字低通滤波器的原理及实现

首先说一下,数字滤波器是怎么实现的
1.首先根据电路建立低通滤波器时域系统微分方程,得出低通滤波器t域模型
2.其次将对时域微分方程进行拉式变换,得出低通滤波器的s域模型

3.将模拟滤波器转换为数字滤波器,对连续系统进行离散化,对s域进行z变换,得出z域模型,常用的离散化方法有零阶保持、双线性变换等

4.手动将z域传函转换成差分方程,根据差分方程编写滤波代码


下面以一节惯性环节做低通滤波器为例

惯性环节:由于存在惯性元件,比如电容,输出不能立刻同步复现输入的信号,可以通过阶跃响应输入看出

数字低通滤波器的原理及实现_第1张图片

惯性环节t域方程

惯性环节s域传函,其中T为惯性时间常数,即2*pi*f,f为转折频率;K为惯性增益,这里令K为1


举例:令T=2*pi*f=2*3.14*10=62.8,即取滤波器转折频率为10HZ

1.用matlab将滤波器s域传函离散化到z域传函

数字低通滤波器的原理及实现_第2张图片


2.z域传函转换成差分方程

对ZH处理一下,变成

ZH=Y(z)/U(z)=0.0346+0.0346*z^(-1)/1-0.9391*z^(-1)

交叉相乘,变成

Y(z)-0.9391*z^(-1)*Y(z)=0.0346*U(z)+0.0346*z^(-1)*U(z)

Y(z)=0.9391*z^(-1)*Y(z)+0.0346*U(z)+0.0346*z^(-1)*U(z)

写出差分方程如下

Y(k)=0.9391*Y(k-1)+0.0346*U(k)+0.0346*U(k-1)


3.将差分方程转换到代码中

在代码中,将k换成t,表示当前时刻,t-1表示前一时刻,U(t)表示输入信号,Y(t)表示滤波输出信号

Y(t)=0.9391*Y(t-1)+0.0346*U(t)+0.0346*U(t-1)


下面是此滤波器波特图含义,10hz处,衰减-3db,此滤波器设计完成


数字低通滤波器的原理及实现_第3张图片数字低通滤波器的原理及实现_第4张图片

你可能感兴趣的:(计算机基础)