做DSP滤波的问题

[复制链接]
 楼主| tianli1980 发表于 2014-11-21 20:17 | 显示全部楼层 |阅读模式
做DSP滤波,用MATLAB的FDATOOL设计fir滤波器,界面上显示的阶数是25,为什么导出的系数是26个呢?求指教!
zhangmangui 发表于 2014-11-21 22:23 | 显示全部楼层
例3 利用MATLAB编程设计一个数字带通滤波器,指标要求如下:通带边缘频率:Ωp1=0.45pi,Ωp2=0.65pi,通带峰值起伏:δ1<=1[dB]。阻带边缘频率:Ωs1=0.3pi,Ωs2=0.8pi,最小阻带衰减:δ2>=40[dB] 。方法一:窗函数法
程序如下:
[n,wn,bta,ftype]=kaiserord([0.3 0.45 0.65 0.8],[0 1 0],[0.01 0.1087 0.01]);%用kaiserord函数估计出滤波器阶数n和beta参数
h1=fir1(n,wn,ftype,kaiser(n+1,bta),'noscale');
[hh1,w1]=freqz(h1,1,256);
figure(1)
subplot(2,1,1)
plot(w1/pi,20*log10(abs(hh1)))
grid
xlabel('归一化频率w');ylabel('幅度/db');
subplot(2,1,2)
plot(w1/pi,angle(hh1))
grid
xlabel('归一化频率w');ylabel('相位/rad');
波形如下:

滤波器系数为:
h1 =
  Columns 1 through 8
    0.0041    0.0055   -0.0091   -0.0018   -0.0056   -0.0000    0.0391   -0.0152
  Columns 9 through 16
   -0.0381    0.0077   -0.0293    0.0940    0.0907   -0.2630   -0.0517    0.3500
  Columns 17 through 24
   -0.0517   -0.2630    0.0907    0.0940   -0.0293    0.0077   -0.0381   -0.0152
  Columns 25 through 31
    0.0391   -0.0000   -0.0056   -0.0018   -0.0091    0.0055    0.0041

如果直接用freqz(h1,1,256),得幅频特性和相频特性曲线:
vivilzb1985 发表于 2014-11-23 13:36 | 显示全部楼层
参考学习了啊。。
angerbird 发表于 2014-11-23 22:10 | 显示全部楼层
不是很明白的,,帮着顶一下的吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

482

主题

2214

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部