Home > eeg > egis > scripts > image_eg_phase.m

image_eg_phase

PURPOSE ^

status = = image_eeg_coherence(freqs,dimen,obs,paging,plot_res,ref_chan,coherencefname);

SYNOPSIS ^

function status = image_eeg_coherence(freqs,dimen,obs,paging,plot_res,ref_chan,coherencefname);

DESCRIPTION ^

status = = image_eeg_coherence(freqs,dimen,obs,paging,plot_res,ref_chan,coherencefname);

freqs = frequencies to plot, e.g. [3:7 10] is 3 4 5 6 and 7 and 10 
 [3:0.5:5] is 3 , 3.5 4,4.5,5, default is 5:1:20 
dimen = dimensions of image e.g., [2 3] default is [sqrt(size(freqs,2)] sqrt(size(freqs,2) 
obs = observations (default is all)
paging = 'byobs' or 'cross' default is 'byobs', cross means frequencies
    are columns and observations are rows. 
    if 'cross' is selected the output is 
    image.o (observation nums) .f (freqs).coh.img
    if 'byobs' is selected the output is 
    obs_label.f (freqs) .coh.img
plot_res = plot resolution e.g., 80 default is 50
ref_chan = channel to plot coherence w/respect to (default is 73)
coherencefname = coherencefilename (can be gui by skipping)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function status = image_eeg_coherence(freqs,dimen,obs,paging,plot_res,ref_chan,coherencefname);
0002 %status = = image_eeg_coherence(freqs,dimen,obs,paging,plot_res,ref_chan,coherencefname);
0003 %
0004 %freqs = frequencies to plot, e.g. [3:7 10] is 3 4 5 6 and 7 and 10
0005 % [3:0.5:5] is 3 , 3.5 4,4.5,5, default is 5:1:20
0006 %dimen = dimensions of image e.g., [2 3] default is [sqrt(size(freqs,2)] sqrt(size(freqs,2)
0007 %obs = observations (default is all)
0008 %paging = 'byobs' or 'cross' default is 'byobs', cross means frequencies
0009 %    are columns and observations are rows.
0010 %    if 'cross' is selected the output is
0011 %    image.o (observation nums) .f (freqs).coh.img
0012 %    if 'byobs' is selected the output is
0013 %    obs_label.f (freqs) .coh.img
0014 %plot_res = plot resolution e.g., 80 default is 50
0015 %ref_chan = channel to plot coherence w/respect to (default is 73)
0016 %coherencefname = coherencefilename (can be gui by skipping)
0017 %
0018 if nargin < 8
0019     [fid, fname, pathname] = get_fid('rb');
0020 else
0021     fid = fopen(coherencefname,'rb');
0022     pathname = [];
0023 end;
0024 version = fread(fid,1,'int16');
0025 if version ~= -2
0026     error('this is not a coherence file');
0027 end;
0028  [nfiles,obs_labels,Epoch,Window_Length,NEpoch,Nbad_chan,bad_chan,ref_flag,reference,NChan,NFreq] = rd_anal_hdr(fid);
0029 if nargin == 0
0030     freqs = [5:1:20];
0031     obs = [1:nfiles];
0032     dimen = [sqrt(size(freqs,2)) sqrt(size(freqs,2))];
0033     paging = 'byobs';
0034     plot_res = 50;
0035     ref_chan = 73;
0036 end;
0037 if nargin == 1
0038     obs = [1:nfiles];
0039     dimen = [sqrt(size(freqs,2)) sqrt(size(freqs,2))];
0040     paging = 'byobs';
0041     plot_res = 50;
0042     ref_chan = 73;
0043 end;        
0044 if nargin == 2
0045     obs = [1:nfiles];
0046     paging = 'byobs';
0047     plot_res = 50;
0048     ref_chan = 73;
0049 end;    
0050 if nargin == 3
0051     paging = 'byobs';
0052     plot_res = 50;
0053     ref_chan = 73;
0054 end;
0055 if nargin == 4
0056     plot_res = 50;
0057     ref_chan = 73;
0058 end;
0059 if nargin == 5
0060     ref_chan = 73;
0061 end;
0062 if isempty(paging)
0063     paging = 'byobs';
0064 end
0065 if isempty(plot_res)
0066     plot_res = 50;
0067 end;
0068 if isempty(dimen)
0069     dimen = [sqrt(size(freqs,2)) sqrt(size(freqs,2))];
0070 end
0071 
0072 if isempty(obs)
0073     obs = [1:nfiles];
0074 end;
0075 if isempty(ref_chan)
0076     ref_chan = 73;
0077 end;
0078 
0079 obs_mask = zeros(1,nfiles);
0080 obs_mask(obs) = ones(1,size(obs,2));
0081 ch_pair_indices;
0082 if strcmp(paging,'byobs')
0083     for i = 1:nfiles
0084         if obs_mask(i) > 0 
0085         avgcoherence = fread(fid,[NChan(i),NFreq(i)],'float');
0086         avgcoherence = avgcoherence';
0087         bins = freqs*Epoch(i) + ones(1,size(freqs,2));
0088         bchan = bad_chan(i,find(bad_chan(i,:)));
0089         imagename = [pathname deblank(setstr(obs_labels(i,:))) '.f' int2str(freqs) '.coh'];
0090         pchan = chpair2nchan(NChan(i));
0091         cohplt = zeros(bins,pchan);
0092         for i = 1:pchan
0093             cohplt(bins,i) = avgcoherence(bins,chpair(ref_chan,i));
0094         end;
0095         make_a_image(cohplt(bins,:),bchan,plot_res,dimen(1),dimen(2),imagename);
0096         else
0097         skip_bytes = NChan(i)*NFreq(i)*4;
0098         fseek(fid,skip_bytes,'cof');
0099         end;
0100     end;
0101 elseif strcmp(paging,'cross') 
0102     image_binary = zeros(dimen(1)*plot_res,dimen(2)*plot_res);
0103     iff = 1;
0104     for i = 1:nfiles
0105         if obs_mask(i) > 0 
0106         avgcoherence = fread(fid,[NChan(i),NFreq(i)],'float');
0107         avgcoherence = avgcoherence';
0108         bins = freqs*Epoch(i) + ones(1,size(freqs,2));
0109         bchan = bad_chan(i,find(bad_chan(i,:)));
0110         pchan = chpair2nchan(NChan(i));
0111         for i = 1:pchan
0112             cohplt(bins,i) = avgcoherence(bins,chpair(ref_chan,i));
0113         end;
0114         image_binary((iff-1)*plot_res+1:iff*plot_res,:) = make_a_image(cohplt(bins,:),bchan,plot_res,1,size(bins,2),[]);
0115         iff = iff + 1;
0116         else
0117         skip_bytes = NChan(i)*NFreq(i)*4;
0118         fseek(fid,skip_bytes,'cof');
0119         end;
0120     end;
0121     imagename = [pathname 'image.o' int2str(obs) '.f' int2str(freqs) '.coh.img'];
0122     ifid = fopen(imagename,'wb');
0123     if ifid < 0
0124         fclose('all');
0125         error('file open for image failed');
0126     end;
0127     num_written = fwrite(ifid, size(image_binary), 'float');
0128     if num_written ~= 2
0129             error('Failed to write header info');
0130     end 
0131 
0132     num_written = fwrite(ifid,image_binary','float');
0133     if num_written ~= size(image_binary,1)*size(image_binary,2)
0134         error('write-out failed')
0135     end;
0136 end;    
0137 status = 1;
0138 
0139 
0140 
0141 
0142 
0143 
0144 
0145

Generated on Wed 20-Sep-2023 04:00:50 by m2html © 2003