eeg数据滤波matlab代码
时间: 2024-01-19 12:01:19 浏览: 215
滤波是一种常用于EEG数据处理的方法,可以去除噪音和不需要的频率成分,突出感兴趣的信号。在Matlab中,我们可以使用如下代码实现EEG数据的滤波处理:
```matlab
% 读取EEG数据文件
eegData = load('eeg_data.mat');
% 设定采样频率
fs = 1000; % 假设采样频率为1000Hz
% 设定滤波参数
lowPassFreq = 50; % 低通滤波频率为50Hz
highPassFreq = 0.5; % 高通滤波频率为0.5Hz
% 设定滤波器类型
filterOrder = 4; % 滤波器阶数为4
% 设定滤波器设计
[b, a] = butter(filterOrder, [highPassFreq/(fs/2), lowPassFreq/(fs/2)], 'bandpass');
% 应用滤波器
filteredEegData = filtfilt(b, a, eegData);
% 绘制滤波前后的EEG波形
t = (0:length(eegData)-1) / fs; % 时间轴
subplot(2,1,1);
plot(t, eegData);
title('原始EEG波形');
xlabel('时间(s)');
ylabel('幅值(uV)');
subplot(2,1,2);
plot(t, filteredEegData);
title('滤波后EEG波形');
xlabel('时间(s)');
ylabel('幅值(uV)');
% 保存滤波后的数据
save('filtered_eeg_data.mat', 'filteredEegData');
```
以上代码实现了对EEG数据的带通滤波处理,并将滤波前后的波形图进行了对比,最后保存了滤波后的数据。用户可以根据实际需求调整滤波参数和滤波器类型。
阅读全文