From 9459ff5d8f9ef1a1fffbc4339434e258ee5161db Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Tue, 4 Aug 2015 08:47:39 +0200 Subject: [PATCH] Add bandpass filtering to simulated moments Also takes precautions for future implementation of one-sided hp filter --- matlab/disp_moments.m | 12 ++++++++++-- matlab/global_initialization.m | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/matlab/disp_moments.m b/matlab/disp_moments.m index cd7ebf2b9..4e6de10d2 100644 --- a/matlab/disp_moments.m +++ b/matlab/disp_moments.m @@ -42,10 +42,18 @@ y = y(ivar,options_.drop+1:end)'; m = mean(y); -if options_.hp_filter +if options_.hp_filter && ~options.one_sided_hp_filter && ~options_.bandpass.indicator [hptrend,y] = sample_hp_filter(y,options_.hp_filter); -else +elseif ~options_.hp_filter && options_.one_sided_hp_filter && ~options_.bandpass.indicator + error('disp_moments:: The one-sided HP filter is not yet available') +elseif ~options_.hp_filter && ~options_.one_sided_hp_filter && options_.bandpass.indicator + data_temp=dseries(y,'0q1'); + data_temp=baxter_king_filter(data_temp,options_.bandpass.passband(1),options_.bandpass.passband(2),200); + y=data_temp.data; +elseif ~options_.hp_filter && ~options_.one_sided_hp_filter && ~options_.bandpass.indicator y = bsxfun(@minus, y, m); +else + error('disp_moments:: You cannot use more than one filter at the same time') end s2 = mean(y.*y); diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m index 3f65232c9..f093cd2f1 100644 --- a/matlab/global_initialization.m +++ b/matlab/global_initialization.m @@ -153,7 +153,7 @@ options_.impulse_responses.plot_threshold=1e-10; options_.relative_irf = 0; options_.ar = 5; options_.hp_filter = 0; -options_.one_sided_hp_filter = 1600; +options_.one_sided_hp_filter = 0; options_.hp_ngrid = 512; options_.nodecomposition = 0; options_.nomoments = 0;