This page is under constant development. Codes can hopefully be downloaded
a few months after publication of the related papers.
Thanks for your patience & interest.
If you download source codes, please leave the
header indicating version, author, and date of
modifications. If you introduce modifications yourself, add comments
in the header with date and author's name,
so that the history of the code can be traced.
Old codes (1989-2006)
The following source
codes can be downloaded in ASCII format. For the moment (and for
years), there are still 3 packages, that you can download alltogether
in archive format here. The 4th package on block equalization has been made available in 2003.
- Closed-form block
Source separation codes maximizing the contrast (2,4), the sum of squares
of fourth-order marginal cumulants for real data and mixtures in
presence of unknown noise.
References: Vail'89, Chamrousse'91, Eurasip Signal Processing'94.
This is the so-called CoM2 algorithm.
- The original 1989 Matlab codes on Independent Component
Analysis by contrast maximization, all merged one after the other in a
single file codesICA.txt . The file
codesICA.txt contains the following:
- The function
tfuni4.m , separating 2 sources from 2 sensor data
- The code aci.m
performing the sweeps: i.e. the code
separating N sources from N (or more) sensors, calling the function
tfuni4.m that processes the pairs, and
putting the results together.
- The function tfuniV.m
identifying a 2-input 2-output mixture from sensor
cumulants. The latter allows to evaluate performances for infinite observation
lengths.
- The function aciValid.m
performing the sweeps and calling tfuni4V.m.
It separates N sources from N
(or more) sensors, only based on cumulants of sources (number not limited,
so that interferences simulating non Gaussian noises can be included).
References: Eurasip Signal Processing'94
- The function ecar2.m allowing to measure the gap between 2 matrices up to multiplicative scaling and permutation matrices. References: Eurasip Signal Processing'94
- Closed-form block
Source separation codes maximizing the contrast (1,4), the sum of fourth-order
marginal cumulants, when sources have a kurtosis of given constant
sign. References: ICASSP'97, SPAWC'97, ICA'99
This is the so-called CoM1 algorithm.
- The function tfuni1.m
separating a pair of complex sources.
- The function tfuni1R.m
separating a pair of real sources.
- The function tfuni1V.m
identifying a 2-input 2-output mixture (in presence of an unlimited number of non Gaussian unknown interferences) from sensor cumulants. The
latter allows to evaluate performances for infinite observation
lengths.
- The code aci1.m separating N
complex sources from N (or more) sensors, that calls tfuni1.m.
- MeX and C codes for
separating complex sources,
written by C.Guillemot and O.Grellier in June
2000, and implementing the same algorithms as aci1.m and tfuni1.m.
- Important note: the algorithm tfuni1.m has been improved in 2001, by noting that the optimal 2x2 unitary matrix can be obtained by computing the EVD of a 3x3 symmetric real matrix. The corresponding function is tfuni2.m . Reference: ICISP'01.
-
Codes for identifying a complex
mixture of 3 sources received on 2 sensors. References:
SPIE'98, ICA'99, IEEE Trans SP'04
-
Codes on block blind equalization (not optimized, but show feasability and convergence). In particular:
Reference: Int. Jour. Adapt. Contr. Sig. Proc. (Wiley), SPAWC'03, ICASSP'04
- KMA: by kurtosis maximization
- CMA: by constant modulus
- CPA: by constant power, or polynomial roots
matching
- Codes to compute typical and generic ranks of 3-way arrays
Reference: preprint ICASSP'2008
zip
containing codes
-
Code xx.m of the closed-form blind
equalizer of a SISO GSM channel. References:
SPIE'98, SPAWC'99
-
Code xx.m of the closed-form blind
equalizer of a MIMO GSM channel. References:
SPAWC'99
-
Code xx.m of the closed-form
semi-blind equalizer of a SISO GSM channel. References:
SPAWC'99
-
Code xx.m performing quantics
decompositions. References: Eurasip Signal Processing'96
-
Matlab codes or Scilab codes to compute generic ranks of
various tensors are described in I3S report I3S/RR-2006-29-FR, September 4, 2006.
Note: xx links are not yet implemented
Tensor Package
More recent source codes for tensor decomposition can be found at the
Tensor Package page.