I have a dataset consisting of fMRI images (from mice) which are divided into 4 groups (different drug dose levels applied). Each fMRI image is 4D, that means each voxel is a time series. For each fMRI image I want to extract one feature vector.
Now I want to use wavelet decomposition for feature extraction. In Matlab there exist no 4D wavelet decomposition, so I turn the 4D images into 3D by taking the average of the time series. Then I could apply 3D wavelet decomposition and taking the LL component as features, that means doing something like that:
WT = wavedec3(fMRI, 4, 'db4');
LL = WT.dec(1);
temp = cell2mat(LL);
feature_vector = temp(:);
Of course afterwards feature selection algorithms (like recursive feature elimination) could be applied to reduce dimensionality.
Another possibility would be to to the 3D wavelet decomposition for each 3D volume and extracting the LL component. This I could do for each time point and then stacking up the LL components to get a big feature vector.
What do you think of this approach? Are there better approaches?
Edit: Here is an image: https://www.dropbox.com/s/50gr2f1c66stcq4/tCut10_4D1c0_iso2238-brain.nii.gz?dl=0 I have found the following approach in a paper:
we decided to use the concatenation of the high-order sub-band coefficients from each decomposition as a feature vector in k-nearest neighbor classification
How can I get the high-order sub-band coefficients in Matlab (using e.g. wavedec3)? And what do they mean with each decomposition?
WT.dec(1)
is just the low pass component, i.e. you are not using any of the wavelet responses. $\endgroup$