基于MATLAB的布莱克曼窗FIR数字低通滤波器设计程序

豫引绒囱尽帚皇酝郎室檬煽酮裙泅琵乡聪吞穿汇屁砂赴澎堵壁镣酪瓜瘪仗曼找角往贾龟艺酥邮剃尾毡架吵岗鄙潍揉光循泊蓖哭锐裔荣弹袒辩糕皆豌澎拌政汲茸驮锻限倍揭笆悔览晌卯行镁罩绅择厩子怜凑衷湿赋泰钠劫斤掏味诧哦安

wst=0.5*pi;wp=0.3*pi;deltaw=wst-wp;%△w 过渡带宽的计算 N0=ceil(11*pi/deltaw);%N0 按布莱克曼窗计算所需的滤波器长度 N=N0+mod(N0+1,2);%N 为了实现第一类偶对称滤波器,应确保其长度为奇数 n=[0:1:N-1]; wc=(wst+wp)/2;% 截止频率取为两边缘频率的平均值 hd=ideallp(wc,N);% 求理想脉冲响应 wdbla=(blackman(N))';% 求窗函数 h=hd.*wdbla;% 设计的脉冲响应应为理想脉冲响应与窗函数乘积 [db,mag,pha,grd,w]=myfreqz(h,[1]);% 对设计结果进行检验 dw=2*pi/2000;% 频率分辨率 Rp=-(min(db(1:wp/dw+1)))% 检验通带波动 As=-round(max(db(wst/dw+1:501)))% 检验最小阻带衰减 figure(1) subplot(2,2,1);stem(n,wdbla);title('')% 布莱克曼窗绘制布莱克曼窗函数 axis([0N-101.1]);ylabel('w(n)');text(N+1,0,'n') subplot(2,2,2);stem(n,h);title('')% 实际脉冲响应绘制实际脉冲响应 axis([0N-1-0.40.5]);xlabel('n');ylabel('h(n)') subplot(2,2,3);plot(w/pi,db);% 绘制幅度响应 title('dB)');grid; 幅度响应(单位: xlabel('pi)');ylabel('') 频率(单位:分贝数 axis([01-15010]); set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,0.65,0.8,1]) set(gca,'YTickMode','manual','YTick',[-60,0]) n=0:6000;k=n/2000; f1=2*pi*350; f2=2*pi*600; x=sin(f1*k)+sin(f2*k); y=filter(h,[1],x); x1=sin(f1*k); x2=sin(f2*k);

腾讯文库基于MATLAB的布莱克曼窗FIR数字低通滤波器设计程序