主要内容

iircomb

IIR 梳状陷波滤波器或峰值滤波器

说明

[num,den] = iircomb(n,bw) 返回一个数字陷波滤波器,其阶数为 n,并且在 -3 dB 处的滤波器陷波宽度设置为 bw(滤波器带宽)。

对于陷波滤波器,传递函数的形式为:

H(z)=b1zn1αzn

其中 αb 是正标量,n 是滤波器阶数或滤波器中的陷波数减 1。

[num,den] = iircomb(n,bw,ab) 返回数字陷波滤波器,其带宽 bw 指定为处于 -ab 分贝的电平。

[num,den] = iircomb(___,type) 根据 type 的指定返回数字陷波滤波器或数字峰值滤波器。

峰值滤波器的传递函数为:

H(z)=b1zn1+azn

示例

全部折叠

设计并绘制一个具有 11 个陷波(等于滤波器阶数加 1)的 IIR 陷波滤波器,用于从采样频率为 600 Hz (fs) 的信号中去除 60 Hz 频率分量 (f0)。对于此示例,将滤波器的 Q 因子设置为 35,并用它来指定滤波器带宽。

fs = 600;
fo = 60;
q = 35;
bw = (fo/(fs/2))/q;
[b,a] = iircomb(fs/fo,bw,'notch'); % Note type flag 'notch'

可视化该滤波器的频率响应。请注意,陷波呈等间距分布,其中一个陷波恰好落在 60 Hz 上。

filterAnalyzer(b,a);

输入参数

全部折叠

数字滤波器的阶数,指定为正整数。n 还定义频率范围 0 到 2π 内滤波器中的陷波(或峰值)数量。陷波(或峰值)的数量等于 n+1。

数据类型: single | double

滤波器在 -ab 分贝电平处的带宽,指定为范围 (0,1) 内的正标量。

滤波器的质量因子(Q 因子)q 与滤波器带宽的关系是 q = ω0/bw,其中 ω0 是要从信号中去除的频率。

数据类型: single | double

滤波器带宽 bw 处的幅值响应,指定为以 dB 为单位的标量。您可以包含可选的输入参量 ab,以指定在默认 -3 dB 以外的电平(例如 -6 dB 或 0 dB)处的幅值响应。如果您不包含参量 ab,函数将设置在默认 -3 dB 电平上的幅值响应。

数据类型: single | double

数字滤波器的类型,指定为以下项之一:

  • 'notch' - 设计 IIR 陷波滤波器。陷波滤波器衰减在指定频率处的响应。这是默认类型。当您省略 type 输入参量时,iircomb 函数返回陷波滤波器。

  • 'peak' - 设计 IIR 峰值滤波器。峰值滤波器增强在指定频率处的信号。

输出参量

全部折叠

IIR 滤波器传递函数的分子系数,以实数值行向量形式返回。对于 n 阶滤波器,行向量中的元素数为 n+1。

数据类型: single | double

IIR 滤波器传递函数的分母系数,以实数值行向量形式返回。对于 n 阶滤波器,行向量中的元素数为 n+1。

数据类型: single | double

参考

[1] Orfanidis, S.J., Introduction to Signal Processing, Englewood Cliffs, New Jersey: Prentice-Hall, 1996.

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2011a 中推出

另请参阅