How do I cut data into segments?
이전 댓글 표시
I have eeg data in a .bdf file and I need to segment the data using the information in a .txt file.
The text file contains start and stop times in milliseconds .
I must cut fromt1 to t2 and then t2 to t3 and so on..
댓글 수: 7
Ameer Hamza
2020년 4월 12일
How is the data from bdf file available in MATLAB? Do you have the data a matrix? How do you want to partition the data?
Nikki Larsen
2020년 4월 12일
Ameer Hamza
2020년 4월 12일
Does rows represent time samples or columns. Have you loaded the data from txt file? What is the sample rate?
Nikki Larsen
2020년 4월 12일
Image Analyst
2020년 4월 12일
Nikki - I think people are still waiting for you to upload the file. How else can we effectively work with it if we don't have it?
dpb
2020년 4월 12일
Well, the only .bdf file extension I was aware of was the Adobe one that didn't seem to make any sense...looks as though this is a proprietary EEG file format using 24-bit/3-bytes per sample. That's going to take some processing to read...just a simple fread won't cut it.
There's a very simple and somewhat questionable for general use submittal at the FileExchange
How did you import the data into MATLAB?
As far as the time, there isn't a timestamp in the file; either the duration and number of samples is given or the duration is encoded as "1" in which case the number of samples is to be interpreted as the sample rate.
Either way, you'll need to determine that and then compute how many records are needed to match up. Easy enough if the two have common divisor; maybe not quite so much if time and sample rates don't match precisely.
Nikki Larsen
2020년 4월 13일
답변 (1개)
Ameer Hamza
2020년 4월 12일
try something like this
data = rand(80, 512); % random data, replace with data from bdf file
t_intervals = [50 100 300 500 700 900]; % values from your txt file in milliseconds
% solution
fs = 512; % sampling frequency
T = 1/fs*1000; % sampling time in milliseconds
t = 0:T:T*fs-1; % sample time instants
t_intervals = [0 t_intervals t(end)];
data_partition = splitapply(@(x) {x}, data, discretize(t, t_intervals));
카테고리
도움말 센터 및 File Exchange에서 EEG/MEG/ECoG에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!