实验三用双线性的变换法设计IIR数字滤波器

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

实验三用双线性变换法设计IIR数字滤波器

实验项目名称:用双线性变换法设计IIR数字滤波器

实验项目性质:验证性实验

所属课程名称:数字信号处理

实验计划学时:2

一.实验目的

(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法。

(2)掌握数字滤波器的计算机仿真方法。

(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。

二.实验内容和要求

(1)用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。设计指标参数

为:在通带内频率低于0.2π时,最大衰减小于1dB;在阻带内[0.3π,π]

频率区间上,最小衰减大与15dB。

(2)以0.02π为采样间隔,打印出数字滤波器在频率区间[0,π/2]的幅频响

应特性曲线。

(3)用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进

行仿真滤波处理,并打印出滤波前后的心电图信号波形图,观察总结滤

波作用与效果。

三. 实验主要仪器设备和材料

计算机,MATLAB6.5或以上版本

四. 实验方法、步骤及结果测试

(1) 复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR 数字滤波

器的内容,用双线性变换法设计数字滤波器系统函数()z H 。其中满足本实验要求的数字滤波器系统函数为:

()()

()(

)()

2

1212

1

6

1

2155.09044.013583.00106.117051.02686.1110007378.0-------+-+-+-+=

z

z z z z z

z z H ()z H k k ∏==31

(3.1)

式中: ()()

3211212

12

1,,,k z C z B z z A z H k k k =--++=----

(3.2)

2155

.09044.03583.00106.17051.02686.109036

.0332211-==-==-===C B C B C B A ,,,

根据设计指标,调用MATLAB 信号处理工具箱buttord 和butter ,也可以得到()z H 。

由公式(3.1)和(3.2)可见,滤波器()z H 由三个二阶滤波器()z H 1、()z H 2和()z H 3级联而成,如图3-1所示。

y(n)。 ()n y

3-1所示。由(3.2)式可得到差分方程为:

()()()()()()21212111-+-+-+-+=---n y C n y B n Ay n Ay n Ay n y k k k k k k k k (3.3)

当k=1时,y k-1(n)=x(n)。所以H(z)对x(n)的总响应序列y(n)可以用顺序迭代算法得到。即依次对k =1,2,3,求解差分方程(3.3),最后得到y 3(n)=y(n)。仿真程序就是实现上述求解差分方程和顺序迭代算法的通用程序。也可以直接调用MATLAB filter 函数实现仿真。

(3) 在通用计算机上运行仿真滤波程序,并调用通用绘图子程序,完成实验

内容(2)和(3)。

(4) 本实验中用到的心电图信号采用序列x(n)

人体心电图信号在测量过程往往受到工业高频干扰,所以必须经过低通滤波处理后,才能作为判断心脏功能的有用信息。下面给出一实际心电图信号采样序列样本x(n),其中存在高频干扰。在实验中,以x(n)作为输入序列,滤除其中的干扰成分。

{x(n)}={-4, -2, 0, -4, -6, -4, -2, -4, -6, -6, -4, -4, -6, -6, -2, 6, 12, 8, 0,-16, -38,-60,-84,-90,-66,-32, -4, -2, -4, 8, 12, 12, 10, 6, 6, 6, 4, 0, 0, 0,

0, 0, -2, -4, 0, 0, 0, -2, -2, 0, 0, -2, -2, -2, -2, 0}

T=1;Fs=1/T;

wpz=0.2;wsz=0.3;

wp=2*tan(wpz*pi/2);ws=2*tan(wsz*pi/2);rp=1;rs=15; [N,wc]=buttord(wp,ws,rp,rs,'s');

[B,A]=butter(N,wc,'s');

fk=0:1/512:1;wk=2*pi*fk;

Hk=freqs(B,A,wk);

subplot(2,2,1);

plot(fk,20*log10(abs(Hk)));grid on;

xlabel('\omega/\pi');ylabel('幅度(dB)');

axis([0,1,-100,5]);title('(b)');

[N,wc]=buttord(wpz,wsz,rp,rs);

[Bz,Az]=butter(N,wc);

wk=0:pi/512:pi;

Hz=freqz(Bz,Az,wk);

subplot(2,2,4);

plot(wk/pi,20*log10(abs(Hz)));grid on;

xlabel('\omega/\pi');ylabel('幅度(dB)');

axis([0,1,-100,5]);title('(b)');

二;

x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2, -4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];

subplot(2,2,1);

n=0:55;

stem(n,x,'.');

xlabel('n');

ylabel('x(n)');

title('x(n)的脉冲响应');

A=0.09036;

b1=[A,2*A,A];

相关文档
最新文档