干货周记:“IIR滤波器”竟还能这样设计?(番外篇10)

董昭聊科技 2024-07-02 10:36:44

这期,咱接着聊“未完待续”的滤波器。

接上回说,咱前面聊过的FIR和IIR,都还属于数字世界的产物。但同时,对IIR而言,咱也能明显闻到它身上的那股“模拟”味儿,甚至还有人叫它:“模拟滤波器”的数字化身。

这听上去,有合理的部分,也有玄乎的部分。合理在于,毕竟IIR的设计方法,基于”模拟滤波器“传函在”数字域“的“共形映射”。而玄乎则在于,理解起来,不够直观。大家也很难把IIR的“b0, b1, b2, a1, a2”这些系数,和运放、电阻和电容这些参数关联起来。

不要紧的,咱这期就先举例,直观地感受两个点:

1. 如何在模拟域,快速搭出一个”Biquad“滤波器(这个例子,在实战中也很酷,因为它的频点、Q值和增益,都可独立调整,互不影响)。

2. 如何通过滤波器需求spec(如截止频率、Q值、增益、带宽),得到对应IIR的系数。

一、Biquad滤波器是啥,有啥特点?

概念:

Biquad滤波器,又叫双二阶滤波器,它本质上是一种二阶IIR,有两个零点和两个极点。在时域和频域,分别长这样:

特点,大致如下:

第一、高效 & 易实现。它的设计和实现相对简单,还可通过级联,有效实现多阶滤波器,以处理更复杂的任务。而这些,并不需要增加太多硬件资源。在功耗和硬件成本上,具有相当的优势。

第二、稳定。提到IIR,大家最担心的就是它携带的“不稳定基因”,而Biquad滤波器的架构,在理论上是稳定的,不大会出现振荡等现象。因此,由它级联而成的多阶IIR系统,其稳定性也更好保证。

比如:如果要实现一个8阶IIR,你会怎么做?是一步到位,直接设计个单8阶IIR,还是用4个Biquad去级联?答案是,几乎99%的人,都会选后者。因为单8阶IIR,设计难度极大,且其稳定性很难保证。

第三、灵活 & 广泛适配。它可通过调整系数(且容易解耦),实现低通、高通、带通等多种滤波器。可谓是随心所欲,可广泛用于音频、图像等信号处理领域。

二、在数字域,如何设计Biquad滤波器

第一、确定设计目标。如滤波器类型、截止频率、增益和Q值等。

第二、确定模拟滤波器原型(如巴特沃斯、切比雪夫或椭圆滤波器等),做频率归一化,以适应数字采样频率。

第三、确定差分方程:将模拟滤波器的传函,转为差分方程。这一步,也是将“模拟连续时间”转为了“数字离散时间”,而后,根据滤波器类型和设计方法(如双线性变换),得到差分方程的系数即可。

这三步,看上去云淡风轻,其实里面蕴藏了不少玄机。

举个例子:细心的朋友可能会发现,用“双线性变换”设计得到的IIR和模拟滤波器,频响并不完全一样。为什么呢?因为其数字频率fd和模拟频率fa的映射,是非线性的。

把它俩带入滤波器的传递函数,会得到一个非常复杂的算式,简化再简化之后,就得到了"b0, b1, b2, a1, a2"这些系数。

三、如何在模拟域,快速造出一个Biquad滤波器

再声明,咱的目的不是理论推导,而是“模拟电参数”对应到“IIR系数”的例子展示。公式推导那部分,咱就交给计算机(硅基)了,咱下面直接上工程结果:

上图就是个模拟域“IIR”的模样,这里的R,C等电参数,可直接反应到截至频率、带宽、Q值和增益,也可直观地对应到,其s域传递函数中的系数(可想而知,其s域传函中,有一堆R,C和频率相关的计算。)

经简化,以及经巧妙地取值后,就可得到下面的结果。

上图取自Roy在N年前的笔记,咱就用图片表示,免去编辑公式的麻烦了。

神不神奇?数字域和模拟域,就这样打通了。

但这还不够,咱再进一步,还能得到更多,以下常见经验果实,供你参考。

四、从滤波器要求,直接映射到IIR系数的计算示例。

这个例子是针对二阶IIR的,实战中也较为常见,下面纯干货。

取:fs为“采样频率”,fc为“截止频率”或“中心频率”,G为“增益”,BW为“带宽”,Q为“品质因数”, 以及以下计算等效式:

添加图片注释,不超过 140 字(可选)

以下结论请收好:

以上仅为某架构滤波器类型的示例,其他架构也基本类似,不同类型滤波器,也只是算式和参数略有区别。

尾巴

本来这周在外休假,但考虑到“干货周记”的更新节奏,咱今天这篇文章,是特地在海边酒店的房间里完成的,可能略显粗糙,多包涵。

其实,关于芯片的市场和销售,也有好多心得要写。等咱把“滤波器”这个系列完结掉,就可以动笔了。

End

Roy个人观点,仅供参考。

如果你对数码产品、英语学习和励志成长也感兴趣,也可关注各平台上的同名视频账号:微博、抖音、视频号,B站、小红书:科技朋克Roy,知乎:Roy

0 阅读:0

董昭聊科技

简介:感谢大家的关注