Filtering EEG signals with bandpass filter

9 views (last 30 days)
my EEG signals is signal with time domain and the magnitude in Voltage. How i want to filter my EEG signals, so that I only have signals with frequency 3Hz-40Hz. My Fs is 128Hz. Anyone can help? I see this in bandpas filter, d = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2',1/4,3/8,5/8,6/8,60,1,60); But i dont know how i want to determine my Ast as it is in db.. should i convert my signal to db first?

Accepted Answer

Wayne King
Wayne King on 17 Dec 2013
Edited: Wayne King on 17 Dec 2013
First of all, you should design your filter in Hz.
d = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2',1,3,40,45,40,1,40,128);
The stopband attenuation setting should depend on the dynamic range of the signal. I doubt that in EEG data you need 60 dB of stopband attenuation.
Also, are you sure you need a bandpass filter? and not just a lowpass filter with a cutoff at 40 Hz? You're creating many more demands on your filter to try and have a stopband from [0 3) Hz.
How about just
d = fdesign.lowpass('Fp,Fst,Ap,Ast',40,45,1,40,128);

More Answers (0)

Categories

Find more on EEG/MEG/ECoG in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!