c@0: classdef MASSEFseparator < handle c@0: %MASSEFseparator Abstract base class for MASSEF separation algorithms c@0: % c@0: % MASSEFseparator properties: c@0: % label - A label for the instance of the algorithm (shown in c@0: % the results file). c@0: % estTag - Tags for the estimated outputs. c@0: % c@0: % MASSEFseparator methods: c@0: % MASSEFseparator - Create an instance of the algorithm. c@0: % separate - Run the separation algorithm on the time-domain c@0: % mixture (Abstract). c@0: % c@0: % Note that this is a handle class and hence derived classes are passed c@0: % by reference. c@0: % c@0: % See also MASSEF. c@0: c@0: % Copyright 2016 University of Surrey. c@0: c@0: properties c@0: label % A label for the instance of the algorithm (shown in the MASSEF results file) c@0: estTag % Tags for the estimated outputs c@0: end c@0: c@0: methods c@0: c@0: % constructor c@0: function obj = MASSEFseparator() c@0: obj.label = ''; c@0: obj.estTag = ''; c@0: end c@0: c@0: % set estTag c@0: function set.estTag(obj,val) c@0: if ischar(val) c@0: obj.estTag = cellstr(val); c@0: elseif iscellstr(val) c@0: obj.estTag = val; c@0: else c@23: error('MASSEFseparator:estTag:invalid','''estTag'' must be a char array or cell array of strings'); c@0: end c@0: end c@0: c@0: % set label c@0: function set.label(obj,val) c@0: if ischar(val) c@0: obj.label = val; c@0: else c@23: error('MASSEFseparator:label:invalid','''label'' must be a char array'); c@0: end c@0: end c@0: c@0: end c@0: c@0: methods (Abstract) c@0: c@0: % separation c@0: [signal,mask,est_azis,est_eles] = separate(obj,mixture); c@0: c@0: end c@0: c@0: end