% process_data_Gameplay clear all; close; clc addpath( genpath( 'D:\cDATA\Util\matlab_codes' ) ) %% Event name info. % % TRIGGER_ODDBALL_START = 20; % TRIGGER_ODDBALL_STANDARD_EVENT = 22; % TRIGGER_ODDBALL_RARE_EVENT = 25; % TRIGGER_ODDBALL_DONE = 29; % % TRIGGER_GAME_SHOOT_BUTTON = 90; % TRIGGER_GAME_PLAYER_CRASH_WALL = 91; % TRIGGER_GAME_PLAYER_CRASH_ENEMY = 92; % TRIGGER_GAME_COLLECT_STAR = 93; % TRIGGER_GAME_COLLECT_AMMO = 94; % TRIGGER_GAME_MISSILE_HIT_ENEMY = 97; % TRIGGER_GAME_START = 99; % TRIGGER_GAME_OVER = 100; % %% Filtering % % flist = dir( 'raw_*.mat' ); % % for fn = 1 : size( flist, 1 ) % % fname = flist( fn ).name; % % load( fname ) % % % --------------------------------------------------------------------- % % fs = raw.srate; % % event = raw.event; % t_event = []; % for t = 1 : length( event ) % temp = event( t ).type; % if ~strcmp(temp,'boundary') % t_event( 1, t ) = event( t ).latency; % t_event( 2, t ) = str2num( temp( 2 : end ) ); % end % clear temp % end; clear t % event = t_event; % clear t_event % % ch_info = raw.chanlocs; % % data = raw.data; % data = double( data( 1 : 63, : ) ); % % % --------------------------------------------------------------------- % % tic % try % data_IS = fct_bandpass_parfor( data, fs, [ 0.01, 0.1 ], 'fir1', 3 * fix( fs / 0.01 ) ); % catch % disp( [ 'Decreasing filter order to X 2' ] ) % try % data_IS = fct_bandpass_parfor( data, fs, [ 0.01, 0.1 ], 'fir1', 2 * fix( fs / 0.01 ) ); % catch % disp( [ 'Decreasing filter order to X 1' ] ) % data_IS = fct_bandpass_parfor( data, fs, [ 0.01, 0.1 ], 'fir1', 1 * fix( fs / 0.01 ) ); % end % end % toc % disp( 'Infraslow bandpass' ) % % tic % data_D = fct_bandpass_parfor( data, fs, [ 1, 3 ], 'fir1', 7 * fix( fs / 1 ) ); % toc % disp( 'Delta bandpass' ) % % tic % data_T = fct_bandpass_parfor( data, fs, [ 5, 7 ], 'fir1', 7 * fix( fs / 5 ) ); % toc % disp( 'Theta bandpass' ) % % tic % data_A = fct_bandpass_parfor( data, fs, [ 9, 12 ], 'fir1', 7 * fix( fs / 9 ) ); % toc % disp( 'Alpha bandpass' ) % % tic % data_B1 = fct_bandpass_parfor( data, fs, [ 14, 20 ], 'fir1', 7 * fix( fs / 14 ) ); % toc % disp( 'Beta1 bandpass' ) % % tic % data_B2 = fct_bandpass_parfor( data, fs, [ 22, 30 ], 'fir1', 7 * fix( fs / 22 ) ); % toc % disp( 'Beta2 bandpass' ) % % clear data % data_IS = single( data_IS ); % data_D = single( data_D ); % data_T = single( data_T ); % data_A = single( data_A ); % data_B1 = single( data_B1 ); % data_B2 = single( data_B2 ); % % % ------------------------------------------------------------------------- % % save( [ 'filt', fname( 4 : end ) ], 'fs', 'event', 'ch_info', 'data_IS', 'data_D', 'data_T', 'data_A', 'data_B1', 'data_B2' ) % clear fs event ch_info data_IS data_D data_T data_A data_B1 data_B2 % clear raw % clear fname % % disp( [ num2str( fn ), ' / ', num2str( size( flist, 1 ) ) ] ) % % end; clear fn % % clear flist % %% Down-sampling % % flist = dir( 'filt_*.mat' ); % % for fn = 1 : size( flist, 1 ) % % fname = flist( fn ).name; % % load( fname ) % % fss = round( fs / 1 );% final data is sampled per fss % % event( 1, : ) = round( event( 1, : ) / fss ); % % for freq = 1 : 6 % % if freq == 1 % data = data_IS; % elseif freq == 2 % data = data_D; % elseif freq == 3 % data = data_T; % elseif freq == 4 % data = data_A; % elseif freq == 5 % data = data_B1; % elseif freq == 6 % data = data_B2; % end % % data_ds = []; % for ch = 1 : size( data, 1 ) % t_data = data( ch, : ); % t_data = [ t_data, NaN( 1, ceil( size( t_data, 2 ) / fss ) * fss - size( t_data, 2 ) ) ]; % t_data = reshape( t_data, [ fss, size( t_data, 2 ) / fss ] ); % if freq == 1 % t_data = mean( t_data, 1, 'omitnan' ); % else % t_data = mean( t_data .^ 2, 1, 'omitnan' ); % end % data_ds( ch, : ) = t_data; % clear t_data % end; clear ch % data = data_ds; % clear data_ds % % data = double( data ); % % if freq == 1 % data_IS = data; % elseif freq == 2 % data_D = data; % elseif freq == 3 % data_T = data; % elseif freq == 4 % data_A = data; % elseif freq == 5 % data_B1 = data; % elseif freq == 6 % data_B2 = data; % end % % clear data % % end; clear freq % % save( [ 'proc', fname( 5 : end ) ], 'fs', 'fss', 'event', 'ch_info', 'data_IS', 'data_D', 'data_T', 'data_A', 'data_B1', 'data_B2' ) % clear fss % clear fs event ch_info data_IS data_D data_T data_A data_B1 data_B2 % clear fname % % end; clear fn %