diff --git a/usedMcode/generateTrainingData.m b/usedMcode/generateTrainingData.m index 3e27a11..3372b7b 100644 --- a/usedMcode/generateTrainingData.m +++ b/usedMcode/generateTrainingData.m @@ -9,17 +9,16 @@ [A,B]= butter(2,[48 52]/(bci_sf/2),'stop'); [C,D]= butter(2,1/(bci_sf/2),'high'); [E,F]= butter(2,[148 152]/(bci_sf/2),'stop'); - + parfor i=1:32 %filter single channel, w/o EMG, HEOG, Synchro and 0s tempEEG(i,:,:)=shiftingPburg(filtfilt(double(E),double(F),filtfilt(double(C),double(D),filtfilt(double(A),double(B),double(signal(:,i))))),bci_sf,windowEEG,shift,pburgOrder,minEEGFreq,maxEEGFreq); - %filtfilt stat filter - end % TODO: 8-30Hz, pburg bei kurzen Fenstern (Ordnung: Je nach SamplingRate, bei 2500: 32-50, Alpha, Beta peaks sollten sichtbar sein) + end trainingDataEEG=permute(tempEEG,[2 1 3]); usedChannels={'AbdPolLo','Biceps','Triceps','FrontDelt','MidDelt','BackDelt'}; emgchannels=find(ismember(params.ChannelNames.Value,usedChannels)); - for i=1:6; + parfor i=1:6; tempEMG(i,:)=waveformLength(filtfilt(double(E),double(F),filtfilt(double(C),double(D),filtfilt(double(A),double(B),double(signal(:,emgchannels(i)))))),bci_sf,windowEMG,shift); end trainingDataEMG=permute(tempEMG,[2 1 3]); diff --git a/usedMcode/generateTrainingDataPos.m b/usedMcode/generateTrainingDataPos.m index 0ac0041..3f93f6e 100644 --- a/usedMcode/generateTrainingDataPos.m +++ b/usedMcode/generateTrainingDataPos.m @@ -3,21 +3,23 @@ signalWindowEMG=bci_sf*windowEMG; signalWindowEEG=bci_sf*windowEEG; tempEEG=zeros([32,fix(floor(size(signal,1)/signalWindowEEG-1)*windowEEG/shift+1),maxEEGFreq-minEEGFreq+1]); - tempEMG=zeros(fix([size(signal,2)-3-32,fix(size(signal,1)/signalWindowEMG-1)*windowEMG/shift+1])); + tempEMG=zeros(fix([6,fix(size(signal,1)/signalWindowEMG-1)*windowEMG/shift+1])); %Filter around 50Hz and below 2 Hz [A,B]= butter(2,[48 52]/(bci_sf/2),'stop'); [C,D]= butter(2,1/(bci_sf/2),'high'); [E,F]= butter(2,[148 152]/(bci_sf/2),'stop'); - + parfor i=1:32 %filter single channel, w/o EMG, HEOG, Synchro and 0s tempEEG(i,:,:)=shiftingPburg(filtfilt(double(E),double(F),filtfilt(double(C),double(D),filtfilt(double(A),double(B),double(signal(:,i))))),bci_sf,windowEEG,shift,pburgOrder,minEEGFreq,maxEEGFreq); - %filtfilt stat filter - end % TODO: 8-30Hz, pburg bei kurzen Fenstern (Ordnung: Je nach SamplingRate, bei 2500: 32-50, Alpha, Beta peaks sollten sichtbar sein) + end trainingDataEEG=permute(tempEEG,[2 1 3]); - parfor i=33:size(signal,2)-3 - tempEMG(i-32,:,:)=waveformLength(filtfilt(double(E),double(F),filtfilt(double(C),double(D),filtfilt(double(A),double(B),double(signal(:,i))))),bci_sf,windowEMG,shift); + usedChannels={'AbdPolLo','Biceps','Triceps','FrontDelt','MidDelt','BackDelt'}; + emgchannels=find(ismember(params.ChannelNames.Value,usedChannels)); + + parfor i=1:6; + tempEMG(i,:)=waveformLength(filtfilt(double(E),double(F),filtfilt(double(C),double(D),filtfilt(double(A),double(B),double(signal(:,emgchannels(i)))))),bci_sf,windowEMG,shift); end trainingDataEMG=permute(tempEMG,[2 1 3]);