![肌電信號的識別_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/9741fec2-5779-4726-bc9e-03e5707d7e2e/9741fec2-5779-4726-bc9e-03e5707d7e2e1.gif)
![肌電信號的識別_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/9741fec2-5779-4726-bc9e-03e5707d7e2e/9741fec2-5779-4726-bc9e-03e5707d7e2e2.gif)
![肌電信號的識別_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/9741fec2-5779-4726-bc9e-03e5707d7e2e/9741fec2-5779-4726-bc9e-03e5707d7e2e3.gif)
![肌電信號的識別_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/9741fec2-5779-4726-bc9e-03e5707d7e2e/9741fec2-5779-4726-bc9e-03e5707d7e2e4.gif)
![肌電信號的識別_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/31/9741fec2-5779-4726-bc9e-03e5707d7e2e/9741fec2-5779-4726-bc9e-03e5707d7e2e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、燕山大學(xué)數(shù)字信號處理課程設(shè)計燕山大學(xué)課 程 設(shè) 計 說 明 書 題目: 肌電信號分析及動作識別 學(xué)院(系):電氣工程學(xué)院 年級專業(yè): 10級儀表三班 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 教師職稱: 教授 講 師 電氣工程學(xué)院課程設(shè)計任務(wù)書基層教學(xué)單位:自動化儀表系 指導(dǎo)教師:謝平 張淑清學(xué)號學(xué)生姓名(專業(yè))班級10級儀表三班設(shè)計題目肌電信號分析及動作識別設(shè)計技術(shù)參數(shù)1、獨立完成設(shè)計任務(wù)。2、編程,上機(jī)調(diào)試。3、連接硬件實驗線路,實現(xiàn)所要求的功能。4、完成設(shè)計,提交課程設(shè)計報告。設(shè)計要求1、利用肌電傳感器采集人體肌電信號,利用Matlab軟件對肌電信號進(jìn)行時域和頻域(包括FFT,功率譜,倒譜)分析
2、,計算均值、標(biāo)準(zhǔn)差、方差、積分肌電值IEMG、均方根RMS等時域指標(biāo)參數(shù)和平均功率頻率MPF、中值頻率MF等頻域指標(biāo)。比較不同動作下肌電信號特征,根據(jù)設(shè)定閾值給出動作狀態(tài),設(shè)計相應(yīng)的信號分析及顯示界面。2、基于肌電信號分析結(jié)果,通過串口發(fā)送命令給單片機(jī)系統(tǒng),根據(jù)肌電信號動作狀態(tài)控制相應(yīng)的數(shù)碼管或LED發(fā)光顯示。3、擴(kuò)展:也可通過動作模式驅(qū)動電機(jī)轉(zhuǎn)動或其他控制輸出模塊。工作量軟件編程與硬件調(diào)試相結(jié)合,繪制設(shè)計流程圖,編制相應(yīng)軟件界面,實現(xiàn)單片機(jī)控制與信號處理任務(wù)的綜合應(yīng)用參考資料1)微型計算機(jī)控制系統(tǒng) 賴壽宏,機(jī)械工業(yè)出版社(教材)2)單片機(jī)及應(yīng)用李大友,高等教育出版社(教材)3)信號處理原理及
3、應(yīng)用 謝平 等 機(jī)械工業(yè)出版社(教材)4)Matlab程序設(shè)計及其在信號處理中的應(yīng)用聶祥飛等 西南交通大學(xué)出版社周次第一周第二周應(yīng)完成內(nèi)容熟悉偉福單片機(jī)編程環(huán)境,調(diào)試單片機(jī)各基本功能模塊;熟悉matlab信號處理工具箱,信號處理系統(tǒng)基本功能模塊學(xué)習(xí)和調(diào)試單片機(jī)系統(tǒng)與信號處理系統(tǒng)綜合進(jìn)行硬件調(diào)試,撰寫課程設(shè)計報告指導(dǎo)教師簽字基層教學(xué)單位主任簽字3燕山大學(xué)數(shù)字信號處理課程設(shè)計目 錄第一章 摘要 2第二章 系統(tǒng)總體設(shè)計方案 3第三章 肌電信號的時域參數(shù)處理及其分析 4第四章 肌電信號的頻域處理方法及其分析 73.1 FFT分析 73.2 功率譜分析83.3 倒譜分析93.4 平均功率頻率MPF和中值
4、頻率 10第五章 Matlab程序及GUI11第六章 系統(tǒng)整體調(diào)試及結(jié)果說明 24第七章 學(xué)習(xí)心得 24參考文獻(xiàn) 25 第一章 摘要肌電信號是產(chǎn)生肌肉力的電信號根源,它是肌肉中很多運動單元動作電位在時間和空間上的疊加,反映了神經(jīng),肌肉的功能狀態(tài),在基礎(chǔ)醫(yī)學(xué)研究、臨床診斷和康復(fù)工程中有廣泛的應(yīng)用。其種類重要有兩種:一,臨床肌電圖檢查多采用針電極插入肌肉檢測肌電圖,其優(yōu)點是干擾小,定位性好,易識別,但由于它是一種有創(chuàng)傷的檢測方法,其應(yīng)用收到了一定的限制。二,表面肌電則是從人體皮膚表面通過電極記錄下來的神經(jīng)肌肉活動時發(fā)放的生物電信號,屬于無創(chuàng)傷性,操作簡單,病人易接受,有著廣泛的應(yīng)用前景。主要應(yīng)用領(lǐng)
5、域有:一,仿生學(xué)。提出肌肉生理模型來判別肌肉的動作以來, 電子假肢的研究進(jìn)入了新的發(fā)展時期, 過去電子假肢的控制靠使用者人為開關(guān)和選擇運動模式來完成, 現(xiàn)在則可通過檢測人體殘肢表面肌電信號, 提取出肢體的動作特征, 來自動控制假肢運動, 利用殘肢表面肌電信號的肌電假肢研制在國內(nèi)外都取得較大進(jìn)展。二,康復(fù)工程。如利用表面肌電信號提取出的特征作為功能性電刺激的控制信號, 幫助癱瘓的肢體恢復(fù)運動功能。通過檢測表面肌電信號, 并將其作為反饋信號提供給病人和醫(yī)生, 便于進(jìn)行合理的治療和訓(xùn)練。三,運動醫(yī)學(xué)。表面肌電信號在運動醫(yī)學(xué)中也可發(fā)揮重要作用, 通過檢測運動員運動時的表面肌電信號,及時反映出肌肉的疲勞
6、和興奮狀態(tài), 有助于建立科學(xué)的訓(xùn)練方法。本次課程設(shè)計的主要任務(wù)就是對微弱的肌電信號進(jìn)行時域和頻域的處理及分析,運用數(shù)字處理及matlab的知識進(jìn)行“屈”和“伸”動作識別。然后通過串口將數(shù)據(jù)發(fā)送到單片機(jī)下行微機(jī)進(jìn)行顯示。第二章 系統(tǒng)總體設(shè)計方案 根據(jù)課程設(shè)計要求在上微機(jī)利用matble分析肌電信號并處理,基于肌電信號分析結(jié)果,通過串口發(fā)送命令給單片機(jī)系統(tǒng),根據(jù)肌電信號動作狀態(tài)控制相應(yīng)的數(shù)碼管顯示。并增加了擴(kuò)展模塊,通過動作模式驅(qū)動電機(jī)轉(zhuǎn)動或其他控制輸出模塊。 通過分析上位機(jī)matlab中對信號處理的結(jié)果,我們可以得到一系列的信號特征值,其中我們選取了具有代表意義積分肌電值來進(jìn)行處理,并給出對于屈
7、伸動作的閾值。通過對閾值的判斷,使數(shù)碼管顯示積分肌電值,使點陣模塊顯示相應(yīng)的“屈”和“伸”字樣,使電機(jī)根據(jù)動作進(jìn)行正反轉(zhuǎn),蜂鳴器在“屈”動作是發(fā)出鳴響。 最后,將上微機(jī)的處理數(shù)據(jù)通過串口通信發(fā)送到下微機(jī)顯示,得到動作識別的要求。第3章 肌電信號的時域參數(shù)處理及其分析(1) 均值:對于一組隨機(jī)變量來說,均值是一個很重要的數(shù)值特征,用來描述一組變量的平均水平。其嚴(yán)格的數(shù)學(xué)定義非常簡單,就是一個隨機(jī)變量關(guān)于概率測度的積分。因此,在此處,均值表示肌電信號的平均水平。公式如下:(2)方差:方差是各個數(shù)據(jù)與平均數(shù)之差的平方的平均數(shù)。在數(shù)理統(tǒng)計和概率論中,方差用來度量隨機(jī)變量和其數(shù)學(xué)期望(即均值)之間的偏離
8、程度。在此處,研究信號的隨機(jī)變量和均值之間的偏離程度有著很重要的意義。其求解公式如下:(3)標(biāo)準(zhǔn)差:標(biāo)準(zhǔn)差也稱均方差,是各數(shù)據(jù)偏離平均數(shù)的距離的平均數(shù),它是離均差平方和平均后的方根,用u表示。標(biāo)準(zhǔn)差是方差的算術(shù)平方根。標(biāo)準(zhǔn)差能反映一個數(shù)據(jù)集的離散程度。所以能很好的反映肌電信號的離散程度。求解公式如下:(4) 積分肌電值IEMG:積分肌電值就是對所有信號取絕對值后盡心均值的求解,由于對肌電信號直接求均值,均值近似為零,無法表征信號間的差異。若對肌電信號取絕對值后再進(jìn)行均值運算后,均值恒大于零,因而可用于提取肌電信號的特征。公式如下:(5) 均方根RMS:均方根就是一組數(shù)據(jù)的平方和除以數(shù)據(jù)的個數(shù)再
9、開方,均方根是最理想的平方濾波方式的典型,讓濾波更平滑,更大限度的濾掉噪聲。因此,對肌電信號求均方根,可以濾除信號中的噪聲,使濾波后的信號更平滑、更明顯。公式如下:(6) 原始信號的時域及上述參數(shù)值的Matlab程序 clear; close all; a=load('qu.txt');/('shen.txt'); N=10000; b=0:N-1; axis(0,10000,-1,1); plot(b,a); xlabel('時間 (s)'); ylabel('被測變量y'); grid on; fprintf('n數(shù)據(jù)
10、基本信息:n') printf(' 均值 = %7.5f n',mean(a); fprintf(' 標(biāo)準(zhǔn)差 = %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) ); 屈信號數(shù)據(jù)基本信息: 均值 = 0.03502 標(biāo)準(zhǔn)差 = 0.05775 方差= 0.00334
11、積分肌電值IEMG = 0.05437 均方根RMS= 0.17246 伸信號數(shù)據(jù)基本信息: 均值 = 0.00337 標(biāo)準(zhǔn)差 = 0.24421 方差= 0.05964 積分肌電值IEMG = 0.12826 均方根RMS= 0.19993 第四章 肌電信號的頻域處理方法及其分析 3.1 FFT分析:FFT是離散傅立葉變換的快速算法,可以將一個信號變換到頻域。有些信號在時域上是很難看出什么特征的,但是如果變換到頻域之后,就很容易看出特征了。這就是很多信號分析采用FFT變換的原因。另外,F(xiàn)FT可以將一個信號的頻譜提取出來。采樣得到的數(shù)字信號FFT變換。N個采樣點,經(jīng)過FFT之后,就可以得到N個
12、點的FFT結(jié)果。為了方便進(jìn)行FFT運算,通常N取2的整數(shù)次方。假設(shè)采樣頻率為Fs,信號頻率F,采樣點數(shù)為N。那么FFT之后結(jié)果就是一個為N點的復(fù)數(shù)。每一個點就對應(yīng)著一個頻率點。這個點的模值,就是該頻率值下的幅度特性。而每個點的相位就是在該頻率下的信號的相位。如果要要提高頻率分辨率,就需要增加采樣點數(shù),也即采樣時間。頻率分辨率和采樣時間是倒數(shù)關(guān)系。 Matlab實現(xiàn): clear; close all; a=load('qu.txt');/'shen.txt' y=fft(a,1024); %做1024點傅立葉變換 fs=1000; N=length(y); ma
13、g=abs(y); f=(0:N-1)/N*fs; figure; plot(f,mag);%幅頻譜 xlabel('頻率'); ylabel('幅值'); title('(屈/伸)肌電幅頻'); figure; plot(f,angle(y);% 相頻譜 xlabel('頻率'); ylabel('相位'); title('(屈/伸)肌電相頻'); grid on;3.2 功率譜分析:功率譜是信號或噪聲的自相關(guān)函數(shù)的傅里葉變換。如果一確定信號平均功率為有限的,則該信號的自相關(guān)函數(shù)存在,如隨機(jī)信號或
14、隨機(jī)噪聲是由二階隨機(jī)平穩(wěn)函數(shù)表示的,則其自相關(guān)函數(shù)存在。 為了更好得描述能量信號、功率信號,我們引入能量譜密度和功率譜密度概念。能量譜密度、功率譜密度函數(shù)表示信號的能量、功率密度隨頻率變化的情況。通過研究功率譜密度,可以幫助了解信號的功率分布情況,確定信號的頻帶等。 信號的功率譜即上述FFT分析后,幅頻值mag的平方再除以2得到。功率密度譜雖然描述了隨機(jī)信號的功率在各個不同頻率上的分布,但因為它僅與幅度頻譜有關(guān),沒有相位信息,所以從已知功率譜還難以完整地恢復(fù)原來的功率信號。 Matlab實現(xiàn): a=load('qu.txt');/('shen.txt') y=f
15、ft(a,1024); %做1024點傅里葉變換 fs=1000; N=length(y); mag=abs(y); f=(0:N-1)/N*fs; power1=(mag.2)/2;%周期圖法求功率譜 plot(f,power1); xlabel('頻譜'); ylabel('功率譜'); title('(屈/伸)肌電信號功率譜');3.3 倒譜分析:倒譜是信號的傅里葉變換譜經(jīng)對數(shù)運算后再進(jìn)行的傅里葉反變換或者功率譜的對數(shù)值的逆傅氏變換稱為倒譜。倒頻譜函數(shù)C(q)(power cepstrum)其數(shù)學(xué)表達(dá)式為:C(q) = | IF(log(s
16、(f) |2。其中,s(f)是信號s(t)的傅里葉變換,log()為取對數(shù),IF為逆傅里葉變換。 Matlab實現(xiàn):前100點的倒譜變化比較明顯,所以取前100點波形圖。 a=load('qu.txt');/('shen.txt') y=fft(a,1024); %做1024點傅里葉變換 fs=1000; N=length(y); mag=abs(y); f=(0:N-1)/N*fs; w=rceps(a);%求倒譜 n=1:100; plot(n,w(1:100); xlabel('時間'); ylabel('倒譜'); tit
17、le('(屈/伸)肌電信號倒譜'); grid on;3.4 平均功率頻率MPF和中值頻率MF:平均功率頻率是總功率除以總時間。 中值頻率是各個時間段的功率的平均值。公式如下: Matlab實現(xiàn): a=load('qu.txt'); y=fft(a,1024); %做10000點傅里葉變換 fs=1000; N=length(y); mag=abs(y); f=(0:N-1)/N*fs; power=(mag.2)/2; ss=sum(power); M2=0.5*ss; df=fs/N; M1=0.5*df*(sum(power(1:N-1)+sum(powe
18、r(2:N); MPF=M1/M2; MF=M2/2;第五章 Matlab程序及GUIMATLAB是一種面向工程和科學(xué)計算的交互式計算軟件,它以矩陣運算為基礎(chǔ),把計算、可視化、程序設(shè)計融合到了一個簡單易用的交互式工作環(huán)境中。同時由于MATLAB是一個數(shù)據(jù)分析和處理功能十分強大的工程實用軟件,它的信號處理與分析工具箱為肌電信號分析提供了十分豐富的功能函數(shù),利用這些功能函數(shù)可以快捷而又方便地完成肌電信號的處理和分析,再通過GUI界面設(shè)計,顯示信號處理后的結(jié)果,方便簡明。打開GUI設(shè)計界面,根據(jù)要求添加相應(yīng)的按鈕,并對按鈕進(jìn)行定義,調(diào)整界面整體布局,將界面運行,會產(chǎn)生相應(yīng)的程序。在程序中,尋找相應(yīng)的
19、按鈕定義,在定義下添加該按鈕要實現(xiàn)的功能函數(shù)。然后對整個程序進(jìn)行調(diào)試驗證。得到可視化GUI界面及功能的實現(xiàn)。 程序如下:function varargout = untitled20(varargin)% UNTITLED20 M-file for untitled20.fig% UNTITLED20, by itself, creates a new UNTITLED20 or raises the existing% singleton*.% H = UNTITLED20 returns the handle to a new UNTITLED20 or the handle to% th
20、e existing singleton*.% UNTITLED20('CALLBACK',hObject,eventData,handles,.) calls the local% function named CALLBACK in UNTITLED20.M with the given input arguments.% UNTITLED20('Property','Value',.) creates a new UNTITLED20 or raises the% existing singleton*. Starting from the
21、 left, property value pairs are% applied to the GUI before untitled20_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to untitled20_OpeningFcn via varargin.% *See GUI Options on GUIDE's Tools menu. Choose "
22、GUI allows only one% instance to run (singleton)".% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help untitled20 % Last Modified by GUIDE v2.5 01-Jul-2013 16:55:28 % Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name
23、', 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)
24、;end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before untitled20 is made visible.function untitled20_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no out
25、put 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 untitled20 (see VARARGIN) % Choose default command line output for untitled20handles.ou
26、tput = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes untitled20 wait for user response (see UIRESUME)% uiwait(handles.figure1); % - Outputs from this function are returned to the command line.function varargout = untitled20_OutputFcn(hObject, eventdata, handles) % vara
27、rgout 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 structurevarargout1 = handles.output; % -
28、 Executes on button press in qu.function qu_Callback(hObject, eventdata, handles)% hObject handle to qu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)a=load('qu.txt');axes(handles.axes1);plot(a);xlabel(
29、'時間 (s)');ylabel('被測變量y');title('(屈)原始信號');grid on;A=mean(a); % 平均值B=std(a); % 標(biāo)準(zhǔn)差C=Var(a); % 方差D=mean(abs(a); % 積分機(jī)電值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;
30、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);% 設(shè)置顯示A1=A*100000;A2=round(A1);A3=A2/100000;%round函數(shù)是對數(shù)據(jù)取整,以此限制數(shù)據(jù)的有效位set(handles.pingjunzhi,'string',num2str(A3);B1=B*100000;B2=round(B1);B3=B2/100000;set(handles.biaozhuncha,'string',num2str
31、(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)
32、;F3=F2/100000;set(handles.pingjungonglv,'string',num2str(F3);G1=G*100000;G2=round(G1);G3=G2/100000;set(handles.zhongweipinglv,'string',num2str(G3); % - If Enable = 'on', executes on mouse press in 5 pixel border.% - Otherwise, executes on mouse press in 5 pixel border or over
33、 pingjunzhi.function pingjunzhi_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to pingjunzhi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % - If Enable = 'on', executes on mouse press in 5
34、 pixel border.% - Otherwise, executes on mouse press in 5 pixel border or over biaozhuncha.function biaozhuncha_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to biaozhuncha (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and u
35、ser data (see GUIDATA) % - If Enable = 'on', executes on mouse press in 5 pixel border.% - Otherwise, executes on mouse press in 5 pixel border or over jifenjidianzhi.function jifenjidianzhi_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to jifenjidianzhi (see GCBO)% eventdata re
36、served - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % - If Enable = 'on', executes on mouse press in 5 pixel border.% - Otherwise, executes on mouse press in 5 pixel border or over pingjungonglv.function pingjungonglv_ButtonDownFcn
37、(hObject, eventdata, handles)% hObject handle to pingjungonglv (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % - If Enable = 'on', executes on mouse press in 5 pixel border.% - Otherwise, executes on m
38、ouse press in 5 pixel border or over fangcha.function fangcha_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to fangcha (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % - Executes on button press in
39、 shen.function shen_Callback(hObject, eventdata, handles)% hObject handle to shen (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)a=load('shen.txt');axes(handles.axes2);plot(a);xlabel('時間 (s)');yl
40、abel('被測變量y');title('(伸)原始信號');grid on;A=mean(a); % 平均值B=std(a); % 標(biāo)準(zhǔn)差C=Var(a); % 方差D=mean(abs(a); % 積分機(jī)電值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(p
41、ower(1:N-1)+sum(power(2:N);F=M1/M2;G=M2/2;% A,B,C,D,E,F=index_calculation(a);% 設(shè)置顯示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/10000
42、0;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,&
43、#39;string',num2str(F3);G1=G*100000;G2=round(G1);G3=G2/100000;set(handles.zhongweipinglv,'string',num2str(G3); % - Executes on button press in qu1.function qu1_Callback(hObject, eventdata, handles)% hObject handle to qu1 (see GCBO)% eventdata reserved - to be defined in a future version
44、of MATLAB% handles structure with handles and user data (see GUIDATA)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.ax
45、es4);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);
46、xlabel('頻譜');ylabel('功率譜');title('(屈)肌電信號功率譜');grid on; % - Executes on button press in shen1.function shen1_Callback(hObject, eventdata, handles)% hObject handle to shen1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with han
47、dles and user data (see 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(
48、39;頻率');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('
49、;功率譜');title('(伸)肌電信號功率譜');grid on; % - Executes on mouse press over axes background.function axes5_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to axes5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user da
50、ta (see GUIDATA) % - Executes on button press in qufa.function qufa_Callback(hObject, eventdata, handles)% hObject handle to qufa (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global ss% a=load('qu.txt'
51、);% D=mean(abs(a); % 積分機(jī)電值% D1=D*100000;% D2=round(D1);% D3=dec2hex(D2);dtmf_series(01);dtmf_series(01); % - Executes on button press in shenfa.function shenfa_Callback(hObject, eventdata, handles)% hObject handle to shenfa (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% h
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 構(gòu)建舒適辦公環(huán)境支持老年人適度運動
- 2025年哈密貨物運輸駕駛員從業(yè)資格考試系統(tǒng)
- 2025年泉州貨運資格證模擬考試題庫
- 校園內(nèi)綠建項目的經(jīng)濟(jì)效益與社會效益分析
- 現(xiàn)代人健康生活新模式-以健康飲食和科學(xué)鍛煉為核心
- 環(huán)保教育與生態(tài)保護(hù)法律法規(guī)的普及
- 游戲化教育在老年學(xué)習(xí)中的應(yīng)用研究
- 電商平臺下的多肉植物行業(yè)發(fā)展趨勢研究
- 電力設(shè)施災(zāi)害應(yīng)急響應(yīng)與救援技術(shù)
- 環(huán)境適應(yīng)性材料的開發(fā)與應(yīng)用前景研究
- (2024)甘肅省公務(wù)員考試《行測》真題及答案解析
- 《STP營銷戰(zhàn)略概述》課件
- 急性胸痛患者的急救護(hù)理
- 企業(yè)資產(chǎn)管理培訓(xùn)
- 自然辯證法學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年4月27日浙江省事業(yè)單位招聘《職業(yè)能力傾向測驗》試題
- 物業(yè)管理服務(wù)應(yīng)急響應(yīng)方案
- 風(fēng)車的原理小班課件
- 物業(yè)保潔員勞動競賽理論知識考試題庫500題(含答案)
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 4-07-07-01 洗衣師 勞社廳發(fā)20081號
- 六年級數(shù)學(xué)競賽試題及答案(六套)
評論
0/150
提交評論