仪器社区

MATLAB FIR带通滤波器系数

lifuquan54 2017-11-26
fs=8000; wp1=2*pi*1200/fs;wp2=2*pi*3000/fs; ws1=2*pi*1000/fs;ws2=2*pi*3200/fs; Ap=1; As=50; wp=(wp1+ws1)/2; ws=(wp2+ws2)/2; wdelta=wp1-ws1; N=ceil(8*pi/wdelta); %取整 wn=[wp ws]; [b,a]=fir1(N,wn/pi,'bandpass');... fs=8000; wp1=2*pi*1200/fs;wp2=2*pi*3000/fs; ws1=2*pi*1000/fs;ws2=2*pi*3200/fs; Ap=1; As=50; wp=(wp1+ws1)/2; ws=(wp2+ws2)/2; wdelta=wp1-ws1; N=ceil(8*pi/wdelta); %取整 wn=[wp ws]; [b,a]=fir1(N,wn/pi,'bandpass'); figure(1) freqz(b,a,512); title('FIR带通滤波器'); 请问这个滤波器的系数是多少啊,
评论
全部评论
love_xue_58
基于MATLAB内建函数的FIR设计
在Matlab中已经内建有各种滤波器的设计函数,可以直接在程序中调用,这里介绍其中几个函数.
1,fir1函数
功能:设计标准频率响应的基于窗函数的FIR滤波器.
语法:b=fir1(n,Wn);
b=fir1(n,Wn,‘ftytpe’);
b=fir1(n,Wn,Window);
b=fir1(n,Wn,‘ftype’,Window);
说明:fir1函数可以实现加窗线形相位FIR数字滤波器设计,它可以设计出标准的低通、高通、带通和带阻滤波器.
b=fir1(n,Wn)可得到n阶低通,截至频率为Wn的汉明加窗线形相位FIR滤波器,0≤Wn≤1,Wn=1相当于0.5fs.滤波器系数包含在b中,可表示为
当Wn=[W1 W2]时,fir1函数可得到带通滤波器,其通带为W1<w<W2.
当ftype=high时,设计高通FIR滤波器;当ftype=stop时,设计带阻滤波器.
在设计高通和带阻滤波器时,由于对奇次阶的滤波器,其在Nyquist频率处的频率响应为零,不适合构成高通和带阻滤波器.因此fir1函数总是使用阶数为偶数的滤波器,当输入的阶数为奇数时,fir1函数会自动将阶数加1.
b=fir1(n,Wn,Window)利用参数Window来指定滤波器采用的窗函数类型.其默认值为汉明窗.
b=fir1(n,Wn,‘ftype’,Window)可利用ftype和Window参数,设计各种滤波器.
2,fir2函数
功能:设计任意频率响应的基于窗函数的FIR滤波器.
语法:b=fir2(n,f,m);
b=fir2(n,f,m,Window);
b=fir2(n,f,m,npt);
b=fir2(n,f,m,npt,window);
b=fir2(n,f,m,npt,lap);
b=fir2(n,f,m,npt,lap,Window);
说明:fir2函数可以用于设计有任意频率响应的加窗FIR滤波器,对标准的低通、带通、高通和带阻滤波器的设计可使用fir1函数.
b=fir2(n,f,m)可设计出一个n阶的FIR滤波器,其滤波器的频率特性由参数f和m决定.参数f为频率点矢量,且f∈[0,1],f=1对应于0.5fs.矢量f按升序排列,且diyi个元素必须是0,Z后一个必须为1,并可以包含重复的频率点.矢量m中包含了与f相对应的期望得到的滤波器的幅度.
b=fir2(n,f,m,Window)中用参数Window来指定使用的窗函数类型,默认值为汉明窗.
b=fir2(n,f,m,npt)中用参数npt来指定fir2函数对频率响应进行内插的点数.
b=fir2(n,f,m,npt,lap)中用参数lap来指定fir2在重复频率点附近插入的区域大小.
14 0 2017-11-27 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论