基于matlab-的巴特沃斯低通滤波器的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于matlab 的巴特沃斯低通滤波器的实现
一、课程设计的目的
运用MATLAB实现巴特沃斯低通滤波器的设计以及相应结果的显示,另外还对多种低通滤波窗口进行了比较。
二、课程设计的基本要求
1)熟悉和掌握MATLAB 的基本应用技巧。
2)学习和熟悉MATLAB相关函数的调用和应用。
3)学会运用MATLAB实现低通滤波器的设计并进行结果显示。
三、双线性变换实现巴特沃斯低通滤波器的技术指标:
1.采样频率10Hz。
2.通带截止频率fp=0.2*pi Hz。
3.阻带截止频率fs=0.3*pi Hz。
4.通带衰减小于1dB,阻带衰减大于20dB
四、使用双线性变换法由模拟滤波器原型设计数字滤波器
程序代码:
T=0.1; FS=1/T;
fp=0.2*pi;fs=0.3*pi;
wp=fp/FS*2*pi;
ws=fs/FS*2*pi;
Rp = 1; % 通带衰减
As = 15; % 阻带衰减
OmegaP = (2/T)*tan(wp/2); % 频率预计
OmegaS = (2/T)*tan(ws/2); % 频率预计
%设计巴特沃斯低通滤波器原型
N = ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(OmegaP/OmegaS))); OmegaC = OmegaP/((10^(Rp/10)-1)^(1/(2*N)));
[z,p,k] = buttap(N); %获取零极点参数
p = p * OmegaC ;
k = k*OmegaC^N;
B = real(poly(z));
b0 = k;
cs = k*B; ds = real(poly(p));
[b,a] = bilinear(cs,ds,FS);% 双线性变换
figure(1);% 绘制结果
freqz(b,a,512,FS);%进行滤波验证
figure(2); % 绘制结果
f1=50; f2=250;
n=0:63;
x=sin(2*pi*f1*n)+sin(2*pi*f2*n);
subplot(2,2,1);stem(x,'.'); title ('输入信号');
y=filter(b,a,x);
subplot(2,2,2);stem(y,'.') ;
title('滤波之后的信号');
figure(3) ;
stem(y,'.') title('输出的信号'))
wd4=hamming(N)';
b4=hd.*wd4;
[h1,w]=freqz(b1,1);
[h2,w]=freqz(b2,1);
[h3,w]=freqz(b3,1);
[h4,w]=freqz(b4,1);
plot(w,20*log10(abs(h1)),w,20*log10(abs(h2)),':',w,20*log10(abs(h3)),'-.',w,20* log10(abs(h4)),'--')legend('矩形窗','汉宁窗','布莱克曼窗','汉明窗');
结果显示;
00.51 1.52 2.53 3.5
-160
-140-120-100-80-60-40-20020
六、总结及心得:
基于matlab 的巴特沃斯低通滤波器的实现
姓名:
学号: S20100
专业:
日期: 2010年06月08日
(注:可编辑下载,若有不当之处,请指正,谢谢!)