如何解决为什么我的傅立叶变换无法正常工作?
因此,我尝试绘制EEG信号的傅立叶变换,通常使用完整信号,该信号以以下形状的numpy数组形式出现:例如,样本,通道 (16),这很容易,情节看起来很棒。但是后来我开始工作,没有完整的信号,而是类,它是碎片状的信号,也是这种形状的numpy数组:例如 samples,channels,observations ,例如[500、16、40 ]。
我的老师告诉我,最好的办法是对每个观察值(500x16x0、500x16x1,...,500x16x39)进行傅立叶变换,并促进所有观察值的变换。
这是我为获取转换而编写的python函数,它尝试将信号作为类(class1和class2串联)进行管理,如果失败,则意味着给定的信号是完整的信号,问题是当我绘制变换,使用类时的 y 轴数要比使用完整信号时的高得多。
知道为什么会这样吗? 顺便说一句,无论是完整的信号还是类别,采样频率都明显相同。
def analysis(signal_to_transform):
sign = signal_to_transform #Given signal
try:
observartions = len(sign[0,:]) # Pieces (Observations)
n = len(sign[:,0]) #Size of the signal
except IndexError:
observartions = 1 # 1 because it's the complete signal which isn't cut in pieces
n = len(sign[:,0]) #Size of the signal
freqs = sampling_frequency*fftfreq(n)
mask = freqs>0
for i in range(0,number_of_channels):
fft_Y = 0
for j in range(0,observartions):
y = None
try:
y = sign[:,i,j]
except IndexError:
y = sign[:,i]
fft_y = 2*np.abs((fft(y)/n))
fft_Y = fft_Y + fft_y
fft_Y = fft_Y/observartions
plt.figure(1)
plt.title('Fourier transform')
plt.plot(freqs[mask],fft_Y[mask],label='fourier')
plt.show()
完整信号的傅立叶变换:(69440,16)
中介类的傅立叶变换形状:(1375,16,40)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。