view examples/SMALL_solver_test_Audio.m @ 13:cd55209c69e1

(none)
author idamnjanovic
date Thu, 25 Mar 2010 14:02:09 +0000
parents f44689e95ea4
children cbf3521c25eb
line wrap: on
line source
function SMALL_solver_test_Audio
% Example test of solvers on Sparco audio source separation problems
% 
%   The main purpose of this example is to show how to use SMALL structure
%   to solve SPARCO audio source3 separation problems (401-402) and  to 
%   compare results from different solvers.
%   To generate SMALL.Problem part of structure you can use generateProblem
%   function from Sparco toolbox giving the problem number and any
%   additional parameters you might want to change. Alternatively, you can
%   might want to consult sparco documentation to write a problem by
%   yourself. There are four fields the must be specified in SMALL.Problem 
%   - A, b, sizeA and reconstruct.
%   
%   To generate SMALL.solver part of the structure you must specify three
%   fields:
%   
%       SMALL.solver.toolbox - string with toolbox name is needed because
%                              different toolboxes are calling solver 
%                              functions in different ways.
%       SMALL.solver.name - its string representing solver name (e.g.
%                           SolveBP)
%       SMALL.solver.param - string that contains optional parameters for
%                            particular solver (all parameters you want to
%                            specify except A, b and size of solution)
%                            
%   Every call to SMALL_solve function will generate following output:
%
%       SMALL.solver.solution - contains solution vector x
%       SMALL.solver.reconstructed - vector containing signal reconstructed
%                                    from the solution
%       SMALL.solver.time - time that solver spent to find the solution
%           
%   SMALL_plot function plots the SMALL.solver.solution and reconstructed
%   sources against original audio sources.
%   SMALL_playAudio function plays audio sources of original and
%   reconstructed signal as well as mixed signal.
%   
%   
%   Ivan Damnjanovic 2009%
% 
%   SPARCO Copyright 2008, Ewout van den Berg and Michael P. Friedlander
%   http://www.cs.ubc.ca/labs/scl/sparco
%   $Id: exGPSR.m 1040 2008-06-26 20:29:02Z ewout78 $

fprintf('\n\nExample test of solvers on Sparco Audio problems (401,402).\n\n');

%%
% Generate SPARCO problem 
  
global SMALL
SMALL.Problem = generateProblem(402,'show');
%%

i=1;
%%
% SMALL Conjugate Gradient test 

SMALL.solver(i)=SMALL_init_solver;
SMALL.solver(i).toolbox='SMALL';    
SMALL.solver(i).name='SMALL_cgp';

% In the following string all parameters except matrix, measurement vector
% and size of solution need to be specified. If you are not sure which
% parameters are needed for particular solver type "help <Solver name>" in
% MATLAB command line

SMALL.solver(i).param='1500, 1e-14';

SMALL.solver(i)=SMALL_solve(SMALL.Problem, SMALL.solver(i));


i=i+1;
%%
% SolveOMP from SparseLab test 

SMALL.solver(i)=SMALL_init_solver;
SMALL.solver(i).toolbox='SparseLab';  
SMALL.solver(i).name='SolveBP';

% In the following string all parameters except matrix, measurement vector
% and size of solution need to be specified. If you are not sure which
% parameters are needed for particular solver type "help <Solver name>" in
% MATLAB command line

SMALL.solver(i).param='10';

SMALL.solver(i)=SMALL_solve(SMALL.Problem, SMALL.solver(i));

SMALL_plot(SMALL);
SMALL_playAudio(SMALL);  
%%

 
end % function SMALL_solver_test