function varargout=rdsamp(varargin)
[signal,Fs,tm]=rdsamp(recordName,signaList,N,N0,rawUnits,highResolution)
Wrapper to WFDB RDSAMP:
http://www.physionet.org/physiotools/wag/rdsamp-1.htm
Reads a WFDB record and returns:
signal
NxM matrix (doubles) of M signals with each signal being N samples long.
Signal data type will be either in double int16 format
depending on the flag passed to the function (according to
the boolean flags below).
Fs (Optional)
1xM Double, sampling frequency in Hz of all the signals in the
record.
% tm (Optional)
Nx1 vector of doubles representing the sampling intervals.
Depending on input flags (see below), this vector can either be a
vector of integers (sampling number), or a vector of elapsed time
in seconds ( with up to millisecond precision only).
Required Parameters:
recorName
String specifying the name of the record in the WFDB path or
in the current directory.
Optional Parameters are:
signalList
A Mx1 array of integers. Read only the signals (columns)
named in the signalList (default: read all signals).
N
A 1x1 integer specifying the sample number at which to stop reading the
record file (default read all the samples = N).
N0
A 1x1 integer specifying the sample number at which to start reading the
record file (default 1 = first sample).
rawUnits
A 1x1 integer (default: 0). Returns tm and signal as vectors
according to the following values:
rawUnits=0 - Uses Java Native Interface to directly fetch data, returning signal in physical units with double precision.
rawUnits=1 -returns tm ( millisecond precision only! ) and signal in physical units with 64 bit (double) floating point precision
rawUnits=2 -returns tm ( millisecond precision only! ) and signal in physical units with 32 bit (single) floating point precision
rawUnits=3 -returns both tm and signal as 16 bit integers (short). Use Fs to convert tm to seconds.
rawUnits=4 -returns both tm and signal as 64 bit integers (long). Use Fs to convert tm to seconds.
highResolution
A 1x1 boolean (default =0). If true, reads the record in high
resolution mode. Ignored if rawUnits == 0.
Written by Ikaro Silva, 2013
Last Modified: April 3, 2015
Version 2.0
Since 0.0.1
%Example 1- Read a signal from PhysioNet's Remote server:
[signal,Fs,tm]=rdsamp('mitdb/100',[],1000);
plot(tm,signal(:,1))
%Example 2-Read 1000 samples from 3 signals
[signal,Fs,tm]=rdsamp('mghdb/mgh001', [1 3 5],1000);
%%Example 3- Read 1000 samples from 3 signlas in single precision format
[signal,Fs,tm]=rdsamp('mghdb/mgh001', [1 3 5],1000,[],2);
%%Example 4- Read a multiresolution signal with 32 samples per frame
[sig,Fs,tm] = rdsamp('drivedb/drive02',[1],[],[],[],1);
See also WFDBDESC, PHYSIONETDB, WFDBDOWNLOAD