diff --git a/usedMcode/callAll.m b/usedMcode/callAll.m index f8202c7..fb574f2 100644 --- a/usedMcode/callAll.m +++ b/usedMcode/callAll.m @@ -7,7 +7,7 @@ noSynergies=3; allSubjects=true; %run all subjects and days or only one random day for one random subject -name='default3Syn'; %suffix for the output, has to be valid name for file (no space, /, ...) +name='EEGtoEMG'; %suffix for the output, has to be valid name for file (no space, /, ...) windowEMG=0.2; windowEEG=1; shiftEMG=0.05; @@ -40,39 +40,41 @@ if allSubjects - meanAccurancysEMG=zeros([j,1]); - meanAccurancysEEG=zeros([j,1]); - meanAccurancysLF=zeros([j,1]); - maxCEMG=zeros([j,k,1]); - maxCEEG=zeros([j,k,1]); - maxCLF=zeros([j,k,1]); - cmScaledEMG=zeros([j,5,5]); - cmScaledEEG=zeros([j,5,5]); - cmScaledLF=zeros([j,5,5]); - maxRidgeParamIndexEEGkin=zeros([j,3,k]); - maxRidgeParamIndexEMGkin=zeros([j,3,k]); - maxRidgeParamIndexLFkin=zeros([j,3,k]); - correlationEMGkin=zeros([j,3]); %x,y,angle - correlationEEGkin=zeros([j,3]); - correlationLFkin=zeros([j,3]); - maxRidgeParamIndexEEGautoenc=zeros([j,noSynergies,k]); - maxRidgeParamIndexEMGautoenc=zeros([j,noSynergies,k]); - maxRidgeParamIndexLFautoenc=zeros([j,noSynergies,k]); - correlationEMGautoenc=zeros([j,noSynergies]); - correlationEEGautoenc=zeros([j,noSynergies]); - correlationLFautoenc=zeros([j,noSynergies]); - maxRidgeParamIndexEEGpca=zeros([j,noSynergies,k]); - maxRidgeParamIndexEMGpca=zeros([j,noSynergies,k]); - maxRidgeParamIndexLFpca=zeros([j,noSynergies,k]); - correlationEMGpca=zeros([j,noSynergies]); - correlationEEGpca=zeros([j,noSynergies]); - correlationLFpca=zeros([j,noSynergies]); - maxRidgeParamIndexEEGnnmf=zeros([j,noSynergies,k]); - maxRidgeParamIndexEMGnnmf=zeros([j,noSynergies,k]); - maxRidgeParamIndexLFnnmf=zeros([j,noSynergies,k]); - correlationEMGnnmf=zeros([j,noSynergies]); - correlationEEGnnmf=zeros([j,noSynergies]); - correlationLFnnmf=zeros([j,noSynergies]); +% meanAccurancysEMG=zeros([j,1]); +% meanAccurancysEEG=zeros([j,1]); +% meanAccurancysLF=zeros([j,1]); +% maxCEMG=zeros([j,k,1]); +% maxCEEG=zeros([j,k,1]); +% maxCLF=zeros([j,k,1]); +% cmScaledEMG=zeros([j,5,5]); +% cmScaledEEG=zeros([j,5,5]); +% cmScaledLF=zeros([j,5,5]); +% maxRidgeParamIndexEEGkin=zeros([j,3,k]); +% maxRidgeParamIndexEMGkin=zeros([j,3,k]); +% maxRidgeParamIndexLFkin=zeros([j,3,k]); +% correlationEMGkin=zeros([j,3]); %x,y,angle +% correlationEEGkin=zeros([j,3]); +% correlationLFkin=zeros([j,3]); +% maxRidgeParamIndexEEGautoenc=zeros([j,noSynergies,k]); +% maxRidgeParamIndexEMGautoenc=zeros([j,noSynergies,k]); +% maxRidgeParamIndexLFautoenc=zeros([j,noSynergies,k]); +% correlationEMGautoenc=zeros([j,noSynergies]); +% correlationEEGautoenc=zeros([j,noSynergies]); +% correlationLFautoenc=zeros([j,noSynergies]); +% maxRidgeParamIndexEEGpca=zeros([j,noSynergies,k]); +% maxRidgeParamIndexEMGpca=zeros([j,noSynergies,k]); +% maxRidgeParamIndexLFpca=zeros([j,noSynergies,k]); +% correlationEMGpca=zeros([j,noSynergies]); +% correlationEEGpca=zeros([j,noSynergies]); +% correlationLFpca=zeros([j,noSynergies]); +% maxRidgeParamIndexEEGnnmf=zeros([j,noSynergies,k]); +% maxRidgeParamIndexEMGnnmf=zeros([j,noSynergies,k]); +% maxRidgeParamIndexLFnnmf=zeros([j,noSynergies,k]); +% correlationEMGnnmf=zeros([j,noSynergies]); +% correlationEEGnnmf=zeros([j,noSynergies]); +% correlationLFnnmf=zeros([j,noSynergies]); + maxRidgeParamIndexEEGemg=zeros([j,noSynergies,k]); + correlationEMGemg=zeros([j,noSynergies]); parfor j=1:size(numbersMat,2) number=numbersMat(j); @@ -93,6 +95,7 @@ [correlationEMGnnmf(j,:),maxRidgeParamIndexEMGnnmf(j,:,:)]=ridgeCV(savePath,'EMG','NNMF',k,ridgeParams,eegOffset); [correlationEEGnnmf(j,:),maxRidgeParamIndexEEGnnmf(j,:,:)]=ridgeCV(savePath,'EEG','NNMF',k,ridgeParams,eegOffset); [correlationLFnnmf(j,:),maxRidgeParamIndexLFnnmf(j,:,:)]=ridgeCV(savePath,'LF','NNMF',k,ridgeParams,eegOffset); + [correlationEEGemg(j,:),maxRidgeParamIndexEEGemg(j,:,:)]=ridgeCV(savePath,'EEG','EMG',k,ridgeParams,eegOffset); fprintf('%s%i finished %s\n',subject,number,datestr(datetime('now'))) end @@ -103,21 +106,22 @@ number=numbersMat(j); subject=subjectsForNumbers{j}; savePath=readAll(pathToFile,subject,number,windowEMG,windowEEG,shiftEMG,shiftEEG,maxFile,threshold,pburgOrder,minEEGFreq,maxEEGFreq,pause,noLFsamples,EMGChannels,noSynergies); - [meanAccurancysEMG,maxCEMG,cmScaledEMG(:,:)]=svmEciton(savePath,'EMG',k,maxExpC,maxPerClass,eegOffset); - [meanAccurancysEEG,maxCEEG,cmScaledEEG(:,:)]=svmEciton(savePath,'EEG',k,maxExpC,maxPerClass,eegOffset); - [meanAccurancysLF,maxCLF,cmScaledLF(:,:)]=svmEciton(savePath,'LF',k,maxExpC,maxPerClass,eegOffset); - [correlationEMGkin,maxRidgeParamIndexEMGkin(:,:)]=ridgeCV(savePath,'EMG','kin',k,ridgeParams,eegOffset); - [correlationEEGkin,maxRidgeParamIndexEEGkin(:,:)]=ridgeCV(savePath,'EEG','kin',k,ridgeParams,eegOffset); - [correlationLFkin,maxRidgeParamIndexLFkin(:,:)]=ridgeCV(savePath,'LF','kin',k,ridgeParams,eegOffset); - [correlationEMGautoenc,maxRidgeParamIndexEMGautoenc(:,:)]=ridgeCV(savePath,'EMG','Autoenc',k,ridgeParams,eegOffset); - [correlationEEGautoenc,maxRidgeParamIndexEEGautoenc(:,:)]=ridgeCV(savePath,'EEG','Autoenc',k,ridgeParams,eegOffset); - [correlationLFautoenc,maxRidgeParamIndexLFautoenc(:,:)]=ridgeCV(savePath,'LF','Autoenc',k,ridgeParams,eegOffset); - [correlationEMGpca,maxRidgeParamIndexEMGpca(:,:)]=ridgeCV(savePath,'EMG','PCA',k,ridgeParams,eegOffset); - [correlationEEGpca,maxRidgeParamIndexEEGpca(:,:)]=ridgeCV(savePath,'EEG','PCA',k,ridgeParams,eegOffset); - [correlationLFpca,maxRidgeParamIndexLFpca(:,:)]=ridgeCV(savePath,'LF','PCA',k,ridgeParams,eegOffset); - [correlationEMGnnmf,maxRidgeParamIndexEMGnnmf(:,:)]=ridgeCV(savePath,'EMG','NNMF',k,ridgeParams,eegOffset); - [correlationEEGnnmf,maxRidgeParamIndexEEGnnmf(:,:)]=ridgeCV(savePath,'EEG','NNMF',k,ridgeParams,eegOffset); - [correlationLFnnmf,maxRidgeParamIndexLFnnmf(:,:)]=ridgeCV(savePath,'LF','NNMF',k,ridgeParams,eegOffset); +% [meanAccurancysEMG,maxCEMG,cmScaledEMG(:,:)]=svmEciton(savePath,'EMG',k,maxExpC,maxPerClass,eegOffset); +% [meanAccurancysEEG,maxCEEG,cmScaledEEG(:,:)]=svmEciton(savePath,'EEG',k,maxExpC,maxPerClass,eegOffset); +% [meanAccurancysLF,maxCLF,cmScaledLF(:,:)]=svmEciton(savePath,'LF',k,maxExpC,maxPerClass,eegOffset); +% [correlationEMGkin,maxRidgeParamIndexEMGkin(:,:)]=ridgeCV(savePath,'EMG','kin',k,ridgeParams,eegOffset); +% [correlationEEGkin,maxRidgeParamIndexEEGkin(:,:)]=ridgeCV(savePath,'EEG','kin',k,ridgeParams,eegOffset); +% [correlationLFkin,maxRidgeParamIndexLFkin(:,:)]=ridgeCV(savePath,'LF','kin',k,ridgeParams,eegOffset); +% [correlationEMGautoenc,maxRidgeParamIndexEMGautoenc(:,:)]=ridgeCV(savePath,'EMG','Autoenc',k,ridgeParams,eegOffset); +% [correlationEEGautoenc,maxRidgeParamIndexEEGautoenc(:,:)]=ridgeCV(savePath,'EEG','Autoenc',k,ridgeParams,eegOffset); +% [correlationLFautoenc,maxRidgeParamIndexLFautoenc(:,:)]=ridgeCV(savePath,'LF','Autoenc',k,ridgeParams,eegOffset); +% [correlationEMGpca,maxRidgeParamIndexEMGpca(:,:)]=ridgeCV(savePath,'EMG','PCA',k,ridgeParams,eegOffset); +% [correlationEEGpca,maxRidgeParamIndexEEGpca(:,:)]=ridgeCV(savePath,'EEG','PCA',k,ridgeParams,eegOffset); +% [correlationLFpca,maxRidgeParamIndexLFpca(:,:)]=ridgeCV(savePath,'LF','PCA',k,ridgeParams,eegOffset); +% [correlationEMGnnmf,maxRidgeParamIndexEMGnnmf(:,:)]=ridgeCV(savePath,'EMG','NNMF',k,ridgeParams,eegOffset); +% [correlationEEGnnmf,maxRidgeParamIndexEEGnnmf(:,:)]=ridgeCV(savePath,'EEG','NNMF',k,ridgeParams,eegOffset); +% [correlationLFnnmf,maxRidgeParamIndexLFnnmf(:,:)]=ridgeCV(savePath,'LF','NNMF',k,ridgeParams,eegOffset); + [correlationEEGemg,maxRidgeParamIndexEEGemg(:,:)]=ridgeCV(savePath,'EEG','EMG',k,ridgeParams,eegOffset); fprintf('%s%i finished %s\n',subject,number,datestr(datetime('now'))) save(strcat(pathToFile,sprintf('../matlabData/%s_call%s%i-%s.mat',datestr(datetime('now')),subject,number,name))); diff --git a/usedMcode/generateTrainingData.m b/usedMcode/generateTrainingData.m index 8637129..5409540 100644 --- a/usedMcode/generateTrainingData.m +++ b/usedMcode/generateTrainingData.m @@ -4,7 +4,8 @@ tempEEG=zeros([32,fix(floor(size(signal,1)/signalWindowEEG-1)*windowEEG/shiftEEG+1),201]); tempEEGlf=zeros([32,fix(floor(size(signal,1)/signalWindowEEG-1)*windowEEG/shiftEEG+1),noLFsamples]); - %Filter around 50Hz and below 2 Hz + %Filter around 50 Hz and 150 Hz + % filter for the range minEEGFreq to maxEEGFreq [A,B]= butter(2,[48 52]/(bci_sf/2),'stop'); [C,D]= butter(2,minEEGFreq/(bci_sf/2),'high'); [E,F]= butter(2,[148 152]/(bci_sf/2),'stop'); diff --git a/usedMcode/ridgeCV.m b/usedMcode/ridgeCV.m index a4a1ff4..403ff76 100644 --- a/usedMcode/ridgeCV.m +++ b/usedMcode/ridgeCV.m @@ -28,8 +28,10 @@ predicted=shiftingMean(synergiesNNMF,factor); elseif strcmp(goal,'kin') predicted=shiftingMean(kinematics,factor); + elseif strcmp(data,'EMG') + predicted=trainingDataEMG; else - error('only kin, Autoenc, PCA and NNMF are valid inputs for goal'); + error('only kin, Autoenc, PCA, NNMF and EMG are valid inputs for goal'); end clear kinematics;