肌电信号的时域和频域分析及实现.docx
- 文档编号:11501018
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:23
- 大小:144.54KB
肌电信号的时域和频域分析及实现.docx
《肌电信号的时域和频域分析及实现.docx》由会员分享,可在线阅读,更多相关《肌电信号的时域和频域分析及实现.docx(23页珍藏版)》请在冰点文库上搜索。
肌电信号的时域和频域分析及实现
燕山大学
课程设计说明书
题目:
肌电信号的时域和频域分析及实现
学院(系):
电气工程学院
年级专业:
09级XXXXXX
学号:
XXXXXXXXXXXX
学生姓名:
XXXXXXXXXXXX
指导教师:
谢平吴晓光
教师职称:
教授讲师
燕山大学课程设计(论文)任务书
院(系):
电气工程学院基层教学单位:
自动化仪表系
学号
XXXXXXXXXX
学生姓名
XXXXXXXXXX
专业(班级)
仪表XX班
设计题目
肌电信号的时域和频域分析及实现
设
计
技
术
参
数
FFT,功率谱,倒谱;
均值,标准差,方差;
积分肌电值IEMG,均方根有效值RMS,平均功率频率MPF;
设
计
要
求
设计程序,分析肌电信号的时域和频域及其实现。
工
作
计
划
6月18日,熟悉Matlab的基本操作
6月19日,查找与课程设计课题相关的资料
6月20日,设计程序并调试
6月21日,调试程序并写论文
参
考
资
料
1.谢平、王娜、林洪斌等主编,信号处理原理及应用。
北京:
机械工业出版社,2008.10
2.宋爱国、刘文波等主编,测试信号分析与处理。
北京:
机械工业出版社,2005,9
3.聂祥飞、王海宝、谭泽富主编,Matlab程序设计及其在信号处理中的应用。
成都:
西南交通大学出版社,2005
4.吴大正、高西全等主编,Matlab及在电子信息课程中的应用。
北京:
电子工业出版社,2006.3
5.李培芳、孙晖、李江主编,信号与系统分析基础。
北京:
清华大学出版社,2006.12
指导教师签字
谢平吴晓光
基层教学单位主任签字
谢平
说明:
此表一式四份,学生、指导教师、基层教学单位、系部各一份。
2012年6月29日
摘要
信号处理的基本概念和分析方法已应用于许多不同领域和学科中,尤其是数字计算机的出现和大规模集成技术的高度发展,有力地推动了数字信号处理技术的发展和应用。
肌电信号是产生肌肉力的电信号根源,它是肌肉中很多运动单元动作电位在时间和空间上的叠加,反映了神经,肌肉的功能状态,在基础医学研究、临床诊断和康复工程中有广泛的应用。
它属于随机信号的一种,用数字信号处理的方法和Matlab软件对其进行分析后,可以得到许多有用的信息,对于诊断疾病有非常重要的参考价值。
关键字:
信号处理肌电信号Matlab
目录
第1章绪论……………………………………………………………………4
第2章肌电信号的时域处理及其分析方法…………………………………5
2.1时域参数………………………………………………………………5
2.2Matlab程序……………………………………………………………6
第3章肌电信号的频域处理方法及其分析方法……………………………8
3.1FFT分析…………………………………………………………………8
3.2功率谱分析……………………………………………………………10
3.3倒谱分析………………………………………………………………13
3.4平均功率频率MPF……………………………………………………14
第4章Matlab程序及GUI……………………………………………………15
4.1Matlab程序………………………………………………………15
4.2GUI……………………………………………………………………21
学习心得…………………………………………………………………………22
参考文献………………………………………………………………………23
第一章绪论
肌电信号是产生肌肉力的电信号根源,它是肌肉中很多运动单元动作电位在时间和空间上的叠加,反映了神经,肌肉的功能状态,在基础医学研究、临床诊断和康复工程中有广泛的应用。
其种类重要有两种:
一,临床肌电图检查多采用针电极插入肌肉检测肌电图,其优点是干扰小,定位性好,易识别,但由于它是一种有创伤的检测方法,其应用收到了一定的限制。
二,表面肌电则是从人体皮肤表面通过电极记录下来的神经肌肉活动时发放的生物电信号,属于无创伤性,操作简单,病人易接受,有着广泛的应用前景。
主要应用领域有:
一,仿生学。
提出肌肉生理模型来判别肌肉的动作以来,电子假肢的研究进入了新的发展时期,过去电子假肢的控制靠使用者人为开关和选择运动模式来完成,现在则可通过检测人体残肢表面肌电信号,提取出肢体的动作特征,来自动控制假肢运动,利用残肢表面肌电信号的肌电假肢研制在国内外都取得较大进展。
二,康复工程。
如利用表面肌电信号提取出的特征作为功能性电刺激的控制信号,帮助瘫痪的肢体恢复运动功能。
通过检测表面肌电信号,并将其作为反馈信号提供给病人和医生,便于进行合理的治疗和训练。
三,运动医学。
表面肌电信号在运动医学中也可发挥重要作用,通过检测运动员运动时的表面肌电信号,及时反映出肌肉的疲劳和兴奋状态,有助于建立科学的训练方法。
需要解决的问题:
肌电信号本身是一种较微弱的电信号。
检测和记录表面肌电信号,需要考虑的主要问题是尽量消除噪声和干扰的影响,提高信号的保真度。
第2章肌电信号的时域处理及其分析方法
2.1时域参数
均值:
对于一个随机变量来说,均值是一个很重要的数值特征。
粗略的说,就是
来描述一个群体的平均水平。
其严格的数学定义非常的简单,就是一个随
机变量关于概率测度的积分。
这样的积分在测度轮或者实分析里是没有什
么直观的解释的。
而在概率论里却成为了一个群体的主要指标。
在此处,均值表示肌电信号的平均水平。
标准差:
标准差(StandardDeviation),也称均方差(meansquareerror),是各数据偏离平均数的距离的平均数,它是离均差平方和平均后的方根,用σ表示。
标准差是方差的算术平方根。
标准差能反映一个数据集的离散程度。
平均数相同的,标准差未必相同。
其求解公式如下:
方差:
方差是各个数据与平均数之差的平方的平均数。
在概率论和数理统计中,方差(英文Variance)用来度量随机变量和其数学期望(即均值)之间的偏离程度。
在许多实际问题中,研究随机变量和均值之间的偏离程度有着很重要的意义。
其求解公式如下:
2.2Matlab程序
clear;
closeall;
a=load('EMG.txt');
clear;
closeall;
a=load('EMG.txt');
figure,plot(a);
xlabel('时间(s)');
ylabel('被测变量y');
title('原始信号(时域)');
gridon;
fprintf('\n数据基本信息:
\n')
fprintf('均值=%7.5f\n',mean(a));
fprintf('标准差=%7.5f\n',sqrt(var(a)));
fprintf('方差=%7.5f\n',var(a));
fprintf('积分肌电值IEMG=%7.5f\n',mean(abs(a)));
fprintf('均方根有效值RMS=%7.5f\n',sqrt(mean(a.^2)));
执行结果:
数据基本信息:
均值=-0.00012
标准差=0.17024
方差=0.02898
积分肌电值IEMG=0.10011
均方根有效值RMS=0.17024
第3章肌电信号的频域处理方法及其分析方法
3.1FFT分析:
FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
一个模拟信号,经过ADC采样之后,就变成了数字信号。
采样得到的数字信号,就可以做FFT变换了。
N个采样点,经过FFT之后,就可以得到N个点的FFT结果。
为了方便进行FFT运算,通常N取2的整数次方。
假设采样频率为Fs,信号频率F,采样点数为N。
那么FFT之后结果就是一个为N点的复数。
每一个点就对应着一个频率点。
这个点的模值,就是该频率值下的幅度特性。
假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。
而第一个点就是直流分量,它的模值就是直流分量的N倍。
而每个点的相位就是在该频率下的信号的相位。
如果要要提高频率分辨率,就需要增加采样点数,也即采样时间。
频率分辨率和采样时间是倒数关系。
Matlab相关程序:
clear;
closeall;
%fft频率分析
a=load('EMG.txt');
y=fft(a,10000);%做10000点福利叶变换
fs=1000;
N=length(y);
mag=abs(y);
f=(0:
N-1)/N*fs;
figure;
plot(f,mag);%做幅频谱
xlabel('频率');
ylabel('幅值');
title('肌电幅频N=10000');
figure;
plot(f,angle(y));%做相频谱
xlabel('频率');
ylabel('相位');
title('肌电相频N=10000');
gridon;
执行结果:
3.2功率谱分析:
定义信号f(t)的能量(作归一化处理):
由电压f(t)(或者电流f(t))在
电阻上消耗的能量
其中
,若积分值存在,信号的能量为有限值,则称f(t)为能量信号。
对于能量无限大的信号(如周期信号),我们考虑能量的时间平均值,这显然就是信号的平均功率。
这种信号称为(平均)功率信号。
定义信号f(t)的平均功率:
电压f(t)在
电阻上消耗的平均功率(简称功率)
式中,T是为求平均的时间区间。
为了更好得描述能量信号、功率信号,我们引入能量谱密度和功率谱密度概念。
能量谱密度、功率谱密度函数表示信号的能量、功率密度随频率变化的情况。
通过研究功率谱密度,可以帮助了解信号的功率分布情况,确定信号的频带等
对于随机信号而言其持续时间无限长,因此对于非0的样本函数,它的能量一般也是无限的,因此其付氏变换不存在。
但是注意到它的平均功率是有限的,在特定的条件下,仍然可以利用博里叶变换这一工具。
为了将傅里叶变换方法应用于随机过程,必须对过程的样本函数做某些限制,最简单的一种方法是应用截取函数。
设过程
的截取函数
(截取的随机过程)为:
则截取函数的傅里叶变换为:
平稳随机过程
的平均功率为
的功率谱密度为
这样的平均功率等于各个频率分量(统计值)单独贡献出的功率之连续和,是在频率域上描述随机过程统计特性的最主要数字特征。
随机信号的平均功率也可以通过计算均方值的时间平均(时间均方值)来求得。
功率密度谱虽然描述了随机信号的功率在各个不同频率上的分布,但因为它仅与幅度频谱有关,没有相位信息,所以从已知功率谱还难以完整地恢复原来的功率信号。
clear;
closeall;
a=load('EMG.txt');
y=fft(a,10000);%做10000点傅里叶叶变换
fs=1000;
N=length(y);
mag=abs(y);
f=(0:
N-1)/N*fs;
power1=(mag.^2)/10000;%周期图法求功率谱
figure;
plot(f,power1);
xlabel('频谱');
ylabel('功率谱');
title('肌电信号功率谱');
gridon;
3.3倒谱分析:
信号的傅里叶变换谱经对数运算后再进行的傅里叶反变换。
功率谱的对数值的逆傅氏变换称为倒谱。
如序列倒谱
定义如下:
其中F和F-1分别表示傅里叶变换和逆傅里叶变换。
Matlab相关程序:
clear;
closeall;figure;
a=load('EMG.txt');n=[1:
10000];
y=fft(a,10000);plot(n,w);
fs=1000;xlabel('时间');
N=length(y);ylabel('倒谱');
mag=abs(y);title('肌电信号倒谱');
f=(0:
N-1)/N*fs;gridon;
w=rceps(a);%求倒谱
3.4平均功率频率MPF:
clear;
closeall;
a=load('EMG.txt');
y=fft(a,10000);%做10000点傅里叶变换
fs=1000;
N=length(y);
mag=abs(y);
f=(0:
N-1)/N*fs;
power=(mag.^2)/10000;%周期图法功率谱
ss=sum(power);
M2=0.5*ss;
df=fs/N;
M1=0.5*df*(sum(power(1:
N-1))+sum(power(2:
N)));
MPF=M1/M2;
fprintf('平均功率频率MPF=%7.5f\n',MPF);
执行结果:
平均功率频率MPF=0.20000
第四章Matlab程序及GUI
4.1Matlab程序
clear;
closeall;
a=load('EMG.txt');
figure,plot(a);
xlabel('时间(s)');
ylabel('被测变量y');
title('原始信号(时域)');
gridon;
%fft频域分析
a=load('EMG.txt');
y=fft(a,10000);%做ö10000福利叶变换
fs=1000;
N=length(y);
mag=abs(y);
f=(0:
N-1)/N*fs;
figure;
plot(f,mag);%做幅频谱
xlabel('频率');
ylabel('幅值');
title('肌电幅频谱N=10000');
figure;
plot(f,angle(y));%做相频谱
xlabel('频率');
ylabel('幅值');
title('肌电幅频谱N=10000');
gridon;
%周期图法功率谱1
power1=(mag.^2)/10000;
figure;
plot(f,power1);
xlabel('频率');
ylabel('功率谱');
title('肌电信号功率谱1');
gridon;
%周期图法求功率谱2
power2=y.*conj(y)/10000;%计算功率谱
figure,plot(f,power2);
xlabel('频率');
ylabel('功率谱');
title('肌电信号功率谱2');
gridon;
%求倒谱
w=rceps(a);
figure;
n=[1:
10000];
plot(n,w);
xlabel('时间');
ylabel('倒谱');
title('肌电信号倒谱');
gridon;
ss=sum(power1);
M2=0.5*ss;
df=fs/N;
M1=0.5*df*(sum(power1(1:
N-1))+sum(power1(2:
N)));
MPF=M1/M2;
fprintf('\n数据基本信息:
\n')
fprintf('均值=%7.5f\n',mean(a));
fprintf('标准差=%7.5f\n',std(a));
fprintf('方差=%7.5f\n',exp(std(a)));
fprintf('积分肌电值IEMG=%7.5f\n',mean(abs(a)));
fprintf('均方根有效值RMS=%7.5f\n',sqrt(mean(a.^2)));
fprintf('平均功率频率MPF=%7.5f\n',MPF);
执行结果:
数据基本信息:
平均值=-0.00012
标准差=0.17024
方差=0.02898
积分肌电值IEMG=0.10011
均方根有效值RMS=0.17024
平均功率频率MPF=0.20000
4.2GUI
程序:
1.通过PushButton在Axes上显示图像
例如:
显示原始信号
a=load('EMG.txt');
axes(handles.axes1);
plot(a);
xlabel('时间(s)');
ylabel('被测变量y');
title('原始信号(时域)');
gridon;
2.通过PushButton在StaticText上显示数据
例如:
显示积分肌电值
a=load('EMG.txt');
N=mean(abs(a));
NN=num2str(N);
set(handles.text5,'string',NN);
GUI界面:
学习心得
通过一周的数字信号处理的课程设计,我先在图书馆里查找了相关的书籍,如MATLAB类的编程书籍,各类数据处理类的书籍,即丰富了自己的知识范围,又对与自己所学的知识有了更深的了解和认识,同时也对它的应用有了一个大体的认识。
这样将会更加激励我好好学习相关的知识,不断的将所学的知识用于实践。
于实践中牢牢的掌握它。
在设计的过程中,我也认识到了自己所学知识的不足。
这也让我再次认识到知识是无尽的,只有不断的充实自己、完善自己的知识理论体系,才能够更好的胜任自己以后的工作。
设计过程中知识的不足也让我更加坚定了终身学习的决心。
在设计的过程中,我也得到了我们设计小组的成员和很多同学的帮组。
这也加强了我与其他同学合作的能力。
查找资料的过程中我也增强自己学习的能力,这些都将让我在以后的学习、生活和工作中受益匪浅。
总之,对于这样的课程设计活动,我收获了很多东西,也将使我在以后的学习、工作中更加轻松和积极。
这也正是参加这次活动的目的和意义。
参考文献
1.谢平、王娜、林洪斌等主编,信号处理原理及应用。
北京:
机械工业出版社,2008.10
2.宋爱国、刘文波等主编,测试信号分析与处理。
北京:
机械工业出版社,2005,9
3.聂祥飞、王海宝、谭泽富主编,Matlab程序设计及其在信号处理中的应用。
成都:
西南交通大学出版社,2005
4.吴大正、高西全等主编,Matlab及在电子信息课程中的应用。
北京:
电子工业出版社,2006.3
5.李培芳、孙晖、李江主编,信号与系统分析基础。
北京:
清华大学出版社,2006.12
燕山大学课程设计评审意见表
指导教师评语:
成绩:
指导教师:
年月日
答辩小组评语:
成绩:
组长:
年月日
课程设计总成绩:
答辩小组成员签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电信号 时域 分析 实现
![提示](https://static.bingdoc.com/images/bang_tan.gif)