⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cntopen.m

📁 matlab数字信号处理工具箱
💻 M
📖 第 1 页 / 共 2 页
字号:
function [CNT,h,e]=cntopen(arg1,PERMISSION,CHAN,arg4,arg5,arg6)
% CNTOPEN opens neuroscan files (but does not read the data). 
% However, it is recommended to use SOPEN instead of CNTOPEN.
% For loading whole Neuroscan data files, use SLOAD. 
%
% see also: SLOAD, SOPEN, SREAD, SCLOSE, SEOF, STELL, SSEEK.

% HDR=cntopen(Filename, PERMISSION, [, ChanList ]);
%
% FILENAME 
% PERMISSION is one of the following strings 
%	'rb'	read 
% ChanList	(List of) Channel(s)
%		default=0: loads all channels

%	$Revision: 1.27 $
%	$Id: cntopen.m,v 1.27 2004/04/15 17:28:56 schloegl Exp $
%	Copyright (C) 1997-2003 by  Alois Schloegl
%	a.schloegl@ieee.org	

% This program is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License
% as published by the Free Software Foundation; either version 2
% of the  License, or (at your option) any later version.
% 
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
% 
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

if nargin<2, 
        PERMISSION='rb'; 
elseif ~any(PERMISSION=='b');
        PERMISSION = [PERMISSION,'b']; % force binary open. 
end;
if nargin<3, CHAN=0; end;

if isstruct(arg1),
	CNT=arg1;
	if CNT.FILE.OPEN,
                status=fseek(CNT.FILE.FID,0,'bof');	
                if status,
                        fprintf(CNT.FILE.stderr,'Warning CNTOPEN: I/O error in file %s\n',CNT.FileName);
                end;        
        else
		CNT.FILE.FID = fopen(CNT.FileName,PERMISSION,'ieee-le');          
		CNT.FILE.OPEN= 1;
	end;
else
	CNT.FileName = arg1;
        [CNT.FILE.Path,CNT.FILE.Name,ext]=fileparts(arg1);
        CNT.FILE.Ext = ext(2:end);
        CNT.FILE.stdout=1;
        CNT.FILE.stderr=2;
        CNT.FILE.FID = fopen(CNT.FileName,PERMISSION,'ieee-le');          
	if CNT.FILE.FID<0,
		fprintf(2,'Error CNTOPEN: file %s not found.\n',CNT.FileName); 
		return;
	end;
	CNT.FILE.OPEN = 1;
end;

fid = CNT.FILE.FID;

%%%%% READ HEADER
if 0,   % old header
        %h.rev               = fread(fid,12,'char');
        %h.nextfile          = fread(fid,1,'long');
        %h.prevfile          = fread(fid,1,'long');
        h.type              = fread(fid,1,'char');
        h.id                = fread(fid,20,'char');
        h.oper              = fread(fid,20,'char');
        h.doctor            = fread(fid,20,'char');
        h.referral          = fread(fid,20,'char');
        h.hospital          = fread(fid,20,'char');
        h.patient           = fread(fid,20,'char');
        h.age               = fread(fid,1,'short');
        h.sex               = fread(fid,1,'char');
        h.hand              = fread(fid,1,'char');
        h.med               = fread(fid,20,'char');
        h.category          = fread(fid,20,'char');
        h.state             = fread(fid,20,'char');
        h.label             = fread(fid,20,'char');
        h.date              = fread(fid,10,'char');
        h.time              = fread(fid,12,'char');
        h.avgmode           = fread(fid,1,'char');
        h.review            = fread(fid,1,'char');
        h.nsweeps           = fread(fid,1,'ushort');
        h.compsweeps        = fread(fid,1,'ushort');
        h.pnts              = fread(fid,1,'ushort');
        h.nchannels         = fread(fid,1,'short');
        h.avgupdate         = fread(fid,1,'short');
        h.domain            = fread(fid,1,'char');
        h.rate              = fread(fid,1,'ushort');
        h.scale             = fread(fid,1,'double');
        h.veogcorrect       = fread(fid,1,'char');
        h.veogtrig          = fread(fid,1,'float');
        h.veogchnl          = fread(fid,1,'short');
        h.heogcorrect       = fread(fid,1,'char');
        h.heogtrig          = fread(fid,1,'float');
        h.heogchnl          = fread(fid,1,'short');
        h.baseline          = fread(fid,1,'char');
        h.offstart          = fread(fid,1,'float');
        h.offstop           = fread(fid,1,'float');
        h.reject            = fread(fid,1,'char');
        h.rejchnl1          = fread(fid,1,'char');
        h.rejchnl2          = fread(fid,1,'char');
        h.rejchnl3          = fread(fid,1,'char');
        h.rejchnl4          = fread(fid,1,'char');
        h.rejstart          = fread(fid,1,'float');
        h.rejstop           = fread(fid,1,'float');
        h.rejmin            = fread(fid,1,'float');
        h.rejmax            = fread(fid,1,'float');
        h.trigtype          = fread(fid,1,'char');
        h.trigval           = fread(fid,1,'float');
        h.trigchnl          = fread(fid,1,'char');
        h.trigisi           = fread(fid,1,'float');
        h.trigmin           = fread(fid,1,'float');
        h.trigmax           = fread(fid,1,'float');
        h.trigdur           = fread(fid,1,'float');
        h.dir               = fread(fid,1,'char');
        h.dispmin           = fread(fid,1,'float');
        h.dispmax           = fread(fid,1,'float');
        h.xmin              = fread(fid,1,'float');
        h.xmax              = fread(fid,1,'float');
        h.ymin              = fread(fid,1,'float');
        h.ymax              = fread(fid,1,'float');
        h.zmin              = fread(fid,1,'float');
        h.zmax              = fread(fid,1,'float');
        h.lowcut            = fread(fid,1,'float');
        h.highcut           = fread(fid,1,'float');
        h.common            = fread(fid,1,'char');
        h.savemode          = fread(fid,1,'char');
        h.manmode           = fread(fid,1,'char');
        h.ref               = fread(fid,20,'char');
        h.screen            = fread(fid,80,'char');
        h.seqfile           = fread(fid,80,'char');
        h.montage           = fread(fid,80,'char');
        h.heegcorrect       = fread(fid,1,'char');
        h.variance          = fread(fid,1,'char');
        h.acceptcnt         = fread(fid,1,'ushort');
        h.rejectcnt         = fread(fid,1,'ushort');
        h.reserved74        = fread(fid,74,'char');
       
        for n = 1:64,%h.nchannels
                e(n).lab            = fread(fid,10,'char');
                e(n).x_coord        = fread(fid,1,'float');
                e(n).y_coord        = fread(fid,1,'float');
                e(n).alpha_wt       = fread(fid,1,'float');
                e(n).beta_wt        = fread(fid,1,'float');
        end

        
else    % new header
        h.rev               = fread(fid,12,'char');
        h.nextfile          = fread(fid,1,'uint32');
        h.prevfile          = fread(fid,1,'uint32');
        h.type              = fread(fid,1,'char');
        h.id                = fread(fid,20,'char');
        h.oper              = fread(fid,20,'char');
        h.doctor            = fread(fid,20,'char');
        h.referral          = fread(fid,20,'char');
        h.hospital          = fread(fid,20,'char');
        h.patient           = fread(fid,20,'char');
        h.age               = fread(fid,1,'short');
        h.sex               = fread(fid,1,'char');
        h.hand              = fread(fid,1,'char');
        h.med               = fread(fid,20,'char');
        h.category          = fread(fid,20,'char');
        h.state             = fread(fid,20,'char');
        h.label             = fread(fid,20,'char');
        h.date              = fread(fid,10,'char');	%%%
        h.time              = fread(fid,12,'char');	%%%
        h.mean_age          = fread(fid,1,'float');
        h.stdev             = fread(fid,1,'float');
        h.n                 = fread(fid,1,'short');
        h.compfile          = fread(fid,38,'char');
        h.spectwincomp      = fread(fid,1,'float');
        h.meanaccuracy      = fread(fid,1,'float');
        h.meanlatency       = fread(fid,1,'float');
        h.sortfile          = fread(fid,46,'char');
        h.numevents         = fread(fid,1,'int');	%%%
        h.compoper          = fread(fid,1,'char');
        h.avgmode           = fread(fid,1,'char');
        h.review            = fread(fid,1,'char');
        h.nsweeps           = fread(fid,1,'ushort');
        h.compsweeps        = fread(fid,1,'ushort');
        h.acceptcnt         = fread(fid,1,'ushort');
        h.rejectcnt         = fread(fid,1,'ushort');
        h.pnts              = fread(fid,1,'ushort');
        h.nchannels         = fread(fid,1,'ushort');	%%%
        h.avgupdate         = fread(fid,1,'ushort');
        h.domain            = fread(fid,1,'char');
        h.variance          = fread(fid,1,'char');
        h.rate              = fread(fid,1,'ushort');	%%%
        h.scale             = fread(fid,1,'double');
        h.veogcorrect       = fread(fid,1,'char');
        h.heogcorrect       = fread(fid,1,'char');
        h.aux1correct       = fread(fid,1,'char');
        h.aux2correct       = fread(fid,1,'char');
        h.veogtrig          = fread(fid,1,'float');
        h.heogtrig          = fread(fid,1,'float');
        h.aux1trig          = fread(fid,1,'float');
        h.aux2trig          = fread(fid,1,'float');
        h.heogchnl          = fread(fid,1,'short');
        h.veogchnl          = fread(fid,1,'short');
        h.aux1chnl          = fread(fid,1,'short');
        h.aux2chnl          = fread(fid,1,'short');
        h.veogdir           = fread(fid,1,'char');
        h.heogdir           = fread(fid,1,'char');
        h.aux1dir           = fread(fid,1,'char');
        h.aux2dir           = fread(fid,1,'char');
        h.veog_n            = fread(fid,1,'short');
        h.heog_n            = fread(fid,1,'short');
        h.aux1_n            = fread(fid,1,'short');
        h.aux2_n            = fread(fid,1,'short');
        h.veogmaxcnt        = fread(fid,1,'short');
        h.heogmaxcnt        = fread(fid,1,'short');
        h.aux1maxcnt        = fread(fid,1,'short');
        h.aux2maxcnt        = fread(fid,1,'short');
        h.veogmethod        = fread(fid,1,'char');
        h.heogmethod        = fread(fid,1,'char');
        h.aux1method        = fread(fid,1,'char');
        h.aux2method        = fread(fid,1,'char');
        h.ampsensitivity    = fread(fid,1,'float');

        h.lowpass           = fread(fid,1,'char');	%%%
        h.highpass          = fread(fid,1,'char');	%%%
        h.notch             = fread(fid,1,'char');	%%%
        h.autoclipadd       = fread(fid,1,'char');
        h.baseline          = fread(fid,1,'char');	%%%
        h.offstart          = fread(fid,1,'float');
        h.offstop           = fread(fid,1,'float');
        h.reject            = fread(fid,1,'char');
        h.rejstart          = fread(fid,1,'float');
        h.rejstop           = fread(fid,1,'float');
        h.rejmin            = fread(fid,1,'float');
        h.rejmax            = fread(fid,1,'float');
        h.trigtype          = fread(fid,1,'char');
        h.trigval           = fread(fid,1,'float');
        h.trigchnl          = fread(fid,1,'char');	%%%
        h.trigmask          = fread(fid,1,'short');
        h.trigisi           = fread(fid,1,'float');
        h.trigmin           = fread(fid,1,'float');
        h.trigmax           = fread(fid,1,'float');
        h.trigdir           = fread(fid,1,'char');
        h.autoscale         = fread(fid,1,'char');
        h.n2                = fread(fid,1,'short');
        h.dir               = fread(fid,1,'char');
        h.dispmin           = fread(fid,1,'float');
        h.dispmax           = fread(fid,1,'float');
        h.xmin              = fread(fid,1,'float');
        h.xmax              = fread(fid,1,'float');
        h.automin           = fread(fid,1,'float');
        h.automax           = fread(fid,1,'float');
        h.zmin              = fread(fid,1,'float');
        h.zmax              = fread(fid,1,'float');
        h.lowcut            = fread(fid,1,'float');	%%%
        h.highcut           = fread(fid,1,'float');	%%%
        h.common            = fread(fid,1,'char');
        h.savemode          = fread(fid,1,'char');
        h.manmode           = fread(fid,1,'char');
        h.ref               = fread(fid,10,'char');
        h.rectify           = fread(fid,1,'char');
        h.displayxmin       = fread(fid,1,'float');
        h.displayxmax       = fread(fid,1,'float');
        h.phase             = fread(fid,1,'char');
        h.screen            = fread(fid,16,'char');
        
        h.calmode           = fread(fid,1,'short');
        h.calmethod         = fread(fid,1,'short');
        h.calupdate         = fread(fid,1,'short');
        h.calbaseline       = fread(fid,1,'short');
        h.calsweeps         = fread(fid,1,'short');
        h.calattenuator     = fread(fid,1,'float');
        h.calpulsevolt      = fread(fid,1,'float');
        h.calpulsestart     = fread(fid,1,'float');
        h.calpulsestop      = fread(fid,1,'float');
        h.calfreq           = fread(fid,1,'float');
        h.taskfile          = fread(fid,34,'char');
        h.seqfile           = fread(fid,34,'char');
        h.spectmethod       = fread(fid,1,'char');
        h.spectscaling      = fread(fid,1,'char');
        h.spectwindow       = fread(fid,1,'char');
        h.spectwinlength    = fread(fid,1,'float');
        h.spectorder        = fread(fid,1,'char');
        h.notchfilter       = fread(fid,1,'char');	%%%
        h.headgain          = fread(fid,1,'short');	%%%	
        h.additionalfiles   = fread(fid,1,'int');
        h.unused            = fread(fid,5,'char');
        h.fspstopmethod     = fread(fid,1,'short');
        h.fspstopmode       = fread(fid,1,'short');
        h.fspfvalue         = fread(fid,1,'float');
        h.fsppoint          = fread(fid,1,'short');
        h.fspblocksize      = fread(fid,1,'short');
        h.fspp1             = fread(fid,1,'ushort');
        h.fspp2             = fread(fid,1,'ushort');
        h.fspalpha          = fread(fid,1,'float');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -