loadEEG.m
上传用户:xhrjvip
上传日期:2020-11-07
资源大小:2k
文件大小:1k
源码类别:

生物技术

开发平台:

Matlab

  1. function [EEGmatrix,tsample]=loadEEG(filenm, numdl, smpf)
  2. %%%%%%%%%%%%%%
  3. % input:
  4. %     filenm:  file name  Exp: filenm = '008.eeg';
  5. %     numdl: the numbers of daolian, Exp: numdl = 33;
  6. %     smpf : sample frequency, Exp: smpf = 210; Hz
  7. % output:
  8. %     EEGmatrix: 输出的EEG矩阵,行为采样的数,列为channel, units: uv
  9. %     tsample: 采样点对应的时间, units: s
  10. numd1=33;
  11. n = nargin;  
  12. if n < 2
  13.     disp('Insuficient arguments');
  14.     disp('Please input filename or num of dl');
  15. end
  16. if n < 3
  17.    smpf = 512;  % Hz sample frequency
  18. end
  19. fid = fopen(filenm,'rb');  % 二进制打开文件
  20. if (fid <=0)
  21.    error([ 'Error opening file "' filenm '"' ]);
  22. end
  23. EEGdata=fread(fid, 'short')-2047;
  24. %EEGdata=fread(fid, 'short');
  25. % 16位 short
  26. %EEGdata(find(EEGdata<0)) = 0;  % if <0 =0
  27. fclose(fid);
  28. nsample = size(EEGdata, 1) / numdl;  % size(EEGdata, 1) denotes EEGdata numbers of rows;  get numbers of sample
  29. EEGmatrix = reshape(EEGdata, [numdl, nsample]); % reshape the matrix into nsample * channel
  30. tsample = (1:nsample)/smpf; % translate nsample to time
  31. clear EEGdata;
  32. EEGmatrix = EEGmatrix * 500.0 / 2048; % translate binary into value