Labview and Matlab for PT

Just a place to discuss with Matlab and Labview

ad

肌電訊號(EMG)之頻域分析


  肌電訊號分析可以分為兩個主要部份,一個即是時域
(time domain)另一則是頻域(frequency domain)。
  大部分例如方均根植(root mean square)或是找尋
起始點(onset point),是屬於時域的部份;然而頻域的
部份會著重去看頻率和強度之間的關係(power spectrum)
,而以下所介紹的為利用傅立葉轉換(Fourier transform)
所做出的關係圖。

程式如下

data=textread('D:\EMG.txt');
fft_data=fft(data);
mag=abs(fft_data);
fq=(1:length(data)/2).*1200/length(data); % 每一點的所表示的頻率
mag=mag(1:length(data)/2); % 因為另一半為image
plot(fq,mag)

  首先可以發現到當對傅立葉轉換後的圖形如下,每個
點都是有相位與長度大小的點。所做出為複數座標系的圖




  不過對於分析強度和頻率而言,只要去看轉換後每個
點的強度即可,所以將傅立葉轉換後的值取絕對值,即是
強度。
  作圖後可以發現到,會是一個以中線分隔兩邊成左右
對稱的圖形也表示只有在一半以下的點是有意義的。



至於為什麼只有一半是有意義而另一半會是跟前一半
對稱鏡射,這是由於我們取樣頻率的關係。

  正確的取樣頻率必須至少是原來訊號的兩倍,這就是
所謂的Nyquist rate。即是Nyquist Theorem。

  由下圖可以見到,如果取樣頻率較小,原始訊號頻率
很高,所取的訊號圖形和原始訊號就有差距,而變成較低
頻的訊號。


  而每一個點所代表的頻率則為”取樣頻率/點數”,
由於只有一半的值是有意義的,所以須將頻率以及強度作
處理,如下:
  fq=(1:length(data)/2).*1200/length(data); % 每一點的所表示的頻率
  mag=mag(1:length(data)/2); % 因為另一半為image

因此做出來的圖形如下

0 意見: