数字巴特沃思滤波器的设计

数字巴特沃思滤波器的设计
实验目的 通过本次实验掌握数字巴特沃思滤波器的设计。
实验要求 在掌握巴特沃斯滤波器的原理的基础上,通过MATLAB软件进行数字巴特沃斯滤波器的设计。

实验原理 1. 利用原型设计法,对满足指标要求的模拟低通原型滤波器,通过双线性变换法,得到满足指标要求的数字巴特沃思低通滤波器;
2. 双线性变换法原理参见《数字信号处理》教材。
实验步骤 1、编写程序。设计数字巴特沃思低通滤波器dbutter.m文件。
输入参数:  Fs
输出参数:系数
2、编写程序。通过调用dbutter.m函数,设计一个数字低通滤波器。
   绘出零极点分布图、单位取样响应(可调用库函数impz)、幅频响应、相位响应。
3、用help查看内部函数butter.m,了解调用格式,并用此函数重新设计2中要求的滤波器。
4、利用fdatool设计各种类型的数字滤波器。


实验内容 1、设计巴特沃思低通滤波器
2、利用MATLAB工具fdatool设计各种类型的滤波器。
实验数据 编写的设计数字巴特沃思低通
波器的dbutter.m文件如下:
冲激响应不变法:
function
[b,a]=dbutter1(wp,ws,ap,as,fs)
T=1/fs;
np=wp*pi*fs;
ns=ws*pi*fs;
N1=(log10((10^(ap/10)-1)/…
(10^(as/10)-1)))/…
(2*log10(np/ns));
N=ceil(N1);  
nc=np/((10^(ap/10)-1)^…
(1/(2*N)));
for k=1:N
s(k)=nc*exp(j*pi*((2*k+N-1)/…
(2*N)));
751com.cn   ,N);
for n=1:N
    A=1;
    for m=1:N
        if m~=n
            A=A*(s(n)-s(m));
            R(n)=(nc^N)/A;
       % else continue
        end
    end
end
[bb,aa]=residue(R,s,0);
[b,a]=impinvar(bb,aa,fs);
end
双线性变换法:
function
[b,a]=dbutter2(wp,ws,ap,as,fs)
T=1/fs;
np=(2*fs)*tan(wp*pi/2);
ns=(2*fs)*tan(ws*pi/2);
N1=(log10((10^(ap/10)-1)…
/(10^(as/…
10)-1)))/(2*log10(np/ns));
N=ceil(N1); 
nc=np/((10^(ap/10)-1)^…
(1/(2*N)));
for k=1:N
s(k)=nc*exp(j*pi*((2*k+N-1)/…
(2*N)));
end
R=zeros(1,N);
for n=1:N
    A=1;
    for m=1:N
        if m~=n
            A=A*(s(n)-s(m));
            R(n)=(nc^N)/A;
       % else continue
        end
    end
end
[bb,aa]=residue(R,s,0);
[b,a]=bilinear(bb,aa,fs);
end
>> [b1,a1]=dbutter2(0.2,0.3,1,15,100000);
751com.cn
>> [h1,w1]=freqz(b1,a1);
>> plot(w1,abs(h1),'LineWidth',3)
>> title('幅频响应'),grid on
>>  plot(w1,(180/pi)*angle(h1),'LineWidth',1.5)
>> grid on,title('相位响应');172

[1] [2] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有