clear;
clc;
close all;
D = dir('E:\MATALAB数据\眼电数据\路雪(可用)\test\*.cnt');
for i = 1 : length(D)
eeg(i)=loadcnt(['E:\MATALAB数据\眼电数据\路雪(可用)\test\' D(i).name]);
end
for i = 1:28
eval(['x',num2str(i),'=','eeg(i)',';']) %eval函数就是将括号内的字符串看成语句并运行
eval(['raw_EEG',num2str(i),'=','eeg(i)','.data',';'])
end
eventout1= eeg_eventformat(x1.event, 'struct');
eventout2= eeg_eventformat(x2.event, 'struct');
eventout3= eeg_eventformat(x3.event, 'struct');
eventout4= eeg_eventformat(x4.event, 'struct');
eventout5= eeg_eventformat(x5.event, 'struct');
eventout6= eeg_eventformat(x6.event, 'struct');
eventout7= eeg_eventformat(x7.event, 'struct');
eventout8= eeg_eventformat(x8.event, 'struct');
eventout9= eeg_eventformat(x9.event, 'struct');
eventout10= eeg_eventformat(x10.event, 'struct');
eventout11= eeg_eventformat(x11.event, 'struct');
eventout12= eeg_eventformat(x12.event, 'struct');
eventout13= eeg_eventformat(x13.event, 'struct');
eventout14= eeg_eventformat(x14.event, 'struct');
eventout15= eeg_eventformat(x15.event, 'struct');
eventout16= eeg_eventformat(x16.event, 'struct');
eventout17= eeg_eventformat(x17.event, 'struct');
eventout18= eeg_eventformat(x18.event, 'struct');
eventout19= eeg_eventformat(x19.event, 'struct');
eventout20= eeg_eventformat(x20.event, 'struct');
eventout21= eeg_eventformat(x21.event, 'struct');
eventout22= eeg_eventformat(x22.event, 'struct');
eventout23= eeg_eventformat(x23.event, 'struct');
eventout24= eeg_eventformat(x24.event, 'struct');
eventout25= eeg_eventformat(x25.event, 'struct');
eventout26= eeg_eventformat(x26.event, 'struct');
eventout27= eeg_eventformat(x27.event, 'struct');
eventout28= eeg_eventformat(x28.event, 'struct');
X1=raw_EEG1(1,:);
X2=raw_EEG2(1,:);
X3=raw_EEG3(1,:);
X4=raw_EEG4(1,:);
X5=raw_EEG5(1,:);
X6=raw_EEG6(1,:);
X7=raw_EEG7(1,:);
X8=raw_EEG8(1,:);
X9=raw_EEG9(1,:);
X10=raw_EEG10(1,:);
X11=raw_EEG11(1,:);
X12=raw_EEG12(1,:);
X13=raw_EEG13(1,:);
X14=raw_EEG14(1,:);
X15=raw_EEG15(1,:);
X16=raw_EEG16(1,:);
X17=raw_EEG17(1,:);
X18=raw_EEG18(1,:);
X19=raw_EEG19(1,:);
X20=raw_EEG20(1,:);
X21=raw_EEG21(1,:);
X22=raw_EEG22(1,:);
X23=raw_EEG23(1,:);
X24=raw_EEG24(1,:);
X25=raw_EEG25(1,:);
X26=raw_EEG26(1,:);
X27=raw_EEG27(1,:);
X28=raw_EEG28(1,:);
%lab=[eventout.stimtype;eventout.offset]';
%eval(['x',num2str(i),'=','eeg(i)',';'])
for i=1:28
eval(['EV','=','eventout',num2str(i),';']); %EV只是作为一个中间的过度变量
%初步提取lab标签
eval(['lab',num2str(i),'=','[EV.stimtype;EV.offset]''',';']); %字符里面的单引号用双引号来表达
eval(['sum(i)','=','max','(','size','(','lab',num2str(i),')',')',';']);
end
Fs=250; %%一秒钟提取250个点,每个信号10秒
for j=1:28
r(j)=0;
for i=1:sum(j)
if (eval(['lab',num2str(j),'(i,1)','==','1','||','lab',num2str(j),'(i,1)','==','2','||','lab',num2str(j),'(i,1)','==','3',';']))
%if(Lab(i,1)==1||Lab(i,1)==2||Lab(i,1)==3)
eval(['label',num2str(j),'(r+1,1)','=','lab',num2str(j),'(i,1)',';']);
eval(['label',num2str(j),'(r+1,2)','=','floor','(','lab',num2str(j),'(i,2)',')',';']);
r(j)=r(j)+1;
%label(r+1,1)=LaBel(i,1);
%label(r+1,2)=floor(LaBel(i,2));
%r=r+1;
end
end
end
f_order=32;%Fir滤波器抽头数(增加的窗函数的长度)
f1=0.01;
f2=10;
b=fir1(f_order,[f1/(Fs/2) f2/(Fs/2)],'bandpass');
w_name='Haar';
for j=1:28
eval(['LA',num2str(j),'=','label',num2str(j),'(1:r(j),2)''',';']);
eval(['LB',num2str(j),'=','LA',num2str(j),'+2499',';']);
eval(['LC1',num2str(j),'=','label',num2str(j),'(1:r(j),1)',';']);
% LA=label(1:r,2)'
% LB=LA+2499;
% LC2=label(1:r,1);
end
for j=1:28 %从j开始,有五组
for i=1:r(j)
eval(['xs',num2str(j),'(i,:)','=','X',num2str(j),'(','LA',num2str(j),'(i)',':','LB',num2str(j),'(i)',')',';']);
eval(['xf',num2str(j),'(i,:)','=','filtfilt','(','b,1,','double','(','xs',num2str(j),'(i,:)',')',')',';']);
%xs(i,:)=XX(LA(i):LB(i));
%xf(i,:)=filtfilt(b,1,double(xs(i,:)));%对每个单独的信号单独滤波
eval(['x_f',num2str(j),'(i,:)','=','xf',num2str(j),'(i,:)','/','max','(','abs','(','xf',num2str(j),'(i,:)',')',')',';']);
eval(['[','c_x',num2str(j),',','l_x',num2str(j),']','=','wavedec','(','x_f',num2str(j),'(i,:),','8,','w_name',')',';']);
%x_f(i,:)=xf(i,:)/max(abs(xf(i,:)));%对信号进行归一化
%[c_x,l_x]=wavedec(x_f(i,:),8,w_name);%对信号xs作8尺度的一维分解
%[c_y,l_y]=wavedec(ys,8,w_name);%对信号xs作8尺度的一维分解
%x_cd4(i,:)=detcoef(c_x,l_x,4);%用于提取一维第4层高频系数
eval(['B1',num2str(j),'(i,:)','=','appcoef','(','c_x',num2str(j),',l_x',num2str(j),',w_name,4',')',';']);
eval(['T1',num2str(j),'(i,:)','=','detcoef','(','c_x',num2str(j),',l_x',num2str(j),',4',')',';']);
%B2(i,:)=appcoef(c_x,l_x,w_name,4);%用于提取尺度2下的低频系数
%T2(i,:)=detcoef(c_x,l_x,4);%用于提取一维第4层高频系数
%y_cd4(i,:)=appcoef(c_y,l_y,w_name,4);%用于提取尺度2下的低频系数
%Pxx1(i,:)=psd(x_f(i,:),Nfft,Fs,window); %函数psd利用Welch法估计一个信号自功率谱密度
%s5(i,:)=10*log10( Pxx1(i,:));
end
end
B1=[B11;B12;B13;B14;B15;B16;B17;B18;B19;B110;B111;B112;B113;B114;B115;B116;B117;B118;B119;B120;B121;B122;B123;B124;B125;B126;B127;B128];
T1=[T11;T12;T13;T14;T15;T16;T17;T18;T19;T110;T111;T112;T113;T114;T115;T116;T117;T118;T119;T120;T121;T122;T123;T124;T125;T126;T127;T128];
LC1=[LC11;LC12;LC13;LC14;LC15;LC16;LC17;LC18;LC19;LC110;LC111;LC112;LC113;LC114;LC115;LC116;LC117;LC118;LC119;LC120;LC121;LC122;LC123;LC124;LC125;LC126;LC127;LC128];
save TestData3signal B1 T1 LC1
%还是有问题,出来的数据全部都一样的
评论0
最新资源