心电信号的频谱分析.docx
《心电信号的频谱分析.docx》由会员分享,可在线阅读,更多相关《心电信号的频谱分析.docx(13页珍藏版)》请在冰豆网上搜索。
心电信号的频谱分析
燕山大学
课程设计说明书
题目:
心电信号的频谱分析
学院(系):
电气工程学院
年级专业:
09医疗仪器
学号:
学生姓名:
指导教师:
孟辉赵勇
教师职称:
讲师讲师
燕山大学课程设计(论文)任务书
院(系):
电气工程学院基层教学单位:
生物医学工程系
学号
学生姓名
专业(班级)
09医疗仪器
设计题目
心电信号的频谱分析
设
计
技
术
参
数
采样点数N=400
采样频率f=100HZ
设
计
要
求
利用Matlab软件对心电信号进行时域分析(包括均值,方差,标准差,峰峰值,极大值和极小值)和频域分析(包括自相关函数,FFT,功率谱),其中涉及的参数根据需要自主选择
工
作
量
分析题目,查阅相关资料,熟悉MATLAB程序设计方法
编写程序代码、调试、运行
根据设计结果写出报告
工
作
计
划
第一天查资料,确认题目第二天任务书审定,熟悉MATLAB工作环境第三天编写程序并进行程序调试第四天完成基本设计要求第五天完成设计要求及任务说明书
参
考
资
料
1、信号处理原理及应用机械工业出版社谢平2008
2、Matlab信号处理与应用国防工业出版社董长虹2005
3、刘波文忠曾涯《matlab信号处理》电子工业出版社2005
指导教师签字
孟辉赵勇
基层教学单位主任签字
徐永红
说明:
此表一式四份,学生、指导教师、基层教学单位、系部各一份
2012年12月10日
摘要1
引言2
一、MATLAB软件介绍3
二、心电信号分析方法4
2.1时域分析4
2.2频域分析4
2.3自相关函数分析4
2.4FFT分析5
2.5功率谱分析6
三、心电信号分析8
3.1Matlab编程实现8
3.2Matlab时域分析结果11
3.3Matlab频域分析结果11
心得体会15
参考文献16
摘要
信号处理的基本概念和分析方法已应用于许多不同领域和学科中,尤其是数字计算机的出现和大规模集成技术的高度发展,有力地推动了数字信号处理技术的发展和应用。
心电信号是人类最早研究并应用于医学临床的生物电信号之一,它比其他生物电信号便易于检测,并具有较直观的规律性,对某些疾病尤其是心血管疾病的诊断具有重要意义。
它属于随机信号的一种,用数字信号处理的方法和Matlab软件对其进行分析后,可以得到许多有用的信息,对于诊断疾病有非常重要的参考价值。
关键字:
信号处理心电信号Matlab
2
引言
MATLAB是矩阵实验室的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
心电信号是人类最早研究并应用于医学临床的生物电信号之一,它比其他生物电信号便易于检测,并具有较直观的规律性,对某些疾病尤其是心血管疾病的诊断具有重要意义。
按照信号与系统问题可以分为两大类基本分析方法:
时域分析方法和频域分析方法。
两种方法各有不同,互相补充。
3
一、MATLAB软件介绍
MATLAB是矩阵实验室的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单元是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解决问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的使用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
4
二、心电信号分析方法
按照信号与系统问题可以分为两大类基本分析方法:
时域分析方法和频域分析方法。
两种方法各有不同,互相补充。
2.1时域分析
时域分析方法是对连续信号进行采样、量化和编码形成离散的二进制数字序列,再采用数字信号处理技术进行处理。
信号的采样过程如果满足一定条件,那么得到的这种离散的二进制序列在形状特征以及内在属性上完全可替代原连续信号,只是这样方便人们分析处理信号并提取有用信息。
对心电信号进行的时域处理通常包括信号的均值,方差,标准差,峰峰值,极大值和极小值六种。
2.2频域分析
离散系统的频域分析就是研究离散信号通过离散系统以后在频谱结构上所产生的变化,为此首先必须了解描述离散系统频率特性的有关特征量。
信号的有些信息在用空域分析是得不到的,而如果用频域分析方法的话,可以得到其中许多有价值的信息。
2.3自相关函数分析
自相关函数是用来表征一个随机过程本身,在任意两个不同时刻t1,t2的状态之间的相关程度,是内在联系的一种度量。
自相关函数是描述随机信号x(t)在任意两个不同时刻t1,t2的取值之间的相关程度。
可以用来确定输出多大程度上取决于输入,对于修正测量中接入噪声源产生的误差非常有效。
且还能用来检测隐藏的周期信号。
设原函数是f(t),则自相关函数定义为
。
5
2.4FFT分析
有限长序列可以通过离散傅里叶变换(DFT)将其频域也离散化成有限长序列,但其计算量太大,很难实时地处理问题,因此引出了快速傅里叶变换(FFT)。
快速傅氏变换(FFT)是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。
它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。
根据对序列分解与选取方法的不同而产生了FFT的多种算法,基本算法是基2DIT和基2DIF。
设x(n)为N项的复数序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即N点DFT变换大约就需要
次运算。
当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2点DFT变换需要
次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。
这样变换以后,总的运算次数就变成
。
继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。
而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要
次的运算,N在1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。
6
FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
一个模拟信号,经过ADC采样之后,就变成了数字信号。
采样得到的数字信号,就可以做FFT变换了。
N个采样点,经过FFT之后,就可以得到N个点的FFT结果。
为了方便进行FFT运算,通常N取2的整数次方。
假设采样频率为Fs,信号频率F,采样点数为N。
那么FFT之后结果就是一个为N点的复数。
每一个点就对应着一个频率点。
这个点的模值,就是该频率值下的幅度特性。
假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。
而第一个点就是直流分量,它的模值就是直流分量的N倍。
而每个点的相位就是在该频率下的信号的相位。
如果要要提高频率分辨率,就需要增加采样点数,也即采样时间。
频率分辨率和采样时间是倒数关系。
2.5功率谱分析
定义信号f(t)的能量(作归一化处理):
由电压f(t)(或者电流f(t))在
电阻上消耗的能量
其中
,若积分值存在,信号的能量为有限值,则称f(t)为能量信号。
对于能量无限大的信号(如周期信号),我们考虑能量的时间平均值,这显然就是信号的平均功率。
这种信号称为(平均)功率信号。
定义信号f(t)的平均功率:
电压f(t)在
电阻上消耗的平均功率(简称功率)
7
式中,T是为求平均的时间区间。
为了更好得描述能量信号、功率信号,我们引入能量谱密度和功率谱密度概念。
能量谱密度、功率谱密度函数表示信号的能量、功率密度随频率变化的情况。
通过研究功率谱密度,可以帮助了解信号的功率分布情况,确定信号的频带等
对于随机信号而言其持续时间无限长,因此对于非0的样本函数,它的能量一般也是无限的,因此其付氏变换不存在。
但是注意到它的平均功率是有限的,在特定的条件下,仍然可以利用博里叶变换这一工具。
为了将傅里叶变换方法应用于随机过程,必须对过程的样本函数做某些限制,最简单的一种方法是应用截取函数。
设过程
的截取函数
(截取的随机过程)为:
则截取函数的傅里叶变换为:
平稳随机过程
的平均功率为
的功率谱密度为
这样的平均功率等于各个频率分量(统计值)单独贡献出的功率之连续和,是在频率域上描述随机过程统计特性的最主要数字特征。
随机信号的平均功率
8
也可以通过计算均方值的时间平均(时间均方值)来求得。
功率密度谱虽然描述了随机信号的功率在各个不同频率上的分布,但因为它仅与幅度频谱有关,没有相位信息,所以从已知功率谱还难以完整地恢复原来的功率信号。
三、心电信号分析
3.1Matlab编程实现
clear;
closeall;
clearall;
clc;
z=textread('ECG.txt');
ECG=z(:
1);
input=ECG(1:
400);
rate=ECG(400);
sig=input;
lensig=length(sig);
%打印原信号及变换信号
figure
(1);
subplot(2,1,1),plot(sig);
9
%自相关函数的分析
dt=.1;
[u,v]=xcorr(ECG,'unbiased');
figure;
plot(v*dt,u);
xlabel('时间(S)');
ylabel('自相关');
title('自相关函数图(时域)');
gridon;
%频域分析
z=textread('ECG.txt');
ECG=z(:
1);
x=ECG(1:
400);
y=fft(x,400);%做400点傅里叶变换
mag=abs(y);
f=2*pi/400:
2*pi/400:
2*pi;
figure;
plot(f,mag);%做频谱图
axis([0,7,0,100]);
xlabel('频率(100Hz)');
ylabel('幅值');
title('心电幅频谱图N=400');
gridon;
10
%周期图法功率谱
power=(mag.^0.5)/400;
figure;
plot(f,power);
xlabel('频率(100Hz)');
ylabel('功率谱');
title('心电信号功率谱');
gridon;
3.2Matlab时域分析结果
数据基本信息:
最小值=0.671
平均值=1.187
最大值=1.555
标准方差=0.130
峰峰值=0.884
方差=1.139
3.3Matlab频域分析结果
11
12
13
14
心得体会
通过这周的课程设计,使我加深了对医学信号处理的理解,并且掌握了一些基本的Matlab编程知识。
在设计过程中,由于课上所学知识并不能满足这次设计的需要,我们必须查阅各种资料,观看教学视频,学习各种指令的用法,因此加深了我对课本知识的理解。
通过这几天的课题研究及设计,我对心电信号的时域分析和频域分析原理有了大概的理解,对Matlab有了进一步了解,
亲身体会到了信号处理的一些应用。
在历时1个星期的课设过程里,我体会了失败的苦涩,也尝到了成功的喜悦。
通过这次课程设计,我懂得了理论必须与实践相结合,只有理论是远远不够的,只有把所学知识与实践相结合起来,从理论中得出结论并从实践中检验结论,才能真正提高自己的独立思考和实际动手的能力。
总之,这次的实训给予了我不同的学习方法和体验,让我深切的认识到实践的重要性。
在以后的学习过程中,我会更加注重自己的操作能力和应变能力,多与这个社会进行接触,让自己更早适应这个陌生的环境,相信在不久的将来,可以打造一片属于自己的天地。
15
参考文献
(1)谢平王娜林洪斌《信号处理原理及应用》机械工业出版社2008
(2)张明照刘政波刘斌等《应用matlab实现信号分析和处理》科学出版社2006
(3)EmmanuelC.lfeachorBarrirW.Jervis等《数字信号处理实践方法》电子工业出版社2001
(4)约翰.G.普罗克思马苏德.萨勒赫《现代通信系统(使用matlab)》西安交通大学出版社1998
(5)刘波文忠曾涯《matlab信号处理》电子工业出版社2005
(6)周浩敏王睿测试信号处理技术北京航空航天大学出版社2000
(7)薛年喜MATLAB在数字信号处理中的应用(第二版)清华大学出版社2003
16
燕山大学课程设计评审意见表
指导教师评语:
①该生学习态度(认真较认真不认真)
②该生迟到、早退现象(有无)
③该生依赖他人进行设计情况(有无)
平时成绩:
指导教师签字:
2012年12月15日
图面及其它成绩:
答辩小组评语:
①设计巧妙,实现设计要求,并有所创新。
②设计合理,实现设计要求。
③实现了大部分设计要求。
④没有完成设计要求,或者只实现了一小部分的设计要求。
答辩成绩:
组长签字:
2012年12月15日
课程设计综合成绩:
答辩小组成员签字:
2012年12月15日