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

  • 格式:doc
  • 大小:22.00 KB
  • 文档页数:2

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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([0 N-1 0 1.1]);ylabel('w(n)');text(N+1,0,'n')

subplot(2,2,2);stem(n,h);title('实际脉冲响应')%绘制实际脉冲响应axis([0 N-1 -0.4 0.5]);xlabel('n');ylabel('h(n)')

subplot(2,2,3);plot(w/pi,db);%绘制幅度响应

title('幅度响应(单位:dB)');grid;

xlabel('频率(单位: pi)');ylabel('分贝数')

axis([0 1 -150 10]);

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);

figure(2)

subplot(2,2,1);plot(x1);title('x1的图形');

grid;

axis([0 100*pi -5 5]);

ylabel('x1');

subplot(2,2,2);plot(x2);title('x2的图形');

grid;

axis([0 100*pi -5 5]);

ylabel('x2)');

subplot(2,2,3);plot(x);title('x的图形');

grid;

axis([0 100*pi -5 5]);

ylabel('x');

subplot(2,2,4);plot(y);title('y的图形'); grid;

axis([0 100*pi -5 5]);

ylabel('y');