RR interval extraction from ECG
現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
Hello there!
I am approaching for the first time to ECG analysis to extract the RR interval and, ultimately, compute a PSD estimation using Welch's periodogram. As far as I know, the wavelet method is the most common and the most reliable, but I find it difficult to understand.
Can anyone give me some advice regarding how to analyse ECG data? For example, why do we need to decompose the signal into different levels? And what do those levels mean? Does anyone know other methods to extract the RR interval?
For the moment I am working with the MIT-BIH database.
Thanks to anyone who's willing to help!
Luca
採用された回答
Star Strider
2020 年 8 月 27 日
If you only want the locations of the R-waves in a normal EKG, use findpeaks or islocalmax.
10 件のコメント
Luca Merolla
2020 年 9 月 1 日
Hello! Sorry for the late reply.
My aim is to get a HRV signal from the ECG, so finding the R peaks and then interpolate the points. The interpolation part is also tricky because I lack of some arguments for the spline function.
Any suggestions?
Again, thanks so much and sorry for being late at answering!
Star Strider
2020 年 9 月 1 日
My pleasure!
Note that heart rate variability assessment requires that each R-wave is preceded by a normal P-wave, so you would need to detect the P-waves as well, and determine that the P-R interval is normal (so ruling out atrial fibrillation, 2° heart block, and other abnormalities).
I do not understand the reason for interpolating anything. All that is necessary is to get the R-R intervals and determine if there is any pattern. Visualise this in a plot, and use other methods (Fourier transform techniques of various kinds, phase-plane, etc.) to determine any pattern that may exist.
Luca Merolla
2020 年 9 月 1 日
Will the wavelet transform work also for the detection of P-waves? And do you also know how to determine if the P-R interval is normal?
Star Strider
2020 年 9 月 1 日
Wavelets can work. An example of that is presented in Wavelet Time Scattering for ECG Signal Classification.
Probably the best documentation on this that I have seen is Waveform Segmentation Using Deep Learning. It requires the Signal Processing and Deep Learning Toolboxes.
The P-R interval is charistically between 120 and 200 msec, measured from the beginning of the P-wave to the beginning of the QRS complex. Most are about 140 msec. Problems can arise in the setting of the Wolff-Parkinson-White syndrome, where the accessory conduction path bypasses the A-V node, resulting in premature ventricular activation.
Interpreting all the subtleties of EKG patterns is the reason Board-Certified Cardiologists (I am not one) are so well compensated!
Luca Merolla
2020 年 9 月 1 日
As always, very helpful. Thank you so much!
Star Strider
2020 年 9 月 1 日
As always, my pleasure!
Luca Merolla
2020 年 9 月 3 日
Hello again!
I was also looking into this example Wavelet Analysis of Physiologic Signals and they say: "First, decompose the ECG waveform down to level 5 using the default 'sym4' wavelet. Then, reconstruct a frequency-localized version of the ECG waveform using only the wavelet coefficients at scales 4 and 5".
Do you know what those levels mean? And why are they using only those? It seems I can't find anywhere the answer.
Thank you again for your help!
Luca
Star Strider
2020 年 9 月 3 日
I am not sufficiently familiar with wavelets to reply with respect to those details. I will look at that link.
Luca Merolla
2020 年 9 月 7 日
Hello Star Strider!
Sorry that I keep coming back to this, but could you explain to me why, in this example, after recomposing the signal they plot the squared absolute values?
I plotted both the squared absolute values and the non-squared absolute values and I can't see any difference between the two.
The lines I am referring to are:
wt = modwt(ecgsig,5);
wtrec = zeros(size(wt));
wtrec(4:5,:) = wt(4:5,:);
y = imodwt(wtrec,'sym4');
Where they decompose the ECG waveform with modwt, and then recompose it with imodwt. Then they use findpeaks on the squared absolute values of the signal:
y = abs(y).^2;
[qrspeaks,locs] = findpeaks(y,tm,'MinPeakHeight',0.35,...
'MinPeakDistance',0.150);
Star Strider
2020 年 9 月 7 日
That the squared absolute value does not make a difference in your EKG may simply mean that all the identified R-waves are all greater than 0. Note that in the EKG in that example, many of the R-waves are negative, and those same complexes show peaked T-waves. (This likely indicates an intraventricular conduction system pathology, with aberrant activation. I would have to know more to be sure.) Taking the squared absolute value may not be necessary for the EKGs you are studying.
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Discrete Multiresolution Analysis についてさらに検索
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
