问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/zhuoyinping7159/article/details/80880648

数字低通滤波器是信号处理领域的重要工具,广泛应用于各种电子设备和系统中。本文将详细介绍数字低通滤波器的原理及其具体实现方法,通过数学推导和代码示例,帮助读者深入理解这一技术的核心概念。

数字滤波器的实现步骤

  1. 首先根据电路建立低通滤波器时域系统微分方程,得出低通滤波器t域模型
  2. 其次将对时域微分方程进行拉式变换,得出低通滤波器的s域模型
  3. 将模拟滤波器转换为数字滤波器,对连续系统进行离散化,对s域进行z变换,得出z域模型,常用的离散化方法有零阶保持、双线性变换等
  4. 手动将z域传函转换成差分方程,根据差分方程编写滤波代码

以一阶惯性环节为例

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

惯性环节的时域方程和s域传递函数

惯性环节的s域传递函数为:
[ G(s) = \frac{K}{1 + Ts} ]
其中,(T)为惯性时间常数,即(2\pi f),(f)为转折频率;(K)为惯性增益,这里令(K=1)。

举例:令(T = 2\pi f = 2 \times 3.14 \times 10 = 62.8),即取滤波器转折频率为10Hz。

MATLAB实现

  1. 用MATLAB将滤波器s域传递函数离散化到z域传递函数
  2. z域传递函数转换成差分方程

对(Z)变换后的传递函数进行处理:
[ ZH = \frac{Y(z)}{U(z)} = 0.0346 + 0.0346z^{-1} / 1 - 0.9391z^{-1} ]

交叉相乘,得到:
[ Y(z) - 0.9391z^{-1}Y(z) = 0.0346U(z) + 0.0346z^{-1}U(z) ]
[ Y(z) = 0.9391z^{-1}Y(z) + 0.0346U(z) + 0.0346z^{-1}U(z) ]

写出差分方程:
[ Y(k) = 0.9391Y(k-1) + 0.0346U(k) + 0.0346U(k-1) ]

代码实现

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

滤波器波特图

下面是此滤波器的波特图,可以看出在10Hz处,衰减-3dB,说明滤波器设计完成。

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号