CHB-MIT数据预处理(二)

将已经转化成mat格式的chb-mit数据进行滤波,滤波范围0-50hz!

import os
import scipy.io as sio
import scipy.signal as signal
import numpy as np

# 原始数据文件夹路径
input_folder = '.../CHB-MIT-mat'  #输入你的chb-mit转化为mat数据后的文件夹地址

# 滤波后数据保存路径
output_folder = '.../CHB-MAT-Filter'  #输入你要保存到的文件夹地址

# 定义滤波参数
fs = 256  # 采样频率(示例中假设为256Hz)  #因为chb-mit数据采样频率是256hz
low_cutoff = 0.5  # 低频截止频率为0.5Hz   #不知道为什么是0.5 是cgpt告诉我的 附上cgpt解释

'''
低频截止频率设置为0.5 Hz是一个示例值,可以根据你的具体数据和需求来调整。低频截止频率的选择通常依赖于你希望保留的最低频率分量。在一些脑电信号分析中,一些基本的生理节律或信号成分可能出现在低频范围内,因此需要保留这些低频分量。

然而,低频截止频率的具体值应该根据你的数据和分析任务来选择。如果你的应用中没有特殊的低频信号成分,你可以将低频截止频率设置为更低的值,甚至为0,以去除可能的直流偏移或其他低频噪音。如果你的数据中包含重要的低频信息,那么你需要根据你的研究问题来选择适当的截止频率。

通常,低频截止频率的选择需要结合领域知识和实际数据来进行。在脑电信号分析中,通常会考虑到信号的基本频率成分,如0.5 Hz、1 Hz等,但具体的设置会因研究问题而异。
'''

high_cutoff = 50.0  # 高频截止频率为50Hz

# 获取所有子文件夹
subfolders = [f for f in os.listdir(input_folder) if os.path.isdir(os.path.join(input_folder, f))]

# 遍历每个子文件夹
for subfolder in subfolders:
    # 创建输出子文件夹
    output_subfolder = os.path.join(output_folder, subfolder)
    os.makedirs(output_subfolder, exist_ok=True)

    # 获取子文件夹内的所有MAT文件
    mat_files = [f for f in os.listdir(os.path.join(input_folder, subfolder)) if f.endswith('.mat')]

    # 遍历每个MAT文件
    for mat_file in mat_files:
        # 构建MAT文件的完整路径
        input_mat_file = os.path.join(input_folder, subfolder, mat_file)
        output_mat_file = os.path.join(output_subfolder, mat_file)

        # 读取MAT文件
        mat_data = sio.loadmat(input_mat_file)

        # 获取MAT文件中的数据
        data = mat_data['data']  # 替换为实际的数据变量名

        # 设计带通滤波器和应用滤波
        nyquist = 0.5 * fs
        low = low_cutoff / nyquist
        high = high_cutoff / nyquist
        b, a = signal.butter(4, [low, high], 'band')  # 4阶带通滤波器
        filtered_data = signal.filtfilt(b, a, data, padlen=0)

        # 创建一个新的MAT文件并保存滤波后的数据
        filtered_mat_data = {'filtered_data': filtered_data}  # 创建一个字典来存储滤波后的数据
        sio.savemat(output_mat_file, filtered_mat_data)

        print(f"滤波后的数据已保存为 {output_mat_file}")

print("滤波完成。")

我的运行过程如图:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值