PhysioNet Cardiovascular Signal Toolbox 1.0.0
(2,614 bytes)
function [cleanRRAnalysisWindows,idx_af] = RemoveAFsegments(RRAnalysisWindows,AfAnalysisWindows, AFtest, HRVparams)
% cleanRRAnalysisWindows = RemoveAFsegments(RRAnalysisWindows,AfAnalysisWindows, AFtest, HRVparams )
%
% OVERVIEW:
% Remove windows containing AF segments
%
% INPUT:
% RRAnalysisWindows : vector containing windows indexes corresponding
% to RR interval segmentation for HRV analysis
% AfAnalysisWindows : vector containing windows indexes corresponding
% to RR interval segmentation for AF analysis
% AFtest : vector containing flags (1) for AF windows and
% (0) for non-AF segemnts
% HRVparams :
% OUTPUT:
% cleanRRAnalysisWindows : vector containing windows indexes corresponding
% to RR interval segmentation for HRV analysis
% where windows containing AF are identified
% by a NaN index and therfore exluded during
% analysis
% idx_af : indexes of the AF windows
%
% DEPENDENCIES & LIBRARIES:
% PhysioNet Cardiovascular Signal Toolbox
% https://github.com/cliffordlab/PhysioNet-Cardiovascular-Signal-Toolbox
%
% REFERENCE:
% Vest et al. "An Open Source Benchmarked HRV Toolbox for Cardiovascular
% Waveform and Interval Analysis" Physiological Measurement (In Press), 2018.
%
% REPO:
% https://github.com/cliffordlab/PhysioNet-Cardiovascular-Signal-Toolbox% ORIGINAL SOURCE AND AUTHORS:
% Written by Giulia Da Poian (giulia.dap@gmail.com) on Sep 6, 2017.
% Dependent scripts written by various authors
% (see functions for details)
% COPYRIGHT (C) 2018
% LICENSE:
% This software is offered freely and without warranty under
% the GNU (v3 or later) public license. See license file for
% more information
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cleanRRAnalysisWindows = RRAnalysisWindows;
% Exclude AF Segments
afsegs = AfAnalysisWindows(AFtest == 1); % afsegs is in seconds
idx_af = [];
if ~isempty(afsegs)
for k = 1:length(afsegs)
try
idx_af = [idx_af find(RRAnalysisWindows <= afsegs(k) & HRVparams.windowlength + RRAnalysisWindows > afsegs(k))];
catch
end
end
idx_af = unique (idx_af); % Do not consider duplicate positions
cleanRRAnalysisWindows(idx_af) = NaN; % Remove all the windows with AF
end