如何在matlab中使用椭圆滤波器来获取edf数据

时间:2016-07-10 17:38:05

标签: matlab filtering signal-processing

我使用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)
    ]);
},

1 个答案:

答案 0 :(得分:1)

如果我理解您的EDF数据是否正确提供,则在{1}的1秒内有36个样本(ns),这样可以获得36Hz的采样率。

然后可以使用内置ellip函数完成数字椭圆滤波器的设计。您需要填写通带波纹,阻带衰减和过渡带的滤波器要求。以一些参数为例,这看起来像:

duration

然后,您可以使用freqz显示生成的响应(并根据需要进行调整)。对于上述参数,频率响应如下:

enter image description here

最后,要过滤掉您的数据,您需要使用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