一、本文要解决的问题前面已经学习了数字滤波器指标Butterworth、Chebyshev I、Chebyshev II 模拟低通原型幅度平方函数与的关系极点、零点、稳定性和 SOS。本文把这些知识串起来解决一个完整问题怎样从数字滤波器指标出发推导出能够实际运行的数字 IIR 滤波器 H(z)本文以 Butterworth 数字低通滤波器为例。高通、带通、带阻变换以及一般零极点配对放在后续内容中学习。二、完整设计主线数字低通 IIR 滤波器的设计流程为数字滤波器指标 ↓ 数字角频率 ↓ 频率预畸变 ↓ 模拟滤波器指标 ↓ 计算滤波器阶数和临界频率 ↓ 归一化模拟低通原型 Hp(s̄) ↓ 频率缩放得到实际模拟滤波器 H(s) ↓ 双线性变换 ↓ 数字滤波器 H(z) ↓ 二阶节级联实现 ↓ 验证最终响应其中有三种不同的频率变量符号含义单位实际频率Hz数字角频率rad/sample模拟角频率rad/s归一化模拟频率无量纲三、设计指标假设要设计一个数字 Butterworth 低通滤波器各参数含义如下采样率通带边缘频率阻带边缘频率通带允许的最大衰减阻带要求的最小衰减。频率区域为0 Hz 1000 Hz 2000 Hz 4000 Hz |----通带-------|----过渡带------|------阻带--------| ≤ 1 dB ≥ 40 dB其中奈奎斯特频率为四、把 Hz 转换成数字角频率数字角频率为所以此时的单位都是。它们属于数字频率不能直接代入模拟 Butterworth 设计公式。五、为什么需要频率预畸变双线性变换为其中在数字频率轴上令在模拟频率轴上令代入双线性变换可以得到所以模拟频率与数字频率不是线性关系。如果错误地按照设计模拟滤波器经过双线性变换后数字滤波器的截止频率就会发生偏移。频率预畸变就是按照真实映射关系提前计算模拟频率因为也可以直接写成预畸变并没有消除频率弯曲而是提前补偿使我们关心的频率边缘经过双线性变换后准确落到目标位置。六、计算预畸变后的模拟频率通带边缘为阻带边缘为于是原来的数字滤波器指标被转换成模拟滤波器指标只要模拟滤波器在和处满足要求经过双线性变换后数字滤波器就会在和处满足要求。七、Butterworth 幅频响应N 阶 Butterworth 模拟低通滤波器的幅度平方为其中N滤波器阶数Butterworth 临界频率。在处所以对应因此是 Butterworth 固定的临界频率。八、计算滤波器阶数通带要求为代入 Butterworth 公式可以得到阻带要求为因此将两个不等式相除消去未知的所以代入本例数据滤波器阶数必须是整数因此向上取整阶数向上取整后滤波器会获得少量设计余量。九、确定临界频率根据通带条件得到根据阻带条件得到所以允许范围为如果让通带边缘恰好达到可以选择这时阻带衰减会略大于。反过来如果选择这时通带边缘高于 -1 dB。直观理解两种选择只是把同一条 Butterworth 曲线左右移动Ωc 7417下降较早 通带边缘刚好 -1 dB阻带已经低于 -40 dB Ωc 7426下降较晚 通带边缘高于 -1 dB阻带边缘刚好 -40 dB本质上就是十、构造归一化模拟低通原型归一化模拟频率定义为相应地归一化的 6 阶 Butterworth 幅度平方为令从幅度平方函数得到候选极点后只选择左半平面的稳定极点。6 阶 Butterworth 归一化原型为这些二阶因子来自三对共轭极点。十一、把归一化原型缩放到实际频率归一化原型的临界频率位于实际滤波器的临界频率应该位于因此进行频率缩放之所以除以是因为当时正好对应归一化频率。对于归一化二阶因子缩放后得到因此实际模拟滤波器为其中每一节的直流增益都为 1因此整体满足十二、为什么需要双线性变换H(s) 描述的是连续时间系统处理器实际处理的却是因此需要把模拟传递函数 H(s) 转换成数字传递函数 H(z)。双线性变换为它来自梯形积分近似由此得到两边取倒数即可得到双线性变换。双线性变换的重要性质是平面左半平面 》 平面单位圆内部所以稳定的模拟滤波器会被映射成稳定的数字滤波器。十三、把模拟二阶节转换成数字二阶节定义模拟二阶节为代入整理后得到令则本例中得到三组 SOS 系数节10.147715800.295431590.14771580-1.079256240.6701194320.114892690.229785370.11489269-0.839440670.2990114130.101829050.203658110.10182905-0.743993840.15131005十四、数字滤波器的实现形式每个二阶节满足三节依次级联x[n] ↓ 二阶节 1 ↓ 二阶节 2 ↓ 二阶节 3 ↓ y[n]整体传递函数为这就是 6 阶 Butterworth 数字低通滤波器的 SOS 实现。本例的共轭极点天然组成三个二阶节。更一般的零极点配对、节顺序和增益分配需要在后续项目路线中继续学习。十五、验证最终结果设计完成后至少验证以下内容。1. 通带边缘在处应得到2. 阻带边缘在处本例得到满足3. 直流增益应检查也就是直流增益为。4. 稳定性数字滤波器的所有极点都必须满足5. 冲激响应冲激响应应当逐渐衰减不能持续增长。6. 参考结果对比可以将自己计算的阶数临界频率零极点SOS 系数幅频响应冲激响应与成熟设计工具的双精度结果进行对比。十六、工程中最容易出现的错误1. 混淆三种频率单位这三者不能直接混用。2. 忘记预畸变直接使用会使双线性变换后的数字边缘频率发生偏移。3. 阶数没有向上取整如果计算得到必须选择向下取整会导致滤波器不满足指标。4. 临界频率选择错误必须同时满足通带和阻带条件不能只根据某一个边缘确定。5. 反馈符号错误如果传递函数分母写成对应差分方程中的反馈项为6. 中间过程过早舍入滤波器阶数越高对系数误差越敏感。设计阶段应保留双精度只在最终导出时按照目标数据格式量化。十七、总结数字 IIR 低通滤波器的完整设计路线是整个过程的核心思想是先使用成熟的模拟低通原型确定理想响应和稳定极点再通过频率缩放与双线性变换把它转换成满足数字频率指标的数字滤波器。补充推导Q1双线性变换推导一、为什么 H(s) 不能直接用于数字滤波例如一阶模拟低通它对应的微分方程是这里出现了连续时间微分但数字处理器只知道离散采样值它无法直接计算真正的连续时间微分。所以需要找到一种转换方法把模拟系统中的 s 替换成由表示的离散运算。也就是寻找s 关于的表达式。最常用的就是双线性变换。二、双线性变换不是凭空规定的双线性变换为其中是采样周期。这个公式看起来很突然但它实际上来自一个非常具体的问题怎样用离散数据近似连续时间的积分三、先看最简单的模拟积分器假设那么拉普拉斯变换后因此所以模拟积分器的传递函数就是现在的问题变成数字处理器怎样近似这个积分器四、使用梯形面积近似积分从第 n-1 个采样点到第 n 个采样点经过了一个采样周期 T。这一小段新增的积分面积可以用梯形面积近似也就是直观上就是x(t) ^ | x[n] | * | / | | / | | / | | *-------| | x[n-1] | -------------- t n-1 n 宽度 T这一小段面积近似为梯形面积把这些小面积不断累加就得到了数字积分器。五、从数字积分器推导双线性变换对下面的差分方程进行 Z 变换得到整理所以数字积分器的传递函数为而模拟积分器为因此建立对应关系两边取倒数这就是双线性变换的来源。它本质上是用梯形积分法把模拟积分器替换成数字积分器。而模拟滤波器可以看成由加法器、乘法器和积分器组成所以把其中的积分器全部这样替换最终就等价于在 H(s) 中进行上述代换。六、为什么双线性变换能保留稳定性把双线性变换反解可以得到模拟稳定系统的极点都位于 s 平面的左半平面经过双线性变换后这些极点会进入 z 平面的单位圆内部因此稳定的模拟滤波器 ------------》 稳定的数字滤波器这是双线性变换特别重要的性质。Q2为什么双线性变换会造成频率弯曲双线性变换是研究频率响应时数字频率位于单位圆上所以代进去分子分母同时乘根据欧拉公式所以也就是而模拟频率轴上因此频率弯曲就是由这个正切函数产生的。下一部分将继续学习归一化模拟低通原型怎样变成高通、带通和带阻以及项目中怎样完成数字零极点配对与 SOS 组织。