From c06c5629f9cf2be25bc9c818c08542fa476e0634 Mon Sep 17 00:00:00 2001 From: "Brandon Ingram (PhD Psychology Lab FT)" Date: Sat, 11 Feb 2023 22:23:51 +0000 Subject: [PATCH] Fixed downsampling issue with Gaussian obervation model --- utils/analysis/getFractionalOccupancy.m | 3 ++- utils/analysis/getStateIntervalTimes.m | 12 ++++++++---- utils/analysis/getStateLifeTimes.m | 12 ++++++++---- utils/analysis/getSwitchingRate.m | 12 ++++++++---- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/utils/analysis/getFractionalOccupancy.m b/utils/analysis/getFractionalOccupancy.m index eb063d9..148006f 100644 --- a/utils/analysis/getFractionalOccupancy.m +++ b/utils/analysis/getFractionalOccupancy.m @@ -62,7 +62,8 @@ options.order = (sum(T) - size(Gamma,1)) / length(T); end -if isfield(options,'tuda') && options.tuda +if isfield(options,'tuda') && options.tuda | ... + isfield(options, 'order') && options.order == 0 T = ceil(r * T); elseif isfield(options,'order') && options.order > 0 T = ceil(r * T); diff --git a/utils/analysis/getStateIntervalTimes.m b/utils/analysis/getStateIntervalTimes.m index 95c7a54..adef3e1 100644 --- a/utils/analysis/getStateIntervalTimes.m +++ b/utils/analysis/getStateIntervalTimes.m @@ -54,7 +54,14 @@ r = (options.downsample/options.Fs); end -if isfield(options,'order') && options.order > 0 +if ~isfield(options,'order') && ~isfield(options,'embeddedlags') + options.order = (sum(T) - size(Gamma,1)) / length(T); +end + +if isfield(options,'tuda') && options.tuda | ... + isfield(options, 'order') && options.order == 0 + T = ceil(r * T); +elseif isfield(options,'order') && options.order > 0 T = ceil(r * T); T = T - options.order; elseif isfield(options,'embeddedlags') && length(options.embeddedlags) > 1 @@ -62,9 +69,6 @@ d2 = max(0,options.embeddedlags(end)); T = T - (d1+d2); T = ceil(r * T); -else - options.order = (sum(T) - size(Gamma,1)) / length(T); - T = T - options.order; end if is_vpath % viterbi path diff --git a/utils/analysis/getStateLifeTimes.m b/utils/analysis/getStateLifeTimes.m index 3925400..a92dac1 100644 --- a/utils/analysis/getStateLifeTimes.m +++ b/utils/analysis/getStateLifeTimes.m @@ -55,7 +55,14 @@ r = (options.downsample/options.Fs); end -if isfield(options,'order') && options.order > 0 +if ~isfield(options,'order') && ~isfield(options,'embeddedlags') + options.order = (sum(T) - size(Gamma,1)) / length(T); +end + +if isfield(options,'tuda') && options.tuda | ... + isfield(options, 'order') && options.order == 0 + T = ceil(r * T); +elseif isfield(options,'order') && options.order > 0 T = ceil(r * T); T = T - options.order; elseif isfield(options,'embeddedlags') && length(options.embeddedlags) > 1 @@ -63,9 +70,6 @@ d2 = max(0,options.embeddedlags(end)); T = T - (d1+d2); T = ceil(r * T); -else - options.order = (sum(T) - size(Gamma,1)) / length(T); - T = T - options.order; end if is_vpath % viterbi path diff --git a/utils/analysis/getSwitchingRate.m b/utils/analysis/getSwitchingRate.m index b3cde79..b2948a6 100644 --- a/utils/analysis/getSwitchingRate.m +++ b/utils/analysis/getSwitchingRate.m @@ -41,7 +41,14 @@ r = (options.downsample/options.Fs); end -if isfield(options,'order') && options.order > 0 +if ~isfield(options,'order') && ~isfield(options,'embeddedlags') + options.order = (sum(T) - size(Gamma,1)) / length(T); +end + +if isfield(options,'tuda') && options.tuda | ... + isfield(options, 'order') && options.order == 0 + T = ceil(r * T); +elseif isfield(options,'order') && options.order > 0 T = ceil(r * T); T = T - options.order; elseif isfield(options,'embeddedlags') && length(options.embeddedlags) > 1 @@ -49,9 +56,6 @@ d2 = max(0,options.embeddedlags(end)); T = T - (d1+d2); T = ceil(r * T); -else - options.order = (sum(T) - size(Gamma,1)) / length(T); - T = T - options.order; end if is_vpath % viterbi path