Exemple #1
0
def check_qrs_detection():
    from wfdbtools import rdsamp, rdann
    import subprocess
    test_record = '../samples/format212/100'
    qrslead = 2
    
    data, info = rdsamp(test_record)

    qrsdetector = QRSDetector(data, info['samp_freq'])
    
    qrspeaks = qrsdetector.qrs_detect(qrslead)
    print 'Found %s QRS complexes' %(len(qrspeaks))
    qrsdetector.write_ann(os.path.abspath(test_record) + '.test')

    ref_qrs = rdann(os.path.abspath(test_record), 'atr')
    print ref_qrs.shape
    print qrspeaks[:10]
    print ref_qrs[:10, :1]

    pylab.plot(data[:, qrslead])
    for r in qrspeaks:
        pylab.plot(r, 1.5, 'xr')
    for r in ref_qrs[:, 1]:
        pylab.plot(r, 1.8, 'ob')
    pylab.show()
    
    print subprocess.check_output(['bxb','-r', os.path.abspath(test_record), '-a', 'atr', 'test'])
Exemple #2
0
def check_qrs_detection():
    from wfdbtools import rdsamp, rdann
    import subprocess
    test_record = '../samples/format212/100'
    qrslead = 2

    data, info = rdsamp(test_record)

    qrsdetector = QRSDetector(data, info['samp_freq'])

    qrspeaks = qrsdetector.qrs_detect(qrslead)
    print 'Found %s QRS complexes' % (len(qrspeaks))
    qrsdetector.write_ann(os.path.abspath(test_record) + '.test')

    ref_qrs = rdann(os.path.abspath(test_record), 'atr')
    print ref_qrs.shape
    print qrspeaks[:10]
    print ref_qrs[:10, :1]

    pylab.plot(data[:, qrslead])
    for r in qrspeaks:
        pylab.plot(r, 1.5, 'xr')
    for r in ref_qrs[:, 1]:
        pylab.plot(r, 1.8, 'ob')
    pylab.show()

    print subprocess.check_output(
        ['bxb', '-r',
         os.path.abspath(test_record), '-a', 'atr', 'test'])
Exemple #3
0
'''
Created on Jan 27, 2012

@author: sergio
'''
#!/usr/bin/env python
from wfdbtools import rdsamp, rdann, plot_data
from pprint import pprint
import pylab
from scipy import signal
import numpy

###Senal
record = '104'
data, info = rdsamp(record, 0, 6)
ann = rdann(record, 'atr', 0, 6)

time = data[:, 1]  #in seconds.
sig1 = data[:, 2]
sig2 = data[:, 3]

ann1 = ann[:, 0]
ann2 = ann[:, 1]

Fs = info['samp_freq']

######################
# FILTER
# a[0]*y[n] = b[0]*x[n] + b[1]*x[n-1] + ... + b[nb]*x[n-nb]
#                         - a[1]*y[n-1] - ... - a[na]*y[n-na]
Exemple #4
0
class CustReader:
    """
    Reader for the custom ecg format
    """
    def __init__(self):
        self.data = None
        self.info = None

    def read(filename):
        infofile = os.path.splitext(filename)[0] + '.inf'
        data = scipy.load(filename)
        info = yaml.load(open(infofile))


if __name__ == '__main__':
    from wfdbtools import rdsamp, rdann

    app = wx.App(False)
    controller = Controller(app)

    testrec = '../samples/format212/100'

    data, info = rdsamp(testrec, 0, 60)
    data = data[:, [2, 3]]  # remove first 2 cols

    ann = rdann(testrec, 'atr', 0, 60)
    ann = ann[:, [0, 2]]  # remove second col

    controller.load(data, info, ann)
    app.MainLoop()
'''
Created on Jan 27, 2012

@author: sergio
'''
#!/usr/bin/env python
from wfdbtools import rdsamp, rdann, plot_data
from pprint import pprint
import pylab
from scipy import signal
import numpy

###Senal
record  = '104'
data, info = rdsamp(record, 0, 6)
ann = rdann(record, 'atr', 0, 6)

time = data[:, 1] #in seconds.
sig1 = data[:, 2]
sig2 = data[:, 3]

ann1 = ann[:, 0]
ann2 = ann[:, 1]

Fs = info['samp_freq']

######################
# FILTER
# a[0]*y[n] = b[0]*x[n] + b[1]*x[n-1] + ... + b[nb]*x[n-nb]
#                         - a[1]*y[n-1] - ... - a[na]*y[n-na]
@author: sergio
'''
from wfdbtools import rdsamp, rdann
import numpy
from buffer import buffer as cola
from pylab import plot, show, subplot, stem, axis
import hrvarray
import time as timer

### Senal
record  = '104'
start = 210
stop = 320
data, info = rdsamp(record, start, stop)
ann = rdann(record, 'atr', start, stop)

time = data[:, 1] #in seconds.
signal1 = data[:, 2]
signal2 = data[:, 3]

ann1 = ann[:, 0]
ann2 = ann[:, 1]

Fs = info['samp_freq']
### Parametros
 
Nwindow = int(0.15 * Fs) # 150ms

###
Exemple #7
0
def rdann_test():
    """test wfdbtools.rdann"""
    ann = rdann(testrecord, 'atr')
    assert len(ann) == 2274
    assert ann[0, :].tolist() == [18., 0.05, 28]
    assert ann[-1, 0] == 649991.
    #subplot(212)
    #plot(time,umbral,'r')
    #plot(time, signal_integrated, 'k')
    #axis([178, 188, 0, 66000000])
    #    show()
    return qrs

if __name__ == '__main__':
    ### Parametros
    record = '104'
    start = 0  #0#175
    stop = 1000  #40#190

    ### Senal
    data, info = rdsamp(record, start, stop)
    ann = rdann(record, 'atr', start, stop)

    time = data[:, 1]  #in seconds.110358
    signal1 = data[:, 2]
    signal2 = data[:, 3]

    ann1 = ann[:, 0]
    ann2 = ann[:, 1]

    Fs = info['samp_freq']
    print "Fs: " + str(Fs)
    print "Tiempo total de la captura: " + str(info['samp_count'] / float(Fs))

    qrs = detector(signal1, Fs, ann1, time, start, stop)
    coincidencias = 0
    k = 0
Exemple #9
0
'''
Created on Feb 15, 2012

@author: sergio
'''
from wfdbtools import rdsamp, rdann, plot_data
import numpy
from buffer import buffer as cola
from pylab import plot, show, subplot, stem

### Senal
record = '104'
data, info = rdsamp(record, 201, 520)
ann = rdann(record, 'atr', 201, 520)

time = data[:, 1]  #in seconds.
signal1 = data[:, 2]
signal2 = data[:, 3]

plot(time, signal1)
show()
Exemple #10
0
def rdann_test():
    """test wfdbtools.rdann"""
    ann = rdann(testrecord, 'atr')
    assert len(ann) == 2274
    assert ann[0, :].tolist() == [18., 0.05, 28 ]
    assert ann[-1, 0] == 649991.
    # plot(time,umbral,'r')
    # plot(time, signal_integrated, 'k')
    # axis([178, 188, 0, 66000000])
    #    show()
    return qrs


if __name__ == "__main__":
    ### Parametros
    record = "104"
    start = 0  # 0#175
    stop = 1000  # 40#190

    ### Senal
    data, info = rdsamp(record, start, stop)
    ann = rdann(record, "atr", start, stop)

    time = data[:, 1]  # in seconds.110358
    signal1 = data[:, 2]
    signal2 = data[:, 3]

    ann1 = ann[:, 0]
    ann2 = ann[:, 1]

    Fs = info["samp_freq"]
    print "Fs: " + str(Fs)
    print "Tiempo total de la captura: " + str(info["samp_count"] / float(Fs))

    qrs = detector(signal1, Fs, ann1, time, start, stop)
    coincidencias = 0
    k = 0
Exemple #12
0
        self.data = None
        self.info = None
        
    def read(filename):
        infofile = os.path.splitext(filename)[0] + '.inf'
        data = scipy.load(filename)
        info = yaml.load(open(infofile))




if __name__ == '__main__':
    from  wfdbtools import rdsamp, rdann
    
    app = wx.App(False)
    controller = Controller(app)

    testrec = '../samples/format212/100'

    data, info = rdsamp(testrec, 0, 60)
    data = data[:, [2,3]] # remove first 2 cols
    
    ann = rdann(testrec, 'atr', 0, 60)
    ann = ann[:, [0,2]] # remove second col

    controller.load(data, info, ann)
    app.MainLoop()



'''
Created on Feb 15, 2012

@author: sergio
'''
from wfdbtools import rdsamp, rdann, plot_data
import numpy
from buffer import buffer as cola
from pylab import plot, show, subplot, stem

### Senal
record  = '104'
data, info = rdsamp(record, 201, 520)
ann = rdann(record, 'atr', 201, 520)

time = data[:, 1] #in seconds.
signal1 = data[:, 2]
signal2 = data[:, 3]

plot(time,signal1)
show()