基于MATLAB的高阶低通滤波器的设计与仿真. 下载本文

得最大值,且具有最大平坦特性。

巴特沃斯(Butterworth) 滤波器是一种具有最大平坦幅度响应的低通滤波器,它被广泛的应用在通信的各种领域中,在电测量等方面也具有非常广泛的用途,可以被用作为信号检测的滤波器。巴特沃斯滤波器具有在通频带内的频率响应曲线最大限度平坦的这一特点,没有明显的起伏现象而在阻频带内不断下降直到为零。

阶数n越高,其幅频特性越好,低频检测信号保真度越高。巴特沃思滤波器在线性相位、衰减斜率和加载特性三个方面具有特性均衡的优点,因此在实际使用中,巴特沃思滤波器已被列为首选。而且在我们的生活中也都可以看到对滤波器的使用。

4.3 低通巴特沃斯滤波器的设计

(1)根据技术指标通带截止频率Ωp,通带最大衰减系数?p,阻带截止频率

Ωs,

lgksp阻带最小衰减系数?s,利用公式N??(其中?sp?Ωs/Ωp,KSP?lg?sp10?P/10?110?s/10?1)

求出滤波器的阶数N。

(2)在求出归一化极点pk,代入公式pk到归一化传输函数Ha(p)。

(3)将Ha(p)去归一化。将p?s/Ωc代入Ha(p),将得到实际的滤波器传输函数Ha(p)。

Butter函数可设计低通、高通、带通和带阻的数字和模拟IIR滤波器,其特性为使通带内的幅度响应最大限度地平坦,但同时损失截止频率处的下降斜度。在期望通带平滑的情况下,可使用butter函数。butter函数的用法为:[b,a]=butter(n,Wn,/ftype/)其中n代表滤波器阶数,Wn代表滤波器的截止频率,这两个参数可使用buttord函数来确定。buttord函数可在给定滤波器性能的情况下,求出巴特沃斯滤波器的最小阶数n,同时给出对应的截止频率Wn。buttord函数的用法为:[n,Wn]= buttord(Wp,Ws,Rp,Rs)其中Wp和Ws分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。当其值为1时代表采样频率的一半。Rp和Rs分别是通带和阻带区的波纹系数。

?e?12k?1?j????22N?,(k=0,1,.....,N-1)得

不同类型(高通、低通、带通和带阻)滤波器对应的Wp和Ws值遵循以下规则:

a.高通滤波器:Wp和Ws为一元矢量且Wp>Ws; b.低通滤波器:Wp和Ws为一元矢量且Wp

c.带通滤波器:Wp和Ws为二元矢量且WpWs,Wp=[0.1,0.8],Ws=[0.2,0.7]。

5 滤波器的仿真

5.1 仿真程序

clear all dt=0.005; %t=0:dt:3;

00HZ ,500HZ,1000HZ s1=sin(2*pi*300*t); s2= sin(2*pi*500*t); s3= sin(2*pi*1000*t); s=s1+s2+s3; % 3figure(1);

subplot(2,2,1); plot(t,s1);

xlabel('t');title('300HZ正弦信号'); subplot(2,2,2); plot(t,s2);

xlabel('t');title('500HZ正弦信号'); subplot(2,2,3); plot(t,s3);

xlabel('t');title('1000HZ正弦信号'); subplot(2,2,4); plot(t,s); xlabel('t');title('合成信号'); ss=fft(s,4096);

SS=(abs(ss(1:1:2049))); %k1=0:2048;

w1=(1/4096)*k1*10000; %

设定步长 设置3个频率的正弦信号

个正弦信号叠加

求合成信号频谱 取0......Fs/2的部分

figure(2);

plot(w1,SS); grid

%画频谱图

title('求原信号频谱'); %****通过低通滤波器*****% ws1=1000; 器

wp1=600; wc=5000; wp=wp1/wc; ws=ws1/wc;

[n,wn]=buttord(wp,ws,1,30) %巴特沃斯低通滤波器 [b,a]=butter(n,wn); sb=3*filter(b,a,s) ; ssb=fft(sb,4096);

%合成信号通过低通滤波器 %求频谱

%设计一个通带为600HZ,阻带为100HZ的低通滤波

SSb=abs(ssb(1:1:2049));

k1=0:2048; w1=(1/4096)*k1*10000; %画频谱图 figure(3);

plot(w1,SSb); grid

title('经过低通滤波器后的信号频谱');

5.2 仿真实现

图1 表示滤波器的阶数是8

图2 仿真用到的信号

图3 原信号频谱

图4 通过滤波器后的信号频谱

6 总结

本次论文是对低通滤波器的设计进行研究,并后用MATLAB语言对低通滤波器进行仿真的实现。通过对基于MATLAB的高阶低通滤波器的设计与仿真课题的设计与研究,自己从中获取了相应的成绩,对于理论也有了一定水平的提高,动手能力也有了明显的增强,与此同时也体现出了我自身的一些问题。先第一个方面是要对于一个我不熟悉的课题,需要去阅读一定的书籍及杂志来获得相应的知识认识这个课题,然后才能够有我自己的想法与主张;第二个方面是理论方面的基础知识对我固然是很重要的,论文中牵涉到不少的算法,同时也会用到许多以前学的基础知识,如果仅仅此时做课题需要用的时间再去学这些基础知识,会花费很多的时间在这方面;第三个方面也是最重要的,是要对自己有很大的信心,当在做论文中遇到不懂的时候要多向同学或者导师去寻求帮助,以上三个方面是可以快速提高我的课题研究进程,同时这也是我做论文的一些体会,这些对将会我以后的工作也会有很大的帮助。