You are now following this question
- You will see updates in your followed content feed.
- You may receive emails, depending on your communication preferences.
how can I extract features in Matlab by DWT from eeg signal for p300 detection usage
5 views (last 30 days)
Show older comments
Hi I'm new on signal processing, I have a small dataset of EEG signal and I want to use DWT for feature extraction for P300 detection. could you please describe me how can I do it in Matlab language? I will be appreciate if explain me by sample code. thanks
13 Comments
Image Analyst
on 31 Jul 2016
Star Strider is a physician and MATLAB expert. He'll probably answer you today, but I suspect it might make it easier for him if you attach a screenshot of your signal.
Star Strider
on 31 Jul 2016
Thank you, IA! ‘Physician’ yes. ‘Expert’ ... depends, but I do my best.
If you attach a relevant subset of your data (time vector and signals, preferably in a .mat file), and a PDF of the article you may be referring to, I’ll do what I can.
I haven’t done a lot of EEG signal processing in a couple decades (I’m not a neurologist), so I may also have to come back up to speed. If I remember correctly, the P300 isn’t always at 300 ms after the onset of the waveform, so it will be helpful for you to describe what you want to do. PDF references would be appreciated.
yas yasmini
on 4 Aug 2016
Edited: yas yasmini
on 4 Aug 2016
Hi Star Strider, thanks for your reply. one of two articles "10lines..." is an article about my work but it used to EEG signals and I'm using EEG contains P300 signals but the steps are the same in this article used FRI filter and then PCA but my filter is DWT and then PCA. please explain me how can I start my code on DWT? Am I use a specific range for P300 detection? the main article "Hoffmann..." has been attached. thanks
Star Strider
on 4 Aug 2016
The last work I did on EEG was more than 20 years ago. Our interest then was to use EEG to determine a laboratory task a subject was doing. We used short-time Fourier transform (similar to the spectrogram function), PCA to identify the best frequencies, and then used that output (with the PCA as a frequency domain filter) as input to the linear classifier, and got very good results. We were one of the first to groups to report this. I then went on to other things. The Prochazka paper uses PCA on time-domain signals, which may make it more difficult to code for real-time analysis (our objective). You might want to explore alternatives.
P300 is an entirely different problem, and beyond my area of expertise. The Hoffmann paper detects P300 by training their classifier on epochs with and without P300, so you will have to do the same. That requires manual segmentation, and then equalizing the lengths of the epoch records.
You will have to experiment with the techniques in the Prochazka paper, and apply the Hoffmann P300 detection techniques. Prochazka uses a simple neural net to do the classification, definitely more robust than our linear classifier. Explaining the DWT here is more than I want to get into. There are several books on it, and the Wavelet Toolbox documentation is excellent but necessarily not encyclopedic. I’ve not used the DWT with EEG.
This should be interesting research. I wish you well.
yas yasmini
on 4 Aug 2016
Edited: yas yasmini
on 4 Aug 2016
thanks for your reply, but for start what can I do? I'm at my wit's end. according to your mention P300 is a different problem but my classifier is different from Haffman. we are using some deep classifier anyway, could you please give me some advice for start? what can I learn or do about DWT for P300 feature extraction. thanks
Star Strider
on 4 Aug 2016
The P300 is an extremely difficult signal to detect in my experience, one of the reasons I’ve never attempted it. You would have to manually segment epochs with P300 and without P300 and let your classifier separate them.
By the way, don’t believe everything you read in the literature. In one of my neural net courses, I used a paper published in an IEEE journal as an assigned class project to detect and segment fetal from maternal EKG. Only later — when I could never get that net design to work — did the professor and I analyse the net design and realize that the authors had never actually implemented it with anything approaching real signals and that it was an inappropriate neural net architecture for the problem it was designed to solve.
yas yasmini
on 4 Aug 2016
Edited: Star Strider
on 4 Aug 2016
thanks Star Strider what is your opinion about https://www.mathworks.com/matlabcentral/fileexchange/33146-feature-extraction-using-multisignal-wavelet-packet-decomposition it seems to be useful for first step.
Star Strider
on 4 Aug 2016
My pleasure.
It seems useful, but you have to understand what it means by ‘feature’. Meanwhile, see if you can find this paper (not available online): Wavelet analysis of P3a and P3b.
The Prochazka paper seems to be relatively recent (the latest papers it cites are from 2009), but most of the other papers I’ve seen on P300 date from the 1990s to early 2000s.
yas yasmini
on 4 Aug 2016
Edited: yas yasmini
on 5 Aug 2016
I found that article, I will read it if I find new things will share with you. thanks
yas yasmini
on 8 Aug 2016
Hi Star Strider, do u know what is the best feature extraction for P300 detection? thanks
danyal mehboob
on 24 Apr 2017
yas yasmini im engineering student should we start work with help of each othr,it will be good for both,i also want to extract many things from eeg,as final year project
Savi Gaur
on 30 Mar 2022
How to retrive data from synergy Natus for use in MATLAB for p300 wave simulation
Answers (1)
Mahzad Pirghayesh
on 8 Feb 2021
I am working on the same problem too, if you want lets start and study with each other
See Also
Categories
Find more on AI for Signals and Images in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)