我使用edfread来读取EEG数据,我将其存储到一个名为plotData的变量中。我想知道如何实现椭圆滤波器,从其中一个通道中提取7-9 Hz(alpha波段)。
存储在plotData中的EDF数据如下所示。
write: function (motor, value) {
return function (callback) {
gpio.write(motor, value, callback);
};
},
moveForward : function(){
async.parallel([
this.write(this.motors.leftFront, 1),
this.write(this.motors.rightFront, 1)
]);
},
答案 0 :(得分:1)
如果我理解您的EDF数据是否正确提供,则在{1}的1秒内有36个样本(ns
),这样可以获得36Hz的采样率。
然后可以使用内置ellip
函数完成数字椭圆滤波器的设计。您需要填写通带波纹,阻带衰减和过渡带的滤波器要求。以一些参数为例,这看起来像:
duration
然后,您可以使用freqz
显示生成的响应(并根据需要进行调整)。对于上述参数,频率响应如下:
最后,要过滤掉您的数据,您需要使用filter
函数和上面设计的过滤系数fs = 36; % sampling rate in Hz
fmin = 7; % minimum passband frequency in Hz
fmax = 9; % maximum passband frequency in Hz
order = 5; % filter order (the higher the narrower the transition band)
Rs = 20; % stopband attenuation in dB
Rp = 1; % passband ripples in dB
[b,a] = ellip(order, Rp, Rs, [fmin/(fs/2), fmax/(fs/2)]);
和a
以及输入b
:< / p>
plotData