Matlab toolbox for separation of convolutive mixtures

  Algorithm parameters
 
Toolbox main page
   
How to use the toolbox
  Download
  Getting started
  Parameters/advanced usage
   
Separation algorithm
  The deflation method
  Contrast functions
  References
   
   

Algorithm parameters

Using matlab command window to separate your own mixtures:
To separate a mixture, you need to define the following variables:
x
Observation signals: matrix of size (number of sensors)x(number of samples)
Param
Parameters: structure array variable which controls the options of separation. To assist you in setting the structure variable, type:
Param = GenerateParamStruct;
FreqCycl
(optional) Cyclic frequencies: vector list of cyclic frequencies. For stationnary signals, set:
FreqCycl = [];
The separation by a deflation method is then performed with:
[Source,Contribution,W] = Deflation(x,Param,FreqCycl);
and the outputs are respectively:
Source
Estimated sources: matrix of size (number of sources)x(number of samples)
Contribution
Contribution of the sources on the sensors: 3D array. Contribution(i,j,:) is the contribution of source i on sensor j.
W
Separating system: 3D array. (to be used as an input argument for the function MIMOfilt).

Possibilities specific to the method with cyclo-stationnary sources:
The toolbox offers the following additionnal possibilities. Whenever they are used, it is assumed that the sources are not stationnary but cyclo-stationnary.
  1. Estimation of the cyclic frequencies: for more information, you can use the help.
    You need then to create an array containing the positive cyclic frequencies. Let's call it FreqCycl
    • If you deal with stationary signals, or if you are not able to estimate the cyclic frequencies, just write
      FreqCycl=[];
      in the matlab command window.

    • If you want to estimate the cyclic frequencies, you can calculate a criterion which pics are at the cyclic frequencies:
      EstimateCyclicFrequencies(x)
      see help for more information.

  2. Performing the separation:
    • If you think that you are dealing with an instantaneous mixture, you can use the following command:
      [Source,Contribution] = Deflation(x,InstantaneousMixtureParameters,FreqCycl); % x is the mixture

    • If you think that you are dealing with a convolutive mixture, you can use the following command:
      [Source,Contribution] = Deflation(x,ConvolutiveMixtureParameters,FreqCycl); % x is the mixture


 
Contact : webmaster