函数 > 信号处理 > 数字滤波 > 示例:IIR 滤波器设计
  
示例:IIR 滤波器设计
使用函数 besselbuttercheby1cheby2iirlowiirhighiirpassiirstop 生成给定类型的模拟低通滤波器的系数。将这些系数作为 iir 函数中任一函数的自变量,其中这些函数用于缩放和执行双线性变换以产生所需的频率响应。
* 
对于阶数 N 为偶数的低通和高通滤波器,所有部分均为二阶,每列均具有三个系数。如果阶数为奇数,则最后一部分为一阶。对于带通和带阻滤波器,若转换为数字滤波器,每一部分的阶数将加倍。
函数 gainresponse 可接受这些函数所生成形式的系数数组。复增益可通过将部分增益相乘求得,并且可通过将每部分的响应传递到下一部分中进行响应。
Signal Processing Algorithms (《信号处理算法》) 的第 7 章介绍了这些函数执行的算法,本书由 Samuel Stearns 和 Ruth David 合著,Prentice-Hall, Inc. 出版。
低通切比雪夫 I 型滤波器
1. 定义阶数、波纹参数和截止频率。
单击复制此表达式
单击复制此表达式
单击复制此表达式
2. 使用函数 iirlowcheby1 生成滤波器系数。
单击复制此表达式
单击复制此表达式
* 
滤波器 A 具有四个二次部分。
3. 绘制增益幅度,然后使用水平标记来标记波纹电平。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
由于传递函数已既定为二次因子的积,所以在复平面中绘制极点将变得非常容易。
4. 求分母中每个因子的复根。
单击复制此表达式
* 
滤波器 A 中传递函数的极点为含有由 A 奇数列所给定系数 (首先为二次项系数) 的二次方程式的根。
5. 求分母中每个因子的一个根。
单击复制此表达式
单击复制此表达式
6. 填入共轭根。
单击复制此表达式
7. 显示传递函数极点并在复平面上绘制其图像。添加单位圆轨迹以供参考。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
该绘图表明所有八个极点均位于单位圆内部,因此滤波器处于要求的稳定状态。
8. 使用函数 max 以数值形式验证所有八个极点均落在单位圆内部。
单击复制此表达式
9. 应用 response 函数,然后绘制滤波器 A 的脉冲响应图像。为其提供长度为 1 (表示单位脉冲) 的矢量作为第一个自变量。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
尽管响应长度是无限的,但还是在前 80 项后几乎降为 0。稳定性条件可确保响应的绝对值之和是有限的。
低通切比雪夫 II 型滤波器
1. 设置切比雪夫 II 型滤波器的参数。
单击复制此表达式
单击复制此表达式
单击复制此表达式
2. 使用函数 tan 计算比例。
单击复制此表达式
* 
请参阅此计算所依据的 Stearns 和 David 理论;该数值将始终大于 1。
3. 使用 iirlowcheby2 函数计算截断频率为 f=pass 的 5 阶低通 IIR 滤波器的系数。
单击复制此表达式
单击复制此表达式
单击复制此表达式
* 
该系数矩阵具有两个二次部分和一个线性部分。
4. 使用函数 gain 计算在每个频率处的增益,然后绘制频率响应图像。使用标记显示 passstop 频率,以及逆衰减电平。
单击复制此表达式
单击复制此表达式
响应绘图显示了满足设计条件的程度。标记可帮助您看到阻带开始于要求的位置 (stop1/atten 线的相交处) 而通带结束于截断频率的右侧。
5. 在使用较大的衰减的同时,使用 iirlowcheby2 函数重复以上设计。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
* 
更高的衰减所要求的滤波器阶数更高,以使过渡带降为所需宽度。尝试 5 阶和 8 阶滤波器,并比较结果。
6. 绘制 5 阶滤波器的增益,单位为 dB。使用标记来标记 pass 频率和所需的 30 dB 衰减。
单击复制此表达式
单击复制此表达式
7. 绘制 8 阶滤波器的增益,单位为 dB。使用标记来标记 pass 频率和所需的 30 dB 衰减。
单击复制此表达式
单击复制此表达式
当两种滤波器低于 -30db 线的增益与 stop 频率附近的增益相似时,8 阶滤波器的增益将在超越截断频率后保持平坦。这表示需要 8 阶滤波器来实现所需的 1000 倍衰减。
计算比例因子
以下方程显示了高通滤波器、带通滤波器和带阻滤波器比例因子的定义。
高通滤波器:
单击复制此表达式
带通滤波器:
单击复制此表达式
参数 pass1pass2 是通带的下边界和上边界,参数 stop1stop2 是两个阻带的边界。
带阻滤波器:
单击复制此表达式
参数 pass1pass2 是两个通带的边界,参数 stop1stop2 是阻带的下边界和上边界。
1. 定义带通滤波器的参数:
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
2. 使用以上参数计算带通滤波器的比例。
单击复制此表达式
单击复制此表达式
3. 计算上述带通滤波器的系数。
单击复制此表达式
单击复制此表达式
单击复制此表达式
4. 绘制响应图像 (单位为 dB),并显示 stop 和 pass 标记。
单击复制此表达式
右侧阻带边界准确地落在正确位置上,但左侧阻带边界则略高于目标频率值。这表示此过渡带比要求的要窄。
低通贝塞耳滤波器
贝塞耳滤波器作为单独的一部分返回。
1. 设置贝塞耳滤波器参数。
单击复制此表达式
单击复制此表达式
单击复制此表达式
* 
比例参数可用于控制截断频率处的增益。
2. 使用 bessel 函数计算贝塞耳滤波器系数。
单击复制此表达式
单击复制此表达式
单击复制此表达式
3. 绘制增益图像,并显示截断频率处的增益。
单击复制此表达式
单击复制此表达式
单击复制此表达式
4. 使用缩放因子将截断频率处的较低增益换成阻带中增加的衰减。
单击复制此表达式
单击复制此表达式
R 是对应于模拟系数 B1 的模拟传递函数。
5. 使用 root 函数以及起始估值 1,求出截断频率下模拟传递函数 R 等于 0.8 的点。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
比例标记在 0.8 处与增益曲线交叉。
* 
估值必须是正数,这样才能得到正比例值。
6. 使用已算出的比例因子重新计算数字滤波器系数。
单击复制此表达式
单击复制此表达式
7. 绘制新频率响应图像,并显示截断频率处的增益。
单击复制此表达式
单击复制此表达式
绘图显示,在通过截断频率后新的频率响应急速过渡到零。使用比例因子可使得阻带中的衰减增加。
带通、带阻和高通巴特沃斯滤波器
通过 iirpassiirstop 函数将输入系数的阶数加倍,这样 4 阶模拟系数就可产生 8 阶滤波器的效果。
带通巴特沃斯滤波器
1. 设置滤波器参数。
单击复制此表达式
单击复制此表达式
单击复制此表达式
2. 计算系数。
单击复制此表达式
3. 绘制该响应的图像。使用竖直标记显示低频和高频。
单击复制此表达式
单击复制此表达式
响应图像显示允许 f_lof_hi 之间的频率通过。所有其他频率会被过滤掉。
带阻巴特沃斯滤波器
1. 设置滤波器阶数。
单击复制此表达式
2. 使用 iirstopbutter 函数计算系数。
单击复制此表达式
3. 绘制该响应的图像。使用竖直标记显示低频和高频。
单击复制此表达式
单击复制此表达式
响应图像显示阻止 f_lof_hi 之间的频率通过。所有其他频率均可以通过。
高通巴特沃斯滤滤波器
1. 设置滤波器阶数。
单击复制此表达式
2. 使用 iirhighbutter 函数计算系数。
单击复制此表达式
* 
iirpassiirstop 函数不同,iirhigh 函数不会使输入系数的阶数加倍。因此,阶数值以原数值传递到 butter 函数中。
3. 绘制该响应的图像。使用竖直标记显示高频。
单击复制此表达式
单击复制此表达式
响应图像显示允许高于 f_hi 的频率通过。所有其他频率会被过滤掉。