我要发布
仪器网/ 仪器社区/ 滤波器/ 在设计FIR滤波器时遇到点问题,怎么解决?急求

在设计FIR滤波器时遇到点问题,怎么解决?急求

QCNAN564    2010-09-17    滤波器    浏览 366 次

clear all; wlp=0.2*pi;wls=0.35*pi;wus=0.65*pi;wup=0.8*pi; B=wls-wlp; M=ceil(12*pi/B)-1; wp=[(wls+wlp)/2/pi,(wus+wup)/2/pi]; hn=fir1(M,wp,'stop',blackman(M+1)); 运行该程序会显示如下错误: ??? Error using ==> fir1 at 92 The window l... clear all;
wlp=0.2*pi;wls=0.35*pi;wus=0.65*pi;wup=0.8*pi;
B=wls-wlp;
M=ceil(12*pi/B)-1;
wp=[(wls+wlp)/2/pi,(wus+wup)/2/pi];
hn=fir1(M,wp,'stop',blackman(M+1));

运行该程序会显示如下错误:
??? Error using ==> fir1 at 92
The window length must be the same as the filter length.
具体该怎么解决那?

精彩问答
三木孕堵 发布日期:2010-09-20
先看下fir1中的一段解释
For filters with a gain other than zero at Fs/2, e.g., highpass
and bandstop filters, N must be even. Otherwise, N will be
incremented by one. In this case the window length should be
specified as N+2.
即高通、带阻滤波器的阶数应该控制为奇数,因为如果阶数为偶数,则在π点必有一零点,这对于高通带阻来说是不允许的,故取阶数为奇数,而你FIR1滤波器阶数为M+1阶,所以你的M必须为偶数,所以可以将程序改为
clear all;
clc
wlp=0.2*pi;wls=0.35*pi;wus=0.65*pi;wup=0.8*pi;
B=wls-wlp;
M=ceil(12*pi/B);
M=M+mod(M,2);
wp=[(wls+wlp)/2/pi,(wus+wup)/2/pi];
hn=fir1(M,wp,'stop',blackman(M+1));
freqz(hn)
全部评论
就上此网14 发布日期:2010-09-18
窗的长度必须和滤波器长度一致
blackman(M+1)改为blackman(M)
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录

当前页面为旧版页面,诚邀您切换到新版页面。| 感受更多精心打造的新增功能、更加流畅的操作体验。

官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控