




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
燕山大学课 程 设 计 说 明 书题目:肌电信号分析及动作识别学院(系): 电气工程学院 年级专业:10级仪表3班 学 号: 100103020165 学生姓名: 勾志勇 指导教师: 谢平 杜义浩教师职称: 教授 讲师 电气工程学院课程设计任务书课程名称: “单片机原理及应用数字信号处理”课程设计 基层教学单位: 指导教师: 学号100103020165学生姓名勾志勇(专业)班级仪表3班设计题目肌电信号分析及动作识别技术参数1、独立完成设计任务。2、编程,上机调试。3、连接硬件实验线路,实现所要求的功能。4、完成设计,提交课程设计报告。设计要求1、利用肌电传感器采集人体肌电信号,利用matlab软件对肌电信号进行时域和频域(包括fft,功率谱,倒谱)分析,计算均值、标准差、方差、积分肌电值iemg、均方根rms等时域指标参数和平均功率频率mpf、中值频率mf等频域指标。比较不同动作下肌电信号特征,根据设定阈值给出动作状态,设计相应的信号分析及显示界面。2、基于肌电信号分析结果,通过串口发送命令给单片机系统,根据肌电信号动作状态控制相应的数码管或led发光显示。3、扩展:也可通过动作模式驱动电机转动或其他控制输出模块。工作量软件编程与硬件调试相结合,绘制设计流程图,编制相应软件界面,实现单片机控制与信号处理任务的综合应用参考资料1)微型计算机控制系统 赖寿宏,机械工业出版社(教材)2)单片机及应用李大友,高等教育出版社(教材)3)信号处理原理及应用 谢平 等 机械工业出版社(教材)4)matlab程序设计及其在信号处理中的应用聂祥飞等 西南交通大学出版社周次第一周第二周应完成内容熟悉伟福单片机编程环境,调试单片机各基本功能模块;熟悉matlab信号处理工具箱,信号处理系统基本功能模块学习和调试单片机系统与信号处理系统综合进行硬件调试,撰写课程设计报告指导教师签字基层教学单位主任签字目录(信号处理要求)第1章 摘要3第2章 系统总体设计方案 第3章 肌电信号的时域处理第4章肌电信号的频域处理方法及其分析方法 4.1 fft分析: 4.2 功率谱分析: 4.3 倒谱分析:第5章matlab软件实现 5.1 matlab简介 5.2 matlab程序 5.3 gui界面设计第6章 信号分析程序及结果10第7章 课设心得参考文献18第1章 摘要 信号是信息传递的载体,信号的有效传输能够让人们更好的获得信息。我们处理数字语音信号,就是为了让信号更好更快捷的传输,信号是传递信息的函数。信号有以下几种: (1)连续时间信号:在连续时间范围内定义的信号,但信号的幅值可以是连续数值,也可以是离散数值。当幅值为连续这一特点情况下又常称为模拟信号。实际上连续时间信号与模拟信号常常通用,用以说明同一信号。 (2)离时间信号:时间为离散变量的信号,即独立变量时间被量化了。而幅度仍是连续变化的。 (3)数字信号:时间离散而幅度量化的信号。 语音信号是基于时间轴上的一维数字信号,我们主要是对语音信号进 行频域上的分析。本次课设是利用matlab软件,结合频谱分析和主频特征提取,实现两路语音信号的合成。 信号处理的基本概念和分析方法已应用于许多不同领域和学科中,尤其是数字计算机的出现和大规模集成技术的高度发展,有力地推动了数字信号处理技术的发展和应用。肌电信号是产生肌肉力的电信号根源,它是肌肉中很多运动单元动作电位在时间和空间上的叠加,反映了神经,肌肉的功能状态,在基础医学研究、临床诊断和康复工程中有广泛的应用。它属于随机信号的一种,用数字信号处理的方法和matlab软件对其进行分析后,可以得到许多有用的信息,对于诊断疾病有非常重要的参考价值。第2章 系统总体设计方案 第一步 肌电信号的采集肌电信号是产生肌肉力的电信号根源,它是肌肉中很多运动单元动作电位在时间和空间上的叠加,反映了神经,肌肉的功能状态,在基础医学研究、临床诊断和康复工程中有广泛的应用。 肌电信号本身是一种较微弱的电信号。检测和记录表面肌电信号,需要考虑的主要问题是尽量消除噪声和干扰的影响, 提高信号的保真度。第二步 肌电信号在时域的处理与分析 在时域中看到的信号是比较直观的,也是容易理解的,但是在时域中信号的特征有时候不是很明显,所以需要如滤波等一些处理,把噪声去掉,让有用信号尽量完美的显示。然后观察在时域中信号的特征,找出有用的信息。时域中还需要处理分析一些参数有标准差、方差、均方根、中位频率、积分肌电值iemg、均方根有效值。通过这些参数也能得到许多有用信息。第三步 肌电信号在频域的处理与分析 fft是离散傅立叶变换的快速算法,可以将一个信号变换到频域。因为有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。 因为很多信号在频域中能很清晰明了的显示,而且频域中也有很多的特征参量共我们选择,我们通过在频域中的幅频特性与相频特性还有功率谱分析、倒谱分析。得出肌电信号中屈与伸的特征与不同之处。第四步 屈与伸两种动作的判断通过时域或者是频域中屈与伸信号的不同,找出一个差别最大的特征量进行判断。然后把对应的参数转化为能为下位机的实现提供可靠的依据。第五步 用matlab处理 先熟悉matlab的使用,尤其是gui的使用,通过资料先学习软件的使用,然后在进行设计。 首先是gui界面的设计,原则是尽量把所要表达的坐标图与数据参数完整而又完美的表现出来。接下来就是界面功能的实现。把对应按钮的功能的回调函数写对。按钮能正确控制运算与显示。还要加上一些如关闭等一些功能按键,使其更完美。第六步 发送至下位机显示 下位机的显示能够体现我们处理后的结果,我们通过下位机的点阵分别两出屈和伸字来判断信号是屈的信号还是伸的信号。对应的电机也会由于屈伸信号的不同体现为正转与反转,因为病人如果能屈胳膊则证明可以实现了关节的运动,我们还设计了当是屈信号是就报警,当是伸信号则不报警。对应的数码管显示了我的一个特征值,这个值gui界面也会显示,且两者是一致的。通过点阵显示、电机转动、数码管显示与蜂鸣器响应我们都可以提现屈与伸两个信号。实现了我们数据采集的目的与我们最初想要达到的效果。 第3章 肌电信号的时域处理及其分析方法3.1 时域参数均值:对于一个随机变量来说,均值是一个很重要的数值特征。粗略的说,就是来描述一个群体的平均水平。其严格的数学定义非常的简单,就是一个随机变量关于概率测度的积分。这样的积分在测度轮或者实分析里是没有什么直观的解释的。而在概率论里却成为了一个群体的主要指标。在此处,均值表示肌电信号的平均水平。标准差: 标准差(standard deviation) ,也称均方差(mean square error),是各数据偏离平均数的距离的平均数,它是离均差平方和平均后的方根,用表示。标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的,标准差未必相同。其求解公式如下: 方差: 方差是各个数据与平均数之差的平方的平均数。在概率论和数理统计中,方差(英文variance)用来度量随机变量和其数学期望(即均值)之间的偏离程度。在许多实际问题中,研究随机变量和均值之间的偏离程度有着很重要的意义。其求解公式如下: 均方根=0.06754 中位频率=11.4033 积分肌电值iemg = 0.05437 均方根有效值rms= 0.17246屈信号数据基本信息: 均值 = 0.03502 标准差 = 0.05775 方差= 0.00334 均方根=0.06754 中位频率=11.4033 积分肌电值iemg = 0.05437 均方根有效值rms= 0.17246伸信号数据基本信息: 均值 = 0.00337 标准差 = 0.24421 方差= 0.05964 均方根=0.24422 中位频率=149.1083 积分肌电值iemg = 0.12826 均方根有效值rms= 0.19993第4章 肌电信号的频域处理方法及其分析方法4.1 fft分析: fft是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用fft变换的原因。另外,fft可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。一个模拟信号,经过adc采样之后,就变成了数字信号。采样得到的数字信号,就可以做fft变换了。n个采样点,经过fft之后,就可以得到n个点的fft结果。为了方便进行fft运算,通常n取2的整数次方。假设采样频率为fs,信号频率f,采样点数为n。那么fft之后结果就是一个为n点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。3.2 功率谱分析:定义信号f(t)的平均功率:电压f(t)在电阻上消耗的平均功率(简称功率) 式中,t是为求平均的时间区间。 对于随机信号而言其持续时间无限长,因此对于非0的样本函数,它的能量一般也是无限的,因此其付氏变换不存在。但是注意到它的平均功率是有限的,在特定的条件下,仍然可以利用博里叶变换这一工具。为了将傅里叶变换方法应用于随机过程,必须对过程的样本函数做某些限制,最简单的一种方法是应用截取函数。设过程的截取函数(截取的随机过程)为: 则截取函数的傅里叶变换为:平稳随机过程的平均功率为的功率谱密度为这样的平均功率等于各个频率分量(统计值)单独贡献出的功率之连续和,是在频率域上描述随机过程统计特性的最主要数字特征。3.3 倒谱分析: 信号的傅里叶变换谱经对数运算后再进行的傅里叶反变换。功率谱的对数值的逆傅氏变换称为倒谱。如序列倒谱定义如下:其中f和f-1分别表示傅里叶变换和逆傅里叶变换。第5章 matlab软件实现 5.1 matlab简介matlab是一种面向工程和科学计算的交互式计算软件,它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个简单易用的交互式工作环境中。同时由于matlab是一个数据分析和处理功能十分强大的工程实用软件,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。matlab是解决工程技术问题的技术平台。利用它能够轻松完成复杂的数值计算,数据分析,符号计算和数据可视化等任务。matlab软件由主包和各类工具箱构成。其中,主包基本是一个用c/c+等语言编写成的函数库。该函数库提供矩阵(或数组)的各种算法以及建立在此基础上的各种应用函数和一些相关的用户有好操作界面。而工具箱从深度和广度上大大扩展了matlab主包的功能和应用领域。随着自身的不断完善和发展,matlab功能越来越强大,应用也越来越广泛。 随着计算机技术和信息技术的发展,语音交互已经成为人机交互的必要手段,而语音信号的采集和处理是人机交互的前提和基础。声卡是计算机对语音信号进行加工的重要部件,它具有对信号滤波、放大、采样保持、a/d和d/a转换等功能。在matlab环境中,可以通过多种编程方法驱动声卡,实现对语音信号的采集和回放。同时由于matlab是一个数据分析和处理功能十分强大的工程实用软件,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。5.2 matlab程序及guifunction varargout = untitled20(varargin)gui_singleton = 1;gui_state = struct(gui_name, mfilename, . gui_singleton, gui_singleton, . gui_openingfcn, untitled20_openingfcn, . gui_outputfcn, untitled20_outputfcn, . gui_layoutfcn, , . gui_callback, );if nargin & ischar(varargin1) gui_state.gui_callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_state, varargin:);else gui_mainfcn(gui_state, varargin:);endfunction untitled20_openingfcn(hobject, eventdata, handles, varargin)handles.output = hobject; guidata(hobject, handles); function varargout = untitled20_outputfcn(hobject, eventdata, handles) varargout1 = handles.output; function qu_callback(hobject, eventdata, handles)a=load(qu.txt);axes(handles.axes1);plot(a);xlabel(时间 (s);ylabel(被测变量y);title(屈)原始信号);grid on;a=mean(a); % 平均值b=std(a); % 标准差c=var(a); % 方差d=mean(abs(a); % 积分机电值e=sqrt(mean(a.2);%均方根有效值rmsy=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);f=m1/m2;g=m2/2;a1=a*100000;a2=round(a1);a3=a2/100000;set(handles.pingjunzhi,string,num2str(a3);b1=b*100000;b2=round(b1);b3=b2/100000;set(handles.biaozhuncha,string,num2str(b3);c1=c*100000;c2=round(c1);c3=c2/100000;set(handles.fangcha,string,num2str(c3);d1=d*100000;d2=round(d1);d3=d2/100000;set(handles.jifenjidianzhi,string,num2str(d3);e1=e*100000;e2=round(e1);e3=e2/100000;set(handles.junfanggen,string,num2str(e3);f1=f*100000;f2=round(f1);f3=f2/100000;set(handles.pingjungonglv,string,num2str(f3);g1=g*100000;g2=round(g1);g3=g2/100000;set(handles.zhongweipinglv,string,num2str(g3);function pingjunzhi_buttondownfcn(hobject, eventdata, handles)function biaozhuncha_buttondownfcn(hobject, eventdata, handles)function jifenjidianzhi_buttondownfcn(hobject, eventdata, handles) function pingjungonglv_buttondownfcn(hobject, eventdata, handles)function fangcha_buttondownfcn(hobject, eventdata, handles)function shen_callback(hobject, eventdata, handles)a=load(shen.txt);axes(handles.axes2);plot(a);xlabel(时间 (s);ylabel(被测变量y);title((伸)原始信号);grid on;a=mean(a); % 平均值b=std(a); % 标准差c=var(a); % 方差d=mean(abs(a); % 积分机电值e=sqrt(mean(a.2);%均方根有效值rmsy=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);f=m1/m2;g=m2/2;% a,b,c,d,e,f=index_calculation(a);% 设置显示a1=a*100000;a2=round(a1);a3=a2/100000;set(handles.pingjunzhi,string,num2str(a3);b1=b*100000;b2=round(b1);b3=b2/100000;set(handles.biaozhuncha,string,num2str(b3);c1=c*100000;c2=round(c1);c3=c2/100000;set(handles.fangcha,string,num2str(c3);d1=d*100000;d2=round(d1);d3=d2/100000;set(handles.jifenjidianzhi,string,num2str(d3);e1=e*100000;e2=round(e1);e3=e2/100000;set(handles.junfanggen,string,num2str(e3);f1=f*100000;f2=round(f1);f3=f2/100000;set(handles.pingjungonglv,string,num2str(f3);g1=g*100000;g2=round(g1);g3=g2/100000;set(handles.zhongweipinglv,string,num2str(g3);a=load(qu.txt);y=fft(a,1024); %做1024点傅里叶变换fs=1000;n=length(y);mag=abs(y);f=(0:n-1)/n*fs;axes(handles.axes3);plot(f(1:512),mag(1:512);%做幅频谱xlabel(频率);ylabel(幅值);title((屈)肌电幅频谱);axes(handles.axes4);plot(f,angle(y);%做相频谱xlabel(频率);ylabel(幅值);title((屈)肌电相频谱);grid on; w=rceps(a);%求倒谱n=1:100;axes(handles.axes5);plot(n,w(1:100);xlabel(时间);ylabel(倒谱);title((屈)肌电信号倒谱);grid on;power1=(mag.2)/2;%周期图法求功率谱axes(handles.axes6);plot(f,power1);xlabel(频谱);ylabel(功率谱);title((屈)肌电信号功率谱);grid on;function shen1_callback(hobject, eventdata, handles)guidata)a=load(shen.txt);y=fft(a,1024); %做1024点傅里叶变换fs=1000;n=length(y);mag=abs(y);f=(0:n-1)/n*fs;axes(handles.axes3);plot(f(1:512),mag(1:512);%做幅频谱xlabel(频率);ylabel(幅值);title((伸)肌电幅频谱);axes(handles.axes4);plot(f,angle(y);%做相频谱xlabel(频率);ylabel(幅值);title((伸)肌电相频谱 );grid onw=rceps(a);%求倒谱n=1:100;axes(handles.axes5);plot(n,w(1:100);xlabel(时间);ylabel(倒谱);title((伸)肌电信号倒谱);grid on;power1=(mag.2)/10000;%周期图法求功率谱axes(handles.axes6);plot(f,power1);xlabel(频谱);ylabel(功率谱);title((伸)肌电信号功率谱);grid on;function axes5_buttondownfcn(hobject, eventdata, handles)function qufa_callback(hobject, eventdata, handles)global ssa=load(qu.txt);d=mean(abs(a); % 积分机电值d1=d*100000;d2=round(d1);d3=dec2hex(d2);dtmf_series(d3);function shenfa_callback(hobject, eventdata, handles)global ssa=load(qu.txt);d=mean(abs(a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粤海地理竞赛试题及答案
- 沙滩弹唱面试题及答案
- 理解纺织品生产全过程的质量管理试题及答案
- 广告设计师证书考试创意展示试题及答案
- 科技武器考试题及答案
- 健康领域测试题及答案
- 2024年纺织设计师考点解析试题及答案
- 电话客服考试试题及答案
- 助理广告师项目执行能力试题及答案
- 2024国际设计师考试心得体会试题及答案
- 电商客服岗转正述职报告
- 标准实施情况报告
- 农业安全问题
- 导管护理相关知识
- 上海2025年上海交通大学医学院招聘72人笔试历年参考题库附带答案详解
- DB37-T 5061-2024 住宅小区供配电设施建设标准
- GB/T 45135-2024钛合金板材超塑成形和扩散连接件通用技术规范
- (2025)时事政治题库(含参考答案)
- 【含听力9英一模】合肥市蜀山区2024年中考一模英语
- 保利拍卖行合同模板
- 2025年中国融通农发社会招聘笔试参考题库含答案解析
评论
0/150
提交评论