基于matlab-的巴特沃斯低通滤波器的实现

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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日

(注:可编辑下载,若有不当之处,请指正,谢谢!)

相关文档
最新文档