Bonjour,
Je débute dans MatLab, et j’ai un problème pour générer un fichier .txt dans le "format" que je veux. Je ne pense pas que cela soit très compliqué, mais mes connaissances d’autodidacte me limitent encore beaucoup.
Le script sur lequel je travaille dois me permettre de resampler deux signaux (EEG et EMG), puis de sauver le résultat dans un fichier txt (c’est là que ça bloque).
Pour le moment j’obtiens, avec le code que j’ai, un fichier de 7404480 lignes, les 4320000 premières représentent mon EEG, et les 3084480 suivantes représentent mon EMG.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 close all clear all path = 'C:\...\'; fname = 'toto' fnamesig = [path,fname,'.txt']; numrow = 250*60*60*12; % sampling rate*seconds*min*hours numskip=6; [time,eeg,emg] = textscan(fnamesig,'%f%f%f',numrow,'delimiter',',','headerlines',numskip); EEG1=eeg*10^6; EMG1=emg*10^6; EEG1(isnan(EEG1)==1)=0; EMG1(isnan(EMG1)==1)=0; % EEG signal EEG2 = interp(EEG1,2); % Increase the original sampling rate (250 Hz) to 500 Hz EEG3 = decimate(EEG2,5); % Decrease sampling rate from 500 Hz to 100 Hz % EMG signal EMG2 = interp(EMG1,2); % Increase the original sampling rate (250 Hz) to 500 Hz EMG2(1:5000:end) = []; % Remove every first sample of each 10-sec epoch (5000 samples per 10-sec epoch) EMG2(4999:4999:end) = []; % Remove every last sample of each 10-sec epoch (5000 samples per 10-sec epoch) EMG3 = downsample(EMG2,7); % Keep every 7th samples save('test.txt','EEG3','EMG3','-ascii') h = msgbox('Job Done!','Success');
Je dois obtenir un fichier .txt de ce type :
id 10 EMGRMS EEG(1000 premières valeurs) EMG(714 premières valeurs)
id 20 EMGRMS EEG(1000 valeurs suivantes) EMG(714 valeurs suivantes)
id 30 EMGRMS EEG(1000 valeurs suivantes) EMG(714 valeurs suivantes)
id 40 EMGRMS EEG(1000 valeurs suivantes) EMG(714 valeurs suivantes)
id 50 EMGRMS EEG(1000 valeurs suivantes) EMG(714 valeurs suivantes)
…
id 43200 EMGRMS EEG(1000 dernières valeurs) EMG(714 dernières valeurs)
Je dois donc obtenir 4320 lignes au total. Je dois réussir à avoir pour chaque ligne 1000 valeurs d’EEG et 714 valeurs d’EMG.
Pour la ligne 1, j’aurais donc les 1000 premières valeurs de l’EEG (à partir de la ligne 1 de mes données originales), ainsi que les 714 premières valeurs de l’EMG (à partir de la ligne 3084480 de mes données originales).
Pour la ligne 2, les 1000 valeurs suivantes de l’EEG (à partir de la ligne 1000 de mes données originales), et les 714 valeurs suivantes de l’EMG (à partir de la ligne 3085194). Et ainsi de suite…
Sur chaque ligne, je dois aussi avoir mon id (toujours la même), le temps (multiple de 10 jusqu’à 43200), et enfin la moyenne quadratique (EMGRMS, root mean square) des 714 valeurs de l’EMG de la ligne.
Votre aide me serait extrêmement précieuse.
Merci beaucoup
Partager