Personal pages of PETR TICHAVSKÝ

This page offers a free download of matlab/C++ codes developed by Petr Tichavsky and his co-workers that are cited in his/their publications. We only ask for a registration of any user, using the codes for educational purposes only, and for properly citing of the papers/web page.
Exact location of the codes will be send to the interested users by automatically generated e-mail, containing (hopefully) all necessary details.
A feedback on the codes is highly appreciated.

Registration If you do not receive any e-mail after your registration, please send me an e-mail and I will respond immediately and send you the requested codes. (The system is under reconstruction.)

The list of the downloadable software

  1. Estimating the Mutual Information
  2. Optimum Pairing
  3. Approximate Joint Diagonalization Algorithms
  4. WASOBI - A BSS algorithm based on the spectral diversity
  5. BGSEP - A BSS algorithm based on the signal nonstationarity
  6. BARBI - A BSS algorithm based on the signal nonstationarity and the spectral diversity
  7. Algorithms COMBI and MULTI-COMBI - BSS algorithms based on combination of the signal non-Gaussianity and the spectral diversity
  8. Generator of a Generalized Gaussian distributed matrices
  9. FicaCPLX - A BSS algorithm for separating complex-valued signals based on non-Gaussianity, with optimalized suppression of the additive noise
  10. Tensor Factorization Algorithms

More detailed description of the software


1. Estimating the Mutual Information

Matlab code for estimating the mutual information of N independent observations of d random variables based on adaptive partitioning of the observation space.

2. Optimum Pairing

Matlab implementation of the Kuhn-Munkres algorithm for maximum matching in a bipartite graph published in the IEEE Signal Processing Letters in January 2004. A new version with augmented comments provided by Bill Baxter. The code can be used for application in pairing of independent signal components separated by blind techniques.

3. Approximate Joint Diagonalization Algorithms

This toolbox contains four approximate joint diagonalization algorithms. The first three are described in the paper P. Tichavsky and A. Yeredor, "Fast Approximate Joint Diagonalization Incorporating Weight Matrices", IEEE Tr. on Signal Processing, vol. 57, no.3, pp. 878-891, March 2009.
  • UWEDGE - Uniformly Weighted Exhaustive Diagonalization with Gauss itErations
  • WEDGE - Weighted Exhaustive Diagonalization with Gauss itErations (with user-provided weight matrices)
  • BG-WEDGE - it is WEDGE with special choice of the weight matrices that correspond to joint diagonalization of covariance matrices in blind source separation of Block-wise stationary Gaussian signals. It represents a fast alternative to the Pham's algorithm "jadiag".
  • UWEDGE_C - Complex version (version for complex-valued matrices and complex-valued mixing) of the algorithm UWEDGE
Another WEDGE-like algorithm is used in WASOBI, see the next toolbox.

4. WASOBI - A BSS algorithm based on the spectral diversity

This algorithm serves for blind separation of instantaneous mixture of stationary random processes with spectral diversity. The algorithm is asymptotically optimum (attaining corresponding Cramer-Rao lower bound), if the original signals are Gaussian autoregressive random processes. The algorithm is built on approximate joint diagonalization of a set of time-lagged covariance matrices of the signals via WEDGE algorithm with specially selected weight matrices.

5. BGSEP - A BSS algorithm based on the signal nonstationarity

This algorithm is used e.g. in the time-domain blind separation of convolutive mixtures by Koldovsky and Tichavsky. Basically, it computes sample covariance matrices of the multichannel signal on a partitioning to non-overlapping intervals of an equal size, and applies an algorithm for approximate joint diagonalization with appropriate weights (BGWEDGE).

6. Algorithm BARBI.

BARBI= Block AR Blind Identification algorithm. It is a generalization of IWASOBI algorithm to multiple blocks. It includes, as special cases, alternative implementations of IWASOBI and BG_WEDGE.

7. Algorithms COMBI and MULTI-COMBI.

A matlab implementation of algorithms COMBI and MULTI-COMBI that are hybrid of algorithms of algorithm EFICA and WASOBI, utilizing strong features of both algorithms

8. Generator of generalized Gaussian distributed matrices

This simle utility serves to generate random matrices with i.i.d random variables with the generalized Gaussian distribution with zero mean, unit variance and shape parameter alpha. Method: numerical inversion of the corresponding probability distribution function at points that are uniformly distributed in [0,1].

9. Algorithm FicaCPLX

Algorithm FicaCPLX that is a variant of the algorithm FastICA for blind separation of complex-valued sources, implementing a new test of saddle points and an one-unit refinement for each component. As a reference, please cite Zbynek's and my paper presented at ICA'07 in London, see Publications.

10. Tensor Factorization Algorithms

Three tensor factorization algorithms are presented, to perform an unconstrained parallel factor analysis of three way tensors: GN/ELS, LM1 and LM2. The algorithm is described in a manuscript P. Tichavsky, Z. Koldovsky, "Simultaneous Search for All Modes in Multilinear Models", ICASSP 2010, March 14-19,2010, Dallas, TX, USA.