数字信号处理实验报告--滤波器设计

更新时间:2024-01-31 13:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

大连理工大学实验报告

学院(系): 专业: 班级:

姓 名: 学号: 组: ___

实验时间: 实验室: 实验台: 指导教师签字: 成绩:

实验三 滤波器设计

一、实验结果与分析

IIR部分:

1.用buttord和butter函数,直接设计一个巴特沃兹高通滤波器,要求通带截止频率为0.6?,通带内衰减不大于1dB,阻带起始频率为0.4?,阻带内衰减不小于15dB,观察其频谱响应的特点: clc,clear

wp=0.6*pi/pi; ws=0.4*pi/pi; ap=1,as=15;

[N,wn]=buttord(wp,ws,ap,as); [bz,az]= butter(N,wn,'high'); [H,W]=freqz(bz,az);

plot(W,20*log10(abs(H))); grid on;

xlabel('频率/弧度') ;

ylabel('对数幅频响应/dB') ; axis([0.2*pi pi -40 1]);

0-5-10对数幅频响应/dB-15-20-25-30-35-4011.52频率/弧度2.53

2. 给定带通滤波器的技术指标:通带上下截止频率为0.4?,0.3?,通带内衰减不大于3dB,阻带上下起始频率为0.5?,0.2?,阻带内衰减不小于18dB。用buttord和butter函数,对比巴特沃兹和切比雪夫的效果: clc,clear

wp=[0.3*pi/pi,0.4*pi/pi]; ws=[0.2*pi/pi,0.5*pi/pi]; ap=3,as=18;

[N,wn]=buttord(wp,ws,ap,as); [bz,az]= butter(N,wn); [H,W]=freqz(bz,az);

plot(W,20*log10(abs(H))); grid on;

xlabel('频率/弧度') ;

ylabel('对数幅频响应/dB') ; axis([0 pi -60 1]);

0-10对数幅频响应/dB-20-30-40-50-6000.511.5频率/弧度22.53

3.用双线性变换法的模拟滤波器原型设计一个巴特沃兹低通滤波器,给定技术指标是

fp?100Hzfst?300Hz?p?3dB?s?20dBF?1000Hz:

,抽样频率为sclc,clear;

Rp=3; Rs=20;

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

wap=2*Fs*tan(wp/2);was=2*Fs*tan(ws/2);

[N,Wn]=buttord(wap,was,Rp,Rs,'s'); [Z,P,K]=buttap(N);

[Bap,Aap]=zp2tf(Z,P,K); [b,a]=lp2lp(Bap,Aap,Wn); [bz,az]=bilinear(b,a,Fs); %绘制频率响应曲线 [H,W]=freqz(bz,az);

plot(W,20*log10(abs(H))); grid on;

xlabel('频率/弧度')

ylabel('对数幅频响应/dB') axis([0 0.5*pi -50 1])

0-5-10-15对数幅频响应/dB-20-25-30-35-40-45-5000.5频率/弧度11.5

4. 用双线性变换法的模拟滤波器原型和直接设计法(buttord以及butter)两种方法,设计一个数字系统的抽样频率Fs=2000Hz,试设计一个为此系统使用的带通数字滤波器。要求: (1)通带范围为300~400Hz,在带边频率处的衰减不大于3dB (2)在200Hz以下和500Hz以上衰减不小于18dB 模拟滤波器原型: clc,clear;

Rp=3; Rs=18;

wp=[0.3*pi,0.4*pi]; ws=[0.2*pi,0.5*pi]; W=sqrt(0.3*pi*0.4*pi); Fs=2000;

wap=2*Fs*tan(wp/2);was=2*Fs*tan(ws/2); W0=sqrt(wap(1)*was(1)); %重点

bw=wap(2)-wap(1); [N,Wn]=buttord(wap,was,Rp,Rs,'s'); [Z,P,K]=buttap(N);

[Bap,Aap]=zp2tf(Z,P,K);

[b,a]=lp2bp(Bap,Aap,W0,bw); [bz,az]=bilinear(b,a,Fs); %绘制频率响应曲线 [H,W]=freqz(bz,az);

plot(W,20*log10(abs(H))); grid on;

xlabel('频率/弧度')

ylabel('对数幅频响应/dB') axis([0 pi -60 1]);

%重点

0-10对数幅频响应/dB-20-30-40-50-6000.511.5频率/弧度22.53

直接设计法(同第二题): clear;

wp=[0.3*pi/pi,0.4*pi/pi]; ws=[0.2*pi/pi,0.5*pi/pi]; Rp=3; Rs=18;

[N,wn]=buttord(wp,ws,Rp,Rs); [bz,az]= butter(N,wn); [H,W]=freqz(bz,az);

plot(W,20*log10(abs(H))); grid on;

xlabel('频率/弧度') ;

ylabel('对数幅频响应/dB') ; axis([0 pi -60 1]);

0-10对数幅频响应/dB-20-30-40-50-6000.511.5频率/弧度22.53

FIR设计:

1. 分别用海宁窗和矩形窗设计一个N=10的FIR低通和高通滤波器,截止频率W=c绘制出其幅频特性曲线和相频特性曲线。作出各滤波器的单位脉冲响应。 %矩形低通

b1=fir1(10, 1/3, boxcar(11)); [H1,w]=freqz(b1, 1, 512); H1_db=20*log10(abs(H1)); %汉宁低通

b2=fir1(10, 1/3, hanning(11)); [H2,w]=freqz(b2, 1, 512); H2_db=20*log10(abs(H2)); %矩形高通

b3=fir1(10, 1/3, 'high',boxcar(11)); [H3,w]=freqz(b3, 1, 512); H3_db=20*log10(abs(H3)); %汉宁高通

b4=fir1(10, 1/3,'high',hanning(11)); [H4,w]=freqz(b4, 1, 512); H4_db=20*log10(abs(H4)); figure(1);

subplot(2,2,1); stem([0:10],b1);

prad。3

title('矩形窗FIR低通滤波器脉冲响应') ; subplot(2,2,2); stem([0:10],b2);

title('汉宁窗FIR低通滤波器脉冲响应') ; subplot(2,2,3); stem([0:10],b3);

title('矩形窗FIR高通滤波器脉冲响应'); subplot(2,2,4); stem([0:10],b4);

title('汉宁窗FIR高通滤波器脉冲响应'); figure(2);

subplot(2,1,1);plot(w,H1_db,w,H2_db,'r--'); title('Frequency response(低通)')

legend('rectangular window', 'hanning window') grid on;

subplot(2,1,2);plot(w,H3_db,w,H4_db,'r--'); title('Frequency response(高通)')

legend('rectangular window', 'hanning window') grid on

得到频率响应特性为:

Frequency response(低通)200-20-40-60-80-100 00.511.522.533.5rectangular windowhanning window Frequency response(高通)200-20-40-60-80 0rectangular windowhanning window 0.511.522.533.5

单位脉冲响应:

矩形窗FIR低通滤波器脉冲响应0.60.40.20-0.20510汉宁窗FIR低通滤波器脉冲响应0.60.40.20-0.20510矩形窗FIR高通滤波器脉冲响应10.5汉宁窗FIR高通滤波器脉冲响应10.500-0.50510-0.50510

2. 利用频率取样法分别设计I型和II型FIR低通滤波器,N=16。给定指标为

绘制出其幅频特性曲线和相频特性曲线。作出滤波器的单位脉冲响应。 f = [0 2/16 4/16 6/16 8/16 10/16 12/16 12/16 1]; m = [1 1 1 1 0.389 0 0 0 0]; b = fir2(16, f, m);

[h,w] = freqz(b, 1); figure(1);

subplot(1,2,1);

H_db=20*log10(abs(h)); plot(w,H_db);

title('频率抽样I型滤波器频响');grid on; subplot(1,2,2); stem([0:16],b);

title('I型滤波器的单位脉冲响应');

f1 = [0 1/16 3/16 5/16 7/16 9/16 11/16 13/16 13/16 1];

m1= [1 1 1 1 1 0.389 0 0 0 0]; b1 = fir2(16, f1, m1); [h1,w] = freqz(b1, 1); figure(2);

subplot(1,2,1);

H_db1=20*log10(abs(h1)); plot(w/pi,H_db1);

title('频率抽样II型滤波器频响');grid on; subplot(1,2,2); stem([0:16],b1);

title('II型滤波器的单位脉冲响应');

频率抽样I型滤波器频响200-20-40-60-80-100-12001234频率抽样II型滤波器频响200-20-40-60-80-100-12000.51I型滤波器的单位脉冲响应0.60.50.40.30.20.10-0.105101520II型滤波器的单位脉冲响应0.60.50.40.30.20.10-0.105101520

3. 利用频率取样法设计一个带通滤波器,已知N=16

绘制出其幅频特性曲线和相频特性曲线。作出滤波器的单位脉冲响应。 f = [0 2/16 4/16 6/16 8/16 10/16 12/16 14/16 1]; m = [0 0 0.456 1 1 1 0.456 0 0]; b = fir2(16, f, m);

[h,w] = freqz(b, 1); figure(1);

subplot(1,2,1);

H_db=20*log10(abs(h)); plot(w,H_db);

title('频率抽样FIR滤波器频响');grid on; subplot(1,2,2); stem([0:16],b);

title('频率抽样FIR滤波器的单位脉冲响应');

频率抽样FIR滤波器频响0-5-10-15-20-25-30-35-400.50.40.30.20.10-0.1-0.2-0.3频率抽样FIR滤波器的单位脉冲响应0123405101520

二、建议与体会

首先是做IIR实验遇到的问题,由于对[b,a]=lp2bp(Bap,Aap,W0,bw); 该语句了解不够透彻,把W0当做了截止频率,而实质上应为通带的中心频率,然后就是W0和bw的计算上,应先对ws和wp预畸变得到was和wap才能计算W0和bw,否则设计的滤波器会出错。做FIR实验遇到的问题,首先是定义f=[…],矩阵的起始为0,结束为1,前期没考虑这一点导致出错。还有就是对于频率抽样I型和II型没有明确的概念,导致做FIR第二题时花了较长时间。总的来说做完本实验掌握了设计滤波器的方法,收获还是挺多的。

本文来源:https://www.bwwdw.com/article/ljiw.html

Top