2016-07-10 4 views
1

Я использовал edfread для чтения данных ЭЭГ, которые я сохранил в переменной, называемой plotData. Я хочу знать, как я могу реализовать эллиптический фильтр, чтобы извлечь 7-9 Гц (альфа-диапазон) из одного из каналов.Как использовать эллиптический фильтр в matlab для данных edf

Данные EDF, хранящиеся в plotData, выглядят следующим образом.

plotData = 

      ver: 0 
     patientID: 'test                   ' 
     recordID: 'test                   ' 
     startdate: '23.06.16' 
     starttime: '12.10.38' 
      bytes: 9472 
     records: 3 
     duration: 1 
      ns: 36 
      label: {1x36 cell} 
    transducer: {1x36 cell} 
      units: {1x36 cell} 
    physicalMin: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 
    physicalMax: [1x36 double] 
    digitalMin: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 
    digitalMax: [1x36 double] 
     prefilter: {1x36 cell} 
     samples: [1x36 double] 
+0

Hi. Я думаю, что ваш вопрос не ограничивается только файлами EDF. Но: спроектируйте свой фильтр в зависимости от частоты выборки, используемой в файле EDF. –

ответ

1

Если я правильно понимаю ваши данные EDF при условии правильно, есть 36 образцов (ns) над duration 1 секунду, что дает вам частоту дискретизации 36Hz.

Конструкция цифрового эллиптического фильтра затем может быть выполнена с использованием встроенной функции ellip. Вам необходимо будет заполнить ваши требования к фильтру для ряби, полосы затухания полосы пропускания и полосы перехода. С некоторыми параметрами, в качестве примера, это будет выглядеть так:

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)]); 

Вы можете визуализировать полученный ответ с freqz (и корректировать по мере необходимости). Для указанных выше параметров, частотная характеристика будет выглядеть так:

enter image description here

Наконец, чтобы отфильтровать ваши данные, которые вы хотите использовать функцию filter с выше разработанных коэффициентов фильтра a и b и ваш вклад plotData:

filtered_data = filter(b,a,plotData);