亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? multimoto_ica_pca_process_program.m

?? 用于腦電分析的各類源碼
?? M
字號:
%% 四種想像動作的EEG信號處理 ——  (基于ICA分析)
   % 四種動作分別為左手,右手,腳,舌頭
   
   % 數據文件共三個,指定本次處理的文件名及路徑
   path='F:\matlab_work\process_for_BCICOMP\for_C2005_dataset_iii\for_IIIa\k3b\'
   
%% 格式轉換,將每導數據存為一個文件

    % 將原始數據由數百兆的一個大文件轉換成每導數據一個文件
    for i=1:60
        data=s(:,i)';
        filename=['s',num2str(i),'.mat'];
        eval(['save ',path,filename,' data;']);
        clear data;
    end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 原始數據文件過大(約數百兆),此處理為減輕每次計算的內存負擔    %    
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
    
%% 確定數據參數及時頻參數
    eval(['load ',path,'HDR.mat;']);
    trig=HDR.TRIG;
    label=HDR.Classlabel;
    artifact=HDR.ArtifactSelection;
    
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 經檢測各subject數據中噪聲過大和含有NaN的trails的數量,分別為: %
        % subject:noise,NaN____k3b:62,2;    k6b:65,10;  l1b:73,0;      % 
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        
        %將噪聲過大的數據段去除
        label(find(artifact==1))=-1;
        for i=1:4
            trig_s{i}=trig(find(label==i));
        end
        %將含NaN數值的數據段去除
        eval(['load ',path,'NaN_label.mat;']);
        label(find(NaN_label==1))=-1;
        for i=1:4
            trig_s{i}=trig(find(label==i));
        end
        
    % 設定計算參數
    fs=250;trail_t=8;frq=[8:12,20:24];

%%  確定各動作的ERD/ERS發生頻段及顯著導聯位置
        %計算所有導聯各頻段PSD曲線,并將結果存儲為中間數據

for k=1:60    
    % 輸入單導數據
    filename=['s',num2str(k),'.mat'];
    eval(['load ',path,filename,';']);
    
    % 對四種動作分別將其PSD曲線處理
    for i=1:4
        trig_temp=trig_s{i};
        psd_motor=zeros(length(frq),1751);   % 只提取frq定義頻段的psd數據
        % processing one trail by one trail
        for j=1:length(trig_temp)
            temp_index=trig_temp(j)+[0:fs*trail_t-1];
            tempdata=data(temp_index);
            
            temp_psd=spectrogram(tempdata,kaiser(fs,2),fs-1,fs,fs);
            temp_psd=abs(temp_psd(frq+1,:));
            psd_motor=psd_motor+temp_psd;
        end
        psd_motor=psd_motor/length(trig_temp);
        mi_chan_psd{k,i}=psd_motor;i
    end
    k
end
eval(['save ',path,'psd_aver_chan_frq.mat mi_chan_psd;']);
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 本步處理較為費時,故將結果作為中間數據進行存儲,以備調用        % 
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 繪制各動作的frq段功率譜變化ERD/ERS系數地形圖
    % 使用上述數據直接繪制與使用ICA+PCA分解后的特征分量繪制的地形圖進行對比

    % 各1hz頻段的psd曲線作ica+pca分解后的ERD/ERS系數
    ref_t=[1:1.5*fs]; erds_t=[1:1.5*fs]+3*fs; 
for i=1:4   % single moto
    for j=1:60  %single chan
        temp=mi_chan_psd{j,i};
        for k=1:length(frq)     %single hz frequency   
            psd_temp=temp(k,:);
            psd_ref=psd_temp(ref_t);
            psd_erds=psd_temp(erds_t);
            erds(j,k)=(mean(psd_erds)-mean(psd_ref))/abs(mean(psd_ref));
        end
    end
    % 繪出每種動作各頻率段的ERD/ERS系數地形圖
    q_multi_topo(erds,loc_leads);
end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 此處未使用圖形存儲命令,可手動加注圖形說明并存儲此4幅圖形        %
        % 11-12Hz頻段處的左右手ERD現象與腳舌部的ERS現象較為明顯         %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  以ERD/ERS區別最明顯的11-12Hz段psd值繪制連續顯示的地形圖動畫
for i=1:4   % single moto
    for j=1:60  %single chan
        temp=mi_chan_psd{j,i};
        psd_temp(j,:)=mean(temp([5,6],:));   
    end
    eval(['psd_',num2str(i),'=psd_temp;']);
end

cmax=max(max([psd_1;psd_2;psd_3;psd_4]));
cmin=min(min([psd_1;psd_2;psd_3;psd_4]));
title_char={'左手';'右手';'腳部';'舌頭'};
for i=1:175
    for j=1:4
        subplot(2,2,j)
        title(title_char{j});
        eval(['temp=psd_',num2str(j),';']);
        plotdata=temp(:,1+10*(i-1));
        [plotdata,loc_lead_temp]=q_nan_del(plotdata,loc_leads);
        q_topoplot(plotdata,loc_lead_temp,'label','char');
        caxis([cmin cmax]);colorbar;
    end    
    F(i)=getframe(gcf);
    i
end
save f_invers.mat F;
movie(F,1,1)
movie2avi(F,'4to1.avi','fps',25);

%%  繪制各動作的frq段功率譜變化ICA+PCA分解后的ERD/ERS分量地形圖

% pinciple component numbers
pca_num=3;

% creat pic saving directory
pic_dic_name=['topo_pic\'];
mkdir([path,pic_dic_name(1:length(pic_dic_name)-1)]);

% processing
for i=1:4   % single moto
    for j=1:length(frq)  % single hz frequency
        for k=1:60     % single chan   
            temp=mi_chan_psd{k,i};
            psd_temp(k,:)=temp(j,:);  
        end

        % run ica+pca process and plot components curves and topograph
        [ww,ss]=runica(psd_temp,'pca',pca_num,'extended',-1);
        for m=1:pca_num
            psd(m,:)=q_norm(ww(m,:)*ss*psd_temp)+3-m;
        end
        
        % plotting
        ha=figure;
        subplot(2,1,1);plot(0:1/250:7,psd);
        for m=1:pca_num
            subplot(2,pca_num,pca_num+m);
            q_topoplot(ww(m,:),loc_leads,'label','char');
            colorbar;
        end
        
        % save pic
        pic_name=['moto_',num2str(i),'_psd_',num2str(frq(j)),'hz_ica_topo.jpg'];
        eval(['saveas(ha,''',path,pic_dic_name,pic_name,''');']);
        delete(ha);
    end
end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 人工選取具有明顯erd及ers現象的頻段                             %
        % 對比以上兩種地形圖的相似與區別                                 % 
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%  以ERD/ERS區別最明顯的11-12Hz段psd曲線進行ICA+PCA處理,

% pinciple component numbers
pca_num=3;

% ica+pca processing
for i=1:4   % single moto
    for j=1:60  %single chan
        temp=mi_chan_psd{j,i};
        psd_temp(j,:)=mean(temp([5,6],:));   
    end
    clear psd;
    [ww,ss]=runica(psd_temp,'pca',pca_num,'extended',-1);
    for m=1:pca_num
        psd(m,:)=q_norm(ww(m,:)*ss*psd_temp)+3-m;
        coeff(i,m)=q_rattio_erds(psd(m,:),fs,[0 2],[3.5 6]);
    end
    ww_model{i,1}=ww;    ww_model{i,2}=ss;

    % plotting
    ha=figure;
    subplot(2,1,1);plot(0:1/250:7,psd);
    for m=1:pca_num
        subplot(2,pca_num,pca_num+m);
        q_topoplot(ww(m,:),loc_leads,'label','char');
        colorbar;
    end
end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 各動作明顯的響應分量為:                                      % 
        %左手:第一分量ERD;右手:第二分量ERD;                          %
        %腳:第三分量ERD;舌頭:第一分量ERS                              % 
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  使用frq段所有trail的平均psd曲線進行ica+pca處理
clear psd_temp;
for i=1:4   % single moto
    for j=1:60  %single chan
        temp=mi_chan_psd{j,i};
        psd_temp(j,:)=mean(temp);
    end
    % run ica+pca process and plot components curves and topograph
    pca_num=3;clear psd;
    [ww,ss]=runica(psd_temp,'pca',pca_num,'extended',-1);
    for m=1:pca_num
        psd(m,:)=q_norm(ww(m,:)*ss*psd_temp)+3-m;
    end
    % plotting
    ha=figure;
    subplot(2,1,1);plot(0:1/250:7,psd);
    for m=1:pca_num
        subplot(2,pca_num,pca_num+m);
        q_topoplot(ww(m,:),loc_leads,'label','char');
        colorbar;
    end

end

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 上兩個頻段比較,11-12Hz段效果明顯好于frq段效果,故取11-12Hz  %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 將各動作對應的分量權值取出,作為標準權重模板
component_no=[1,2,3,1];
for i=1:4
    ww_temp=ww_model{i,1};
    w_std(i,:)=ww_temp(component_no(i),:);
end

%% 使用ICA濾波處理單trail數據,并將濾波后數據存儲以備下一步進行識別之用

data_ica_dic=['data_ica_filted\'];
mkdir([path,data_ica_dic(1:length(data_ica_dic)-1)]);

test_index=find(isnan(label)==1);
for i=1:length(test_index)
    trig_temp=trig(test_index(i));
    data_index=trig_temp+[0:fs*trail_t-1];
    clear test_data;
    for k=1:60    
        % 輸入單導數據
        filename=['s',num2str(k),'.mat'];
        eval(['load ',path,filename,';']);
        test_data(k,:)=data(data_index);
    end
    i
    % filter data using ica
    kept_c_num=20; % kept components number
    test_data=q_ica_filter(test_data,trail_t,fs,frq,kept_c_num);
    
    % save data filted
    eval(['save ',path,data_ica_dic,'test_data_ica_filted_trail_',num2str(i),'.mat test_data;']);
end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % ica濾波參數可以調整,中間數據按照單個trail一個文件的格式存儲    %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 對test數據進行識別,直接使用11-12hz頻段psd曲線計算ERD/ERS系數作為特征值

last_frq=[11,12];fs=250;

for i=1:149
    eval(['load ',path,data_ica_dic,'test_data_ica_filted_trail_',num2str(i),'.mat;']);
    for j=1:60
        psd_temp(j,:)=q_psfd_cal(test_data(j,:),last_frq,fs);
        coef(i,j)=q_rattio_erds(psd_temp(j,:),fs,[0 2],[3.5 5.5]);
    end    
    i
end

% test數據的標準值
load true_label_k3.txt  % 將具體路徑加入
test_index=find(isnan(label)==1);
true_label=true_label_k3(test_index);

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 此處未考慮噪聲過大的test數據                                  %
        % 直接使用各導處的11-12hz的erds系數作為參數                    %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 進行識別
for i=1:149
    for j=1:4
        temp1=q_norm(w_std(j,:));
        temp2=q_norm(coef(i,:)');
        temp3(j)=abs(temp1*temp2);
    end
    results(i)=find(temp3==max(temp3));
end
correct_rattio=sum(results'==true_label)/149
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 此處未考慮噪聲過大的test數據                                  %
        % 該識別方法的具體參數定義和選擇需進一步調整                     %
        % 最好使用交叉驗證的方式來確定最優參數                           %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 簡單的距離識別方法以訓練數組的11-12Hz的ERD/ERS系數為標準樣板集對test數據進行識別

% 訓練樣本集的ERD/ERS系數
    
last_frq=[11,12];
for k=1:60    
    % 輸入單導數據
    filename=['s',num2str(k),'.mat'];
    eval(['load ',path,filename,';']);
    
    % 對四種動作分別將其PSD曲線處理
    for i=1:4
        trig_temp=trig_s{i};
        clear coef_temp;
        % processing one trail by one trail
        for j=1:length(trig_temp)
            temp_index=trig_temp(j)+[0:fs*trail_t-1];
            tempdata=data(temp_index);
            psd_temp=q_psfd_cal(tempdata,last_frq,fs);
            coef_temp(j)=q_rattio_erds(psd_temp,fs,[0 2],[3.5 5.5]);
        end
        coef_train{k,i}=coef_temp;
    end
    k
end
    % ERD/ERS系數:coef_tr及標準動作標志:std_group
coef_tr=[];std_group=[];
for i=1:4
    clear temp2;
    for j=1:60
        temp1=coef_train{j,i};
        temp2(j,:)=temp1;
    end
    coef_tr=[coef_tr;temp2'];
    std_group=[std_group;ones(size(temp2,2),1)*i];
end

% 分類識別
[class,err,posterior,logp] = classify(coef,coef_tr,std_group,'diagquadratic') ;
correct_rattio=sum(class==true_label)/149
sum(class==true_label)

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % 本節作為簡單的距離識別算法示例,可作為前面識別算法的對照組      %
        % classify 函數來自matlab自帶的statistic toolbox                %
        % 使用何種距離定義可以在classify函數給定的類型中選擇             %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区三区四区| 一本色道亚洲精品aⅴ| 欧美成人精品二区三区99精品| 日韩av不卡一区二区| 91精品国产手机| 黑人精品欧美一区二区蜜桃| 中文字幕精品一区二区精品绿巨人| 成人国产在线观看| 一区二区三区欧美久久| 91精品国产综合久久福利软件 | 毛片不卡一区二区| 亚洲免费观看视频| 欧美日韩国产免费| 国产综合色产在线精品 | 国产精品成人免费| 欧美视频自拍偷拍| 久久成人免费网站| 亚洲欧洲日产国码二区| 欧美性猛交一区二区三区精品| 蜜臀va亚洲va欧美va天堂 | 91在线观看一区二区| 亚洲综合男人的天堂| 7777精品伊人久久久大香线蕉的| 国产精一区二区三区| 亚洲精品中文字幕在线观看| 日韩一区和二区| 9l国产精品久久久久麻豆| 香蕉乱码成人久久天堂爱免费| 精品国产免费一区二区三区香蕉| 91麻豆国产福利在线观看| 欧美性大战久久久久久久蜜臀| 麻豆国产欧美一区二区三区| 亚洲色图欧洲色图| 精品少妇一区二区三区免费观看 | 亚洲午夜精品17c| 国产日韩精品一区| 欧美狂野另类xxxxoooo| 成人理论电影网| 蜜臀99久久精品久久久久久软件| 综合分类小说区另类春色亚洲小说欧美| 正在播放亚洲一区| 一本色道久久综合精品竹菊| 国产麻豆视频一区二区| 亚洲一区自拍偷拍| 国产精品三级在线观看| 91精品福利在线一区二区三区| jlzzjlzz亚洲女人18| 日韩精品欧美成人高清一区二区| 中文字幕制服丝袜成人av| 日韩你懂的在线观看| 欧美日韩国产综合久久| 色综合久久综合| 成人av免费在线播放| 国产中文字幕一区| 久久激情五月婷婷| 日本91福利区| 五月综合激情婷婷六月色窝| 亚洲人亚洲人成电影网站色| 国产人久久人人人人爽| 日韩欧美一级片| 欧美一区二区三区人| 国产午夜久久久久| 26uuu成人网一区二区三区| 日韩一区二区麻豆国产| 欧美精品1区2区| 8v天堂国产在线一区二区| 欧美性淫爽ww久久久久无| 91丨九色丨国产丨porny| 成人免费视频一区| 豆国产96在线|亚洲| 成人福利在线看| 成人天堂资源www在线| 高清在线不卡av| 成人国产电影网| av亚洲精华国产精华精| 成人av片在线观看| 91麻豆高清视频| 欧美亚洲丝袜传媒另类| 欧洲国内综合视频| 精品视频1区2区3区| 欧美日韩国产精品自在自线| 欧美精品日日鲁夜夜添| 91超碰这里只有精品国产| 69堂成人精品免费视频| 日韩欧美一二三区| 国产午夜精品美女毛片视频| 国产欧美日韩在线| 国产精品不卡视频| 亚洲综合色成人| 日韩制服丝袜av| 黄一区二区三区| 国产suv精品一区二区6| av男人天堂一区| 欧美亚一区二区| 日韩天堂在线观看| 国产亚洲一区二区三区四区| 国产精品大尺度| 亚洲国产欧美在线人成| 日韩av电影天堂| 国产suv一区二区三区88区| 99精品久久免费看蜜臀剧情介绍| 欧亚一区二区三区| 精品国产不卡一区二区三区| 中文字幕av在线一区二区三区| 亚洲少妇30p| 日本欧美大码aⅴ在线播放| 国产乱码一区二区三区| 91在线观看地址| 欧美一区二区三区播放老司机| 国产亚洲欧美日韩俺去了| 亚洲精品网站在线观看| 久久国产乱子精品免费女| 成人免费看黄yyy456| 欧美电影一区二区| 国产精品久久一级| 日韩av电影免费观看高清完整版 | 久久99国内精品| 成人av网站在线观看| 欧美久久久久中文字幕| 久久久99免费| 亚洲chinese男男1069| 国产一区二区久久| 91国产免费观看| 久久久精品免费免费| 亚洲最大的成人av| 国产sm精品调教视频网站| 欧美色欧美亚洲另类二区| 国产欧美一区二区精品婷婷| 99久久99久久精品免费观看| 精品免费日韩av| 亚洲成人免费在线| 成人免费毛片a| 欧美videos中文字幕| 亚洲地区一二三色| eeuss鲁片一区二区三区在线观看| 日韩一区二区视频在线观看| 亚洲精品一二三| 国产成人免费在线| 日韩欧美www| 午夜国产精品影院在线观看| av电影在线观看一区| 国产午夜精品久久久久久久| 日韩高清不卡一区| 欧美日韩高清在线| 亚洲欧美日韩久久| www.色精品| 国产午夜精品久久| 国产精品99久久久久久宅男| 日韩一区二区三区三四区视频在线观看| 亚洲欧美日韩成人高清在线一区| 国内一区二区视频| 日韩欧美一二区| 免费国产亚洲视频| 欧美一区三区二区| 日本免费在线视频不卡一不卡二 | 蜜桃视频一区二区三区 | 精品一区二区三区免费毛片爱 | 国产大片一区二区| 欧美电影免费观看高清完整版在线 | 色乱码一区二区三区88| 国产精品三级在线观看| 国产成人精品三级| 国产欧美日韩在线看| 国产精品一区免费在线观看| 久久久久国产精品人| 国产一区二区三区久久悠悠色av| 亚洲精品在线电影| 国产一区二区三区美女| 久久精品视频在线免费观看| 国产传媒一区在线| 国产精品不卡一区二区三区| 色综合久久九月婷婷色综合| 丁香天五香天堂综合| 久久久www成人免费毛片麻豆| 国产精品一区二区久激情瑜伽| 久久品道一品道久久精品| 国产精品 日产精品 欧美精品| 国产亚洲精品福利| av爱爱亚洲一区| 亚洲国产一二三| 日韩精品一区二区三区在线播放 | 91小视频在线免费看| 亚洲麻豆国产自偷在线| 在线视频综合导航| 石原莉奈在线亚洲二区| 久久综合网色—综合色88| 国产v日产∨综合v精品视频| 亚洲免费毛片网站| 91精品国产一区二区| 国产一区三区三区| 17c精品麻豆一区二区免费| 在线亚洲一区观看| 久久精品久久99精品久久| 欧美国产日韩亚洲一区| 91麻豆蜜桃一区二区三区| 日韩电影在线一区| 欧美国产成人精品| 欧美日韩二区三区| 国产成人免费9x9x人网站视频| 亚洲男人都懂的|