给每个问题一个最好的答案

最方便的ChatGpt使用方法

实现FIR滤波器这么简单,为什么各种数字信号处理教材堆砌那么多公式、引入那么多复杂概念,让人望而却步?

请先 登录 后评论

1 个回答

admin - 书生,情报局长
为什么这么简单 是因为数字滤波器的发展本就是为了让大家能够简单的通过几行代码就行使用

以巴特沃斯低通滤波器为例:

对应的归一化参数表如下(如果期望直流()增益为1,则d0=a0)

意思是如果你按照表格里的参数,带入滤波器公式中,就能得到对于阶数的归一化滤波器,即截止频率为1弧度(hz)的滤波器。

例如我想得到一个截止频率为hz的二阶巴特沃斯滤波器,就把n=2的系数带入方程,可得

有了这个归一化滤波器,我们可以很容易的得到任意截止频率的滤波器,只需要另就可以的带一个截止频率为wa弧度的滤波器。

模拟与数字的关系上面举例的模拟滤波器传递函数,目的是用来设计滤波电路,针对的是连续时间的模拟信号,组成元器件是电阻,电容,电感。

而数字滤波器实现方法是把滤波器所要完成的运算编成程序并让计算机执行,也就是采用在代码的形式。它面对的是离散时间的数字信号,是把输入序列通过一定的运算变换成输出序列。

有没有办法能把连续的模拟滤波器变成离散的数字滤波器?

显然是有的,而且有很多种,其中最常使用的一种叫做双线性变换

把这个公式带入传递函数就可以得到一个z域的差分方程了。

但是如果我们直接使用双线性变换进行离散化之后,会发现转换前的模拟滤波器和转换后的数字滤波器的幅频响应曲线并不一样。

可以看到数字滤波器曲线DF,远比模拟滤波器AF衰减的要快,也就是说如果模拟截止频率是10hz,那数字滤波器衰减更快,截止频率可以只9hz。

这是为什么呢?这是因为双线性变换中,数字截止角频率 和模拟截止角频率 的关系是非线性的。

所以在变换的时候我们需要找到s域与z域变换时频率变化的对应关系。

对于s域来说,在模拟截止频率为 时有:

对于z域来说,在数字截止频率为fd的情况下, 其中 ,则有:

把这个截止频率为 的带入双线性变换公式可以得到:

所以

可以得到模拟截止频率与数字截止频率的关系

(补充证明过程根据欧拉公式)

设计数字滤波器有了离散方式和频率对应关系,就可以来设计我们需要的数字滤波器了。

设计数字滤波器分几步?

根据我们想要的数字滤波频率得到我们想要的模拟滤波器频率 根据期望的模拟截止频率,将滤波器去归一化。 进行双线性变换 写成代码 如果我期望的数字滤波器截止频率为fd,对应的模拟滤波器截止角频率为:

去归一化只需要将模拟滤波器传递函数中的s进行如下替换即可

最后

请先 登录 后评论
  • 24 关注
  • 0 收藏,602 浏览
  • 转转 提出于 2022-07-16 12:48