ddt.m 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. function [nch, npoints, freq, d] = ddt(filename)
  2. % ddt(filename) Read data from a .ddt file
  3. %
  4. % [nch, npoints, freq, d] = ddt(filename)
  5. %
  6. % INPUT:
  7. % filename - if empty string, will use File Open dialog
  8. %
  9. % OUTPUT:
  10. % nch - number of channels
  11. % npoints - number of data points for each channel
  12. % freq - A/D frequency
  13. % d - [nch npoints] data array
  14. if(nargin ~= 1)
  15. disp('1 input argument is required')
  16. return
  17. end
  18. nch = 0;
  19. npoints = 0;
  20. if(isempty(filename))
  21. [fname, pathname] = uigetfile('*.ddt', 'Select a ddt file');
  22. filename = strcat(pathname, fname);
  23. end
  24. fid = fopen(filename, 'r');
  25. if(fid == -1)
  26. disp('cannot open file');
  27. return
  28. end
  29. disp(strcat('file = ', filename));
  30. version = fread(fid, 1, 'int32');
  31. dataoffset = fread(fid, 1, 'int32');
  32. freq = fread(fid, 1, 'double');
  33. nch = fread(fid, 1, 'int32');
  34. fseek(fid, 0, 1);
  35. fsize = ftell(fid);
  36. frewind(fid);
  37. fseek(fid, dataoffset, 0);
  38. npoints = (fsize - dataoffset)/(nch*2);
  39. d = fread(fid, [nch npoints], 'int16');
  40. fclose(fid);