EEG data preprocessing and filtering.
15 views (last 30 days)
Show older comments
Hi, I have EEG data that looks like this:
The steps that I followed for preprocessing are:
- data = data-mean(data)
- bandpassfilt = designfilt('bandpassiir','FilterOrder',10, 'HalfPowerFrequency1',0.2,'HalfPowerFrequency2',50, 'SampleRate',512); dataout = filter(bandpassfilt,data);
- bandstopfilt = designfilt('bandstopiir','FilterOrder',10, 'HalfPowerFrequency1',59,'HalfPowerFrequency2',61, 'SampleRate',512); dataout2 = filter(bandstopfilt,dataout);
After filtering the signal looks like this:
I wanted to know if I am following the right steps or should I change anything?
Thank you!
0 Comments
Answers (2)
Star Strider
on 28 Mar 2024
It seems to me that one or both filters are not designed correctly. The filtered result does not appear to be similar to the input, and may only reflect ‘ringing’ in the filter.
If you have not already done so, the correct way to begin is to calculate the fft of the original signal, preferally zero-padding it to increase the frequency resolution using the nextpow2 function. Then design the filters using that information to define the appropriate passbands and stopbands.
0 Comments
See Also
Categories
Find more on EEG/MEG/ECoG in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!