Functions | Variables

unlock/analysis/andres/Code/photodiodeMain.m File Reference

Functions

Check if fileName is a path or
a simple file name if 
isempty (strfind(fileName,'\'))%only filename if exist(fullfile(dirs.DataIn
else warning ('File%s does not exist in the specified path', fileName)
end else complete path if exist (fullfile(fileName),'file') diodeData
else warning ('File%s does not exist in the%s folder', fileName, dirs.DataIn)%end end%Checking rows are for channels and create[d1
else end Getting the stim
frequencies if 
strfind (fileName,'DiodeData_15') stimFreq
elseif strfind (fileName,'DiodeData_sweep') stimFreq
 title (fileName,'FontWeight','Bold') xlabel('Sec'
 ylabel ('PhotoDiode State','FontWeight','Bold') xRange
Get start of stimulation (flickering) fprintf('Get ''start''of stimulation for freq.%i\n'
Get start of stimFreq (1))[xRange(1)
Get start of Extract sections
for each 
freq (time boundaries) if strfind(fileName
 SweepTimes (iFreq-1,:)
end else fprintf ('Get ''end''of stimulation/flickering for freq.%i\n', stimFreq(1))[xRange(1
 plot (f, 10 *log10(pxx)) plot(f
pxx xlabel ('Frequency')
 ylabel ('dB')
 title (sprintf('Periodogram of photodiode%s', titleStr))
end Matlab save (sprintf('%s.mat', fullfile(dirs.DataOut, saveFilename)),'ptData','ptTime','ptInfo')
Comma Separated Values (CSV) photoDiode
Putting files in one for time
another for 
photodiode (so Excel can open it) csvwrite(sprintf('%s.csv'
Putting files in one for time
another for 
fullfile (dirs.DataOut, saveFilename))
Putting files in one for time
another for photoDiode 
fprintf ('\nSuccessfully saved all the files to%s as%s\n', dirs.DataOut, saveFilename) end function dirs
id C: (id Unlock)
Add path to chronux toolbox
otherwise 
disp ('No paths have been estalished') end%Set up path so code is accessible to Matlab addpath(dirs.helpers)
Add dir w my helpers addpath (dirs.DataIn)
Add dir w your Data path addpath (genpath(dirs.Code))
Add dir w your code path addpath (genpath(dirs.PTB))
Add dir w PsychToolbox code addpath (genpath(dirs.chronux))

Variables

 function [ptData, ptTime, ptInfo]
creates photo diode and time
vector0 Also a structure with
info regarding smapling 
frequency
creates photo diode and time
vector0 Also a structure with
info regarding smapling
flickering stimulation freq
and times for sweep analysis
INPUT 
fileName = 'C:\Users\Administrator\Documents\BU\Speechlab\Unlock\Data\raw\20131211-photodiode\DiodeData_15.mat'
Check if fileName is a path or
a simple file name if file 
diodeData = load(fullfile(dirs.DataIn,fileName))
else d2 = size(diodeData.y)
if d1 d2 diodeData y = diodeData.y'
 titleStr = '15'
Get name of file to save it strIndx = strfind(fileName,'DiodeData_15')
end saveStr = fileName(strIndx(end)+10:end-4)
 ptTime = diodeData.y(1,:)
Sampling frequency Fs = 1/(ptTime(3) - ptTime(2))
Extra analysis Plot data hFig = plot(ptTime, ptData)
 FontWeight
 Bold
 SweepTimes = zeros(length(stimFreq),2)
Get start of Extract sections
for each DiodeData_sweep Get
right most boundary for 
iFreq
end Filter the data Filter params smpRate = Fs
 freqBand = [1 Fs/2]
 filterOrder = 2
 filterType = 'butter'
Filtering dataFiltered = setFilterParams(freqBand, filterType, filterOrder, smpRate) true
 ptData = filtfilt(filtParams.b,filtParams.a,ptData)
Running periodogram [pxx, f] = periodogram(ptData,[],[],Fs)
Info structure with info
required for analysis 
ptInfo = struct('nameFile',fileName,'HighStates',8,'LowStates',0,'sampFreq',Fs,'StimTimeSec',3,'StimRestTimeSec',3','StimFreq',stimFreq,'SweepTimes',SweepTimes)
Saving files if~dataFiltered saveFilename = ['PhotoDiodeDataAndTimes-',saveStr]
Putting files in column
Putting files in one for time vector
Putting files in one for time
another for photoDiode data
input and 
output
Putting files in one for time
another for photoDiode data
input and based on system 
hostname [~, host] = system('hostname')
 host = deblank(host)
Dir w data analysis Code dirs helpers = 'C:\Users\salacho\Documents\Code\helpers'
Dir w helpers analysis Code dirs DataIn = 'C:\Users\salacho\Documents\Analysis\unlock'
Local Dir to output analyzed
datafiles and figures too dirs 
BCIparams = ''
Add path where all BCIparams
are located dirs 
PTB = 'C:\Users\salacho\Documents\MATLAB\toolbox\Psychtoolbox'
Add path to PsychToolbox dirs chronux = 'C:\Users\salacho\Documents\MATLAB\toolbox\chronux'

Function Documentation

Add dir w my helpers addpath ( dirs.  DataIn  ) 
Add dir w your Data path addpath ( genpath(dirs.Code)   ) 
Add dir w your code path addpath ( genpath(dirs.PTB  ) 
Add dir w PsychToolbox code addpath ( genpath(dirs.chronux  ) 
id C: ( id  Unlock  )  [virtual]
Add path to chronux toolbox otherwise disp ( 'No paths have been estalished'   ) 
end else complete path if exist ( fullfile(fileName)  ,
'file  
)
Putting files in one for time another for photoDiode fprintf ( '\nSuccessfully saved all the files to%s as%s\n'  ,
dirs.  DataOut,
saveFilename   
)
end else fprintf ( 'Get ''end''of stimulation/flickering for freq.%i\n'  ,
stimFreq(1)   
)
Get start of Extract sections for each freq ( time  boundaries  ) 
Putting files in one for time another for fullfile ( dirs.  DataOut,
saveFilename   
)
Check if fileName is a path or a simple file name if isempty ( strfind(fileName,'\')   ) 
Putting files in one for time another for photodiode ( so Excel can open  it  ) 
plot ( ,
10 *  log10pxx 
)
end Matlab save ( sprintf('%s.mat', fullfile(dirs.DataOut, saveFilename))  ,
'ptData ,
'ptTime ,
'ptInfo  
)
Get start of stimFreq (  ) 
Get start of stimulation ( flickering   ) 
elseif strfind ( fileName  ,
'DiodeData_sweep'   
)
else end Getting the stim frequencies if strfind ( fileName  ,
'DiodeData_15'   
)
SweepTimes ( iFreq 1,
 
)
title ( fileName  ,
'FontWeight ,
'Bold  
)
title ( sprintf('Periodogram of photodiode%s', titleStr  ) 
Comma Separated Values ( CSV   ) 
else warning ( 'File%s does not exist in the%s folder'  ,
fileName  ,
dirs.  DataIn 
)
else warning ( 'File%s does not exist in the specified path'  ,
fileName   
)
pxx xlabel ( 'Frequency'   ) 
ylabel ( 'dB'   ) 
ylabel ( 'PhotoDiode State'  ,
'FontWeight ,
'Bold  
)

Variable Documentation

Local Dir to output analyzed datafiles and figures too dirs BCIparams = ''
Add path to PsychToolbox dirs chronux = 'C:\Users\salacho\Documents\MATLAB\toolbox\chronux'
Putting files in column
else d2 = size(diodeData.y)
Filtering dataFiltered = setFilterParams(freqBand, filterType, filterOrder, smpRate) true
Dir w helpers analysis Code dirs DataIn = 'C:\Users\salacho\Documents\Analysis\unlock'
Check if fileName is a path or a simple file name if file diodeData = load(fullfile(dirs.DataIn,fileName))
Check if fileName is a path or a simple file name if fileName = 'C:\Users\Administrator\Documents\BU\Speechlab\Unlock\Data\raw\20131211-photodiode\DiodeData_15.mat'
filterType = 'butter'
freqBand = [1 Fs/2]
creates photo diode and time vector0 Also a structure with info regarding smapling frequency
Sampling frequency Fs = 1/(ptTime(3) - ptTime(2))
Initial value:
 photodiodeMain(fileName)
% [ptData,ptTime,ptInfo] = photodiodeMain(fileName)
%
% Loads and parses data
Dir w data analysis Code dirs helpers = 'C:\Users\salacho\Documents\Code\helpers'
Extra analysis Plot data hFig = plot(ptTime, ptData)
host = deblank(host)
Putting files in one for time another for photoDiode data input and based on system hostname[~, host] = system('hostname')
Get start of Extract sections for each DiodeData_sweep Get right most boundary for iFreq
Initial value:
 2:length(stimFreq)+1
        fprintf('Get ''end'' of stimulation for freq. %i\n',stimFreq(iFreq-1))
        [xRange(iFreq),~] = ginput(1)
Putting files in one for time another for photoDiode data input and output
Running periodogram[pxx, f] = periodogram(ptData,[],[],Fs)
Add path where all BCIparams are located dirs PTB = 'C:\Users\salacho\Documents\MATLAB\toolbox\Psychtoolbox'
ptData = filtfilt(filtParams.b,filtParams.a,ptData)
Info structure with info required for analysis ptInfo = struct('nameFile',fileName,'HighStates',8,'LowStates',0,'sampFreq',Fs,'StimTimeSec',3,'StimRestTimeSec',3','StimFreq',stimFreq,'SweepTimes',SweepTimes)
else saveFilename = ['PhotoDiodeDataAndTimes-',saveStr]
end saveStr = fileName(strIndx(end)+10:end-4)
end Filter the data Filter params smpRate = Fs
strIndx = strfind(fileName,'DiodeData_15')
end else SweepTimes = zeros(length(stimFreq),2)
titleStr = '15'
Putting files in one for time vector