示例:滤波器增益
gain 函数返回单频率时的增益。如果使用频率的矢量,该函数会返回增益的矢量 (传递函数)。这对于绘图非常有用。
低通滤波器的增益
1. 使用
iirlow 函数获取截断频率为 f 的 2 阶模拟巴特沃斯低通 IIR 滤波器的系数。
矩阵 A 包含滤波器系数,因此传递函数为:
2. 使用 gain 函数计算频率为 x 时的滤波器增益。
3. 绘制 0 到 0.5 采样频率范围内增益幅度的图像。
截断频率时的增益降至 0.707。
4. 缩放频率,以便用 2π 表示采样频率,然后将增益函数的频率自变量除以 2π。
完整 x 标尺下为 0.2 的截断频率在完整 ω 标尺下现在为 0.4 或 0.4π。
高阶低通滤波器
1. 使用 iirlow 函数获取截断频率为 f 的 6 阶模拟巴特沃斯低通 IIR 滤波器的系数。
2. 使用 gain 函数计算频率为 x 时的滤波器增益。
3. 绘制 0 到 0.5 采样频率范围内增益幅度的图像。
4. 通过在同一幅图表中绘制两个滤波器的响应来对这两个响应进行比较。
◦ 6 阶滤波器的响应的下降速度明显比 2 阶滤波器快。
◦ 两个滤波器在截断频率为 0.2 时的增益相同。
计算 FIR 滤波器的增益
计算使用
bandpass 函数设计的 FIR 滤波器的增益。
1. 使用通带在 f_low 和 f_high 之间的布拉克曼窗计算长度为 51 的带通滤波器的系数。
F 是一个含有 51 个元素的数组。
2. 计算此滤波器的增益。
3. 绘制以 dB 为单位的增益的图像。
增益在低截断频率和高截断频率之间为最大值。
函数定义
可以使用求和运算符直接根据传递函数的定义计算增益。
计算频率为 x 时滤波器 F 的增益。
以下是在 z = 2πx 时得出的传递函数。
gain 的速度比求和运算符快,因此在计算大量频率下的增益时,该函数非常有用。例如,将 gain 用于绘制频率响应的图像。对于很长的滤波器而言,即使是 gain 也会花费一些时间进行计算,因此应选取相对粗的网格 (如 0.01) 进行图像绘制。
FIR 滤波器相位
复增益的相位表示滤波器的相位偏移。
1. 设置 FIR 滤波器的截断频率。
2. 在
lowpass 函数中使用汉宁窗 (最后一个自变量为 4) 计算低通滤波器的系数。
3. 使用
arg 函数绘制相位变化的图像。该函数返回复数 z 介于 -
π 与
π (包括
π) 之间的主值辐角。
相位在通带 (低于截断频率) 中是线性的,但请注意滤波器延迟的影响。
4. 通过除以延迟 D 的传递函数计算相对于延迟信号的复增益。
其中
对于长度为 37 的滤波器,延迟 D 为 18,因此相对相位偏移为:
◦ 当增益为负实数时,增益计算的舍入误差可能会留下一个极小的正/负虚部,因此相位可能在 π 和 -π 之间任意跳跃。
◦ 为确保这些值得到均匀处理,请按如下所示重定义 arg:
5. 绘制增益幅度的图像 (以分贝为单位)。
6. 绘制相对于延迟信号的相位偏移的图像。