频谱分析代码片段
2014-06-19 09:26
281 查看
ldcca_tms = img_To_4D_array('C:\Users\Administrator\Desktop\contrast\2014-05-20-12-16.img'); spm_tms = img_To_4D_array('C:\Users\Administrator\Desktop\contrast\no_phycaa.img'); % x = size(spm_tms,1); % y = size(spm_tms,2); % z = size(spm_tms,3); % % %spm_tms_1d = reshape(spm_tms ,[1,x*y*z] ); % % % x = size(ldcca_tms,1); % y = size(ldcca_tms,2); % z = size(ldcca_tms,3); % % % ldcca_tms_1d = reshape( ldcca_tms , [1,x*y*z] ); mask_ldcca_tms = ldcca_tms > 0; inv_mask_ldcca_tms = ~mask_ldcca_tms; mask_spm_tms = spm_tms > 0; inv_mask_spm_tms = ~mask_spm_tms; %% 先提取出被去噪去除的点的时间过程 实验结果,去除了435个点, % left_spm_tms = spm_tms(inv_mask_ldcca_tms); tmp_spm = spm_tms .* inv_mask_ldcca_tms; %>>这是最后的模板 mask_big_left_spm_tms = tmp_spm>0; % big_left_spm_tms = left_spm_tms(left_spm_tms>0); % aa = size(big_left_spm_tms) %% 利用我们的去噪算法,得到的新的点,一个点都没有增加 % left_ldcca_tms = ldcca_tms(ldcca_tms); tmp_ldcca = ldcca_tms .* inv_mask_spm_tms; %>>这是最后的模板 mask_big_left_ldcca_tms = tmp_ldcca > 0; % big_left_ldcca_tms = left_ldcca_tms( left_ldcca_tms>0 ); % bb = size(big_left_ldcca_tms) %% 提取被去除的点的时间过程 %--brain functional 4d data datacell_4d = load_untouch_nii('C:\Users\Administrator\Desktop\workspace\phycaa_plus_2104_03_27\func_3d.nii'); %datacell_4d = load_untouch_nii('F:\4Dfile\func_3d_PHYCAA_step1+2.nii'); ldim = size(datacell_4d.img); fullMsk = repmat( mask_big_left_spm_tms, [1,1,1,ldim(4)] ); left_spm_tms_2d = reshape( datacell_4d.img(fullMsk>0), [], ldim(4) ); inv_fullMsk = repmat( mask_spm_tms.*(~mask_big_left_spm_tms), [1,1,1,ldim(4)] ); inv_left_spm_tms_2d = reshape( datacell_4d.img(inv_fullMsk>0), [], ldim(4) ); %% fft decomposition TR =2; % parameters for spectral estimation Fny = 0.5 * (1/ TR); % nyquist frequency NFFT = 2^nextpow2(70); % Next power of 2 from length of time-axis f = Fny*linspace(0,1,NFFT/2+1); % fourier data corresponds to these frequency points numlow = sum( f <= 0.1 ); % count the number of frequency points below threshold % ========================================================================= % get ordered spectral estimates powHgh =[]; powLow =[]; inv_powHgh=[]; inv_powLow=[]; i=1; %for i=1:size(left_spm_tms_2d,1) % get sum of spectral power values, for f > dataInfo.FreqCut powMat = abs( fft( double(left_spm_tms_2d) , NFFT ,2) ) / 70; powMat = powMat(:,1:NFFT/2+1); powHgh = sum( sqrt(powMat(:,numlow+1:end)), 2 ); powLow = sum( sqrt(powMat(:,1:numlow)), 2 ); %end mean_powHgh = mean(powHgh); median_powHgh = median(powHgh); min_powHgh = min(powHgh); mean_powLow = mean(powLow); median_powLow = median(powLow); min_powLow = min(powLow); %for i=1:size(inv_left_spm_tms_2d,1) % get sum of spectral power values, for f > dataInfo.FreqCut inv_powMat = abs( fft( double(inv_left_spm_tms_2d) , NFFT ,2) ) / 70; inv_powMat = inv_powMat(:,1:NFFT/2+1); inv_powHgh = sum( sqrt(inv_powMat(:,numlow+1:end)), 2 ); inv_powLow = sum( sqrt(inv_powMat(:,1:numlow)), 2 ); %end inv_mean_powHgh = mean(inv_powHgh); inv_median_powHgh = median(inv_powHgh); inv_min_powHgh = min(inv_powHgh); inv_mean_powLow = mean(inv_powLow); inv_median_powLow = median(inv_powLow); inv_min_powLow = min(inv_powLow); %vol_4d(:,:,slice,:);
相关文章推荐
- 频谱分析代码片段2
- AE分析工具,代码片段
- 分析2个代码片段(数值范围,类型转换相关)
- jq片段代码分析........
- Android事件分发机制代码片段分析
- 互联网业界经典 经典业务 经典需求 经典分析 经典方案 经典代码 经典呈现 经典片段 PHP经典案例
- 图像傅里叶频谱-opencv代码-频谱图分析
- jq片段代码分析
- ORACLE常见错误代码的分析与解决(一)
- ORACLE常见错误代码的分析与解决(一)
- ORACLE常见错误代码的分析与解决(二)
- 一个文件留言本代码分析
- osworkflow的config代码分析
- 在VC中获取摄像头视频的代码片段
- w3l.exe逆向之反汇编代码分析篇
- ORACLE常见错误代码的分析与解决(三)
- ORACLE常见错误代码的分析与解决(三)
- VC单文档切分动态更换多视图代码分析
- IntelliJ IDEA 4 新特性 之 On-the-Fly Code Analysis(动态代码分析)
- little c原代码分析[一]