当前位置:文档之家› 数字信号处理实验数字滤波器设计

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

大连理工大学实验报告
学院(系):电信专业:生物医学工程
班级: ***1101
姓名: *** 学号: 201181*** 组:
___
实验时间:实验室:实验台:
指导教师签字:成绩:
实验三 FIR数字滤波器设计
一、实验程序
1. 分别用海宁窗和矩形窗设计一个N=10的FIR低通和高通
滤波器,截止频率。

绘制出其幅频特性曲线和相频特性
曲线。

作出各滤波器的单位脉冲响应。

低通滤波器设计:
clear;
clc
close all;
wc=1/3;
N=10;
b1=fir1(10,wc,boxcar(11));
[H1,w]=freqz(b1,1,512);
H1_db=20*log10(abs(H1));
figure;
subplot(121)
plot(w,abs(H1)); title('Rectangle窗的幅频特性曲线'); subplot(122)
plot(w,angle(H1)); grid on
title('Rectangle窗的相频特性曲线');
b2=fir1(10,wc,hanning(11));
[H2,w]=freqz(b2,1,512);
H2_db=20*log10(abs(H2));
figure
subplot(211);stem([0:10],b1);
title('矩形窗得到的FIR滤波器脉冲响应')
subplot(2,1,2); stem([0:10],b2);
title('汉宁窗得到的FIR滤波器脉冲响应')
figure
plot(w,H1_db,w,H2_db,'r--');
title('Frequency response')
legend('rectangular window', 'hanning window') grid on
figure;
subplot(121)
plot(w,abs(H2)); title('hanning窗的幅频特性曲线'); subplot(122)
plot(w,angle(H2)); grid on
title('hanning窗的相频特性曲线');
Image
Image
高通滤波器设计:
clear;
clc
close all;
wc=1/3;
N=10;
b1=fir1(10,wc,'high',boxcar(11));
[H1,w]=freqz(b1,1,512);
H1_db=20*log10(abs(H1));
figure;
subplot(121)
plot(w,abs(H1)); title('Rectangle窗的幅频特性曲线'); subplot(122)
plot(w,angle(H1)); grid on
title('Rectangle窗的相频特性曲线');
b2=fir1(10,wc,'high',hanning(11));
[H2,w]=freqz(b2,1,512);
H2_db=20*log10(abs(H2));
figure
subplot(211);stem([0:10],b1);
title('矩形窗得到的FIR滤波器脉冲响应')
subplot(2,1,2); stem([0:10],b2);
title('汉宁窗得到的FIR滤波器脉冲响应')
figure
plot(w,H1_db,w,H2_db,'r--');
title('Frequency response')
legend('rectangular window', 'hanning window') grid on
figure;
subplot(121)
plot(w,abs(H2)); title('hanning窗的幅频特性曲线'); subplot(122)
plot(w,angle(H2)); grid on
title('hanning窗的相频特性曲线');
Image
Image
Image
Image
IIR数字滤波器设计
1. 用双线性变换法设计一个巴特沃斯IIR低通数字滤波器。

设计指标参数为:在通带内频率低于0.4*pi 时,最大衰减小于2dB ;在阻带内[0.6*pi, pi] 频率区间上,最小衰减大于15dB 。

要求:
(1)用buttord,buttap,zp2tf,lp2lp,bilinear等指令实现
(2)用buttord,butter指令实现
% 方法一:用buttord,buttap,zp2tf,lp2lp,bilinear等指令实现
%求模拟滤波器参数,
clc;clear all; close all
Rp=2; Rs=15;
wp=0.2*pi; ws=0.3*pi;
Fs=1;
wap=2*Fs*tan(wp/2);was=2*Fs*tan(ws/2);
%选择滤波器的最小阶数
[N,Wn]=buttord(wap,was,Rp,Rs,'s');
%创建butterworth模拟滤波器
[Z,P,K]=buttap(N);
%把滤波器零极点模型转化为传递函数模型
[Bap,Aap]=zp2tf(Z,P,K);
%把模拟滤波器原型转换成截至频率为Wn的低通滤波器
[b,a]=lp2lp(Bap,Aap,Wn);
%用双线性变换法实现模拟滤波器到数字滤波器的转换
[bz,az]=bilinear(b,a,Fs);
%绘制频率响应曲线
[H,W]=freqz(bz,az);
plot(W,20*log10(abs(H)));
grid
xlabel('频率/弧度')
ylabel('对数幅频响应/dB')
axis([0 1.2*pi -40 1])
Image
2.
%设置滤波器参数
clc;clear all; close all
Rp=2; Rs=15;
wp=0.2*pi/pi; ws=0.4*pi/pi;
Fs=1;
%选择滤波器的最小阶数
[N,Wn]=buttord(wp,ws,Rp,Rs);
%用双线性变换法的butter指令直接实现IIR数字滤波器的设计[bz,az]= butter(N,Wn)
%绘制频率响应曲线
[H,W]=freqz(bz,az);
plot(W,20*log10(abs(H)));
grid
xlabel('频率/弧度')
ylabel('对数幅频响应/dB')
axis([0 1.2*pi -40 1])
Image
2.用buttord和butter函数,直接设计一个巴特沃兹高通滤波器,要求通带截止频率为,通带内衰减不大于1dB,阻带起始频率为,阻带内衰减不小于15dB,观察其频谱响应的特点。

clc
clear all
close all
Rp=1;
Rs=15;
wp=0.2*pi/pi;
ws=0.3*pi/pi;
Fs=1;
%选择滤波器的最小阶数
[N,Wn]=buttord(wp,ws,Rp,Rs);
%用双线性变换法的butter指令直接实现IIR数字滤波器的设计[bz,az]= butter(N,Wn,'high')
%绘制频率响应曲线
[H,W]=freqz(bz,az);
plot(W,20*log10(abs(H)));
grid
xlabel('频率/弧度')
ylabel('对数幅频响应/dB')
axis([0 0.4*pi -40 1])
Image
二、实验总结
本次实验中,设计IIR滤波器主要用到两种方法,冲激响应不变法和双线性变换法。

本次实验较简单。

但让我们再一次了解到了双线性变换法和冲击响应不变法的流程步骤。

FIR滤波器的设计主要靠窗函数法。

两次实验加深了我们对数字信号处理中两种重要滤波器的设计方法的理解。

相关主题