实验11用MATLAB设计FIR数字滤波器综述

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

实验11 用MATLAB 设计FIR 数字滤波器

一、实验目的:

1、加深对窗函数法设计FIR 数字滤波器的基本原理的理解。

2、学习用MA TLAB 语言的窗函数法编写设计FIR 数字滤波器的程序。

3、了解MATLAB 语言有关窗函数法设计FIR 数字滤波器的常用函数用法。

二、实验内容及步骤

2、选择合适的窗函数设计FIR 数字低通滤波器,要求: w p =0.2π,R p =0.05dB ; w s =0.3π,A s =40dB 。描绘该滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。 分析:根据设计指标要求,并查表11-1,选择汉宁窗。程序清单如下: function hd=ideal_lp(wc,N)

wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; tao=(N-1)/2; n=[0:(N-1)];

m=n-tao+eps; hd=sin(wc*m)./(pi*m);

function[db,mag,pha,grd,w]=freqz_m(b,a); [H,w]=freqz(b,a,1000,'whole'); H=(H(1:501))';w=(w(1:501))'; mag=abs(H);

db=20*log10((mag+eps)/max(mag)); pha=angle(H); grd=grpdelay(b,a,w);

wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; wc=(ws+wp)/2;

课程名称:数字信号处理 实验成绩: 指导教师:

实 验 报 告

院系: 信息工程学院 班级: 电信二班 学号: 姓名: 日期:

N0=ceil(6.6*pi/deltaw);

N=N0+mod(N0+1,2)

windows=(hanning(N))';

hd=ideal_lp(wc,N);

b=hd.*windows;

[db,mag,pha,grd,w]=freqz_m(b,1);

n=0:N-1;dw=2*pi/1000;

Rp=-(min(db(1:wp/dw+1))) %检验通带波动

As=-round(max(db(ws/dw+1:501))) %检验最小阻带衰减subplot(2,2,1);stem(n,b);

axis([0,N,1.1*min(b),1.1*max(b)]);title('实际脉冲响应'); xlabel('n');ylabel('h(n)');

subplot(2,2,2);stem(n,windows);

axis([0,N,0,1.1]);title('窗函数特性');

xlabel('n');ylabel('wd(n)');

subplot(2,2,3);plot(w/pi,db);

axis([0,1,-80,10]);title('幅度频率响应');

xlabel('频率(单位:\pi)');ylabel('H(e^{j\omega})');

set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);

set(gca,'YTickMode','manual','YTick',[-50,-20,-3,0]);grid subplot(2,2,4);plot(w/pi,pha);

axis([0,1,-4,4]);title('相位频率响应');

xlabel('频率(单位:\pi)');ylabel('\phi(\omega)');

set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);

set(gca,'YTickMode','manual','YTick',[-3.1416,0,3.1416,4]);grid

N =67

Rp =0.0706

As = 44

20

40

60

实际脉冲响应

n

h (n )

窗函数特性

n

w d (n

)

0.20.3

1

-50

-20

-3

0幅度频率响应

频率(单位:π)

H (e j ω)

0.20.3

1

-3.1416

3.1416

4

相位频率响应

频率(单位:π)

φ(ω)

3、用凯塞窗设计一个FIR 数字高通滤波器,要求: w p =0.3π,R p =0.1dB ;w s =0.2π,A s =50dB 。描绘该滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。 程序清单如下:

function hd=ideal_lp(wc,N) tao=(N-1)/2; n=[0:(N-1)]; m=n-tao+eps; hd=sin(wc*m)./(pi*m);

function[db,mag,pha,grd,w]=freqz_m(b,a); [H,w]=freqz(b,a,1000,'whole'); H=(H(1:501))';w=(w(1:501))'; mag=abs(H);

db=20*log10((mag+eps)/max(mag)); pha=angle(H); grd=grpdelay(b,a,w);

wp=0.3*pi;ws=0.2*pi;

deltaw=wp-ws;

N0=ceil(6.6*pi/deltaw);

N=N0+mod(N0+1,2)

windows=(kaiser(N,7.865))';

wc=(ws+wp)/2;

hd=ideal_lp(pi,N)-ideal_lp(wc,N);

b=hd.*windows;

[db,mag,pha,grd,w]=freqz_m(b,1);

n=0:N-1;dw=2*pi/1000;

Rp=-(min(db(wp/dw+1:501))) %检验通带波动

As=-round(max(db(1:ws/dw+1))) %检验最小阻带衰减subplot(2,2,1);stem(n,b);

axis([0,N,1.1*min(b),1.1*max(b)]);title('实际脉冲响应'); xlabel('n');ylabel('h(n)');

subplot(2,2,2);stem(n,windows);

axis([0,N,0,1.1]);title('窗函数特性');

xlabel('n');ylabel('wd(n)');

subplot(2,2,3);plot(w/pi,db);

axis([0,1,-100,2]);title('幅度频率响应');

xlabel('频率(单位:\pi)');ylabel('H(e^{j\omega})'); set(gca,'XTickMode','manual','XTick',[0,ws/pi,wp/pi,1]); set(gca,'YTickMode','manual','YTick',[,-40-20,-3,0]);grid subplot(2,2,4);plot(w/pi,pha);

axis([0,1,-4,4]);title('相位频率响应');

xlabel('频率(单位:\pi)');ylabel('\phi(\omega)');

set(gca,'XTickMode','manual','XTick',[0,ws/pi,wp/pi,1]); set(gca,'YTickMode','manual','YTick',[-pi,0,pi]);grid

N =67

Rp = 0.2321

相关文档
最新文档