我试图在Python中执行EEG信号的FFT,然后根据带宽确定它是alpha还是beta信号。它看起来很好,但是由此产生的情节并不像他们应该的那样,频率和幅度值并不是我所期望的。赞赏,在这里任何帮助的代码:脑电信号的带宽
from scipy.io import loadmat
import scipy
import numpy as np
from pylab import *
import matplotlib.pyplot as plt
eeg = loadmat("eeg_2013.mat");
eeg1=eeg['eeg1'][0]
eeg2=eeg['eeg2'][0]
fs = eeg['fs'][0][0]
fft1 = scipy.fft(eeg1)
f = np.linspace (fs,len(eeg1), len(eeg1), endpoint=False)
plt.figure(1)
plt.subplot(211)
plt.plot (f, abs (fft1))
plt.title ('Magnitude spectrum of the signal')
plt.xlabel ('Frequency (Hz)')
show()
plt.subplot(212)
fft2 = scipy.fft(eeg2)
f = np.linspace (fs,len(eeg2), len(eeg2), endpoint=False)
plt.plot (f, abs (fft2))
plt.title ('Magnitude spectrum of the signal')
plt.xlabel ('Frequency (Hz)')
show()
而且情节: img http://oi40.tinypic.com/2qdstg1.jpg
而且,最重要的是,我不知道我怎么可以从这个图读带宽... –
有一个潜在的问题,取决于输入数据,或者它们是如何标准化,因为EEG信号通常有10到50赫兹的范围,你的1到9千赫,它把输入信号?你在哪里拿? – archetipo
这两条线: eeg1 = EEG [ 'eeg1'] [0] eeg2 = EEG [ 'eeg2'] [0] 它是从一个.MAT文件,存储读取变量 –