Electrocardiogram analysis and parameter estimation
View Patent ↗A system, method and memory medium for operating on an electrocardiogram (ECG) signal. A multiscale short-time Fourier transform (STFT) is performed on a set of ECG samples {s(n)} to obtain a transform array. For each sufficiently energetic peak in the transform array, a refined window width value and a refined window displacement value is generated by: computing an inner product between the set of samples and each of a plurality of functions, where the plurality of functions are sufficiently close to a coarse approximation function given by the peak location; and solving a linear system Av=c for the unknown vector v, where the vector c is determined by the inner products, where the matrix A is determined by the center times of the plurality of functions. After appropriate selection, the refined window width and refined window displacement may be used to represent ECG waveform features.
1. A non-transitory computer-readable memory medium storing program instructions, wherein the program instructions, if executed by a computer system, cause the computer system to:
perform a multiscale short-time Fourier transform (STFT) on a set of samples to obtain a transform array that is parameterized by window width, window displacement τ and frequency ω, wherein the set of samples represents a portion of an electrocardiogram (ECG) signal, wherein the portion of the ECG signal includes a number of waveform features;
operate on the transform array to determine a plurality of peaks in the transform array, wherein said operating includes determining, for each of the plurality of peaks, a window width value, a window displacement value, a frequency value and a power value;
generate, for each of the plurality of peaks, a refined window width value and a refined window displacement value, by:
computing an inner product between the set of samples and each of a plurality of functions, wherein the plurality of functions are windowed sinusoids (a) having a common frequency equal to the frequency value of the peak, (b) being centered at times that are in a neighborhood of the window displacement value of the peak, and (c) having a common width that is based on the width value of the peak; and
solving a linear system Av=c for the unknown vector v, wherein the vector c is determined by the inner products, wherein the matrix A is determined by said times that are in the neighborhood of the window displacement value of the peak.
2. The memory medium of claim 1 , wherein the program instructions, if executed by the computer system, further cause the computer system to:
identify a first of the peaks as corresponding to a QRS complex based on a determination that the power value of the first peak exceeds a threshold value and that the refined window displacement value for the first peak satisfies one or more time constraints;
compute a QRS onset time and/or a QRS offset time based on the refined window displacement value and the refined window width of the first peak; and
display the QRS onset time and/or the QRS offset time via a display device.
3. The memory medium of claim 2 , wherein the program instructions, if executed by the computer system, further cause the computer system to:
repeat said performing, said operating and said generating for a series of sets of samples of the ECG signal.
4. The memory medium of claim 2 , wherein the threshold value is an adaptive threshold that changes over time.
5. The memory medium of claim 2 , wherein the one or more time constraints include a time constraint on the refined window displacement value of the first peak relative to a time of a previously identified feature in the ECG signal.
6. The memory medium of claim 1 , wherein the program instructions, if executed by the computer system, further cause the computer system to:
compute, for each peak P j of the plurality of peaks, a windowed sinusoid function h j that is determined by the refined window width value of the peak P j , the refined window displacement value of the peak P j , and the frequency value of the peak P j ;
generate a linear combination of the windowed sinusoid functions h j ; and
display the real part of the linear combination via a display device.
7. The memory medium of claim 1 , wherein the ECG signal is a human ECG signal, wherein the waveform features include one or more of the following: a P wave, a QRS complex and a T wave.
8. The memory medium of claim 1 , wherein the windowed sinusoids are Gaussian-modulated complex exponentials.
9. The memory medium of claim 1 , wherein said operating on the transform array includes searching for the N P peaks of largest absolute value in the transform array, wherein N P is a positive integer.
10. The memory medium of claim 9 , wherein said searching is restricted to a band of frequencies that is smaller than the frequency range of the multiscale STFT.
11. A non-transitory computer-readable memory medium storing program instructions, wherein the program instructions, if executed by a computer system, cause the computer system to:
receive samples of a portion of an electrocardiogram (ECG) signal, wherein said portion of the ECG signal contains a waveform feature;
operate on the samples to compute a plurality of short-time Fourier transforms (STFT), wherein each of the STFTs is computed using a different value of window width, wherein each of the STFTs is a function of window displacement time τ and frequency ω;
search the plurality of STFTs to determine an initial set of parameters values that characterize the waveform feature, wherein the initial set of parameter values includes a first window displacement time τ 0 , a first frequency ω 0 and a first window width σ 0 ;
compute an inner product of the samples with each of a first function, a second function and a third function to obtain respectively a first complex value, a second complex value and a third complex value, wherein the first, second and third functions are windowed sinusoids (a) having a common frequency equal to the first frequency ω 0 , (b) being centered at times that are in a neighborhood of the first window displacement time τ 0 , and (c) having a common width that is based on the first window width σ 0 ;
compute a time of the waveform feature and a duration of the waveform feature based on the first, second and third complex values and based on said times in the neighborhood of the first window displacement time τ 0 ; and
store the waveform feature time and the waveform feature duration in a memory.
12. The memory medium of claim 11 , wherein the program instructions, if executed by the computer system, further cause the computer system to:
display the waveform feature time or a visual indication of the waveform feature time via a display device.
13. The memory medium of claim 11 , wherein the waveform feature is a QRS complex, wherein the program instructions, if executed by the computer system, further cause the computer system to:
compute an onset time and/or an offset time of the QRS complex based on the waveform feature time and the waveform feature duration.
14. The memory medium of claim 11 , wherein the waveform feature is a QRS complex, a T wave or a P wave.
15. The memory medium of claim 11 , wherein the plurality of STFTs are computed using Gaussian windows.
16. The memory medium of claim 11 , wherein the windowed sinusoids are Gaussian-modulated complex exponentials.
17. The memory medium of claim 11 , wherein said searching includes searching for a local maximum or global maximum of absolute value in the STFTs.
18. The memory medium of claim 11 , wherein the ECG signal is a human ECG signal, wherein said searching is restricted to frequencies in the interval from 10 Hz to 25 Hz.
19. The memory medium of claim 11 , wherein said computing the waveform feature time and the waveform feature duration includes solving a linear system Av=c for the unknown vector v, wherein the matrix A is determined by said times in the neighborhood of the first window displacement time τ 0 , wherein the vector c is determined by the first, second and third complex values.
20. The memory medium of claim 19 , wherein the vector c is determined by the expression:
c =[ln| z 0 |/|z −1 |,ln| z 0 |/|z +1 |] T ,
wherein z 0 , z −1 and z +1 are the first, second and third complex values, respectively.
21. The memory medium of claim 11 , wherein the times that are in the neighborhood of the first window displacement time τ 0 include τ 0 , τ 0 Δτ and τ 0 −Δτ, where Δτ is a positive real number.
22. A method comprising:
a computer system receiving samples of a portion of an electrocardiogram (ECG) signal, wherein said portion of the ECG signal contains a waveform feature;
the computer system operating on the samples to compute a plurality of short-time Fourier transforms (STFT), wherein each of the STFTs is computed using a different value of window width, wherein each of the STFTs is a function of window displacement time τ and frequency ω;
the computer system searching the plurality of STFTs to determine an initial set of parameters values that characterize the waveform feature, wherein the initial set of parameter values includes a first window displacement time τ 0 , a first frequency ω 0 and a first window width σ 0 ;
the computer system computing an inner product of the samples with each of a first function, a second function and a third function to obtain respectively a first complex value, a second complex value and a third complex value, wherein the first, second and third functions are windowed sinusoids (a) having a common frequency equal to the first frequency ω 0 , (b) being centered at times that are in a neighborhood of the first window displacement time τ 0 , and (c) having a common width that is based on the first window width σ 0 ;
the computer system computing a time of the waveform feature and a duration of the waveform feature based on the first, second and third complex values and based on said times in the neighborhood of the first window displacement time τ 0 ; and
the computer system storing the waveform feature time and the waveform feature duration in a memory.