Python3中的快速傅立叶变换(FFT)和连续小波变换(CWT)之间的差异形式

时间:2019-06-13 07:04:25

标签: python python-3.x wavelet-transform time-frequency pywavelets

enter image description here

因此,我使用Pywavelet软件包对我的EEG数据集进行时频分析,这是我的结果(CWT分析):

但是根据FFT,我的脑电图假设还有更多,这是我的FFT分析:

enter image description here

在FFT中,我看到我的数据集中还有150、250和350 Hz的峰值频率,而在4-50 Hz左右也有更高的频率。

我的问题是为什么我的CWT分析无法捕获高于频率的信号,它应该是程序的错误?

这是我的CWT代码:

import pandas as pd
import numpy as np
from numpy import math
import matplotlib.pyplot as plt
import pywt

P = pd.read_csv('P.CSV', skiprows = 0, usecols = np.arange(1, 17))
P = P.to_numpy()
P = P[:, 0]

Fs = 2000
dt = 1/Fs

wavelet = 'morl'

t = np.arange(0, len(P)) / Fs
scales = np.arange(4, 3250,100)

coefs, freq = pywt.cwt(P, scales, wavelet, sampling_period = dt)
plt.figure
plt.contour(t, freq, np.abs(coefs) ** 2)        
plt.title('CWT Analysis')
plt.xlabel('Time (s)')
plt.ylabel('Frequency (Hz)')
plt.grid
plt.show()  

请注意,我的兴趣频率范围是0.5到400(Hz),所以我选择的范围是4到3250。

0 个答案:

没有答案