Main Content

buttord

巴特沃斯滤波器阶数和截止频率

说明

[n,Wn] = buttord(Wp,Ws,Rp,Rs) 返回数字巴特沃斯滤波器的最低阶数 n,通带波纹不超出 Rp dB,阻带衰减至少为 Rs dB。WpWs 分别是滤波器的通带和阻带边缘频率,归一化范围为 0 至 1,其中 1 对应于 π 弧度/采样点。此外,还会返回对应截止频率 Wn 的标量(或向量)。要设计巴特沃斯滤波器,请使用输出参量 nWn 作为 butter 的输入。

示例

[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s') 用于求模拟巴特沃斯滤波器的最小阶数 n 和截止频率 Wn。以弧度/秒为单位指定频率 WpWs。通带或阻带频率可以为无限值。

示例

全部折叠

对于以 1000 Hz 频率采样的数据,设计一个低通滤波器,在 0 至 40 Hz 的通带内波纹不超过 3 dB,阻带衰减至少为 60 dB。求滤波器的阶数和截止频率。

Wp = 40/500;
Ws = 150/500;

[n,Wn] = buttord(Wp,Ws,3,60)
n = 
5
Wn = 
0.0810

使用二阶节指定滤波器,并绘制频率响应图。

[z,p,k] = butter(n,Wn);
sos = zp2sos(z,p,k);

freqz(sos,512,1000)
title(sprintf('n = %d Butterworth Lowpass Filter',n))

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Frequency (Hz), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title n = 5 Butterworth Lowpass Filter, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

设计一个带通滤波器,其通带频率为 100 至 200 Hz,通带波纹不超过 3 dB,阻带衰减至少为 40 dB。指定 1 kHz 的采样率。将通带两侧的阻带宽度设置为 50 Hz。求滤波器的阶数和截止频率。

Wp = [100 200]/500;
Ws = [50 250]/500;
Rp = 3;
Rs = 40;
[n,Wn] = buttord(Wp,Ws,Rp,Rs)
n = 
8
Wn = 1×2

    0.1951    0.4080

使用二阶节指定滤波器,并绘制频率响应图。

[z,p,k] = butter(n,Wn);
sos = zp2sos(z,p,k);

freqz(sos,128,1000)
title(sprintf('n = %d Butterworth Bandpass Filter',n))

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Frequency (Hz), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title n = 8 Butterworth Bandpass Filter, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

输入参数

全部折叠

通带转角(截止)频率,指定为标量或由 0 和 1 之间的值组成的二元素向量,1 对应于归一化奈奎斯特频率 π 弧度/采样点。

  • 如果 WpWs 均为标量,并且 Wp < Ws,则 buttord 返回低通滤波器的阶数和截止频率。滤波器的阻带范围为 Ws 至 1,通带范围为 0 至 Wp

  • 如果 WpWs 均为标量,并且 Wp > Ws,则 buttord 返回高通滤波器的阶数和截止频率。滤波器的阻带范围为 0 至 Ws,通带范围为 Wp 至 1。

  • 如果 WpWs 均为向量,并且由 Ws 指定的区间包含一个由 Wp (Ws(1) < Wp(1) < Wp(2) < Ws(2)) 指定的区间,则 buttord 返回带通滤波器的阶数和截止频率。滤波器的阻带范围为 0 至 Ws(1)Ws(2) 至 1。通带范围为 Wp(1)Wp(2)

  • 如果 WpWs 均为向量,并且由 Wp 指定的区间包含一个由 Ws (Wp(1) < Ws(1) < Ws(2) < Wp(2)) 指定的区间,则 buttord 返回带阻滤波器的阶数和截止频率。滤波器的阻带范围为 Ws(1)Ws(2)。通带范围为 0 至 Wp(1)Wp(2) 至 1。

数据类型: single | double

注意

如果您的滤波器设定要求使用带通或带阻滤波器,其中每个通带或阻带中有不同的波纹,请设计单独的低通滤波器和高通滤波器,并将这两个滤波器级联在一起。

阻带转角频率,指定为标量或由 0 和 1 之间的值组成的二元素向量,1 对应于归一化奈奎斯特频率 π 弧度/采样点。

数据类型: single | double

通带波纹,指定为以 dB 表示的标量。

数据类型: single | double

阻带衰减,指定为以 dB 表示的标量。

数据类型: single | double

输出参量

全部折叠

最低滤波器阶数,以整数标量形式返回。

截止频率,以标量或向量形式返回。

算法

无论是模拟滤波器还是数字滤波器,buttord 的阶数预测公式都在模拟域中计算。对于数字滤波器,它先将频率参数转换为 s 域,再估计阶数和固有频率。然后,该函数转换回 z 域。

最初,buttord 通过将所需滤波器的通带频率变换为 1 弧度/秒(对于低通和高通滤波器)以及 -1 和 1 弧度/秒(对于带通和带阻滤波器)开发低通滤波器原型。然后,它计算低通滤波器满足阻带设定所需的最小阶数。

参考

[1] Rabiner, Lawrence R., and Bernard Gold. Theory and Application of Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1975.

扩展功能

版本历史记录

在 R2006a 之前推出