数字滤波器的设计
1 椭圆滤波器的基本理论
常用数字滤波器的类型有巴特沃斯(Butterworth),切比雪夫(Chebyshev)及椭
圆型(考尔型)滤波器。在巴特沃斯和切比雪夫滤波器设计中,阻带衰减仍然是频
率的单调减函数,如果使衰减在阻带上均匀分布,就有可能进一步改善滤波器的
性能。而椭圆滤波器在通带和阻带内都是等波纹的逼近方式,是滤波器阶数N已
给定的情况下的最好的逼近方式。对于同样的性能要求,他比巴特沃斯、切比雪
夫滤波器所需用的阶数都低,而且他的过渡带比较窄。
对于模拟椭圆滤波器而言,其振幅平方函数为:
1
2
R
N
(
H j
2
1
)
2
a
(
,
L
)
式中 (
NR
L 为雅可比椭圆函数;L是一个表示波纹性质的参量。其特性曲线如
)
,
图1所示。
图1 N=5时 2 (
NR
L 的特性曲线
)
,
由图 1 可见,在归一化通带内(-1 1), 2 (
NR
L 在(0,1)间振荡,而超
)
,
过 L 后, 2 (
NR
L 在( 2L , )间振荡。L 越大, L 也变大。这一特点使滤波器
)
,
同时在通带和阻带具有任意衰减量。
2 设计题目
给出输入信号如下:
xx=sin(100πt)+2sin(220πt)+5sin(400πt),
即输入信号中含有三种频率,分别为 100、220、400。要求设计一个椭圆滤
波器滤除 100 和 400 频率。
3 设计步骤
由于模拟滤波器的设计方法非常成熟,许多典型系统有成熟的公式、图表可
以查阅,便于设计;因此设计数字滤波器的主要方法是:首先设计一个合适的模
拟滤波器,然后将他“变换”成满足给定指标的数字滤波器。设计椭圆数字滤波
器的步骤:
(1)确定数字滤波器性能指标:
,
s
p
,
AA ,
s
p
;
(2)将数字滤波器性能指标转换成相应的模拟滤波器性能指标;
(3)设计满足指标要求的模拟滤波器Ha(s);
(4)通过变换将模拟滤波器转换成数字滤波器。
Matlab的信号处理工具箱提供了设计椭圆滤波器的函数:ellipord函数和ellip
函数。ellipord函数的功能是求滤波器的结束,其调用格式:
[n,
aW ]=ellipord(
AA ,
s
p
)可以得到数字椭圆型滤波器的最小阶数挖和截止
,
s
p
,
频率 aW ,并使滤波器在通带内(0, aW )的波纹系数小于通带最大衰减 pA ,阻带
内(
aW ,1)的波纹系数大于阻带最小衰减 sA 。ellip函数的功能是设计滤波器,其
调用格式:[b,a]=ellip(n,
p AA ,
s
,
aW ),利用ellipord函数得到的最小阶数n和截止频
率 aW ,可以设计低通或带通滤波器。
4 程序代码
Fs=2000;Nn=200
t=(1:Nn)/Fs;
n=1:Nn;
w1=2*pi*150;
w2=2*pi*220;
w3=2*pi*300;
y=sin(w1*t)+2*sin(w2*t)+5*sin(w3*t)
figure(1)
subplot(2,1,1)
plot(t,y)
title(‘原始信号的波形')
Y=fft(y,Nn);
subplot(2,1,2)
plot(f1,abs(Y))
title(‘滤波前的 频谱')
wp=[160,280]/1000;
ws=[100,340]/1000;
Rp=1;Rs=30;
[N,wc]=ellipord(wp,ws,Rp,Rs);
[b2,a2]=ellip(N,Rp,Rs,wc);
[H,f]=freqz(b2,a2,200,Fs);
figure(2)
subplot(3,1,1)
plot(f,20*log10(abs(H)))
axis([0 1000 -100 0])
title(‘幅度/db’)
subplot(3,1,2)
plot(f, 180/pi*unwrap(angle(H)))
title(‘相频响应')
subplot(3,1,2)
plot(f,abs(H))
title(‘’幅频响应)
y2=filter(b2,a2,y);
figure(3)
subplot(2,1,1)
plot(t,y2)
title(‘仅保留 220Hz 频率的波形')
Y2=fft(y2,200);
subplot(2,1,2)
plot(t,abs(Y2))
axis([0 0.1 0 600]);
title(‘仅保留 220Hz 的频谱')
5 试验结果
输入信号时域及其频谱图:
滤波器特性曲线:
输出信号:
6 试验结果分析
由输入和输出对比可以看出,椭圆滤波器的滤除效果比较理想,输出结
果具有一定的波动性,这是由椭圆滤波器通带具有波动性决定的。