发布网友 发布时间:2022-05-11 23:54
共1个回答
热心网友 时间:2023-11-18 03:39
计巴特沃斯IIR滤波器可使用butter函数和buttord函数。
第一:使用buttord函数先求得最小阶数和截止频率:[n,Wn]= buttord(Wp,Ws,Rp,Rs)。
理解:上式中n代表滤波器阶数,Wn代表滤波器的截止频率,这两个参数可使用buttord函数来确定。简单来说,就是在Wp处,通带内波纹系数或者说是通带内达到最大衰减为Rp,如(3db),而在Ws处,阻带达到最小衰减为Rs(如40db),而我们默认求得的Wn是在(-3db)时的频率。所以:When Rp is chosen as 3 dB, the Wn in BUTTER is equal to Wp in BUTTORD.
1、buttord
函数含义:设计巴特沃思滤波器(阶数和截止频率等参数要确定)
函数使用形式: [n,Wn] = buttord(Wp,Ws,Rp,Rs)
[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')
[n,Wn] = buttord(Wp,Ws,Rp,Rs)返回数字巴特沃思滤波器的最低阶n,通带纹波不超过Rp dB,阻带衰减至少Rs dB。
Wp和Ws分别是滤波器的通带和阻带边沿频率,归一化为0到1,其中1对应于πrad / sample。
还返回相应的截止频率Wn的标量(或矢量)。
要设计巴特沃斯滤波器,请使用输出参数n和Wn作为butter的输入。
[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')查找模拟巴特沃思滤波器的最小阶数n和截止频率Wn。 以弧度每秒为单位指定频 率 Wp和Ws。 通带或阻带可以是无限的。
(1)n —最低滤波器阶数
整数标
最低的滤波器阶数,以整数标量返回。
(2) Wn-截止频率
标量| 向量
截止频率,以标量或矢量形式返回。
(3) Wp —通带截止频率
标量| 二元向量
通带截止频率,指定为标量或二元向量,值在0到1之间,其中1对应于归一化的奈奎斯特频率πrad / sample。
如果Wp和Ws均为标量且Wp <Ws,则buttord返回低通滤波器的阶数和截止频率。滤波器的阻带范围为Ws至1,通带范围为0至Wp。
如果Wp和Ws均为标量且Wp> Ws,则buttord返回高通滤波器的阶数和截止频率。滤波器的阻带范围是0到Ws,通带范围是Wp到1。
如果Wp和Ws都是向量,并且由Ws指定的间隔包含由Wp指定的间隔(Ws(1)<Wp(1)<Wp(2)<Ws(2)),则buttord返回的阶次和截止频率为带通滤波器。滤波器的阻带范围从0到Ws(1),范围从Ws(2)到1。通带范围从Wp(1)到Wp(2)。
如果Wp和Ws都是向量,并且Wp指定的间隔包含Ws指定的一个(Wp(1)<Ws(1)<Ws(2)<Wp(2)),则buttord返回的阶数和截止频率为带阻滤波器。滤波器的阻带范围为Ws(1)至Ws(2)。通带范围从0到Wp(1),从Wp(2)到1。
(4)Ws —阻带截止频率
标量| 二元向量
阻带截止频率,指定为标量或二元向量,值在0到1之间,其中1对应于归一化的奈奎斯特频率πrad / sample。
数据类型:单| 双
(5)Rp-通带纹波
标量
通带纹波,指定为标量,单位为dB。
数据类型:单| 双
(6)Rs-阻带衰减
标量
阻带衰减,指定为标量,单位为dB。
数据类型:单| 双
Buttord的阶数预测公式适用于模拟和数字情况下的模拟范围。
对于数字情况,它将在估计阶数和固有频率之前将频率参数转换为s域。 然后,该函数将转换回z域。
buttord最初通过将所需滤波器的通带频率转换为1 rad / second(对于低通和高通滤波器)以及–1和1 rad / second(对于带通和带阻滤波器)来开发低通滤波器原型。 然后,它计算低通滤波器满足阻带规格所需的最小阶数。
举例:
对于以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))
结果为:
2、butter
[b,a] = butter(n,Wn)
[b,a] = butter(n,Wn,ftype)
[z,p,k] = butter(___)
[A,B,C,D] = butter(___)
[___] = butter(___,'s')
[b,a] = butter(n,Wn)返回归一化截止频率Wn的n阶低通数字巴特沃斯滤波器的传递函数系数。
例
[b,a] = butter(n,Wn,ftype)根据ftype的值和Wn的元素数来设计低通,高通,带通或带阻Butterworth滤波器。最终的带通和带阻设计约为2n。
注意:有关影响形成传递函数的数值问题的信息,请参阅*。
例
[z,p,k] = butter(___)设计一个低通,高通,带通或带阻数字巴特沃斯滤波器,并返回其零,极点和增益。该语法可以包括先前语法中的任何输入参数。
例
[A,B,C,D] = butter(___)设计一个低通,高通,带通或带阻数字Butterworth滤波器,并返回指定其状态空间表示形式的矩阵。
例
[___] = butter(___,'s)设计一个截止角频率为Wn的低通,高通,带通或带阻模拟巴特沃斯滤波器。
n —滤波器阶数
整数标量
滤波器的阶数,指定为整数标量。