叶春勇 发表于 2020-5-22 15:58

用一阶RC滤波器解释IIR和FIR数字滤波器区别

首先从:

列微分方程:

解得:

求得冲激响应:

叶春勇 发表于 2020-5-22 15:59

用matlab画出冲激响应:

linzhiqi1 发表于 2020-5-22 16:00

数字和模拟的区别
一个是数字滤波一个是模拟滤波器
各有千秋,一言难尽。

叶春勇 发表于 2020-5-22 16:02

FIR滤波器的由来:
根据FIR滤波器的公式:

采用冲击响应不变法,对连续信号的冲激响应进行采样:

求得FIR传递序列:


叶春勇 发表于 2020-5-22 16:03

用matlab,传递序列,求得RC=1,采样时间为0.1,采集65点

叶春勇 发表于 2020-5-22 16:05

对传递序列进行DFT

观察得到,这是一个低通,且无零点

叶春勇 发表于 2020-5-22 16:07

现在搞个信号4096个输入信号,x=0.5+0.5*sin(2*pi*1024*t/4096)

叶春勇 发表于 2020-5-22 16:08

那么输出序列:
输出序列等于传递序列与输入的卷积

叶春勇 发表于 2020-5-22 16:09

综上从FIR滤波器的设计来看,要求得传递函数,然后对传递函数进行采样,得到传递序列,这个传递序列与输入信号进行卷积,就是FIR滤波器。
这是用一阶RC低通滤波器的冲击响应去设计FIR滤波器。想法是疯狂的,实际上没人这么用fir滤波器,但是可以解释FIR的工作机制。

叶春勇 发表于 2020-5-22 16:17

现在根据一阶RC滤波器的传递函数来设计个IIR滤波器

需要对H(s)进行z转换
这里采用向后差分法

经转换:



叶春勇 发表于 2020-5-22 16:19

在matlab中用同样的方法观察输出波形

将输入的带偏置的正弦波进行了低通处理。

叶春勇 发表于 2020-5-22 16:22

IIR滤波器
根据传递函数,从s域转换的z域,然后转换成差分方程。
经比较:
1、FIR滤波器是用传递序列与输入信号进行卷积,运算负担重。
2、IIR滤波器,只是一个简单的迭代,运算负担非常小,非常适合单片机,但是会有相位上的滞后。

叶春勇 发表于 2020-5-22 16:52

linzhiqi1 发表于 2020-5-22 16:00
数字和模拟的区别
一个是数字滤波一个是模拟滤波器
各有千秋,一言难尽。 ...

根据二八定律,20%的知识,解决80%问题。
数字信号处理这本书很好,当我去思考什么才是那20%的知识。
最终发现
1、iir,一阶,二阶
2、fir,窗口法,频率采样法,iir搞不定的。
3、dft
4、相关
不知你觉得数字信号处理这本书的20%应该是什么?

qq553605454 发表于 2020-5-22 21:34

好贴。收藏。

00750 发表于 2020-5-23 11:08

mark

雪山飞狐D 发表于 2020-5-24 14:17

小伙子总结得不错

123987 发表于 2020-5-25 13:12

看这阵势小叶是要成为继Xu教授、HWM&may之后的第三股势力啊。呵呵!果然是长江后浪推前浪,一浪一浪又一浪。
页: [1]
查看完整版本: 用一阶RC滤波器解释IIR和FIR数字滤波器区别