实验六IIR数字滤波器的设计.docx
《实验六IIR数字滤波器的设计.docx》由会员分享,可在线阅读,更多相关《实验六IIR数字滤波器的设计.docx(14页珍藏版)》请在冰豆网上搜索。
实验六IIR数字滤波器的设计
GuangxiUniversityofScienceandTechnology
实验报告
实验课程:
数字信号处理教程
实验内容:
IIR数字滤波器的设计
院(系):
计算机科学与通信工程学院
专业:
通信工程
班级:
学生姓名:
学号:
指导教师:
2016年6月14日
实验六IIR数字滤波器的设计
一、实验目的
1.掌握双线性变换法及冲激响应不变法设计IIR数字滤波器的具体设计方法及其原理,熟悉用双线性变换法及冲激响应不变法设计低通、高通和带通IIR数字滤波器的计算机编程。
2.观察双线性变换及冲激响应不变法设计的滤波器的频域特性,了解双线性变换法及冲激响应不变法的特点。
3.熟悉Butterworth滤波器、Chebyshev滤波器的频率特性。
二、实验原理与方法
(1)冲激响应不变法
用数字滤波器的单位冲激响应序列h(n)模仿模拟滤波器的冲激响应ha(t),让h(n)正好等于ha(t)的采样值,即
h(n)=ha(nT)
其中T为采样间隔,如果以Ha(S)及H(z)分别表示ha(t)的拉式变换及h(n)的Z变换,则
(2)双线性变换法
S平面与z平面之间满足以下映射关系:
s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。
双线性变换不存在混叠问题。
双线性变换时一种非线性变换
,这种非线性引起的幅频特性畸变可通过预畸而得到校正。
IIR低通、高通、带通数字滤波器设计采用双线性原型变换公式:
变换类型
变换关系式
备 注
低通
高通
带通
为带通的上下
边带临界频率
以低通数字滤波器为例,将设计步骤归纳如下:
1.确定数字滤波器的性能指标:
通带临界频率fp、阻带临界频率fr;通带内的最大衰减Ap;阻带内的最小衰减Ar;采样周期T;
2. 确定相应的数字角频率,ωp=2πfpT;ωr=2πfrT;
3. 计算经过预畸的相应模拟低通原型的频率,
;
4. 根据Ωp和Ωr计算模拟低通原型滤波器的阶数N,并求得低通原型的传递函数Ha(s);
5. 用上面的双线性变换公式代入Ha(s),求出所设计的传递函数H(z);
6. 分析滤波器特性,检查其指标是否满足要求。
三、实验内容及步骤
(1)fp=0.3KHz,Ap=0.8dB,fr=0.2KHz,Ar=20dB,T=1ms;设计一Chebyshev(I型)高通滤波器,观察其通带损耗和阻带衰减是否满足要求。
程序如下;
Wp=2*300*0.001;%滤波器的通带截止频率
Ws=2*200*0.001;%滤波器的阻带截止频率
Rp=0.8;%输入滤波器的通带衰减指标
Rs=20;%输入滤波器的阻带衰减指标
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);%计算契比雪夫I型滤波器阶数及截止频率
[num,den]=cheby1(N,Rp,Wn,'high');%求滤波器的分子及分母的系数矩阵
disp('①分子系数是:
');disp(num);
disp('②分母系数是:
');disp(den);
[h,w]=freqz(num,den);%求系统频率响应
subplot(2,1,1);
plot(w/pi,abs(h));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型高通滤波器的幅频响应');
subplot(2,1,2);
plot(w/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('契比雪夫Ⅰ型高通滤波器的幅频响应');
error=0;
forstep=fix(0.6*512):
1:
512
ifabs(20*log10(abs(h)))>=0.8
error=1;
disp('③通带内有个别点值不满足最高损耗--0.8dB--的要求:
(');
end
end
iferror==0
disp('③通带内所有点值均满足最高损耗--0.8dB--的要求:
)');
end
error=0;
forstep=0:
1:
fix(0.4*512)
ifabs(20*log10(abs(h)))<20
error=1;
disp('④阻带内有个别点值不满足最低衰减--20dB--的要求:
(');
end
end
iferror==0
disp('④阻带内所有点值均满足最低衰减--20dB--的要求:
)');
end
截图如下:
图:
6-1
图:
6-2
(2)设计满足下列指标的Butterworth型数字低通滤波器,观察其通带损耗和阻带衰减是否满足要求。
fp=1.2kHz,Ap≤0.5dB,fr=2KHz,Ar≥40dB,fs=8KHz
程序如下:
Wp=2*1200*(1/8000);%滤波器的通带截止频率
Ws=2*2000*(1/8000);%滤波器的阻带截止频率
Rp=0.5;%输入滤波器的通带衰减指标
Rs=40;%输入滤波器的阻带衰减指标
[N,Wn]=buttord(Wp,Ws,Rp,Rs);
[num,den]=butter(N,Wn);
disp('①分子系数是:
');disp(num);
disp('②分母系数是:
');disp(den);
[h,w]=freqz(num,den);
subplot(2,1,1);
plot(w/pi,abs(h));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('巴特沃兹型低通滤波器的幅频响应');
subplot(2,1,2);
plot(w/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('巴特沃兹型低通滤波器的幅频响应');
error=0;
forstep=1:
1:
fix(0.3*512)
ifabs(20*log10(abs(h)))>=0.5
error=1;
disp('③通带内有个别点值不满足最高损耗--0.5dB--的要求:
(');
end
end
iferror==0
disp('③通带内所有点值均满足最高损耗--0.5dB--的要求:
)');
end
error=0;
forstep=fix(0.5*512):
1:
512
ifabs(20*log10(abs(h)))<40
error=1;
disp('④阻带内有个别点值不满足最低衰减--40dB--的要求:
(');
end
end
iferror==0
disp('④阻带内所有点值均满足最低衰减--40dB--的要求:
)');
end
截图如下:
图:
6-3
图:
6-4
(3)设计满足下列指标的Chebyshev(I型)带通滤波器,观察其通带损耗和阻带衰减是否满足要求。
fp1=1.2kHz,fp2=2KHz,Ap≤0.5dB;
fst1=0.8kHz,fst2=2.4KHz,Ar≥60dB;
fs=8KH
程序如下:
Wp=[0.30.5];
Ws=[0.20.6];
Rp=0.5;
Rs=60;
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);
[num,den]=cheby1(N,Rp,Wn);
[h,w]=freqz(num,den);
subplot(2,1,1);
plot(w/pi,abs(h));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('契比雪夫Ⅰ型带通滤波器的幅频响应');
subplot(2,1,2);
plot(w/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('契比雪夫Ⅰ型带通滤波器的幅频响应');
error=0;
forstep=fix(0.3*512):
1:
fix(0.5*512)
ifabs(20*log10(abs(h)))>=0.5
error=1;
disp('③通带内有个别点值不满足最高损耗--0.5dB--的要求:
(');
break;
end
end
iferror==0
disp('③通带内所有点值均满足最高损耗--0.5dB--的要求:
)');
end
error=0;
forstep=1:
1:
fix(0.2*512)
ifabs(20*log10(abs(h)))<60
error=1;
disp('④阻带内有个别点值不满足最低衰减--60dB--的要求:
(');
break;
end
end
forstep=fix(0.6*512):
1:
512
ifabs(20*log10(abs(h)))<60
error=1;
disp('④阻带内有个别点值不满足最低衰减--60dB--的要求:
(');
break;
end
end
iferror==0
disp('④阻带内所有点值均满足最低衰减--60dB--的要求:
)');
end
截图如下:
图:
6-5
图:
6-6
(4)设计满足下列指标的巴特沃兹带阻滤波器,观察其通带损耗和阻带衰减是否满足要求。
Fst1=1.2kHz,fst2=2KHz,Ar≥80dB;
fp1=0.8kHz,fp2=3KHz,Ap≤0.3dB;
fs=10KHz
程序如下:
Wp=[0.160.6];
Ws=[0.240.4];
Rp=0.3;
Rs=80;
[N,Wn]=buttord(Wp,Ws,Rp,Rs);
[num,den]=butter(N,Wn,'stop');
[h,w]=freqz(num,den);
subplot(2,1,1);
plot(w/pi,abs(h));grid;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('巴特沃兹带阻滤波器的幅频响应');
subplot(2,1,2);
plot(w/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('巴特沃兹带阻滤波器的幅频响应');
error=0;
forstep=fix(0.24*512):
1:
fix(0.4*512)
ifabs(20*log10(abs(h)))<80
error=1;
disp('③阻带内有个别点值不满足最低衰减--80dB--的要求:
(');
break;
end
end
iferror==0
disp('③阻带内所有点值均满足最低衰减--80dB--的要求:
)');
end
error=0;
forstep=1:
1:
fix(0.16