% GET_TEST_OBJECTS_MFIR returns a set of MFIR objects suitable for many of the UTPs
%
% CALL: [firhp,firlp,firbp,firbr,firpzm,firao,firv,firm] = get_test_objects_mfir
%       [fir1,fir2,fir3,fir4,fir5,fir6,firv,firm] = get_test_objects_mfir
%
% OUTPUTS:
%           firhp  - FIR highpass filter
%           firlp  - FIR lowpass filter
%           firbp  - FIR bandpass filter
%           firbr  - FIR bandreject filter
%           firpzm - FIR object created from a pole/zero model
%           firao  - FIR object created from an analysis object
%           firv   - [firhp firlp firbr firao];
%           firm   - [firhp firpzm firbp; firlp firbr firao];
%
%
% M Hewitson 06-08-08
%
% $Id: get_test_objects_mfir.m,v 1.5 2009/01/27 16:29:14 ingo Exp $
%
function [firhp,firlp,firbp,firbr,firpzm,firao,firv,firm] = get_test_objects_mfir


  %% FIR highpass filter
  firhp = mfir(plist('type', 'highpass'));
  firhp.setName();

  %% FIR lowpass filter
  firlp = mfir(plist('type', 'lowpass'));
  firlp.setName();

  %% FIR bandpass filter
  firbp = mfir(plist('type', 'bandpass', 'fc', [0.01 0.1]));
  firbp.setName();

  %% FIR bandreject filter
  firbr = mfir(plist('type', 'bandreject', 'fc', [0.01 0.1]));
  firbr.setName();

  %% FIR created from pole/zero model
  pzm = pzmodel(1, [pz(1) pz(200)], pz(50));
  pl = plist('pzmodel', pzm, 'fs', 1000);
  firpzm = mfir(pl);
  firpzm.setName();

  %% FIR created from AO
  a1 = ao(plist('fsfcn', '1./(50+f)', 'f', linspace(0, 500, 1000)));
  a1.setFs(1000);
  pl = plist('ao', a1);
  firao = mfir(pl);
  firao.setName();

  %% FIR vector
  firv = [firhp firlp firbr firao];

  %% FIR matrix
  firm = [firhp firpzm firbp; firlp firbr firao];

end
