公务员期刊网 论文中心 正文

Matlab数字信号处理综合实验设计

Matlab数字信号处理综合实验设计

1综合实验设计实例

1.1读取心电信号

本文采用的心电信号来源于美国提供的MIT-BIH数据库。为了读取简单方便,采用其txt格式的数据文件作为我们的源心电信号数据。教师可提前下载供学生使用。要求学生利用Matlab自带的textread或textscan函数,读取txt数据文件中的信号,并画出心电信号波形。

1.2对心电信号线性插值

由于心电信号数据不是等间隔采样而得到的,而Matlab中用数字滤波器被处理的数据应该都是等间隔的,因此,首先对心电信号进行线性插值处理,使其变为等间隔的数据。t=0∶0.001∶2.5;F=interp1(x,y,t);%x,y为插值点,F为在被插值点t处的插值结果。插值前后的心电信号时域波形及频谱。

1.3设计数字滤波器

由于人体心电信号易受到仪器、人体活动等因素的影响,所采集的信号常伴有干扰。比如,人的说话呼吸,常常会混有约为0.1Hz到0.25Hz频段的干扰。设计滤波器的目的是对这些干扰进行滤除。在此,应引导学生确定滤波器的类型及指标并画出幅频特性图。设计低通滤波器的参考程序如下:[N,wc]=buttord(wp,ws,Rp,As,'s')[B,A]=butte(rN,wc,'s')Hk=freqs(B,A,wk);设计高通滤波器的参考程序如下:[N,wc]=buttord(wp,ws,Rp,As,'s')[B0,A0]=butte(rN,wc,'s');[BH,AH]=lp2hp(B,A,wph);设计好滤波器之后,利用matlab的filter函数对心电信号进行滤波,如Y=filte(rB,A,X);%B为的分子系数;B为滤波器的分母系数;X为滤波前的信号;Y为滤波后的结果。比较滤波前后信号的时域波形图及频谱图,引导学生从信号平滑及延时等角度观察滤波前后信号的变化。如滤波效果不明显,则需变动滤波器参数指标,重新设计滤波器。理想的滤波结果。

1.4系统分析

最后,教师可要求学生画出各滤波器的冲激响应、幅度响应及相位响应。并将各滤波器级联后画出零极点图判断级联后系统的稳定性。参考程序如下:H1=impz(b,a);%求系统的冲激响应H2=impz(b1,a1);Hn=conv(H1,H2);%将系统一与系统二级联[H,f]=freqz(B,A,N,fs);%求系统的幅频特性曲线。其中,B、A是离散系统的系统函数分子、分母多项式的系数向量;N为点数,默认为512;fs是采样频率。mag=abs(H);%幅度响应ph=angle(H);%相位响应zr=roots(B);%求系统的零点pk=roots(A);%求系统的极点zplane(B,A);%画出系统的零极点图高、低通滤波器的幅度响应、相位响应。

2结语

该综合实验将信号的读取、频谱分析、IIR和FIR数字滤波器设计方法和系统分析等数字信号理论知识融为一个整体,工作量较大且有一定难度,建议学生2~4人一组。首先由教师给出实验思路,实验方案由各组学生提出,通过查阅文献合力完成。实验难点是如何确定数字滤波器的指标并设计数字滤波器。该综合实验既有助于对基础知识进行复习和巩固,更有助于培养学生综合运用知识解决实际问题的能力。同时,还能够发掘一些有创新能力、动手能力强的学生,这为推荐和培养其参加各种全国的比赛又能起到促进作用。

作者:王路露 陈英 刘光灿 单位:长沙学院