亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? openbdf.m

?? matlab下實現
?? M
字號:
% openbdf() - Opens an BDF File (European Data Format for Biosignals) in MATLAB (R)
% 
% Usage:
%   >> EDF=openedf(FILENAME)
%
% Note: About EDF -> www.biosemi.com/faq/file_format.htm
%
% Author: Alois Schloegl, 5.Nov.1998
%
% See also: readedf()

%	Copyright (C) 1997-1998 by Alois Schloegl
%	a.schloegl@ieee.org
%	Ver 2.20 	18.Aug.1998
%	Ver 2.21 	10.Oct.1998
%	Ver 2.30 	 5.Nov.1998
%
%	For use under Octave define the following function
% function s=upper(s); s=toupper(s); end;

% V2.12    Warning for missing Header information  
% V2.20    EDF.AS.* changed
% V2.30    EDF.T0 made Y2K compatible until Year 2090

% 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.

% Name changed for bdf files Sept 6,2002  T.S. Lorig
% Header updated for EEGLAB format (update web link too) - Arnaud Delorme 14 Oct 2002

function [DAT,H1]=openbdf(FILENAME)
    
SLASH='/';		% defines Seperator for Subdirectories
BSLASH=setstr(92);

cname=computer;
if cname(1:2)=='PC' SLASH=BSLASH; end;

fid=fopen(FILENAME,'r','ieee-le');          
if fid<0 
	fprintf(2,['Error LOADEDF: File ' FILENAME ' not found\n']);  
	return;
end;

EDF.FILE.FID=fid;
EDF.FILE.OPEN = 1;
EDF.FileName = FILENAME;

PPos=min([max(find(FILENAME=='.')) length(FILENAME)+1]);
SPos=max([0 find((FILENAME=='/') | (FILENAME==BSLASH))]);
EDF.FILE.Ext = FILENAME(PPos+1:length(FILENAME));
EDF.FILE.Name = FILENAME(SPos+1:PPos-1);
if SPos==0
	EDF.FILE.Path = pwd;
else
	EDF.FILE.Path = FILENAME(1:SPos-1);
end;
EDF.FileName = [EDF.FILE.Path SLASH EDF.FILE.Name '.' EDF.FILE.Ext];

H1=setstr(fread(EDF.FILE.FID,256,'char')');     %
EDF.VERSION=H1(1:8);                     % 8 Byte  Versionsnummer 
%if 0 fprintf(2,'LOADEDF: WARNING  Version EDF Format %i',ver); end;
EDF.PID = deblank(H1(9:88));                  % 80 Byte local patient identification
EDF.RID = deblank(H1(89:168));                % 80 Byte local recording identification
%EDF.H.StartDate = H1(169:176);         % 8 Byte		
%EDF.H.StartTime = H1(177:184);         % 8 Byte		
EDF.T0=[str2num(H1(168+[7 8])) str2num(H1(168+[4 5])) str2num(H1(168+[1 2])) str2num(H1(168+[9 10])) str2num(H1(168+[12 13])) str2num(H1(168+[15 16])) ];

% Y2K compatibility until year 2090
if EDF.VERSION(1)=='0'
        if EDF.T0(1) < 91
                EDF.T0(1)=2000+EDF.T0(1);
        else
                EDF.T0(1)=1900+EDF.T0(1);
        end;
else ;
        % in a future version, this is hopefully not needed   
end;

EDF.HeadLen = str2num(H1(185:192));  % 8 Byte  Length of Header
% reserved = H1(193:236);	         % 44 Byte		
EDF.NRec = str2num(H1(237:244));     % 8 Byte  # of data records
EDF.Dur = str2num(H1(245:252));      % 8 Byte  # duration of data record in sec
EDF.NS = str2num(H1(253:256));       % 8 Byte  # of signals

EDF.Label = setstr(fread(EDF.FILE.FID,[16,EDF.NS],'char')');		
EDF.Transducer = setstr(fread(EDF.FILE.FID,[80,EDF.NS],'char')');	
EDF.PhysDim = setstr(fread(EDF.FILE.FID,[8,EDF.NS],'char')');	

EDF.PhysMin= str2num(setstr(fread(EDF.FILE.FID,[8,EDF.NS],'char')'));	
EDF.PhysMax= str2num(setstr(fread(EDF.FILE.FID,[8,EDF.NS],'char')'));	
EDF.DigMin = str2num(setstr(fread(EDF.FILE.FID,[8,EDF.NS],'char')'));	%	
EDF.DigMax = str2num(setstr(fread(EDF.FILE.FID,[8,EDF.NS],'char')'));	%	

% check validity of DigMin and DigMax
if (length(EDF.DigMin) ~= EDF.NS)
        fprintf(2,'Warning OPENEDF: Failing Digital Minimum\n');
        EDF.DigMin = -(2^15)*ones(EDF.NS,1);
end
if (length(EDF.DigMax) ~= EDF.NS)
        fprintf(2,'Warning OPENEDF: Failing Digital Maximum\n');
        EDF.DigMax = (2^15-1)*ones(EDF.NS,1);
end
if (any(EDF.DigMin >= EDF.DigMax))
        fprintf(2,'Warning OPENEDF: Digital Minimum larger than Maximum\n');
end  
% check validity of PhysMin and PhysMax
if (length(EDF.PhysMin) ~= EDF.NS)
        fprintf(2,'Warning OPENEDF: Failing Physical Minimum\n');
        EDF.PhysMin = EDF.DigMin;
end
if (length(EDF.PhysMax) ~= EDF.NS)
        fprintf(2,'Warning OPENEDF: Failing Physical Maximum\n');
        EDF.PhysMax = EDF.DigMax;
end
if (any(EDF.PhysMin >= EDF.PhysMax))
        fprintf(2,'Warning OPENEDF: Physical Minimum larger than Maximum\n');
        EDF.PhysMin = EDF.DigMin;
        EDF.PhysMax = EDF.DigMax;
end  
EDF.PreFilt= setstr(fread(EDF.FILE.FID,[80,EDF.NS],'char')');	%	
tmp = fread(EDF.FILE.FID,[8,EDF.NS],'char')';	%	samples per data record
EDF.SPR = str2num(setstr(tmp));	%	samples per data record

fseek(EDF.FILE.FID,32*EDF.NS,0);

EDF.Cal = (EDF.PhysMax-EDF.PhysMin)./ ...
    (EDF.DigMax-EDF.DigMin);
EDF.Off = EDF.PhysMin - EDF.Cal .* EDF.DigMin;
tmp = find(EDF.Cal < 0);
EDF.Cal(tmp) = ones(size(tmp));
EDF.Off(tmp) = zeros(size(tmp));

EDF.Calib=[EDF.Off';(diag(EDF.Cal))];
%EDF.Calib=sparse(diag([1; EDF.Cal]));
%EDF.Calib(1,2:EDF.NS+1)=EDF.Off';

EDF.SampleRate = EDF.SPR / EDF.Dur;

EDF.FILE.POS = ftell(EDF.FILE.FID);
if EDF.NRec == -1   % unknown record size, determine correct NRec
  fseek(EDF.FILE.FID, 0, 'eof');
  endpos = ftell(EDF.FILE.FID);
  EDF.NRec = floor((endpos - EDF.FILE.POS) / (sum(EDF.SPR) * 2));
  fseek(EDF.FILE.FID, EDF.FILE.POS, 'bof');
  H1(237:244)=sprintf('%-8i',EDF.NRec);      % write number of records
end; 

EDF.Chan_Select=(EDF.SPR==max(EDF.SPR));
for k=1:EDF.NS
	if EDF.Chan_Select(k)
	    EDF.ChanTyp(k)='N';
	else
	    EDF.ChanTyp(k)=' ';
	end;         
	if findstr(upper(EDF.Label(k,:)),'ECG')
	    EDF.ChanTyp(k)='C';
	elseif findstr(upper(EDF.Label(k,:)),'EKG')
	    EDF.ChanTyp(k)='C';
	elseif findstr(upper(EDF.Label(k,:)),'EEG')
	    EDF.ChanTyp(k)='E';
	elseif findstr(upper(EDF.Label(k,:)),'EOG')
	    EDF.ChanTyp(k)='O';
	elseif findstr(upper(EDF.Label(k,:)),'EMG')
	    EDF.ChanTyp(k)='M';
	end;
end;

EDF.AS.spb = sum(EDF.SPR);	% Samples per Block
bi=[0;cumsum(EDF.SPR)]; 

idx=[];idx2=[];
for k=1:EDF.NS, 
	idx2=[idx2, (k-1)*max(EDF.SPR)+(1:EDF.SPR(k))];
end;
maxspr=max(EDF.SPR);
idx3=zeros(EDF.NS*maxspr,1);
for k=1:EDF.NS, idx3(maxspr*(k-1)+(1:maxspr))=bi(k)+ceil((1:maxspr)'/maxspr*EDF.SPR(k));end;

%EDF.AS.bi=bi;
EDF.AS.IDX2=idx2;
%EDF.AS.IDX3=idx3;


DAT.Head=EDF;
DAT.MX.ReRef=1;

%DAT.MX=feval('loadxcm',EDF);

return;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品夫妻自拍| 亚洲欧美日韩久久| 欧美另类久久久品| 在线日韩av片| 欧美三电影在线| 7777精品伊人久久久大香线蕉 | 日韩免费成人网| 欧美一区二区三区四区久久| 欧美一级精品在线| 欧美mv和日韩mv的网站| 久久蜜臀中文字幕| 国产精品久久久久久户外露出 | 久久久久国色av免费看影院| 久久久99精品免费观看| 国产精品亲子乱子伦xxxx裸| 亚洲男人天堂一区| 日韩精品福利网| 国产一区激情在线| 不卡在线观看av| 欧美喷水一区二区| 亚洲精品一区二区三区精华液| 国产色婷婷亚洲99精品小说| 亚洲精品一卡二卡| 久久精品国产精品亚洲红杏| 成人sese在线| 欧美一级国产精品| **欧美大码日韩| 蜜臀国产一区二区三区在线播放| 高清视频一区二区| 欧美日韩午夜在线视频| 久久影院午夜论| 亚洲狠狠丁香婷婷综合久久久| 亚洲高清在线视频| 成人小视频免费观看| 欧美日本一区二区在线观看| 中文av一区二区| 日本亚洲欧美天堂免费| 99久久婷婷国产综合精品电影| 欧美日韩国产在线播放网站| 国产女同互慰高潮91漫画| 亚洲午夜私人影院| 成人永久aaa| 欧美一区二区三区啪啪| 亚洲欧洲99久久| 国精产品一区一区三区mba桃花| 色综合久久88色综合天天免费| 欧美精品一区二区三区蜜臀| 亚洲一线二线三线久久久| 国产一区日韩二区欧美三区| 91精品久久久久久蜜臀| 一区二区在线看| 成人免费高清视频在线观看| 亚洲精品在线观| 爽好多水快深点欧美视频| 色天使久久综合网天天| 国产精品超碰97尤物18| 国产精品1024| 日韩免费成人网| 免费在线观看一区| 在线播放/欧美激情| 亚洲资源在线观看| 日本道精品一区二区三区| 欧美国产日韩一二三区| 国产精品99久久久久久宅男| 日韩精品综合一本久道在线视频| 亚洲一区欧美一区| 在线看日韩精品电影| 中文字幕在线一区| 成a人片亚洲日本久久| 久久综合狠狠综合久久综合88| 日韩电影在线免费| 91精品国产91久久久久久一区二区 | 91天堂素人约啪| 国产精品久久三| 成人黄页在线观看| 中文字幕不卡的av| 成人午夜看片网址| 一色屋精品亚洲香蕉网站| 成人av高清在线| 中文字幕在线观看不卡| 99国产精品一区| 亚洲国产另类av| 欧美丰满高潮xxxx喷水动漫| 免费国产亚洲视频| 久久一区二区三区四区| 粉嫩一区二区三区性色av| 国产精品二三区| 欧美综合亚洲图片综合区| 视频一区视频二区在线观看| 欧美一级日韩免费不卡| 韩国三级电影一区二区| 欧美国产欧美综合| 91污片在线观看| 日本sm残虐另类| 久久久久九九视频| 在线观看av不卡| 七七婷婷婷婷精品国产| 亚洲国产精品激情在线观看| 99国产精品国产精品毛片| 亚洲成a人片综合在线| 26uuu精品一区二区| 99精品黄色片免费大全| 婷婷国产在线综合| 精品国产凹凸成av人网站| 成人精品一区二区三区四区| 一区二区高清在线| 精品动漫一区二区三区在线观看| 成人黄色一级视频| 首页国产欧美久久| 国产精品青草综合久久久久99| 欧美日韩视频在线第一区| 国产综合久久久久久久久久久久| 伊人性伊人情综合网| 久久久久久综合| 欧美日韩精品一区二区在线播放 | 日韩一区欧美一区| 91麻豆精品国产91久久久 | 日韩欧美一区二区久久婷婷| 波多野结衣精品在线| 免费观看在线色综合| 有码一区二区三区| 国产亚洲精久久久久久| 欧美一区二区视频在线观看2020 | 香蕉久久一区二区不卡无毒影院| 久久综合网色—综合色88| 欧美亚洲国产一区在线观看网站| 国产精品一区一区| 久久精品噜噜噜成人av农村| 夜夜精品视频一区二区| 国产精品久久一卡二卡| 久久在线观看免费| 欧美va亚洲va| 欧美一区二区性放荡片| 欧洲人成人精品| 成人黄色国产精品网站大全在线免费观看 | 懂色av一区二区在线播放| 人妖欧美一区二区| 日韩精彩视频在线观看| 一区二区三区在线视频免费观看| 中文字幕不卡在线| 中文一区一区三区高中清不卡| 日韩欧美电影一区| 欧美一级黄色录像| 日韩欧美第一区| 日韩精品最新网址| 欧美成人一区二区三区片免费 | 亚洲美女淫视频| 国产精品视频一二三区| 欧美激情综合五月色丁香小说| 精品99久久久久久| 26uuu亚洲综合色欧美 | 亚洲欧美国产77777| 亚洲色图视频网站| 亚洲精品视频观看| 夜夜嗨av一区二区三区四季av | 亚洲精品国产第一综合99久久| 国产精品国产三级国产aⅴ入口| 中文文精品字幕一区二区| 国产精品嫩草影院com| 亚洲日本欧美天堂| 亚洲成人av中文| 免费亚洲电影在线| 韩国毛片一区二区三区| 丁香天五香天堂综合| 色综合视频在线观看| 欧美日韩激情一区二区三区| 欧美一区二区三区在线观看视频| 日韩精品一区二区三区四区| 久久久久国产精品麻豆| 国产精品成人免费在线| 亚洲一区二区三区四区五区黄| 青青国产91久久久久久| 国产精品12区| 欧美日韩一区二区在线观看 | 国产精品99久久不卡二区| av一区二区久久| 欧美精品色综合| 国产亚洲综合av| 五月天丁香久久| 粉嫩av亚洲一区二区图片| 欧洲亚洲精品在线| 日韩免费高清电影| 亚洲男人天堂一区| 久久国产欧美日韩精品| 波多野结衣中文字幕一区 | 日韩精品一卡二卡三卡四卡无卡| 久久99精品久久久久婷婷| 99热这里都是精品| 欧美伦理电影网| 国产精品每日更新在线播放网址| 一区二区高清免费观看影视大全| 精品中文字幕一区二区小辣椒| aaa亚洲精品一二三区| 欧美一级一区二区| 亚洲少妇最新在线视频| 国产在线国偷精品产拍免费yy| 色琪琪一区二区三区亚洲区| 国产日韩三级在线| 麻豆久久一区二区| 欧美视频一区二区在线观看|