|
a |
|
b/Feature Extraction/extractDWT.m |
|
|
1 |
function X=extractDWT(x_train,startS,endS,wStep,wRange) |
|
|
2 |
% x_train = input signal |
|
|
3 |
% startS = from second |
|
|
4 |
% endS = end second |
|
|
5 |
% wStep = overlapping |
|
|
6 |
% wRange = window size |
|
|
7 |
FS=128; |
|
|
8 |
|
|
|
9 |
N=size(x_train,3); |
|
|
10 |
sz=floor((endS-(startS+wRange))/wStep)+1; |
|
|
11 |
X=zeros(sz*140,2); |
|
|
12 |
cn=0; |
|
|
13 |
for i=1:N |
|
|
14 |
|
|
|
15 |
for sig=startS:wStep:endS-wRange |
|
|
16 |
|
|
|
17 |
sW=sig*FS+1; |
|
|
18 |
eW=(sig+wRange)*FS; |
|
|
19 |
|
|
|
20 |
C3Sig=x_train(sW:eW,1,i); |
|
|
21 |
C4Sig=x_train(sW:eW,3,i); |
|
|
22 |
|
|
|
23 |
waveletFunction = 'db4'; |
|
|
24 |
waveletLevel=3; |
|
|
25 |
[wCoe,L] = wavedec(C3Sig,waveletLevel,waveletFunction); |
|
|
26 |
C3D3 = detcoef(wCoe,L,3); % Mu |
|
|
27 |
|
|
|
28 |
|
|
|
29 |
[wCoe,L] = wavedec(C4Sig,waveletLevel,waveletFunction); |
|
|
30 |
C4D3 = detcoef(wCoe,L,3); % Mu |
|
|
31 |
|
|
|
32 |
cn=cn+1; |
|
|
33 |
% Mean of the absolute values |
|
|
34 |
X(cn,1)=sum(C3D3.^2)/numel(C3D3); |
|
|
35 |
X(cn,2)=sum(C4D3.^2)/numel(C4D3); |
|
|
36 |
end |
|
|
37 |
end |
|
|
38 |
|
|
|
39 |
end |