您的当前位置:首页正文

心电数据处理与分析 课程设计

来源:九壹网
目录

1、设计目的、意义…………………………………………………………………1 2、设计内容 ……………………………………………………………………… 1 2.1内容 ………………………………………………………………………… 1 2.2要求…………………………………………………………………………… 1 2.3工作原理……………………………………………………………………… 1 3、结果分析……………………………………………………………………… 14 3.1心电图上的各种波形 ……………………………………………………… 14 3.2心电信号噪声分析 ………………………………………………………… 15 4、设计心得……………………………………………………………………… 19 参考文献 …………………………………………………………………………21

1设计目的、意义

进行改革,增大学生的自主选择权,让学生发展自己的兴趣,塑造自己未来的研究发展方向。课程设计的主要目的:

(1)培养学生文献检索的能力,特别是如何利用Internet检索需要的文献资料。 (2)培养灵活运用所学的电力电子技术知识和创造性的思维方式以及创造能力。 (3)培养学生综合分析问题、发现问题和解决问题的能力。 (4)培养学生用maltab处理图像与数据的能力。

2 设计内容

2.1 设计要求:

要求设计出心电数据处理的处理与分析程序。 (1) 处理对象:心电数据;

(2) 内容:心电数据仿真,心电数据处理(仿真数据,真实数据); (3) 结果:得到处理结果。 2.2 设计内容: (1)心电数据仿真; (2)心电数据处理; (3)分析处理结果。 (4)可视化界面设计 2.3 实验原理

2.3.1心电产生原理及心电图

我们常说的心电图一般指体表心电图,反映了心脏电兴奋在心脏传导系统中产生和传导的过程。正常人体的每一个心动周期中,各部分兴奋过程中出现的电变化的方向、途径、次序和时问都有一定的规律,这种生物电变化通过心脏周围的导电组织和体液,反映到身体表面,使身体各部位在每一心动周期中也出现有规律的电变化。在人体不同部位放置电极,并通过电联线与心电图机的正负极相连,在心电图机上便可以记录到周期变化的心电图。心电图是通过二次投影形成的。整体心肌细胞的除极和复极所产生的每一瞬l’日J的除极、复极综合向量轨迹,在立体心脏的三维空『日J内按时问顺序将其顶端相连,便构成立体心向量环。立体心向量环在额面和横面的投影,形成平面的心向量环;将平面向量环

在导联轴上进行二次投影,就形成相应的心电图。对于标准的12导联来说,额面心向量环在肢体导联上的投影,形成I、II、Ill、avR、avL、avF导联心电图,而横面心向量环在胸导联轴上的投影便形成了V1~V6导联心电图m。不同导联记录到的心电图,在波形上有所不同,但基本上都包括一个P波,一个QRS波和一个T波,有时候在T波后还出现一个小u波。正常的心电图如图卜1所示,下面列出各种波形的定义和生理参数。

图2.1 正常心电图

(1)P波:代表左右心房去极化过程的电位变化。其波形小而圆钝。P波在不同导联上的形状可能有差异,在avR导联的P波倒置,在其它的导联中则以向上的正波为主,尤其以II和avF导联最为明显。历时0.08~O.11s,波幅不超过0.25mv。 (2)QRS波:代表左、右两心室去极化过程的电位变化。历时0.06~0.10s。典型的QRS波包含三个紧密相连的波,第一个向下的波为Q波,其后向上的高而尖的为R波,继R波之后的一个向下的为S波。但是在不同导联记录的心电图上这三个波不一定都出现,其波形和幅度变化也较大。

(3)T波:代表心室快速复极化过程中的电位变化。波形圆钝,历时0.05~0.25s,波形的前肢较长而后肢较短。T波的方向与QRS波的主波方向一致,在R波为主的导联中,T波的幅度不应低于R波的1/10。

(4)P.R间期:由P波起点到QRS波起点之问的I’日J期,代表自心房除极开始至心室除极的时『日J。正常成人为0.12~0.20s。在幼儿及心率较快的情况下,P.R问期相应缩短;而经常进行体育锻炼的人,如职业运动员,其P—R问期较长,有的可超过0,20s。

(5)s.T段:自QRS波终点至T波起点之问的线段,代表心室缓慢复极过程。正

常的ST段多为一等电位线,有时也可有轻微的偏移。在任一导联,ST段下移一般不应超过0.05mv,ST段上抬在V1,V2导联不超过0.3mv,在V3不超过0.5mv,在V4~V6导联与肢体导联不应超过0.1mv。

(6)Q.T间期:从QRS波群起点至T波终点的时程,代表心室肌除极和复极全过程所需要的时『自J。这一时问的长短与心率密切相关。心率越快,Q.T问期越短;反之,则问期越长。心率在60~100次/分时,Q-T怄l期的证常范围为0.32~0,44s。由于Q-T问期受心率的影响,临床常用校J下的Q.T间期,通常采用Bazett公式计算Q乃=QT/4Rfi。Q正就是R—R f.日J期为ls(心律60次/分)时的Q.T问期。Q正,的正常上限值为0.44s。

(7)U波:在T波后0.02~0.04s可能出现的低而宽的波,代表心室后继电位。其方向一般与同导联T波方向一致,幅度较T波低。u波在肢体导联中不易辨认,一般在胸导联中比较清楚。

2.3.2首先利用二维plot函数将心电数据生成心电图 ①心电数据(170): 表1 心电数据 -2.90 -0.15 2.29 1.84 9.05 2.30 3.16 2.66 8.07 -6.67 4.32 12.46 -1.27 2.62 4.36 2.49 10.70 -8.17 -0.16 -0.83 1.57 9.93 1.50 3.18 4.92 5.87 -2.34 6.14 8.68 -2.01 1.91 4.40 4.51 3.05 -9.14 -0.10 -2.79 0.74 9.50 1.11 3.42 5.46 4.92 0.19 7.71 7.40 -1.83 2.00 3.82 6.93 14.35 -7.27 0.10 10.08 -0.65 6.73 1.02 3.63 6.47 15.86 -0.07 7.86 7.42 -3.79 2.20 3.01 6.27 16.71 -4.50 0.70 9.41 -0.16 3.18 1.30 4.06 5.20 15.98 -1.46 7.15 8.79 -1.16 1.47 1.97 7.95 13.18 -1.78 2.05 6.17 -0.07 1.86 1.10 4.46 7.89 9.76 -1.58 5.78 5.11 6.05 1.64 2.09 13.05 4.59 -0.23 5.52 2.43 -1.15 2.64 1.40 3.92 11.10 1.87 -1.40 3.54 2.60 7.07 2.44 1.34 4.07 -3.68 -0.04 7.26 5.12 -2.94 2.84 2.33 3.97 1.15 -6.56 -1.40 0.31 2.28 6.74 3.55 0.51 -3.90 -7.44 0.11 7.62 5.44 -0.69 2.33 3.30 2.72 -2.02 -9.62 1.19 0.27 1.15 6.70 4.06 0.29 1.78 -8.17 -0.03 5.51 2.43 6.23 2.43 3.09 2.52 0.46 -9.62 2.00 7.26 0.30 5.04 3.87 1.51 8.66 -6.36 心电数据存储在maltab\\work\\ECG.txt文本文件里。 ②心电数据生成心电图程序代码: ECG=load('ECG.txt'); a=length(ECG); t=[1/a:1/a:1] y=ECG(:,1); plot(t,y);

title('含噪心电信号'); xlabel('时间(ms)'); ylabel('幅度(dB)'); ③心电图:

图2.2 心电图

2.3.3 对所生成的心电图进行滤波

一般情况下,我们所要分析的心电数据都存在着不同程度的噪声。噪声本身就是异常的结构,尤其对于本研究来讲,如果除噪效果不好,很容易就误将噪声识别为奇异结构,这就使得整个研究失去意义。因此,本研究对心电时间序列的除噪提出了更高的要求。为了使我们的分析、处理尽量免受噪声的干扰,我们在对心电信号进行分析、处理之前,先对心电数据进行除噪处理。本模块基于 Matlab平台,采用 Matlab工具包中提供的小波基函数〔’6〕设计小波滤波器,来提取高频干扰信号;采用 MatIab形态学函数中的开运算和闭运算函数〔’了〕提取基线漂移信号;并将所提取的高频干扰信号和基线漂移信号作为参考输入,

通过编写 Matlab代码完成自适应滤波器〔’川的设计,进而完成整个除噪模块的设计。

①小波滤波程序及代码: % mallet_wavelet.m

% 此函数用于研究Mallet算法及滤波器设计 % 此函数仅用于消噪

a=pi/8; %角度赋初值 b=pi/8;

%低通重构FIR滤波器h0(n)冲激响应赋值 h0=cos(a)*cos(b); h1=sin(a)*cos(b); h2=-sin(a)*sin(b); h3=cos(a)*sin(b);

low_construct=[h0,h1,h2,h3];

L_fre=4; %滤波器长度

low_decompose=low_construct(end:-1:1); %确定h0(-n),低通分解滤波器 for i_high=1:L_fre; %确定h1(n)=(-1)^n,高通重建滤波器

if(mod(i_high,2)==0); coefficient=-1; else

coefficient=1; end

high_construct(1,i_high)=low_decompose(1,i_high)*coefficient; end

high_decompose=high_construct(end:-1:1); %高通分解滤波器h1(-n) L_signal=100; %信号长度 n=1:L_signal; %信号赋值 f=10;

ECG=load('ECG.txt'); a=length(ECG); t=[1/a:1/a:1] y=ECG(:,1); plot(t,y);

title('含噪心电信号'); xlabel('时间(ms)'); ylabel('幅度(dB)'); figure(1); plot(y);

title('原信号');

check1=sum(high_decompose); %h0(n)性质校验 check2=sum(low_decompose); check3=norm(high_decompose); check4=norm(low_decompose);

l_fre=conv(y,low_decompose); %卷积

l_fre_down=dyaddown(l_fre); %抽取,得低频细节 h_fre=conv(y,high_decompose);

h_fre_down=dyaddown(h_fre); %信号高频细节 figure(2); subplot(2,1,1) plot(l_fre_down);

title('小波分解的低频系数'); subplot(2,1,2); plot(h_fre_down);

title('小波分解的高频系数'); 结果图:

图2.3 心电图原图

图2.4 小波分解图 ②50HZ滤波: 程序代码:

生成一个ideal_lp.m文件 function hd=ideal_lp(wc,M) alpha=(M-1)/2; n=0:M-1;

m=n-alpha+eps; %eps为很小的数,避免被0除 hd=sin(wc*m)./(pi*m); %用Sinc函数产生冲击响应 将ideal_lp.m文件放在matlab\\work里

ECG=load('ECG.txt'); a=length(ECG); t=[1/(a):1/(a):1]; y=ECG(:,1); plot(t,y);

%其中,具有线性相位的FIR低通滤波器由如下函数实现: %理想低通滤波器 %截止角频率wc,阶数M

% 50Hz工频干扰陷波器

%50Hz陷波器:由一个低通滤波器加上一个高通滤波器组成 %而高通滤波器由一个全通滤波器减去一个低通滤波器构成 M=800; %滤波器阶数 L=800; %窗口长度 beta=8; %衰减系数 Fs=400;

wc1=51/(Fs/2)*pi; %wc1为高通滤波器截止频率,对应51Hz wc2=49/(Fs/2)*pi ;%wc2为低通滤波器截止频率,对应49Hz

h=ideal_lp(pi,M)-ideal_lp(wc1,M)+ideal_lp(wc2,M); %h为陷波器冲击响应

w=kaiser(L,beta);

b=h.*rot90(w); %b为50Hz陷波器冲击响应序列 x=filter(b,1,y); %滤除50Hz工频干扰的心电信号

plot(t,x);

title('含噪心电信号');

xlabel('t'); ylabel('x');

图2.5 50HZ陷波波形

2.3.4 可视化部分:

图2.6 可视化界面

程序如代码:

function varargout = keshi(varargin) % keshi M-file for keshi.fig

% keshi, by itself, creates a new keshi or raises the existing % singleton*. %

% H = keshi returns the handle to a new keshi or the handle to % the existing singleton*. %

% keshi('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in keshi.M with the given input arguments. % keshi('Property','Value',...) creates a new keshi or raises the % existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before keshi_OpeningFunction gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to keshi_OpeningFcn via varargin. %

% *See GUI Options on GUIDE's Tools menu. Choose \"GUI allows only one

% instance to run (singleton)\". % See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help keshi % Last Modified by GUIDE v2.5 25-Jun-2010 08:26:05 % Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @keshi_OpeningFcn, ... 'gui_OutputFcn', @keshi_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

% --- Executes just before keshi is made visible.

function keshi_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn. % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to keshi (see VARARGIN)

% Choose default command line output for keshi handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes keshi wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = keshi_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) I=imread('Ôͼ.jpg'); figure; imshow(I);

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) I=imread('С²¨.jpg'); figure; imshow(I);

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) I=imread('50HZÂ˲¨.jpg'); figure; imshow(I);

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close

3 结果分析

3.1心电图上的各种波形

一次心动周期就会在新电图上记录出一系列地高低宽窄不同的波形。包括P波、QRS波群、T波和(无)u波。了解这些波形及其所代表的意义,是教你怎么看心电图的第二步。

P波,最先出现的一个振幅不高的圆钝波形,它记录的是窦房结激动的右、左心房的激动。因为窦房结位于右心房,心房的激动先由它开始,所以P波的前半部分记录的是右心房的激动,中间部分记录的是左、右心房的共同激动而后部则代表左心房的激动。除了aVR导联外,P波基本都是直立的,肢体导联中P波的高度多不超过0.25mV,胸前导联中直立的P波高度不应超过0.15mV。正常的P波的宽度也不应超过0.11s。

QRS波群,继P波之后出现的一个狭窄但振幅高的波群。由q波(有或无)、R波和S波组成。它代表着兴奋从房室结发出先后通过房室束、左右束支和纤细的浦肯野纤维进入心肌细胞,刺激心室的收缩,因此可以将其看作是心室收缩的开始的心电图表现。

Q波,是在出现向上的波之前出现的明确的向下的波形。如果它很小,宽度不到0.04s,深度不足0.15mV,我们将它记做q波;若它高且宽,才被称作Q波;当然有时它是缺无的。无论有无Q波,第一个出现的向上的高尖的波就是R波;紧随其后的向下的波就是S波,它也可以根据深度分别命名为S波和s波。之后出现的向上的波被称作R’(r’)波,向下的波则称作S’(s’)波。因为波的高低不同,所以可以组合成很多形态,但它也是有限制的,最主要的就是时间限制,通常情况下,正常人的QRS波群的时间0.08s,可以在0.06~0.10s范围内波动。只要超过这个时限,就应引起注意,特别是超过0.12s便有病理意义了。 T波,上个波群暂停之后出现的波,代表着心室的复极(心室的舒张),以备下一次心室的除极。观测T波我们要注意它的方向、形态和(高度)深度。(1)方向,正常情况下,在Ⅰ、Ⅱ导联中T波是直立的;Ⅲ导联中则可以出现直立、平坦、双向甚至是倒置的T波;T波在aVR导联中是肯定倒置的,而在aVL和aVF导联中则是和QRS波群的主方向一致的。胸前导联的T波通常是直立的,当然,V1和V3有时也会出现T波倒置的情况,但它们的深度通常都不会超过0.25mV,

当V3导联中出现倒置的T波时,前面两个导连的T波也应该是倒置的,否则就是不正常的表现。(2)形态,通常T波的波形是圆滑而有个很自然的顶端。T波一般是不对称的,缓和的上升而略显陡峭地下降至等位线。(3)高度(深度),各个导联并不完全相同,不过综合看来,在肢体导联中很少超过0.5mV,而在胸前导联中也很少会超过1.0mV。异常高尖的T波往往出现在心肌梗死的早期或高钾血症。

u波,T波后的一个很微小的波,正常的u波并不是在每一个导联中都显而易见,它究竟代表什么尚无定论。

人体的心电信号极其微弱其幅度一般为几十 V至几 mV的量级,频率为 0 . 0 5 H z~1 0 0 H z 。因此,很容易受到外界的干扰,而且人体作为心 电信号的信号源,其内阻是比较大的。因此在放大部分不但要对心电信号进行放大,还要滤除其他的干扰信号。

图3.1 心电图各波段

3.2 心电信号噪声分析

心电信号由于受到人体诸多因素的影响,因而有着一般信号所没有的特点: (1)信号弱,心电信号是体表的电生理信号,一般比较微弱,幅度在10pV~5mV,频率为0.05~100Hz。例如从母体腹部收取到的胎儿心电信号仅10/zV~50/IV。

(2)噪声强,由于人体自身信号弱,加之人体又是一个复杂的系统,因此信号容易受到噪声干扰。

(3)随机性强,心电信号不仅是随机的,而且是非平稳的。同时,在心电图检测

过程中极易受到各种噪声源的干扰,从而使图像质量变差,使均匀和连续变化的心电数值产生突变,在心电图上形成一些毛刺。使原本很微弱的信号很难和噪声进行分解。可能出现的噪声有如下的种类: (1)工频干扰

工频干扰是由电力系统和人体的分布电容引起的,其频率包括50Hz(MIT-BIH数据库数据工频因为是美国标准,所以是60Hz)的基波及其各次谐波,其幅值成分在ECG峰一峰值的0—50%范围内变化。 (2)引起基线漂移的干扰

心电信号有时候会出现信号基线起伏不平的现象,造成这样的现象有很多原因,主要的有:

①呼吸运动人体呼吸时胸腔内器官和组织会发生一定程度的变化,会对在体表记录到的心电图波形的幅度和形态有所影响,表现为基线随呼吸产生周期性或非周期性漂移,从而导致心电波形的幅度随呼气和吸气而分别上抬和下移。呼吸运动是引起心电基线漂移的主要原因。

②运动伪迹运动伪迹是由于人体轻微运动造成电极与入体的接触电阻发生变化而引入的一种干扰,它的产生原因仅仅是接触电阻的变化,而不是接触的断续。这种干扰同样导致信号基线的变化,但不是基线的跃变。③信号记录和处理中电子设备引起的干扰这种干扰对信号影响很大,严重时可完全淹没心电信号或使得基线剧烈漂移,其中导联开路和放大器的热移是主要因素。这种干扰往往无法通过心电分析算法来校正。由于心电波形已经完全畸变,此时对这些数据分析已无太大意义。所以一般跳过此段数据。 (3)高频噪声

心电信号中的高频噪声主要是肌电噪声。肌肉收缩会产生mV级的肌电干扰,表现为心电图上不规则的细小波纹,使心电图模糊不清或产生失真。肌电噪声的特点是频率范围较广,频谱分布非常复杂。

Thakor研究了ECG信号中QRS波、P波和T波以及肌电噪声和运动伪迹的功率谱” 基于小波变换的方法。

近年来一些研究者在QRS波检测中引入了小波变换技术,取得了较好的效果。小波变换具有良好的时频局域化特性,对时变信号分析有独特的优越性。通过分析

ECG信号功率谱密度的特点以及小波变换和信号频率之问的关系,发现QRS波的能量大多集中在23尺度上,在大于24尺度上则大大减小,而伪迹、基线漂移等能量大多集中于大于25的尺度上。经过小波变换后,信号的奇异点对应于小波变换的特征值,根据判据规则,找到QRS波的位置,这方面的典型工作是,李翠微等于1995年采用二次样条小波基函数进行21~25尺度的小波变换,采用模极大值算法去检测QRS波m,:Sahambi提出一个减小高频噪声误判的改进的模极大值算法算法m; Juan P曲10 Martinez等于2004年采用二次样条小波和matlat算法进行QRS波的检测ml;Tikkanen研究了非线性小波和小波包来消除心电信号的噪声”。 (4)除噪滤波器设计

一般情况下,我们所要分析的心电数据都存在着不同程度的噪声\"噪声本身就是异常的结构,尤其对于本研究来讲,如果除噪效果不好,很容易就误将噪声识别为奇异结构,这就使得整个研究失去意义\"因此,本研究对心电时间序列的除噪提出了更高的要求\"为了使我们的分析!处理尽量免受噪声的干扰,我们在对心电信号进行分析!处理之前,先对心电数据进行除噪处理\"。

首先先设计小波滤波器,来提取高频干扰信号 ,其次采用形态学函数中的开运算和闭运算函数提取基线漂移信号并将所提取的高频干扰信号和基线漂移信号作为参考输入,通过编写代码完成自适应滤波器代码的设计,进而完成整个除噪模块的设计\"。常用的除噪方法有小波滤波器!形态学滤波器和自适应滤波器等等,它们具有良好性能的同时,都还存在着一些缺陷和不足\"如小波滤波器虽然能有效完成信号的滤波处理,但是它在去除低频的基线漂移信号时,必须对信号进行较高尺度的分解与重构,计算量大,实时性差形态滤波器具有计算简单,速度快的特点,对信号中基线漂移的去除,具有近乎完美的表现,但是在滤除高频干扰时会产生信号的高频波动失真而自适应滤波器工作时需要额外采集参考信号,且对参考输入的要求严格,付出的成本高,可靠性降低\"为此,我们在上述几种滤波算法基础上,取长补短,采用基于小波变换与形态学运算的自适应滤波算法1洲,并直接从含噪信号中提取噪声信号作为参考输入\"该算法用小波滤波器提取含噪信号中的高频干扰信号,用形态学滤波器提取低频基线漂移信号,并将这两部分所得到的噪声分量一起作为自适应滤波器的参考输入信号\"通过自适应滤波器的设计和调

整,最终获得对信号的满意滤波。

图3.2 滤波器设计示意图

4 心得体会

本次课程设计主要研究了利用小波变换和形态学滤波器来实现心电信号噪声消除。

(1)采用形态学滤波的方法来进行基线漂移的消除,首先采用了49个点的平结构元来实现形态学的低通滤波器获取基线信息,在实验中发现,选取单一的49个点的平结构元对心电信号的宽大波呈现了较大的斩波情况使信号出现了失真,因此,本文根据宽大波的特点,采用了147个点的平结构元构成形态学低通滤波器对经过第一次49点平结构元低通滤波器的基线信息进行第二次的滤除,得到了很好的效果,因此提出了改进现存的形态学在心电信号基线滤除上的算法:二次形态学低通滤波器算法。形态学低通滤波器罩涉及到的是加减运算和最大最小值的判断,因此形态学的算法简单、朴素且运算速度快。

心电信号中的R峰或者Q谷、s谷属于奇异性信号,跟心电信号降噪时选择小波基函数的原则不一样,它并不需要对信号进行重构,只需要能通过小波变换反映出奇异点的特性,而且能更好地分辨ECG信号中的QRS波和其他波,因此,要对适应ECG信号的奇异点的小波基函数进行选择。ECG信号中的R波峰即可以看成是一个尖锐的三角波,Q谷和S谷可以看成是向下的尖锐三角波,由于mexihat小波函数是完全对称的,其小波滤波器系数也以零点为对称,因此R波峰值在其小波变换的各阶细节信号上仍保持为极大值,使对原始信号奇异点的探测变为对特征尺度上细节信号的极大值的探测,更加简捷。

(2)心电信号是复杂的非平稳信号,噪声干扰和QRS波的形态非常复杂,不同的波形形态对不同的检测算法都会有一定的适应性,如果能在噪声消除和QRS波的检测中能自适应地调整算法、提高检测阚值的鲁棒性,将会大大地提高检测的精确度。 (3)实现实际应用

在今后的另一个重要的工作就是将研究的算法应用于实践,可以考虑两种方式;一是将算法嵌入硬件处理芯片;二是可以设计基于PC平台的ECG信号处理和自动分析装置。

(4)在实验操作中MATLAB程序设计心得

这次的课程设计让我们对MALTAB有了更加深刻的理解,我们对用MALTAB进

行数据分析理解的更加透彻。MATLAB作为一种数学工具,广泛用于各个工程领域.工程技术人员通过MATLAB提供的工具箱和丰富的调用函数,可以完成复杂工程问题的数值求解.并能够将计算结果形象直观地显示出来。

这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。另外在课程设计的过程中,当我们碰到不明白的问题时,指导老师总是耐心的讲解,给我们的设计以极大的帮助,使我们获益匪浅。因此非常感谢老师的教导。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名软件工程专业的学生,这次课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。

我认为这次的课程设计意义很深,和其他同学的共同学习﹑配合﹑努力的过程也很愉快,另外还要感谢老师的耐心辅导。

生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋; 正所谓“三百六十行,行行出状元”。

文献参考

[1] 陈天华. 数字图像处理[M]. 北京. 清华大学出版社,2009

[2] 刘卫国. MALTAB程序设计与应用[M]. 北京. 高等教育出版社,2008 [3] 程正兴. 小波分析算法与应用. 西安. 西安交通大学出版社,1998 [4] 程佩青. 数字信号处理. 北京. 清华大学出版社,2007

[5] 苏金明,王永利. MALTAB应用指南[M]. 上册. 北京电子工业出版社,2004 [6] 夏良正. 数字图像处理(修订版)[M]. 南京. 东南大学出版社,1999 [7] 霍红涛,林小竹,何薇. 数字图像处理[M]. 北京. 北京理工大学出版社,2003 [8] 张开滋,郭继鸿,刘海洋. 临床心电信息学[M]. 长沙. 湖南科技出版社,2002 [9] 黄宝晨,朱怡然. 心电图基本知识[J]. 中国乡村医药杂志,2004(第7页) [10] 许原. 心电图解读心电图如何解读和诊断[J]. 中国临床医生,2004(第5页)

因篇幅问题不能全部显示,请点此查看更多更全内容

Top