在上篇文中提到,若给定了滤波器的性能指标,那么我们需要做的就是选择合适的阶数。怎么去理解“合适的阶数”呢?我们不去谈书上的定义概念,结合自己的经验给出个很容易理解的说法:合适的阶数就是说在满足性能指标要求的前提下的最小阶数。换句话说,我们需要做的就是根据给定的指标选择最小阶数。
因为在确定滤波器最小阶数的同时,我们也可以确定截止频率,那么本文中我们就可以解决两个问题,滤波器最小阶数选择和截止频率选择。
首先我们来了解一下滤波器选择最小阶数和截止频率的原理。以巴特沃斯滤波器为例,设N为滤波器最小阶数,wc为截止频率,wp为通带截止频率,ws为阻带截止频率,Rp(dB)为通带波纹,Rs(dB)为阻带衰减,则:
N=ceil(log10((10^(Rp/10)-1)/(10^(Rs/10)-1))/(2*log10(wp/ws)));%ceil为向上取整
wc1=wp/((10^(Rp/10)-1)^(1/(2*N)));
wc2=ws/((10^(Rs/10)-1)^————(1/(2*N)));
程序输出两个截止频率,分别对应着通带波纹和阻带衰减,但为了保留更多的信息,低通滤波器一般选用大的截止频率。
清楚了滤波器最小阶数和截止频率的选取原理,下面我们来看MATLAB自带的最小阶数和截止频率的选取函数:
[n,wc]=buttord(wp,ws,Rp,Rs,'s');
[n,wc]=cheb1ord(wp,ws,Rp,Rs,'s');
[n,wc]=cheb2ord(wp,ws,Rp,Rs,'s');
[n,wc]=ellipord(wp,ws,Rp,Rs,'s');
其中's'表示模拟滤波器,缺省时,该函数适用于数字滤波器。
对于一般的低通或高通,wp、ws仅包含一个元素,当wp<ws,对应低通滤波器,当wp>ws,对应高通滤波器。
对于带通或带阻,wp、ws一般包含两个元素,分别表示两个过渡带的通带截止频率和阻带截止频率。我们可以这么理解:wp=[通带(下)通带(上)],ws=[阻带(下)阻带(上)],当然,“下”<“上”。对于带通:阻带下<通带下<通带上<阻带上;对于带阻:通带下<阻带下<阻带上<通带上。
wc包含两个元素(第一个小于第二个),分别为通带和阻带之间的界限频率,函数会自动选择合适的频率作为截止频率。
了解了滤波器阶数和截止频率的选择,结合前面所讲内容,我们就可以一步步设计模拟滤波器了。下一讲主要讨论滤波器的一般设计步骤,同时也对前面内容作简单复习。