心電信號的頻譜-FFT_第1頁
心電信號的頻譜-FFT_第2頁
心電信號的頻譜-FFT_第3頁
心電信號的頻譜-FFT_第4頁
心電信號的頻譜-FFT_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計任務書(指導教師填寫)課程設計名稱 微機應用技術課程設計 學生姓名 專業班級 設計題目 心電信號的頻譜分析- FFT分析 一、 課程設計目的1了解心電信號的特點;2熟悉MATLAB程序設計方法;3理解頻譜分析的作用和相關概念;二、 設計內容、技術條件和要求1采樣點數N=1000,采樣頻率f=360HZ 和 100HZ;2利用Matlab軟件對心電信號進行時域分析(包括均值,方差,標準差,峰峰值,極大值和極小值)和頻域分析(FFT),其中涉及的參數根據需要自主選擇;三、 時間進度安排第1周:查閱資料;第2周:實現設計內容第3周:整理資料,撰寫課程設計任務書四、 主要參考文獻參考模擬電子技

2、術、Matlab信號處理與應用和醫學儀器教材指導教師簽字: 年 月 日目錄摘要1引言2一、 心電信號的特點3二、 MATLAB軟件介紹4三、 心電信號的分析方法63.1時域分析63.2頻域分析63.3 FFT分析7 四、心電信號的Matlab實現9 4.1 Matlab編程實現94.2 Matlab時域分析結果104.3 Matlab頻域分析結果11心得體會12參考文獻13摘要 本次課程設計介紹了一種運用信號系統知識和MATLAB相結合的思想,設計出用傅里葉變換分析MIT-BIH心電數據庫的心電信號的方法。運用該方法既能簡便的對心電信號進行分析,又能把所學知識應用于解決實際問題。該方法簡單易懂

3、,能加深初學者對傅里葉變換的理解,并且可以得到許多有用的信息,對于診斷疾病有非常重要的參考價值。關鍵字: 心電信號 Matlab 傅里葉變換引言 美國麻省理工學院提供的MIT-BIH數據庫是一個權威性的國際心電圖檢測標準庫,近年來應用廣泛,為我國的醫 學程界所重視。 MIT-BIH數據庫共有48個病例,每個病例數據時長30min,共116000多個心拍,包含有正常心拍和異常心拍,內容豐富完整,為了讀取方便,采用txt格式的數據文件作為我們的原心電信號數據。利用Matlab提供的textread函數,讀取txt數據文件中的信號,并還原為實際波形。 本設計課題主要研究數字心電信號的初步分析及mat

4、lab應用。通過完成本課題的設計,主要達到以下幾個目的: (1)了解MATLAB軟件的特點和使用方法,熟悉基于了解人 體心電信號的時域特征和頻譜特征; (2)進一步了解數字信號的分析方法; (3)通過本課題的設計,培養學生運用所學知識分析和解決 實際問題的能力。 1、 心電信號的特點 心電信號屬生物醫學信號,具有如下特點: (1) 信號具有近場檢測的特點,離開人體表微小的距離,就基本上檢測 不到信號; (2) 心電信號通常比較微弱,至多為mV量級; (3) 屬低頻信號,且能量主要在幾百赫茲以下; (4) 干擾特別強。干擾既來自生物體內,如肌電干擾、呼吸干擾等;也 來自生物體外,如工頻干擾、信號

5、拾取時因不良接地等引入的其他外來串擾等; (5) 干擾信號與心電信號本身頻帶重疊(如工頻干擾等)。 二、 MATLAB軟件介紹MATLAB是矩陣實驗室的簡稱,是美國MathWorks公司出品的商業數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。MATLAB是由美國MathWorks公司發布的主要面對科學計算、可視化以及交互式程序設計的高科技計算環境。它將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等諸多強大功能集成在一個易于使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的

6、眾多科學領域提供了一種全面的解決方案,并在很大程度上擺脫了傳統非交互式程序設計語言(如C、Fortran)的編輯模式,代表了當今國際科學計算軟件的先進水平。MATLAB和Mathematica、Maple并稱為三大數學軟件。它在數學類科技應用軟件中在數值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數和數據、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。MATLAB的基本數據單元是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB來解決問題要比用C,FORTRAN等語言完

7、成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優點。在新的版本中也加入了對C,FORTRAN,C+,JAVA的支持。可以直接調用,用戶也可以將自己編寫的使用程序導入到MATLAB函數庫中方便自己以后調用,此外許多的MATLAB愛好者都編寫了一些經典的程序,用戶可以直接進行下載就可以用。3、 心電信號分析方法按照信號與系統問題可以分為兩大類基本分析方法:時域分析方法和頻域分析方法。兩種方法各有不同,互相補充。3.1 時域分析 時域分析方法是對連續信號進行采樣、量化和編碼形成離散的二進制數字序列,再采用數字信號處理技術進行處理。信號的采樣過程如果滿足一定條件,那么得到的這種離散

8、的二進制序列在形狀特征以及內在屬性上完全可替代原連續信號,只是這樣方便人們分析處理信號并提取有用信息。 對心電信號進行的時域處理通常包括信號的均值,方差,標準差,峰峰值,極大值和極小值六種。3.2 頻域分析離散系統的頻域分析就是研究離散信號通過離散系統以后在頻譜結構上所產生的變化,為此首先必須了解描述離散系統頻率特性的有關特征量。信號的有些信息在用空域分析是得不到的,而如果用頻域分析方法的話,可以得到其中許多有價值的信息。 3.3 FFT分析有限長序列可以通過離散傅里葉變換(DFT)將其頻域也離散化成有限長序列,但其計算量太大,很難實時地處理問題,因此引出了快速傅里葉變換(FFT)。快速傅氏變

9、換(FFT)是離散傅氏變換的快速算法,它是根據離散傅氏變換的奇、偶、虛、實等特性,對離散傅立葉變換的算法進行改進獲得的。它對傅氏變換的理論并沒有新的發現,但是對于在計算機系統或者說數字系統中應用離散傅立葉變換,可以說是進了一大步。根據對序列分解與選取方法的不同而產生了FFT的多種算法,基本算法是基DIT和基DIF。設x(n)為N項的復數序列,由DFT變換,任一X(m)的計算都需要N次復數乘法和N-1次復數加法,而一次復數乘法等于四次實數乘法和兩次實數加法,一次復數加法等于兩次實數加法,即使把一次復數乘法和一次復數加法定義成一次“運算”(四次實數乘法和四次實數加法),那么求出N項復數序列的X(m

10、),即N點DFT變換大約就需要次運算。當N=1024點甚至更多的時候,需要N2=1048576次運算,在FFT中,利用WN的周期性和對稱性,把一個N項序列(設N=2k,k為正整數),分為兩個N/2項的子序列,每個N/2點DFT變換需要次運算,再用N次運算把兩個N/2點的DFT變換組合成一個N點的DFT變換。這樣變換以后,總的運算次數就變成。繼續上面的例子,N=1024時,總的運算次數就變成了525312次,節省了大約50%的運算量。而如果我們將這種“一分為二”的思想不斷進行下去,直到分成兩兩一組的DFT運算單元,那么N點的DFT變換就只需要次的運算,N在1024點時,運算量僅有10240次,是

11、先前的直接算法的1%,點數越多,運算量的節約就越大,這就是FFT的優越性。FFT是離散傅立葉變換的快速算法,可以將一個信號變換到頻域。有些信號在時域上是很難看出什么特征的,但是如果變換到頻域之后,就很容易看出特征了。這就是很多信號分析采用FFT變換的原因。另外,FFT可以將一個信號的頻譜提取出來,這在頻譜分析方面也是經常用的。一個模擬信號,經過ADC采樣之后,就變成了數字信號。采樣得到的數字信號,就可以做FFT變換了。N個采樣點,經過FFT之后,就可以得到N個點的FFT結果。為了方便進行FFT運算,通常N取2的整數次方。假設采樣頻率為Fs,信號頻率F,采樣點數為N。那么FFT之后結果就是一個為

12、N點的復數。每一個點就對應著一個頻率點。這個點的模值,就是該頻率值下的幅度特性。假設原始信號的峰值為A,那么FFT的結果的每個點(除了第一個點直流分量之外)的模值就是A的N/2倍。而第一個點就是直流分量,它的模值就是直流分量的N倍。而每個點的相位就是在該頻率下的信號的相位。如果要要提高頻率分辨率,就需要增加采樣點數,也即采樣時間。頻率分辨率和采樣時間是倒數關系。四、心電信號的 Matlab實現4.1 Matlab編程實現clear;close all;%時域分析 z=textread('e:ECG.txt');ECG1=z(:,2); %取第二列作為分析數據A=ECG1(1:1

13、000); fprintf('n數據基本信息:n')fprintf('最小值=%7.3fn',min(A) fprintf('平均值=%7.3fn',mean(A)fprintf('最大值=%7.3fn',max(A) fprintf('標準方差=%7.3fn',std(A)fprintf('峰峰值=%7.3fn',max(A)-min(A) fprintf('方差=%7.3fn',exp(std(A)figure;plot(z(1:1000),A);xlabel('時間(s

14、)');ylabel('幅值');title('原始信號(時域)');grid on; %畫出分格線 %頻域分析ECG1=z(:,2);x=ECG1(1:1000);y=fft(x,1000); %做1000點傅里葉變換mag=abs(y);f=2*pi/1000:2*pi/1000:2*pi; %長度為1000的采樣點列向量figure;plot(f,mag);%做頻譜圖axis(0,7,0,100); %設定坐標范圍xlabel('頻率(100Hz)');ylabel('幅值');title('心電幅頻譜圖 N

15、=1000');grid on;4.2 Matlab時域分析結果數據基本信息: 最小值= -0.935 平均值= -0.054 最大值= 2.945 標準方差= 0.580 峰峰值= 3.880 方差= 1.7864.3 Matlab頻域分析結果心得體會 課程設計是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程。回顧此次關于“心電信號頻譜分析-FFT”的課程設計,感觸頗深。雖然總是遇到瓶頸,但是我確實學到了很多東西,不僅鞏固了以前所學過的知識,而且還學到了很多課外的知識。這次課程設計使我懂得了理論與實際相結合的很重要性,只有理論是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從實踐中得出結論,進而提高自己的實際動手和獨立思考的能力。畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中也發現了自己的很多不足之處,對以前所學過的知識理解得不夠深刻,但通過這次課程設計之后,我對以前所學過的知識有了重新認識這次課程設計的順利完成,得益于同

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論