matlab代码实现对单通道EEG数据进行滤波
时间: 2023-05-30 19:06:19 浏览: 207
以下是使用MATLAB实现对单通道EEG数据进行低通滤波的示例代码:
```matlab
% 读取单通道EEG数据
eeg_data = load('eeg_data.mat');
data = eeg_data.data;
% 设置滤波器参数
fs = 256; % 采样率
cutoff_freq = 30; % 截止频率
order = 4; % 滤波器阶数
% 计算滤波器系数
nyquist_freq = fs/2;
cutoff = cutoff_freq/nyquist_freq;
[b, a] = butter(order, cutoff, 'low');
% 应用滤波器
filtered_data = filter(b, a, data);
% 绘制原始数据和滤波后数据的对比图
t = 1:length(data);
subplot(2,1,1);
plot(t, data);
title('Raw Data');
xlabel('Time (samples)');
ylabel('Amplitude');
subplot(2,1,2);
plot(t, filtered_data);
title('Filtered Data');
xlabel('Time (samples)');
ylabel('Amplitude');
```
在代码中,我们首先加载单通道EEG数据,然后设置滤波器参数。这里我们选择了低通滤波器,截止频率为30Hz,阶数为4。接下来,我们使用butter函数计算滤波器系数,然后将其应用于原始EEG数据。最后,我们使用subplot函数将原始数据和滤波后数据的对比图绘制在同一个图形窗口中。
阅读全文