% Test script for ao/filtSubtract
%
% M Nofrarias 14-05-09
%
% $Id: test_ao_filtSubtract.m,v 1.1 2009/08/06 09:12:12 miquel Exp $
%

%% Make test AOs

% clear 

nsecs = 1000;
fs    = 10;


pl1 = plist('nsecs', nsecs, 'fs', fs, 'tsfcn', 'randn(size(t))');
a1 = ao(pl1);


pl2 = plist('nsecs', nsecs, 'fs', fs, 'tsfcn', 'sin(2*pi*0.01*t)');
a2 = ao(pl2);

% linear coupling
a3 = a1 + a2
a3.setName('input')

%%  Filter Subtraction

w = specwin('Kaiser', 100, 90);
% plist lcohere
pll = plist(...
  'type','ms',...
  'Kdes', 100,...
  'win',w,...
  'Jdes', 200,...
  'Order', 1,...
  'variance','no');

% plist zDomainFit fit
plf = plist('fs',fs,...
    'AutoSearch','on',...
    'StartPoles',[],...
    'StartPolesOpt','real',...
    'maxiter',500,...
    'minorder',3,...
    'maxorder',4,...
    'FITTOL',1e-8,...
    'MSEVARTOL',1e-8,...
    'Plot','off',...
    'ForceStability','on',...
    'direct term','off',...
    'CheckProgress','off');
  
% plist split
plb = plist('times',[10 1000],...
  'filtspl',[0.1  5]);

a4 = filtSubtract(a3,a1,pll,plf,plb);


%% Plot

iplot(a1,a3)

iplot(a4)

%% Test Subtraction

b = lpsd(a3,a4)
b.iplot

%% History

plot(a4.hist)






