实验六 IIR数字滤波器的设计.docx
《实验六 IIR数字滤波器的设计.docx》由会员分享,可在线阅读,更多相关《实验六 IIR数字滤波器的设计.docx(14页珍藏版)》请在冰豆网上搜索。
![实验六 IIR数字滤波器的设计.docx](https://file1.bdocx.com/fileroot1/2023-1/26/91c1d7b1-0b1f-4d72-947f-21312b3e5000/91c1d7b1-0b1f-4d72-947f-21312b3e50001.gif)
实验六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*512)
ifabs(20*log10(abs(h)))>0.3
error=1;
disp('④通带内有个别点值不满足最高损耗--0.3dB--的要求:
(');
break;
end
end
forstep=fix(0.6*512):
1:
512
ifabs(20*log10(abs(h)))<60
error=1;
disp('④通带内有个别点值不满足最高损耗--0.3dB--的要求:
(');
break;
end
end
iferror==0
disp('④通带内所有点值均满足最高损耗--0.3dB--的要求:
)');
end
截图如下:
图:
6-7
图:
6-8
实验总流程图:
图:
6-9
四、实验总结
通过对本实验的上机测试,加深了对双线性变换法及冲激响应不变法设计IIR数字滤波器的具体设计方法及其原理的了解,了解了设置滤波器函数的用法:
cheblord函数:
[n,Wn]=cheblord(Wp,Ws,Rp,Rs)其中Wp和Ws分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。
当其值为1时代表采样频率的一半。
Rp和Rs分别是通带和阻带区的波纹系数。
传输函数使用如下两个命令:
(1)[num,den]=cheby1(N,Rp,Wn),Wn是标量,则为低通,否则为带通;
(2)[num,den]=cheby1(N,Rp,Wn,’filterType’),Wn是标量,filterType可以填high为高通;Wn是双元素向量,填stop为带阻。
buttord函数
[B,A]=butter(N,Wn,S)上式中N代表滤波器阶数,Wn为要求的标准化截至频率,单位为rad/sample,如果是带阻滤波器,则Wn为长度为2的向量[w1w2],S为字符串,表明设计的滤波器类型,low低通/high高通/stop带阻。
关于标准化的频率计算为:
设要求的频率为f(Hz),采样率为Fs(Hz),则Wn=(2*pi*f/Fs)/pi=2*f/Fs,所以,标准化截至频率在区间[0,1]内。
freqz函数
[H,F]=freqz(B,A,N,Fs)其中B/A提供滤波器系数, N 表示选取单位圆的上半圆等间距的N个点作为频响输出; Fs为采样频率,该参数可以省略; H为N个点处的频率响应复值输出向量,其模即为频响幅值曲线幅值20log10(abs(H))DB,其幅角angle(H)即为频响相位曲线相位值。
F 为与第N点处对应的频率值f(Hz),如果Fs参数省略时,则频率值w为rad/sample,w=2*pi*f/Fs。
Filter函数
Y=filter(B,A,X)其中,B/A提供滤波器系数,X为滤波前序列,Y为滤波结果序列。
从这些函数中理解设置滤波器函数的整个过程,更加深入了解滤波器的含义。