该函数实现了对EEG信号的FFT处理,将处理后的数据存储在一个numpy数组中,并保存为.npy文件。

参数说明:

  • sub:字符串类型,表示要处理的被试编号。
  • channel:列表类型,表示要处理的通道索引。
  • band:列表类型,表示要处理的频带。
  • window_size:整型,表示FFT处理的窗口大小。
  • step_size:整型,表示FFT处理的步长。
  • sample_rate:整型,表示采样率。

返回值:无。

函数实现:

  • 打开数据文件,读取指定被试的数据。
  • 循环处理40次试验,每次处理一次试验的数据。
  • 对于每次试验的数据,从开始位置循环到结束位置,每次处理一个窗口大小的数据。
  • 对于每个通道,使用pe.bin_power函数对数据进行FFT处理,得到指定频带的功率值(theta, alpha, low beta, high beta, gamma)。
  • 将处理后的数据存储在一个numpy数组中,并保存为.npy文件。
def ef_FFT_Processing(sub, channel, band, window_size, step_size, sample_rate):
    '''
    arguments:
        string subject
        list channel indice
        list band
        int window size for FFT
        int step size for FFT
        int sample rate for FFT
    return:
        void
    '''
    meta = []
    with open('C:/Users/faizan/Downloads/data_preprocessed_python/data_preprocessed_python/s' + sub + '.dat', 'rb') as file:
        subject = pickle.load(file, encoding='latin1') #resolve the python 2 data problem by encoding : latin1
        for i in range (0,40):
            # loop over 0-39 trails
            data = subject['data'][i]
            labels = subject['labels'][i]
            start = 0;
            while start + window_size < data.shape[1]:
                meta_array = []
                meta_data = [] #meta vector for analysis
                for j in channel:
                    X = data[j][start : start + window_size] #Slice raw data over 2 sec, at interval of 0.125 sec
                    Y = pe.bin_power(X, band, sample_rate) #FFT over 2 sec of channel j, in seq of theta, alpha, low beta, high beta, gamma
                    meta_data = meta_data + list(Y[0])
                meta_array.append(np.array(meta_data))
                meta_array.append(labels)
                meta.append(np.array(meta_array))
                start = start + step_size
    meta = np.array(meta)
    np.save('C:/Users/faizan/Downloads/data_preprocessed_python/data_preprocessed_python/s' + sub, meta, allow_pickle=True, fix_imports=True) 
EEG信号FFT处理函数 - ef FFT_Processing

原文地址: https://www.cveoy.top/t/topic/m5Qo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录