基于matlab的皮肤电信号处理.docx
- 文档编号:14730007
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:18
- 大小:192.43KB
基于matlab的皮肤电信号处理.docx
《基于matlab的皮肤电信号处理.docx》由会员分享,可在线阅读,更多相关《基于matlab的皮肤电信号处理.docx(18页珍藏版)》请在冰点文库上搜索。
基于matlab的皮肤电信号处理
燕山大学
课程设计说明书
题目:
基于matlab的皮肤电信号处理
学院(系):
电气工程学院
年级专业:
学号:
学生姓名:
指导教师:
教师职称:
课程设计(论文)任务书
院(系):
电气工程学院基层教学单位:
学号
学生姓名
专业(班级)
设计题目
基于matlab的皮肤电信号处理
设
计
技
术
参
数
将整理得到的3840*100的数据矩阵提取单一列数据
对数据进行归一化处理
使用小波滤波器和巴特沃斯滤波器去除噪声干扰
巴特沃斯滤波器阶数为2,截止频率为0.3HZ
设
计
要
求
掌握MATALAB、不同情感刺激下的皮肤电信号变化、滤波概念及基本原理;
分别使用小波滤波器和巴特沃斯滤波器对皮肤电信号进行滤波处理
得到处理结果,对比分析得出最优的皮肤电信号预处理方法。
工
作
量
学会matlab软件的基本操作
了解不同情感状态下皮肤电信号的区别及产生区别的基本原理
完成程序的编写,完成设计报告,参加答辩
工
作
计
划
1天查找有关资料;
2天了解matlab的编程知识,进行较简单程序的编写调试;
3-4天对皮肤电信号进行分析,尝试使用小波去噪和butterworth去噪
5天答辩并书写任务书。
参
考
资
料
1.徐金明,张孟喜,丁涛,《matlab实用教程》,清华大学出版社.北京交通大学出版社,2005.7
2.秦前清,《实用小波分析》,西安电子科技大学出版社,1995.
3.林克正,《基于小波变换的去噪方法》,哈尔滨工程大学学报,2000
指导教师签字
基层教学单位主任签字
摘要
生理信号的情感识别具有广泛的研究和应用前景,是一个重要的研究领域。
其中皮肤电信号(GSR)随着情感的不同有着明显的差异,其皮肤电导值与情感状态和注意力密切相关。
但是研究生理信号存在很多局限性,很难像面部表情等找到一种可以代表情感的生理信号特征,且识别效果不佳,鲁棒性较差等。
因此情感识别中最可靠的方法就是采集比较理想的符合真实环境的生理数据,将皮肤电信号在情感识别中的研究作为模式识别来研究,而由于生理信号极其微弱,信号噪声很大,甚至将有效信号覆盖,故本文阐述了GSR信号数据预处理方法。
将信号从总信号中分离出,并采用小波滤波器和巴特沃斯滤波器对信号进行去噪处理,分离出有效信号。
关键词 GSR;情感识别;小波去噪;巴特沃斯滤波器去噪
1设计原理
1.1皮肤电信号
1.11研究背景及国内外研究现状
科技信息化的时代已经在我们身边,计算机已经成为千家万户生活的必须部分。
人与计算机的交互过程中,势必会带有某些情感,如果能够使得机器感受到人类的情感,并且见机行事,将会给社会和人类进步带来更大的空间。
这就是所谓的情感计算,然而情感计算到底是什么?
我们要研究的对象和内容是什么?
研究的目的是什么?
情感计算中的一个重要组成部分是情感识别。
情感识别(EmotionRecognition)是通过观察人类的表情,行为和情感产生的前提环境来推断情感状态[1]。
情感识别的研究对象主要有人脸表情,语音语调,人体姿势,文本(心理学上常用的问卷调查)和生理信号五种。
而生理变化不易受到人的主观控制,它由身体客观表现出来,因而采用生理信号得到的数据更能客观反应被试者的真实情感,它更具有鲁棒性和客观性。
我们进行情感识别研究的内容可以看做是一种模式识别问题,情感表达看作是模式合成问题,其目的是试图创建一种能感知,判别和理解人类的情感,能够针对人类情感做出智能,灵敏,友好应答的计算机系统,即赋予计算机像人一样的观察,明白和形成各种情感特征的能力。
国外的一些大学及著名试验研究所都曾做过关于生理信号情感识别的研究,并且已经证明从生理信号中提取特征模式来进行情感识别的可行性,其主要分析的生理信号包括血容量搏动(BVP)、肌电(EMG)、皮肤电导(SC)、呼吸作用(RSP)。
截止到现在,其中的很多研究成果已经被人们产品化,并与惠普公司合作进行多模式情感应用的研究。
对于国内研究动态,我国对情感识别研究于上世纪九十年代开始。
大部分研究是人工情感单元理论与技术实现。
清华大学和中科院心理院联手主要研究:
多模态多通道的情感分析、情感语音识别分析、汉语普通话情感分析、人脸表情视频分析、人脸表情图像结构分析。
哈尔滨工业大学研究多功能感知机,主要包括表情识别、人脸识别、人脸检测与跟踪、手语识别、手语会成、表情合成、唇读等内容,并与海尔公司合作研究服务机器人,于2004年研制出具有八种面部表情的仿人头像机器人系统,并进行了表情实验。
该机器人系统实现了喜、怒、哀、乐、悲伤、严肃、吃惊、自然(中性)等8种表情[7]。
2003年12月在北京召开了第一届中国情感计算及智能交互学术大会。
2005年10月在北京召开的第一届情感计算和智能交互国际学术会议,汇集了世界领先的情感计算、人工情绪和人工心理研究的有名的专家学者。
这说明我国在这方面的研究在逐步展开并将目标瞄向世界水平。
1.12皮肤电信号特点
目前关于生理信号的情感识别研究主要针对皮肤电(GSR)、肌电(EMG)、血容量搏动(BVP)、呼吸作用(RSP)、心电图(EGC)、脑电图(EEG)和皮温(SKT)这七种信号,它们可以表达出不同的信息。
其中,皮肤电反应信号随着情感的不同有明显的变化。
当受到刺激和压力时,皮肤电反应信号很敏感,能够很好的区分高兴和恐惧这两种情感。
当皮肤出汗时,皮肤电导就会变强。
皮肤电导与情感状态和注意力息息相关,当被试者的某种情感强度越来越大,皮肤电导值就会升高。
一般唤起度越高的情感,皮肤电导值就越大,通常可以来测试被试者对激发焦虑情绪的环境或者刺激的反应。
可见,此类研究具有一定的意义。
1.2巴特沃斯滤波器
巴特沃斯滤波器(Butterworth):
它具有单调下降的幅频特性;即最平幅度,是通频带的频率响应曲线最平滑,并且具有最大限度平坦,没有起伏,而在阻频带则逐渐下降为零,广泛用于多种场合。
皮肤电信号的有用频段是主要在0.2HZ以下,其干扰信号和皮肤电信号不重叠,因此采用此滤波器滤除带外噪声。
阶数设为2,截止频率为0.3HZ。
这样高频成分的滤除也是平滑处理的过程。
巴特沃斯滤波器阶数n越高,其幅频特性越好,低频检测信号保真度越高。
巴特沃斯低通滤波器的平方幅度响应为:
其中,n为滤波器的阶数,ωc为低通滤波器的截止频率。
该滤波器具有一些特殊的性质:
①对所有的n,都有当ω=0时,|H(j0)|2=1;
②对所有的n,都有当ω=ωc时,|H(jωc)|2=0.5,即在ωc处有3dB的衰减;
③|H(jω)|2是ω的单调递减函数,即不会出现幅度响应的起伏;
④当n→+∞时,巴特沃斯滤波器趋向于理想的低通滤波器;
⑤在ω=0处平方幅度响应的各级导数均存在且等于0,因此
|H(jω)|2在该点上取得最大值,且具有最大平坦特性。
1.3小波
小波分析的去噪原理:
有用信号通常表现为低频信号或是相对比较平稳的信号,而噪声信号通常表现为高频信号。
而小波去噪又分为硬阈值去噪,默认阈值去噪,以及软阈值去噪等几种。
硬阈值去噪法的基本思想是,对各细节信号进行阈值处理,当某位置的小波系数小于临界阈值时,认为该位置的小波系数主要是由噪声引起的,故将这一位置的小波变换值置零;当某位置的小波系数大于临界阈值时,认为这一位置的小波系数主要是由信号引起的,就把这一位置的小波系数直接保留下来。
软阈值法的基本思想是向着某一方向收缩,首先把各细节信号进行阈值处理,然后把某位置的小波变换值与指定的阈值进行比较,小于或等于阈值的点置零,当小波变换值大于该阈值时,该值向减小系数幅值的方向收缩,即变为该点值与阈值的差。
默认阈值法的基本思想是对于细节较多的心电信号,通常选取较小的阈值,细节较少的信号则选取较大的阈值。
虽然硬阈值方法能够很好地保留原始真实信号的尖峰特征,但在某些位置点上会产生间断,而软阈值方法的基本思想是在硬阈值的基础上将信号边界上出现的不连续点收敛到零,这样可有效避免间断,使得重建的信号比较光滑。
而通过资料的查找得知,软阈值去噪效果最佳。
1.4matlab简要介绍
MATLAB是美国MathWords公司推出的一套高性能的数值分析和计算软件,MATLAB是矩阵实验室(MatrixLaboratory)之意。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,工具包又可以分为功能性工具包和学科工具包。
功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。
学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。
以下简单介绍一下MATLAB的主要特点。
(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。
MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。
由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。
可以说,用MATLAB进行科技开发是站在专家的肩膀上。
(2)运算符丰富。
由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。
(3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
(4)程序限制不严格,程序设计自由度大。
例如,在MATLAB里,用户无需对矩阵预定义就可使用。
(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
(6)MATLAB的图形功能强大。
在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。
MATLAB还具有较强的编辑图形界面的能力。
(7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。
由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
(8)功能强大的工具箱是MATLAB的另一特色。
MATLAB包含两个部分:
核心部分和各种可选的工具箱。
核心部分中有数百个核心内部函数。
其工具箱又分为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。
功能性工具箱用于多种学科。
而学科性工具箱是专业性比较强的,如control,toolbox,signlprocessingtoolbox,commumnicationtoolbox等。
这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。
(9)源程序的开放性。
开放性也许是MATLAB最受人们欢迎的特点。
除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
2设计步骤
2.1GSR信号的采集
对于研究的第一环节(GSR数据采集)中所采集信号是否直接关系到整个研究的成功与否,要想保证数据的有效,其中就要考虑到有效的情感激发素材,实验采集设备及方法的科学性,试验流程的严谨科学。
通过大量资料的综合整理,本次研究确定四种情感的分类研究(喜,怒,哀,乐),情感触发素材为相应的电影片段;研究对象为在校大学生,专业不限,男女不限,年龄在20-23岁之间,体健,且为了保证数据的有效性实验的人选和顺序随机安排,一个被试者只能参加一次数据采集实验。
实验设备选用美国Biopac公司生产的生理记录仪MP150和分析软件,大致流程如下图2-1示:
图2-1数据采集流程图
实验具体步骤:
(1)自愿参加本实验的被试者提前2~3天与主试者预约试验时间,实验前填好实验自愿书和个人资料;
(2)一次实验只能一被试者参加,实验时主试者带领被试者先熟悉实验环境,详细说明实验过程及细节;
(3)要求被试者在无外界干扰的情况下自然地观看实验素材;被试者观看过程中填写一份情绪主观报告,记录他们观看每个片段后的情感状态及其强度。
表中情感(平静、高兴、悲伤、愤怒、欢乐)和情绪强度(1—很弱,2—较弱,3—般,4—较强,5—很强);
数据采集时要注意避免不必要的电磁干扰和外界环境的干扰,尽量取得高有效性的数据。
而且要注意数据采集实验室内人为环境的影响,尽量做到最少的外界影响,以得到优质数据。
由于课程设计时间较短,实验数据由上届学姐那里取得。
2.2信号分离
数据采集完毕后经过整理,得到喜、怒、哀、乐四种情感的数据各25组,每组有3840个数据点,总共构造了3840×100的数据矩阵。
而对数据进行分析时,将喜、怒、哀、乐的单一数据提出,进行数据原信号显示。
程序如下:
plot(B)
E=B(:
1);%取总信号中第一列
E=E';%将列信号向量转置为行向量
n=size(E);%获得向量大小
signal=E(1:
2000);%取E中1-2000的数据点
figure,
plot(signal,'r')%作图,线条颜色设置为红色
title({'喜a','原始数据'});%给图片添加标题
B为原总信号矩阵(3840*100),B矩阵的原始图像如下:
取喜的第一组数据为例,图片如下:
2.3数据归一化
对于采集的皮肤电信号,考虑到个体差异很大,为了研究的准确性,需要去除GSR信号的基础水平差异,首先对数据进行归一化处理。
具体的操作步骤是:
将被试者测得的数据减去所有数据中的最大值,然后除以所得数据中的最大值与最小值之差。
为此得到的数据便除去了个体差异。
程序如下:
signal=(signal-min(min(signal)))./(max(max(signal)-min(min(signal))));
%将被试者测得的数据减去所有数据中的最小值,然后除以所得数据中的最大值与最小值之差
2.4巴特沃斯滤波器去噪
matlab的信号处理工具箱提供了有关巴特沃斯滤波器的函数buttap、buttord、butter。
用buttap函数设计归一化的巴特沃斯低通滤波器系数,
[z,P,k]=bttap(n)可设计出n阶巴特沃斯低通滤波器原型,其传递函数为:
因此实际上Z为空阵。
上述零极点形式可以化为:
其中
,巴特沃斯滤波器的归一化结果,如表1所示。
buttord函数可在给定滤波器性能的情况下,选择巴特沃斯滤波器的阶数n和截止频率Wc,从而可利用butter函数设计巴特沃斯滤波器的传递函数。
[n,Wc]=buttord(Wp,Ws,Rp,Rs,’s’)可得到满足性能的模拟巴特沃斯滤波器的最小阶数n及截止频率Wc,其中Wp为通带的拐角频率,Ws为阻带的拐角频率,Wp和Ws的单位均为rad/s,Rs为通带区的最大波动系数,Rp为Rs阻带区的最小衰减系数,Rs和Rp的单位都为dB。
[a,b]=butter(n,Wc,‘s’)可设计截止频率为Wc的n阶低通模拟巴特沃斯滤波器为
H(s)=
利用buttord函数、butter函数编制设计巴特沃斯低通滤波器的matlab函数文件,程序内容如下:
wp=10100*2*pi/5000000;
%Butterworth低通滤波器,wp为角频率
ws=20500*2*pi/5000000;
%Ws为阻带的拐角频率
rp=0.2;
%Rp为Rs阻带区的最小衰减系数
rs=1;
%Rs为通带区的最大波动系数
[N,wn]=buttord(wp,ws,rp,rs,'s');
[a,b]=butter(2,0.3);
signal2=filter(a,b,signal2);
figure,
plot(signal2,'b')
title({'喜','滤波后图像'})
滤波后图像为:
很明显,此图并不能达到要求,所以我将数据进行两次滤波。
程序如下:
order=2;%滤波器阶数为二
cutoff=0.3;%截止频率为0.3
hz=32;
offset=signal1
(1);
[b,a]=butter(order,cutoff/(hz/2));
signal1=filtfilt(b,a,signal1-offset)+offset;
figure,
plot(signal1)
title({'喜','滤波后图像'})
结果为:
Offset为0,a为一行三列的矩阵[1,-1.9167,0.9201],b为[8.3254e-04,0.0017,8.3254e-04]
依次对喜怒哀乐的数据进行滤波器去噪处理,可以得到如下图:
蓝色代表情感喜,红色代表情感怒,绿色代表情感哀;黄色代表情感乐
由上图可以明显看出,喜、怒、哀或喜、怒、乐三种情感有着明显的区别,通过统计值就可以明显的区分。
2.5小波去噪
由以上面程序知,进行两次巴特沃斯低通滤波器滤波,能完美的将皮肤电数据滤除噪声干扰。
小波工具包用法较为复杂,本人并未进行深入研究,所以此处不加以仔细描述。
小波去噪程序及运行结果如下:
%小波分解
[CL]=wavedec(E,3,'db5');
%从c中提取尺度3下的近似小波系数
cA3=appcoef(C,L,'db5',3);
%从信号c中提取尺度1,2,3下的细节小波系数
cD1=detcoef(C,L,1);
cD2=detcoef(C,L,2);
cD3=detcoef(C,L,3);
%使用stein的无偏似然估计原理进行选择各层的阈值
%cD1,cD2,cD3为各层小波系数,
%'rigrsure’为无偏似然估计阈值类型
thr1=thselect(cD1,'rigrsure');
thr2=thselect(cD2,'rigrsure');
thr3=thselect(cD3,'rigrsure');
%各层的阈值
TR=[thr1,thr2,thr3];
%'s'为软阈值;'h'硬阈值。
SORH='s';
%---------去噪----------------
%XC为去噪后信号
%[CXC,LXC]为的小波分解结构
%PERF0和PERF2是恢复和压缩的范数百分比。
%'lvd'为允许设置各层的阈值,
%'gbl'为固定阈值。
%3为阈值的长度
[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',E,'db5',3,TR,SORH);
%---------去噪效果衡量(SNR越大效果越好,
%MSE越小越好)------------------------
%选取信号的长度。
N=n
(2);
x=E;
y=XC;
F=0;
M=0;
forii=1:
N
m(ii)=(x(ii)-y(ii))^2;
t(ii)=y(ii)^2;
f(ii)=t(ii)/m(ii);
F=F+f(ii);
M=M+m(ii);
end;
SNR=10*log10(F);
MSE=M/N;
SM=SNR/MSE;
%对比原始信号和除噪后的信号
subplot(2,1,1);
plot(s(1:
1000));
title('原始信号')
subplot(2,1,2);
plot(XC(1:
1000));
title('除噪后的信号')
SNR,MSE
3总结
通过这一周时间的学习,我对matlab从完全陌生,到能够独立进行简单编程,收获很大。
开始时,通过查阅资料,我首先对matlab面板进行初步了解,大概知道了各板块的功能。
尝试编写最基础的加减函数,了解运行及应用方法,慢慢的学会存储文件为.M文件,学会如何引入数据,学会如何进行图片的显示及给图片添加标题、规定线条颜色,并在老师的帮助下明白如何在同一个程序同一次运行中命令显示多张图片,注意到一些常用函数语句的写法,学会使用帮助信息。
查找资料,学会基于matlab的巴特沃斯滤波器设计,编写程序语句,将数据进行处理,消除噪声干扰,平滑滤波。
作为一种机器语言,matlab之所以能如此迅速地普及,显示出如此旺盛的生命力,我认为是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。
MATLAB最突出的特点就是简洁。
MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。
MATLAB给用户带来的是最直观,最简洁的程序开发环境。
用户可以使用强大的功能对矩阵进行处理,使用极简单的语句的语句就能将数据转化为图像进行显示,效果直观方便。
由于以上原因,我们可以对其进行深入学习。
参考文献
1.徐金明,张孟喜,丁涛.《matlab实用教程》.清华大学出版社.北京交通大学出版社,2005.7
2.秦前清.《实用小波分析》.西安电子科技大学出版社,1995.
3.林克正.《基于小波变换的去噪方法》.哈尔滨工程大学学报,2000
4陈庆虎,李柱.信噪分离的小波分析原理及应用.水利电力机械,1998.
5彭玉华.《小波变换与工程应用》.科学出版社,1999.
6MartinVetterli.WaveletsandFilterBanks:
TheoryandDesign.IEEETrans.SignalProcessing.1992.40(9)
7杨福生.《生物医学信号处理》.高等教育出版社,1989.
8彭玉华.《小波变换与工程应用》.科学出版社,1999.
9董长虹,余啸海.《MATLAB小波分析工具箱原理与应用》.国防工业出版社,2004.
10楼顺天,李博菡.《基于MATLAB的系统分析与设计——信号处理》.西安电子科技大学出版社,1998.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 皮肤 电信号 处理
![提示](https://static.bingdoc.com/images/bang_tan.gif)