README.txt 4.3 KB

  1. C-FICA Matlab function ( cfica.m )
  2. The C-FICA algorithm (Convolutive extension of FastICA) is a time-domain fast fixed-point algorithm that realizes blind source separation of convolutive mixtures. It is based on a convolutive sphering process (or spatio-temporal sphering) that lets the use of the classical FastICA updates to extract iteratively the innovation processes of the sources in a deflation procedure. For the estimation of the source contributions, we use a least-square criterion whose optimization is realized by a Wiener filtering process.
  3. The cfica.m function implements our algorithm in Matlab language and proposes different parameters and options.
  4. One can choose for instance the order of the extraction and recoloration filters, the non-Gaussianity criterion or the windows on which the extraction and recoloration filters are estimated (see below in the Matlab help for details).
  5. The main output is the signal vector 'Sc' whose raws are some estimated contributions of the different sources (the most powerful contribution for each considered source).
  6. Some other outputs are available as the estimated filters or the innovation processes for instance.
  7. Our algorithm ideally works with MA (Moving Average) mixtures of MA sources because of the relevance proof that is made by mapping the mixtures into linear instantaneous ones. Nevertheless, with real speech sources, we obtain notable separation results by choosing adequately the window of extraction (see demo2).
  8. Our procedure is based on the following paper, published in the journal IEEE Signal Processing Letter:
  9. J. Thomas, Y. Deville and S. Hosseini
  10. "Time-domain fast fixed-point algorithms for convolutive ICA",
  11. IEEE Signal Processing Letters, vol. 13, no. 4, pp. 228-231, April 2006.
  12. We provide in this package two demo programs; the first one realizes the separation of artificial colored sources mixed with real filters recorded at the ears of a dummy head. The user can change the directions of arrival of the two source signals as explained in the following reference:
  13. B. Gardner and K. Martin, "Head Related Transfer Functions of a Dummy Head"
  15. The SIRs of the estimated contributions are computed and some figures compare the estimated contributions with the true ones.
  16. The second demo uses real speech signals and mixes them with the same set of filters as above. The extraction of the innovation process is here made on a small-size window that has been correctly chosen (we are currently working on a automatic choice of this window).
  17. By choosing 0 as order of the extraction and recoloration filters, our function cfica also separates linear instantaneous mixtures.
  18. cfica Matlab help:
  19. ---------------------------------------------------------------------------
  20. C-FICA algorithm - Convolutive extension of FastICA
  21. J. Thomas, Y. Deville and S. Hosseini
  22. "Time-domain fast fixed-point algorithms for convolutive ICA",
  23. IEEE Signal Processing Letters, vol. 13, no. 4, pp. 228-231, April 2006.
  24. [Sc,sc,Isc,y,fe,fc,te,tc]=cfica(x,non-lin,epsi,Re,[we1 we2],Rc,[wc1 wc2],itermax,init,verbose)
  25. Inputs (place the deconvolution parameters before the recoloration ones themselves before itermax)
  26. x : observation vector
  27. non-lin : 'k'->kurtosis, 'g'->Gaussian, 't'->tanh default 'g'
  28. init : 'i' to initialize with unit filters optional
  29. epsi : stopping criterion (between 0 and 1) default 10^-12
  30. Re : order of the extraction filters default 80
  31. [we1 we2] : extraction time window optional
  32. Rc : order of the recoloration filters default 3R1
  33. [wc1 wc2] : recoloration time window optional
  34. itermax : maximum number of iterations default 10000
  35. verbose : 'v' for verbose optional
  36. Outputs
  37. Sc : most powerful contributions for each estimated source
  38. sc : estimated source contributions (tensor N*N*nb_samples)
  39. Isc : indices of the most powerful contributions
  40. y : N-1 estimated innovation processes (matrix N*nb_samples)
  41. fe : extraction filters
  42. fc : recoloration filters
  43. te : times of extraction
  44. tc : times of recoloration
  45. --------------------------------------------------------------------------
  46. Releases:
  47. V1.1: original code by J. Thomas
  48. V1.2: bug fixes by M. Puigt