0
我有一個EMG信號,想要在定義的頻率空間中得到幅度的平均值。我試過做FFT,但我沒有得到幅度和頻率的矢量。我是Matlab新手 - 請幫忙。EMG信號中的平均幅度值
我有一個EMG信號,想要在定義的頻率空間中得到幅度的平均值。我試過做FFT,但我沒有得到幅度和頻率的矢量。我是Matlab新手 - 請幫忙。EMG信號中的平均幅度值
這裏是你怎麼能夠讓功率(即振幅)和頻率從FFT功能在Matlab:
fs = 1024; % sampling rate of signal
time = 1; % time in sec of simulated signal
xn = randn (fs*time,1); % creating random signal
nfft = time*fs; % size of window on which to perform FFT
Y = fft (xn, nfft);
% Convert value to obtain the power of the signal at
% each frequency
Pyy = Y .* conj(Y)/nfft;
% Create a frequency axis for ploting
fy = fs/nfft * (0:(nfft/2) -1);
plot (fy, Pyy(1:nfft/2))
ylabel ('power (AU)^2') % arbitrary units
xlabel ('frequency (Hz)')
xlim ([0 512])
但是,請記住,肌電圖是不是一個靜止的信號。對EMG信號進行頻譜分析時,我們試圖近似真實頻譜。這就是爲什麼EMG通常被分成數據窗口的原因。對每個窗口執行FFT並對其進行平均。
與其使用fft函數,您可能要考慮在Matlab Signal Processing Toolbox中使用pwelch函數。它允許您設置窗口大小,窗口重疊量等。
或者,您可以使用由David Halliday編寫的非常流行的Neurospec Matlab工具箱。它有一個PDF描述所有可以使用的功能和示例。它具有附加功能(例如,一致性),但是如果您喜歡,您可以忽略它並簡單地提取光譜數據。
請顯示您已有的一些代碼。 – fuesika