我是靠谱客的博主 清爽柜子,最近开发中收集的这篇文章主要介绍数字低通滤波器的原理及实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

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


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

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


惯性环节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.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,此滤波器设计完成


最后

以上就是清爽柜子为你收集整理的数字低通滤波器的原理及实现的全部内容,希望文章能够帮你解决数字低通滤波器的原理及实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部