# Patent

## Title
Method for separating mixed signals into a plurality of component signals

## Abstract

The invention relates to a method for breaking down a set of signals consisting of an instantaneous linear mixture of independent components. The method comprises a step (200) consisting in estimating a mixture matrix A by using the product of one or more trigonometric rotation matrices by one or more hyperbolic rotation matrices.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
The present application is a national phase entry under 35 U.S.C. §371 of International Application No. PCT/EP2009/050029, filed Jan. 5, 2009, published in English, which claims priority from French Patent Application No. 0850031, filed Jan. 3, 2008, all of which are incorporated herein by reference.
The present invention relates to the general technical field of signal processing, and more specifically of separating source signals from mixtures of source signals by using blind separation of sources.
The present invention may find many applications. It may notably be applied to processing electroencephalograms, to signal processing in the field of radio communications, or further to the processing of mass spectra.
GENERAL PRESENTATION OF THE PRIOR ART
The problem of separating sources is a relatively recent problem in signal processing, which consists of separating statistically independent sources, from several mixtures recorded either by a network of sensors at a given instant (space dispersion).
It frequently happens that an observed physical phenomenon is the superposition of several independent elementary phenomena and that this superposition is expressed by an instantaneous linear combination (or mixture).
The measurement data from the observation of this phenomenon are then an instantaneous linear mixture of the contributions from each independent elementary phenomenon.
By placing a plurality of sensors, it is then possible to measure several different instantaneous linear mixtures of these contributions. For example, in electroencephalography, various electrodes are placed on the scalp of a patient. These electrodes enable the cerebral activity of the brain of the patient to be measured.
Each electrode measures a mixture of electric signals emitted by various sources of the brain, the different electrodes measuring different mixtures. Mixtures of sources are said to be different when the sources appear therein in different proportions or with different weights.
In this case, no other information is known:


    
    
        on the sources and
        on how the signals from these sources mix.
    
    


Source separation is then used for identifying the weights of the mixture in a first phase, and for separating in the measurements the contribution of each source in a second phase. This allows separate analysis of the different contributions without being disturbed by the mixture.
Presently there are two types of methods for source separation.
The first type of methods uses a preliminary step, a so-called <<whitening>> step, with which the subsequent computational steps may be facilitated in order to identify the weights of the mixture. However, this whitening step induces an error which cannot be corrected upon the separation of the contribution of each source. This type of methods is therefore not very accurate.
The second type of methods does not require any whitening step; however this second type of method induces problems in terms of efficiency and computational cost.
An object of the present invention is to propose a method for separating mixed signals into a plurality of component signals with which at least one of the drawbacks of the aforementioned types of methods may be overcome.
PRESENTATION OF THE INVENTION
For this purpose, a method is provided for separating mixed signals (x1(t), . . . , xN(t)) recorded by at least two sensors into a plurality of component signals (s1(t), . . . , sM(t)), the mixed signals (x1(t), . . . , xN(t)) corresponding to N linear combinations of M component signals (s1(t), . . . , sM(t)) stemming from independent sources, each mixed signal being able to be written as the product of a mixture matrix (A) multiplied by a vector of the component signals from the sources (s1(t), . . . , sM(t)), the method further comprising a joint diagonalization step in which the mixture matrix A is estimated from a product of rotation matrices corresponding to one or more Givens rotation matrices (G(θ)) and to one or more “hyperbolic rotation” matrices (H(φ)).
Within the scope of the present invention, by “hyperbolic rotation matrix”, is meant a rotation matrix including terms which are hyperbolic functions (for example, cos h, sin h) and having a determinant equal to 1.
Thus, with the invention, the mixture matrix may be identified by a single fast and reliable optimization step. The fact that there is only one single step provides a more accurate result than the two-step methods (whitening followed by joint diagonalization) such as in [1], [1b], [2]. Indeed, the unavoidable errors of the first step cannot be corrected by the second step. Further, the proposed method uses an algebraic algorithm (these are products of 2×2 size “trigonometric” and “hyperbolic” rotation matrices), which is particularly robust and not very costly in terms of computational power.
The methods comprising a whitening step build an orthogonal mixture matrix by the product of elementary orthogonal matrices (Givens rotations).
As for the present invention, it allows a mixture matrix to be built with a determinant equal to 1 by the multiplication of matrices with a determinant equal to 1. The group of orthogonal matrices (with a positive determinant +1) is included in the group of matrices with a determinant equal to 1. The steps for computing the mixture matrix are therefore facilitated with the method of the present invention which allows the initial constraints on the mixtures to be limited. The initial “whitening” step is no longer essential but the robustness and efficiency of “algebraic” methods are preserved.
Consequently, the method of the present invention enables the computation of a mixture matrix that is closer to the physical reality of the mixture, than the mixture matrix obtained with the method comprising a whitening step.
Preferred but non-limiting aspects of the method according to the invention are the following:

    
    
        Givens rotation matrices include elements corresponding to trigonometric functions of θ and hyperbolic rotation matrices include elements corresponding to hyperbolic functions of φ;
        the diagonalization step comprises a step for multiplying a family of estimated matrices ({circumflex over (R)}k) by the product of a Givens rotation matrix and of a hyperbolic rotation matrix on the right, and the transposed matrix of this product on the left; and for computing the values of θn and of φn in order to minimize the non-diagonal terms of the resulting matrices of order n of this multiplication;
        the multiplication step is repeated on the resulting matrices of order n;
        the multiplication step is repeated until the Givens angle θ and the “hyperbolic angle” φ are such that cos θ et cos hφ tend to 1 respectively;
        the estimated matrices {circumflex over (R)}k are (to within the estimation error) equal to the product of the mixture matrix by a diagonal matrix by the transposed mixture matrix (Rk=ADkAT), these are for example matrices of cumulants, or covariance matrices in different frequency bands, or intercorrelation matrices with different time shifts, or covariance matrices estimated over different time intervals;
        the Givens rotation matrices comprise cos θ elements on the diagonal, a sin θ element below the diagonal and a −sin θ element above the diagonal, and the “hyperbolic rotation” matrices comprise cos hφ elements on the diagonal, sin hφ element below the diagonal, and sin hφ element above the diagonal;
        the Givens rotation matrices are of the type
    
    






   
  
    (
    
      
        
          
            cos
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          
            
              -
              sin
            
            ⁢
            
              
            
            ⁢
            θ
          
        
      
      
        
          
            sin
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          
            cos
            ⁢
            
              
            
            ⁢
            θ
          
        
      
    
    )
  




and the “hyperbolic rotation” matrices are of the type





   
  
    
      (
      
        
          
            
              cosh
              ⁢
              
                
              
              ⁢
              φ
            
          
          
            
              sinh
              ⁢
              
                
              
              ⁢
              φ
            
          
        
        
          
            
              sinh
              ⁢
              
                
              
              ⁢
              φ
            
          
          
            
              cosh
              ⁢
              
                
              
              ⁢
              φ
            
          
        
      
      )
    
    .
  




The invention also relates to a device for separating mixed signals recorded by at least two sensors into a plurality of component signals, each mixed signal corresponding to an instantaneous linear combination of component signals stemming from independent sources, each mixed signal being able to be written as the product of a mixture matrix multiplied by a vector of component signals stemming from the sources, characterized in that the device further comprises means for joint diagonalization in which the mixture matrix is estimated from a product of rotation matrices corresponding to one or more Givens rotation matrices and to one or more hyperbolic rotation matrices.
The invention also relates to a computer program product comprising program code instructions recorded on a medium which may be used in a computer, characterized in that it comprises instructions for applying the method described above.



PRESENTATION OF THE FIGURES
Other characteristics, objects and advantages of the present invention will further be apparent from the description which follows, which is purely an illustration and not a limitation, and it should be read with reference to the appended figures in which:
FIG. 1 illustrates an embodiment of the method according to the invention,
FIG. 2 is a diagram illustrating the convergence toward diagonality as a function of a number of sweeps with 50 independent trials with sets of K=50 matrices of size N=50 for three different methods (J-Di, FFDiag and LUJ1D) for separating mixed signals;
FIG. 3 is a diagram illustrating the convergence of the separation criterion as a function of a number of sweeps with 50 independent trials with sets of K=50 matrices of size N=50 for three different methods (J-Di, FFDiag and LUJ1D) for separating mixed signals;
FIG. 4 is a diagram illustrating the convergence of the separation criterion as a function of a number of sweeps with 50 independent trials, K=N(N+1)/2=210 fourth order cumulant slices N=20 and σ=0.1;
FIG. 5 is a representation of an embodiment of the system for separating mixed signals according to the invention.



DESCRIPTION OF THE INVENTION
The following algebraic properties known from the skilled person are used hereafter:

    
    
        Transposed of a product of 2 matrices A and B:

(AB)T=BTAT 

        Inverse of the product of two matrices A and B:

(AB)−1=B−1A−1 

        Givens rotation:

G(θ)−1=G(θ)T=G(−θ)

        Hyperbolic rotation:

H(φ)−1=H(−φ)

        Symmetry of Hyperbolic rotation:

H(φ)=H(φ)T 

    
    


An embodiment of the method according to the invention will now be described in more detail with reference to FIG. 1.
Breaking down a mixture into independent components is of interest because it facilitates the interpretation, the analysis or the processing of each of the phenomena which concealed one another in the mixture.
These may be for example:

    
    
        various (cerebral and muscular) electric phenomena contributing to an electroencephalographic signal (EEG),
        various radio transmitters in a narrow frequency band,
        light emissions from different fluorochromes present in a solution,
        mass spectra of different mixtures of the same molecules.

By separating the different contributions, it is then possible:

        to study the EEG signal rid of muscular parasites (blinks, ECG, etc.),
        to demodulate the signal from each radiofrequency source separately,
        to estimate the concentration of each fluorochrome (by cytometry for example) or
        to identify the different molecules present in the medium studied through mass spectrometry.
    
    


The signal of a source depends on a variable quantity which may be time (EEG, radiofrequency), wavelength (fluorescence), mass (mass spectrometry), etc.
In the following, the method according to the invention will be presented while considering that the signals from the sources depend on time without this restricting the general nature of the method.
The problem of separating sources is mathematically modeled in the following way.
Each of the M sources emits a signal sm(t) independent of the signals emitted by the other sources.
The mixture (at a given instant t) of these M contributions is observed by a network of N sensors (where N>M or N=M) which provide N distinct mixtures.
The data observed at an instant t, noted as x(t), are therefore multidimensional.
The vector of these N observations at a given instant may be written as the product of a matrix A (N lines, M columns), a so-called “mixture matrix”, by the vector s(t) of the source signals, i.e.:




  
    (
    
      
        
          
            
              x
              1
            
            ⁡
            
              (
              t
              )
            
          
        
      
      
        
          
            
              x
              2
            
            ⁡
            
              (
              t
              )
            
          
        
      
      
        
          ⋮
        
      
      
        
          ⋮
        
      
      
        
          
            
              x
              N
            
            ⁡
            
              (
              t
              )
            
          
        
      
    
    )
  
  =
  
    
      
        (
        
          
            
              
                a
                11
              
            
            
              
                a
                12
              
            
            
              ⋯
            
            
              
                a
                
                  1
                  ⁢
                  
                    
                  
                  ⁢
                  M
                
              
            
          
          
            
              
                a
                21
              
            
            
              
                a
                22
              
            
            
              ⋯
            
            
              
                a
                
                  2
                  ⁢
                  
                    
                  
                  ⁢
                  M
                
              
            
          
          
            
              ⋮
            
            
              ⋱
            
            
              ⋱
            
            
              ⋮
            
          
          
            
              ⋮
            
            
              
                
              
            
            
              ⋱
            
            
              ⋮
            
          
          
            
              
                a
                
                  N
                  ⁢
                  
                    
                  
                  ⁢
                  1
                
              
            
            
              
                a
                
                  N
                  ⁢
                  
                    
                  
                  ⁢
                  2
                
              
            
            
              ⋯
            
            
              
                a
                NM
              
            
          
        
        )
      
      ⁢
      
        (
        
          
            
              
                
                  s
                  1
                
                ⁡
                
                  (
                  t
                  )
                
              
            
          
          
            
              
                
                  s
                  2
                
                ⁡
                
                  (
                  t
                  )
                
              
            
          
          
            
              ⋮
            
          
          
            
              
                
                  s
                  M
                
                ⁡
                
                  (
                  t
                  )
                
              
            
          
        
        )
      
      ⁢
      
        i
        .
        e
        .
        
          
        
        ⁢
        
          x
          ⁡
          
            (
            t
            )
          
        
      
    
    =
    
      As
      ⁡
      
        (
        t
        )
      
    
  




The contributions sm(t) of the different sources to the measurements x(t) may be shown by reformulating the previous equation:




  
    (
    
      
        
          
            
              x
              1
            
            ⁡
            
              (
              t
              )
            
          
        
      
      
        
          
            
              x
              2
            
            ⁡
            
              (
              t
              )
            
          
        
      
      
        
          ⋮
        
      
      
        
          ⋮
        
      
      
        
          
            
              x
              N
            
            ⁡
            
              (
              t
              )
            
          
        
      
    
    )
  
  =
  
    
      
        ∑
        
          m
          =
          1
        
        
          m
          =
          M
        
      
      ⁢
      
        
      
      ⁢
      
        
          (
          
            
              
                
                  a
                  
                    1
                    ⁢
                    
                      
                    
                    ⁢
                    m
                  
                
              
            
            
              
                
                  a
                  
                    2
                    ⁢
                    
                      
                    
                    ⁢
                    m
                  
                
              
            
            
              
                ⋮
              
            
            
              
                ⋮
              
            
            
              
                
                  a
                  Nm
                
              
            
          
          )
        
        ⁢
        
          
            s
            m
          
          ⁡
          
            (
            t
            )
          
        
      
    
    =
    
      
        ∑
        
          m
          =
          1
        
        
          m
          =
          M
        
      
      ⁢
      
        
          a
          m
        
        ⁢
        
          
            s
            m
          
          ⁡
          
            (
            t
            )
          
        
      
    
  




The method according to the invention allows the mixture matrix A to be estimated without any a priori information on this matrix (it is only supposed to be non-singular) and the source signals may then be estimated.
The source signals are supposed to be independent and some of their statistical properties are utilized such as their non-Gaussian character, their spectral differences or their non-stationary character for example.
In a first step 100, a family of K estimated matrices {circumflex over (R)}k is calculated (for k comprised between 1 and K) from data recorded by the sensor network.
These estimated matrices {circumflex over (R)}k are equal (to within the estimation error) to matrices Rk which have the following structure:




  
    R
    k
  
  =
  
    
      
        AD
        k
      
      ⁢
      
        A
        T
      
    
    =
    
      
        ∑
        
          m
          =
          1
        
        
          m
          =
          M
        
      
      ⁢
      
        
          
            D
            k
          
          ⁡
          
            (
            
              m
              ,
              m
            
            )
          
        
        ⁢
        
          a
          m
        
        ⁢
        
          a
          m
          T
        
      
    
  




wherein Dk are diagonal matrices, and wherein AT is the transposed mixture matrix A. Of course, one skilled in the art will understand that the matrices Dk may be diagonal blockwise.

The 3rd term of the equation is only a reformulation of the 2nd one which shows the Rk matrices as weighted sums of M matrices of rank 1 (the amamT). The term Dk(m,m)amamT is the contribution of the source m to the matrix Rk.
Depending on these contexts, these estimated matrices {circumflex over (R)}k may be matrices of cumulants of order 3 or 4 (JADE method [1], [1b]), covariance matrices in different frequency bands [3], intercorrelation matrices with different time shifts (SOBI method [2]) or covariance matrices estimated over different time intervals [3]. Of course, these estimated matrices may be of other types known to one skilled in the art.
In a second step 200, joint diagonalization of the estimated matrices is carried out as described in more detail in the following.
The method according to the invention allows the A matrix to be calculated from the {circumflex over (R)}1, . . . , {circumflex over (R)}k, . . . , {circumflex over (R)}K matrices.
A matrix B is sought such that all the matrices B {circumflex over (R)}kBT are “as diagonal” as possible:

B{circumflex over (R)}kBT=Dk 

B is built as a product of elementary N×N matrices of the following form:




  
    M
    ⁡
    
      (
      
        i
        ,
        j
        ,
        θ
        ,
        φ
      
      )
    
  
  =
  
    
      
        
          i
        
      
      
        
          j
        
      
    
    ⁢
    
      (
      
        
          
            
              I
              
                i
                -
                1
              
            
          
          
            
              
            
          
          
            
              
            
          
          
            
              
            
          
          
            
              
            
          
        
        
          
            
              
            
          
          
            α
          
          
            
              
            
          
          
            β
          
          
            
              
            
          
        
        
          
            
              
            
          
          
            
              
            
          
          
            
              I
              
                j
                -
                i
                -
                1
              
            
          
          
            
              
            
          
          
            
              
            
          
        
        
          
            
              
            
          
          
            γ
          
          
            
              
            
          
          
            δ
          
          
            
              
            
          
        
        
          
            
              
            
          
          
            
              
            
          
          
            
              
            
          
          
            
              
            
          
          
            
              I
              
                N
                -
                j
              
            
          
        
      
      )
    
  




wherein i<j are any two indices between 1 and N, wherein Ip designates the identity matrix of size p×p and wherein





   
  
    (
    
      
        
          α
        
        
          β
        
      
      
        
          γ
        
        
          δ
        
      
    
    )
  




is the product of a Givens matrix of the





   
  
    (
    
      
        
          
            cos
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          
            
              -
              sin
            
            ⁢
            
              
            
            ⁢
            θ
          
        
      
      
        
          
            sin
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          
            cos
            ⁢
            
              
            
            ⁢
            θ
          
        
      
    
    )
  




type (wherein θ is an angle of the Givens rotation) by a hyperbolic rotation matrix of the





   
  
    (
    
      
        
          
            cosh
            ⁢
            
              
            
            ⁢
            φ
          
        
        
          
            sinh
            ⁢
            
              
            
            ⁢
            φ
          
        
      
      
        
          
            sinh
            ⁢
            
              
            
            ⁢
            φ
          
        
        
          
            cosh
            ⁢
            
              
            
            ⁢
            φ
          
        
      
    
    )
  




type (wherein φ is the hyperbolic rotation angle) so that:





  
    (
    
      
        
          α
        
        
          β
        
      
      
        
          γ
        
        
          δ
        
      
    
    )
  
  =
  
    
      (
      
        
          
            
              cos
              ⁢
              
                
              
              ⁢
              θ
            
          
          
            
              
                -
                sin
              
              ⁢
              
                
              
              ⁢
              θ
            
          
        
        
          
            
              sin
              ⁢
              
                
              
              ⁢
              θ
            
          
          
            
              cos
              ⁢
              
                
              
              ⁢
              θ
            
          
        
      
      )
    
    ×
    
      (
      
        
          
            
              cosh
              ⁢
              
                
              
              ⁢
              φ
            
          
          
            
              sinh
              ⁢
              
                
              
              ⁢
              φ
            
          
        
        
          
            
              sinh
              ⁢
              
                
              
              ⁢
              φ
            
          
          
            
              cosh
              ⁢
              
                
              
              ⁢
              φ
            
          
        
      
      )
    
  




Thus, a difference with the diagonalization methods of the prior art is that the matrix B (and therefore the mixture matrix A) is estimated from a product of rotation matrices with one or more Givens rotation matrices and with one or more hyperbolic rotation matrices.
By “hyperbolic rotation matrix” is meant a matrix including elements corresponding to hyperbolic functions of φ.
More particularly, the family of estimated matrices {circumflex over (R)}k is multiplied by:

    
    
        the product of a Givens rotation matrix and a hyperbolic rotation matrix on the right of each estimated matrix {circumflex over (R)}k. It is obvious for one skilled in the art that an equivalent implementation of the method would result from an inversion of the rotations (hyperbolic and then Givens rotation instead of Givens and then hyperbolic rotation).
        and by the transposed matrix of this product on the left of each estimated matrix {circumflex over (R)}k:
    
    





  
    
      
        
          H
          0
          T
        
        ⁡
        
          (
          
            φ
            0
          
          )
        
      
      ×
      
        
          G
          0
          T
        
        ⁡
        
          (
          
            θ
            0
          
          )
        
      
      ×
      
        
          R
          ^
        
        1
      
      ×
      
        
          G
          0
        
        ⁡
        
          (
          
            θ
            0
          
          )
        
      
      ×
      
        
          H
          0
        
        ⁡
        
          (
          
            φ
            0
          
          )
        
      
    
    =
    
      D
      1
    
  




  
    
      
    
    ⁢
    ...
  




  
    
      
        
          H
          0
          T
        
        ⁡
        
          (
          
            φ
            0
          
          )
        
      
      ×
      
        
          G
          0
          T
        
        ⁡
        
          (
          
            θ
            0
          
          )
        
      
      ×
      
        
          R
          ^
        
        K
      
      ×
      
        
          G
          0
        
        ⁡
        
          (
          
            θ
            0
          
          )
        
      
      ×
      
        
          H
          0
        
        ⁡
        
          (
          
            φ
            0
          
          )
        
      
    
    =
    
      
        
          D
          K
        
        ⁢
        
          

        
        ⁢
        
          with
          ⁢
          
            
          
          ⁢
          
            
              G
              0
            
            ⁡
            
              (
              
                θ
                0
              
              )
            
          
        
      
      =
      
        
          
            (
            
              
                
                  
                    cos
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      0
                    
                  
                
                
                  
                    
                      -
                      sin
                    
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      0
                    
                  
                
                
                  0
                
                
                  ⋯
                
                
                  0
                
              
              
                
                  
                    sin
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      0
                    
                  
                
                
                  
                    cos
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      0
                    
                  
                
                
                  0
                
                
                  
                    
                  
                
                
                  ⋮
                
              
              
                
                  0
                
                
                  0
                
                
                  1
                
                
                  
                    
                  
                
                
                  0
                
              
              
                
                  ⋮
                
                
                  ⋯
                
                
                  
                    
                  
                
                
                  ⋱
                
                
                  0
                
              
              
                
                  0
                
                
                  ⋯
                
                
                  0
                
                
                  0
                
                
                  1
                
              
            
            )
          
          ⁢
          
            

          
          ⁢
          and
          ⁢
          
            
          
          ⁢
          
            
              H
              0
            
            ⁡
            
              (
              
                φ
                0
              
              )
            
          
        
        =
        
          (
          
            
              
                
                  cosh
                  ⁢
                  
                    
                  
                  ⁢
                  
                    φ
                    0
                  
                
              
              
                
                  sinh
                  ⁢
                  
                    
                  
                  ⁢
                  
                    φ
                    0
                  
                
              
              
                0
              
              
                ⋯
              
              
                0
              
            
            
              
                
                  sinh
                  ⁢
                  
                    
                  
                  ⁢
                  
                    φ
                    0
                  
                
              
              
                
                  cosh
                  ⁢
                  
                    
                  
                  ⁢
                  
                    φ
                    0
                  
                
              
              
                0
              
              
                
                  
                
              
              
                ⋮
              
            
            
              
                0
              
              
                0
              
              
                1
              
              
                
                  
                
              
              
                0
              
            
            
              
                ⋮
              
              
                ⋯
              
              
                
                  
                
              
              
                ⋱
              
              
                0
              
            
            
              
                0
              
              
                ⋯
              
              
                0
              
              
                0
              
              
                1
              
            
          
          )
        
      
    
  



The angles θ0 and φ0 which minimize the non-diagonal terms of the matrices H0T(φ0)×G0T(θ0)×{circumflex over (R)}1 . . . K×G0(θ0)×H0(φ0) resulting from this product are then sought.
This operation is repeated on the resulting matrices by shifting the elements of the Givens and hyperbolic rotation matrices to the following elements of the resulting matrices:



  
    
      
        
          H
          1
          T
        
        ⁡
        
          (
          
            φ
            1
          
          )
        
      
      ×
      
        
          G
          1
          T
        
        ⁡
        
          (
          
            θ
            1
          
          )
        
      
      ×
      
        
          H
          0
          T
        
        ⁡
        
          (
          
            φ
            0
          
          )
        
      
      ×
      
        
          G
          0
          T
        
        ⁡
        
          (
          
            θ
            0
          
          )
        
      
      ×
      
        
          R
          ^
        
        1
      
      ×
      
        
          G
          0
        
        ⁡
        
          (
          
            θ
            0
          
          )
        
      
      ×
      
        
          H
          0
        
        ⁡
        
          (
          
            φ
            0
          
          )
        
      
      ×
      
        
          G
          1
        
        ⁡
        
          (
          
            θ
            1
          
          )
        
      
      ×
      
        
          H
          1
        
        ⁡
        
          (
          
            φ
            1
          
          )
        
      
    
    =
    
      D
      1
    
  




  ⋯




  
    
      
        
          H
          1
          T
        
        ⁡
        
          (
          
            φ
            1
          
          )
        
      
      ×
      
        
          G
          1
          T
        
        ⁡
        
          (
          
            θ
            1
          
          )
        
      
      ×
      
        
          H
          0
          T
        
        ⁡
        
          (
          
            φ
            0
          
          )
        
      
      ×
      
        
          G
          0
          T
        
        ⁡
        
          (
          
            θ
            0
          
          )
        
      
      ×
      
        
          R
          ^
        
        K
      
      ×
      
        
          G
          0
        
        ⁡
        
          (
          
            θ
            0
          
          )
        
      
      ×
      
        
          H
          0
        
        ⁡
        
          (
          
            φ
            0
          
          )
        
      
      ×
      
        
          G
          1
        
        ⁡
        
          (
          
            θ
            1
          
          )
        
      
      ⁢
      
        
          H
          1
        
        ⁡
        
          (
          
            φ
            1
          
          )
        
      
    
    =
    
      D
      K
    
  




  
    
      with
      ⁢
      
        
      
      ⁢
      
        
          G
          1
        
        ⁡
        
          (
          
            θ
            1
          
          )
        
      
    
    =
    
      (
      
        
          
            
              cos
              ⁢
              
                
              
              ⁢
              
                θ
                1
              
            
          
          
            0
          
          
            
              
                -
                sin
              
              ⁢
              
                
              
              ⁢
              
                θ
                1
              
            
          
          
            0
          
          
            ⋯
          
          
            0
          
        
        
          
            0
          
          
            1
          
          
            0
          
          
            
              
            
          
          
            
              
            
          
          
            
              
            
          
        
        
          
            
              sin
              ⁢
              
                
              
              ⁢
              
                θ
                1
              
            
          
          
            0
          
          
            
              cos
              ⁢
              
                
              
              ⁢
              
                θ
                1
              
            
          
          
            0
          
          
            ⋯
          
          
            0
          
        
        
          
            0
          
          
            0
          
          
            0
          
          
            1
          
          
            
              
            
          
          
            0
          
        
        
          
            ⋮
          
          
            
              
            
          
          
            ⋮
          
          
            
              
            
          
          
            ⋱
          
          
            
              
            
          
        
        
          
            0
          
          
            ⋯
          
          
            0
          
          
            0
          
          
            
              
            
          
          
            1
          
        
      
      )
    
  




  
    
      and
      ⁢
      
        
      
      ⁢
      
        
          H
          1
        
        ⁡
        
          (
          
            φ
            1
          
          )
        
      
    
    =
    
      (
      
        
          
            
              cosh
              ⁢
              
                
              
              ⁢
              
                φ
                1
              
            
          
          
            0
          
          
            
              sinh
              ⁢
              
                
              
              ⁢
              
                φ
                1
              
            
          
          
            0
          
          
            ⋯
          
          
            0
          
        
        
          
            0
          
          
            1
          
          
            0
          
          
            
              
            
          
          
            
              
            
          
          
            
              
            
          
        
        
          
            
              sinh
              ⁢
              
                
              
              ⁢
              
                φ
                1
              
            
          
          
            0
          
          
            
              cosh
              ⁢
              
                
              
              ⁢
              
                φ
                1
              
            
          
          
            0
          
          
            ⋯
          
          
            0
          
        
        
          
            0
          
          
            0
          
          
            0
          
          
            1
          
          
            
              
            
          
          
            0
          
        
        
          
            ⋮
          
          
            
              
            
          
          
            ⋮
          
          
            
              
            
          
          
            ⋱
          
          
            
              
            
          
        
        
          
            0
          
          
            ⋯
          
          
            0
          
          
            0
          
          
            
              
            
          
          
            1
          
        
      
      )
    
  



and so forth for all the pairs of indices i and j:

HLT(φL)×GLT(θL)× . . . ×H0T(φ0)×G0T(θ0)×{circumflex over (R)}1×G0(θ0)×H0(φ0)× . . . ×GL(θL)×HL(φL)= . . . HLT(φL)×GLT(θL)× . . . ×H0T(φ0)×G0T(θ0)×{circumflex over (R)}K×G0(θ0)×H0(φ0)× . . . ×GL(θL)×HL(φL)=D 

These operations are repeated several times on all the pairs of indices i and j until all the Givens rotation angles θ and all the hyperbolic rotation angles φ are such that cos θ and cos hφ tend to 1, respectively.
Of course, one skilled in the art knows that other stopping criteria—implying global convergence of the method—are possible. For example, the global increase in the diagonal elements or the global reduction in the non-diagonal elements may be monitored in order to decide to stop the iterations.
The angles θ and φ which globally minimize the non-diagonal terms of the matrices M(i,j,θ,φ)T×{circumflex over (R)}k×M(i,j,θ,φ) may be obtained for example in the following way:

    
    
        build a matrix C such that
    
    






  
    C
    =
    
      (
      
        
          
            
              
                (
                
                  
                    
                      
                        R
                        ^
                      
                      1
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        i
                      
                      )
                    
                  
                  +
                  
                    
                      
                        R
                        ^
                      
                      1
                    
                    ⁡
                    
                      (
                      
                        j
                        ,
                        j
                      
                      )
                    
                  
                
                )
              
              /
              2
            
          
          
            
              
                (
                
                  
                    
                      
                        R
                        ^
                      
                      1
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        i
                      
                      )
                    
                  
                  -
                  
                    
                      
                        R
                        ^
                      
                      1
                    
                    ⁡
                    
                      (
                      
                        j
                        ,
                        j
                      
                      )
                    
                  
                
                )
              
              /
              2
            
          
          
            
              
                
                  R
                  ^
                
                1
              
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
          
        
        
          
            ⋮
          
          
            ⋮
          
          
            ⋮
          
        
        
          
            
              
                (
                
                  
                    
                      
                        R
                        ^
                      
                      k
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        i
                      
                      )
                    
                  
                  +
                  
                    
                      
                        R
                        ^
                      
                      k
                    
                    ⁡
                    
                      (
                      
                        j
                        ,
                        j
                      
                      )
                    
                  
                
                )
              
              /
              2
            
          
          
            
              
                (
                
                  
                    
                      
                        R
                        ^
                      
                      k
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        i
                      
                      )
                    
                  
                  -
                  
                    
                      
                        R
                        ^
                      
                      k
                    
                    ⁡
                    
                      (
                      
                        j
                        ,
                        j
                      
                      )
                    
                  
                
                )
              
              /
              2
            
          
          
            
              
                
                  R
                  ^
                
                k
              
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
          
        
        
          
            ⋮
          
          
            ⋮
          
          
            ⋮
          
        
        
          
            
              
                (
                
                  
                    
                      
                        R
                        ^
                      
                      K
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        i
                      
                      )
                    
                  
                  +
                  
                    
                      
                        R
                        ^
                      
                      1
                    
                    ⁡
                    
                      (
                      
                        j
                        ,
                        j
                      
                      )
                    
                  
                
                )
              
              /
              2
            
          
          
            
              
                (
                
                  
                    
                      
                        R
                        ^
                      
                      K
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        i
                      
                      )
                    
                  
                  -
                  
                    
                      
                        R
                        ^
                      
                      1
                    
                    ⁡
                    
                      (
                      
                        j
                        ,
                        j
                      
                      )
                    
                  
                
                )
              
              /
              2
            
          
          
            
              
                
                  R
                  ^
                
                K
              
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
          
        
      
      )
    
  
  ,




    
    
        calculate the generalized eigendecomposition of CT×C and of the diagonal matrix (−1,1,1), the eigenvector is noted as v=(x,y,z)T of the smallest positive generalized eigenvalue such that z>0 and −x2+y2+z2=1,
    
    





  
    calculate
    ⁢
    
      
    
  




  
    
      
        cosh
        ⁢
        
          
        
        ⁢
        φ
      
      =
      
        
          
            1
            +
            
              
                1
                +
                
                  x
                  2
                
              
            
          
          2
        
      
    
    ⁢
    
      
    
  




  
    and
    ⁢
    
      
    
  




  
    
      sinh
      ⁢
      
        
      
      ⁢
      φ
    
    =
    
      
        x
        
          
            2
          
          ⁢
          
            
              1
              +
              
                
                  1
                  +
                  
                    x
                    2
                  
                
              
            
          
        
      
      =
      
        x
        
          2
          ⁢
          cosh
          ⁢
          
            
          
          ⁢
          φ
        
      
    
  




  
    calculate
    ⁢
    
      
    
  




  
    
      
        cos
        ⁢
        
          
        
        ⁢
        θ
      
      =
      
        
          
            1
            +
            
              z
              
                
                  1
                  +
                  
                    x
                    2
                  
                
              
            
          
          2
        
      
    
    ⁢
    
      
    
  




  
    and
    ⁢
    
      
    
  




  
    
      sin
      ⁢
      
        
      
      ⁢
      θ
    
    =
    
      
        
          -
          y
        
        
          
            2
            ⁢
            
              (
              
                1
                +
                
                  x
                  2
                
              
              )
            
            ⁢
            
              (
              
                1
                +
                
                  z
                  
                    
                      1
                      +
                      
                        x
                        2
                      
                    
                  
                
              
              )
            
          
        
      
      =
      
        
          -
          y
        
        
          2
          ⁢
          cos
          ⁢
          
            
          
          ⁢
          θ
          ⁢
          
            
              1
              +
              
                x
                2
              
            
          
        
      
    
  



One skilled in the art will appreciate that other equivalent formulae exist since the question is only to solve the following equations:




   
  
    {
    
      
        
          
            2
            ⁢
            cosh
            ⁢
            
              
            
            ⁢
            φsinh
            ⁢
            
              
            
            ⁢
            φ
          
        
        
          =
        
        
          x
        
      
      
        
          
            
              -
              2
            
            ⁢
            sin
            ⁢
            
              
            
            ⁢
            θcos
            ⁢
            
              
            
            ⁢
            
              θ
              ⁡
              
                (
                
                  
                    
                      cosh
                      2
                    
                    ⁢
                    φ
                  
                  +
                  
                    
                      sinh
                      2
                    
                    ⁢
                    φ
                  
                
                )
              
            
          
        
        
          =
        
        
          y
        
      
      
        
          
            
              (
              
                
                  2
                  ⁢
                  
                    cos
                    2
                  
                  ⁢
                  θ
                
                -
                1
              
              )
            
            ⁢
            
              (
              
                
                  
                    cosh
                    2
                  
                  ⁢
                  φ
                
                +
                
                  
                    sinh
                    2
                  
                  ⁢
                  φ
                
              
              )
            
          
        
        
          =
        
        
          z
        
      
    
  




The formulae above have the advantage of having good numerical stability when x tends to 0 at the end of convergence of the method.
Other minor modifications may be useful for adapting to the finite accuracy of computer calculations. For example, the smallest positive eigenvalue may theoretically be in practice very slightly negative; nevertheless it should be retained. These points are obvious for one skilled in the art.
A more complete explanation of the calculation of the angles θ and φ from the matrix C will now be described.
The logic progression is the following.
For k=1, . . . , K, the product (noted as R′k) of the resulting matrix is calculated R′k=M(i,j,θ,φ)T×{circumflex over (R)}k×M(i,j,θ,φ):

R′k=HT(φ,i,j)×GT(θ,i,j)×{circumflex over (R)}k×G(θ,i,j)×H(φ,i,j)

Products of cosines of θ and sines of θ, as well as of hyperbolic cosines of φ and hyperbolic sines of φ, appear and are transformed into cosines and sines of the double angles (2θ, 2φ), which upon grouping the terms provides the following equations:



  
    
      (
      
        
          
            
              
                R
                1
                ′
              
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
          
        
        
          
            ⋮
          
        
        
          
            
              
                R
                k
                ′
              
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
          
        
        
          
            ⋮
          
        
        
          
            
              
                R
                K
                ′
              
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
          
        
      
      )
    
    =
    
      
        C
        ⁡
        
          (
          
            
              
                
                  sinh
                  ⁡
                  
                    (
                    
                      2
                      ⁢
                      φ
                    
                    )
                  
                
              
            
            
              
                
                  
                    -
                    
                      sin
                      ⁡
                      
                        (
                        
                          2
                          ⁢
                          θ
                        
                        )
                      
                    
                  
                  ⁢
                  
                    cosh
                    ⁡
                    
                      (
                      
                        2
                        ⁢
                        φ
                      
                      )
                    
                  
                
              
            
            
              
                
                  
                    cos
                    ⁡
                    
                      (
                      
                        2
                        ⁢
                        θ
                      
                      )
                    
                  
                  ⁢
                  
                    cosh
                    ⁡
                    
                      (
                      
                        2
                        ⁢
                        φ
                      
                      )
                    
                  
                
              
            
          
          )
        
      
      =
      
        Cv
        ⁡
        
          (
          
            θ
            ,
            φ
          
          )
        
      
    
  




  Wherein




  
    
      C
      =
      
        (
        
          
            
              
                
                  (
                  
                    
                      
                        
                          R
                          ^
                        
                        1
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          i
                        
                        )
                      
                    
                    +
                    
                      
                        
                          R
                          ^
                        
                        1
                      
                      ⁡
                      
                        (
                        
                          j
                          ,
                          j
                        
                        )
                      
                    
                  
                  )
                
                /
                2
              
            
            
              
                
                  (
                  
                    
                      
                        
                          R
                          ^
                        
                        1
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          i
                        
                        )
                      
                    
                    -
                    
                      
                        
                          R
                          ^
                        
                        1
                      
                      ⁡
                      
                        (
                        
                          j
                          ,
                          j
                        
                        )
                      
                    
                  
                  )
                
                /
                2
              
            
            
              
                
                  
                    R
                    ^
                  
                  1
                
                ⁡
                
                  (
                  
                    i
                    ,
                    j
                  
                  )
                
              
            
          
          
            
              ⋮
            
            
              ⋮
            
            
              ⋮
            
          
          
            
              
                
                  (
                  
                    
                      
                        
                          R
                          ^
                        
                        k
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          i
                        
                        )
                      
                    
                    +
                    
                      
                        
                          R
                          ^
                        
                        k
                      
                      ⁡
                      
                        (
                        
                          j
                          ,
                          j
                        
                        )
                      
                    
                  
                  )
                
                /
                2
              
            
            
              
                
                  (
                  
                    
                      
                        
                          R
                          ^
                        
                        k
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          i
                        
                        )
                      
                    
                    -
                    
                      
                        
                          R
                          ^
                        
                        k
                      
                      ⁡
                      
                        (
                        
                          j
                          ,
                          j
                        
                        )
                      
                    
                  
                  )
                
                /
                2
              
            
            
              
                
                  
                    R
                    ^
                  
                  k
                
                ⁡
                
                  (
                  
                    i
                    ,
                    j
                  
                  )
                
              
            
          
          
            
              ⋮
            
            
              ⋮
            
            
              ⋮
            
          
          
            
              
                
                  (
                  
                    
                      
                        
                          R
                          ^
                        
                        K
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          i
                        
                        )
                      
                    
                    +
                    
                      
                        
                          R
                          ^
                        
                        K
                      
                      ⁡
                      
                        (
                        
                          j
                          ,
                          j
                        
                        )
                      
                    
                  
                  )
                
                /
                2
              
            
            
              
                
                  (
                  
                    
                      
                        
                          R
                          ^
                        
                        K
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          i
                        
                        )
                      
                    
                    -
                    
                      
                        
                          R
                          ^
                        
                        1
                      
                      ⁡
                      
                        (
                        
                          j
                          ,
                          j
                        
                        )
                      
                    
                  
                  )
                
                /
                2
              
            
            
              
                
                  
                    R
                    ^
                  
                  K
                
                ⁡
                
                  (
                  
                    i
                    ,
                    j
                  
                  )
                
              
            
          
        
        )
      
    
    ,
  



The sum of the squares of the non-diagonal elements (i, j) of the resulting matrix product M(i,j,θ,φ)T×{circumflex over (R)}k×M(i,j,θ,φ) is then equal to the quadratic form v(θ,φ)T CT C v(θ,φ).
It is noted that the vector v(θ,φ) describes a hyperboloid defined by v(θ,φ)T J v(θ,φ)=1 wherein J=diag(−1,1,1),
The vector v(θ,φ) which maximizes the quadratic form v(θ,φ)T CT Cv(θ,φ) under the constraint v(θ,φ)T J v(θ,φ)=1 is sought: it is well-known that this vector is necessarily one of the three generalized eigenvectors of the matrix pair (CT C,J)
A study of this generalized eigendecomposition shows that this is the generalized eigenvector v=(x y z)T corresponding to the smallest positive generalized eigenvalue of (CT C,J);




  
    v
    ⁡
    
      (
      
        θ
        ,
        φ
      
      )
    
  
  =
  
    
      (
      
        
          
            
              sinh
              ⁡
              
                (
                
                  2
                  ⁢
                  φ
                
                )
              
            
          
        
        
          
            
              
                -
                
                  sin
                  ⁡
                  
                    (
                    
                      2
                      ⁢
                      θ
                    
                    )
                  
                
              
              ⁢
              
                cosh
                ⁡
                
                  (
                  
                    2
                    ⁢
                    φ
                  
                  )
                
              
            
          
        
        
          
            
              
                cos
                ⁡
                
                  (
                  
                    2
                    ⁢
                    θ
                  
                  )
                
              
              ⁢
              
                cosh
                ⁡
                
                  (
                  
                    2
                    ⁢
                    φ
                  
                  )
                
              
            
          
        
      
      )
    
    =
    
      
        (
        
          
            
              x
            
          
          
            
              y
            
          
          
            
              z
            
          
        
        )
      
      =
      v
    
  




Finally, in order to calculate the product M(i,j,θ,φ)T×{circumflex over (R)}k×M(i,j,θ,φ), the optimum values of θ and φ are unnecessary; only values of their (conventional and hyperbolic) cosines and sines are needed, which for example are given by:



  
    
      cosh
      ⁢
      
        
      
      ⁢
      φ
    
    =
    
      
        1
        
          2
        
      
      ⁢
      
        
          1
          +
          
            
              1
              +
              
                x
                2
              
            
          
        
      
    
  




  
    
      sinh
      ⁢
      
        
      
      ⁢
      φ
    
    =
    
      x
      
        2
        ⁢
        cosh
        ⁢
        
          
        
        ⁢
        φ
      
    
  




  
    
      cos
      ⁢
      
        
      
      ⁢
      θ
    
    =
    
      
        1
        
          2
        
      
      ⁢
      
        
          1
          +
          
            z
            
              
                1
                +
                
                  x
                  2
                
              
            
          
        
      
    
  




  
    
      sin
      ⁢
      
        
      
      ⁢
      θ
    
    =
    
      
        -
        y
      
      
        2
        ⁢
        cos
        ⁢
        
          
        
        ⁢
        θ
        ⁢
        
          
            1
            +
            
              x
              2
            
          
        
      
    
  



The method therefore comprises the iteration of the products:

M(i,j,θ,φ)T×{circumflex over (R)}k×M(i,j,θ,φ)

for i<j between 1 and N and this several times until convergence.

The mixture matrix A is then equal to the inverse of HLT(φL)×GLT(θL)× . . . ×H0T(φ0)×G0T(θ0). Once the mixture matrix A is determined, it is possible to separate the source signals.
An exemplary implantation in Matlab language is given hereafter:












function [A,number_of_loops,matrices] = J_Di(matrices,threshold)


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%


%  J_Di.m written the 19th of december 2007 by Antoine Souloumiac.


%


%  This software computes the Joint Diagonalisation of a set of


%  matrices.


%


%  input:


%  matrices: array of matrices to be jointly diagonalized


%  threshold: threshold for stop criterion on maximal sines


%


%  outputs:


%  A : estimated mixture matrix


%  number_of_loops: number of loops necessary for convergence


%  matrices: array of matrices after joint diagonalization


%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% initialization


mat_size = size(matrices,1);


nb_mat = size(matrices,3);


A = eye(mat_size);


go_on = 1;


number_of_loops = −1;


% joint dyadization loops


while go_on


 for n=2:mat_size


  for m=1:n−1


   % initialization


   s_max = 0.0;


   sh_max = 0.0;


   % Givens and hyperbolic angles calculation


   C = [ (squeeze(matrices(m,m,:)) + squeeze(matrices(n,n,:)))/2 ...


     (squeeze(matrices(m,m,:)) − squeeze(matrices(n,n,:)))/2 ...


      squeeze(matrices(m,n,:)) ];


   [V,D] = eig(C′*C,diag([−1 1 1]));


   % normalisation (−1 1 1) of generalized eigenvectors


   V = V*diag(1./sqrt(abs(diag(V′*diag([−1 1 1])*V))));


   % computation of the medium generalized eigenvalue


   [sortD,index] = sort(diag(D));


   ind_min = index(2);


   v = V(:,ind_min)*sign(V(3,ind_min));


   % computation of trigonometric and hyperbolic cosines and sines


   ch = sqrt( (1+sqrt(1+v(1){circumflex over ( )}2))/2 );


   sh = v(1)/( 2*ch );


   c = sqrt( ( 1 + v(3)/sqrt(1+v(1){circumflex over ( )}2) )/2 );


   s = −v(2)/( 2*c*sqrt( 1+v(1){circumflex over ( )}2 ) );


   % maximal sine and sinh computation for stop test


   s_max = max(s_max,abs(s));


   sh_max = max(sh_max,abs(sh));


   % product of Givens and hyperbolic rotations


   rm11 = c*ch − s*sh;


   rm12 = c*sh − s*ch;


   rm21 = c*sh + s*ch;


   rm22 = c*ch + s*sh;


   % matrices Givens update


   h_slice1 = squeeze(matrices(m,:,:));


   h_slice2 = squeeze(matrices(n,:,:));


   matrices(m,:,:) = rm11*h_slice1 + rm21*h_slice2;


   matrices(n,:,:) = rm12*h_slice1 + rm22*h_slice2;


   v_slice1 = squeeze(matrices(:,m,:));


   v_slice2 = squeeze(matrices(:,n,:));


   matrices(:,m,:) = rm11*v_slice1 + rm21*v_slice2;


   matrices(:,n,:) = rm12*v_slice1 + rm22*v_slice2;


   % dyads Givens update


   col1 = A(:,m);


   col2 = A(:,n);


   A(:,m) = rm22*col1 − rm12*col2;


   A(:,n) = −rm21*col1 + rm11*col2;


  end


 end


 number_of_loops=number_of_loops+1;


 % renormalization of the A columns (equal norm)


 col_norm = sqrt(sum(A.{circumflex over ( )}2,1));


 d = (prod(col_norm).{circumflex over ( )}(1/mat_size))./col_norm;


 A = A.*repmat(d,mat_size,1);


 matrices = matrices.*repmat((1./d)′*(1./d),[1 1 nb_mat]);


 % stop test


 if s_max<threshold & sh_max<threshold


  go_on = 0;


  disp([ ‘stop with max sinus and sinh =


  ’ num2str([s_max sh_max]) ])


 end


 if number_of_loops>100


   go_on = 0;


   warning(‘maximum number of loops has been reached’)


 end


end









The calculation complexity has the approximate value of:

number of sweeps×2KN3 

wherein:

    
    
        the number of sweeps is the number of times the iterations are repeated on the whole of the index pairs (i,j),
        K is the number of {circumflex over (R)}k matrices, and
        N is the size of the {circumflex over (R)}k matrices.
    
    


The present invention and the existing algorithms such as FFDiag [4], DNJD [6], LUJ1D [7], etc., have an equivalent computational cost by sweeping equal to 2KN3. The advantage of the present invention lies in the number of sweeps. More specifically, with the present method, the number of sweeps may be reduced as compared with known methods of the prior art.
As an example, a comparison of the method according to the present invention (designated hereafter as “J-Di”) and of the FFDiag (Ziehe [4]) and LUJ1D (Afsari [7]) methods will be presented in the following: this comparison illustrates the fact that the methods of the prior art have a number of sweeps at least twice as large as those of the method of the present invention.
Moreover, certain methods of the prior art are specialized on particular sets of matrices (Pham [3]: positive definite matrices, Vollgraf [5]: a set containing at least one positive definite matrix). The method according to the invention allows the processing of any types of set of matrices.
FIG. 5 illustrates an embodiment of the system for separating mixed signals according to the present invention. The system comprises processing means 10 (for joint diagonalization in which the mixture matrix A is estimated from a product of rotation matrices corresponding to one or more Givens rotation matrices and to one or more hyperbolic rotation matrices), such as a processor, display means 20, such as a display screen, and inputting means 30, such as a keyboard and a mouse. The system is connected to communication means so as to receive the mixed signals (x1(t), . . . , xN(t)) to be processed.
The reader will appreciate that many modifications may be brought to the invention as described above without materially departing from the teachings of the present document.
For example, the product of the Givens rotation (G(θ)) and hyperbolic rotation (H(φ)) matrices may correspond either to the multiplication of a Givens rotation matrix by a hyperbolic rotation matrix, or to the product of a hyperbolic rotation matrix by a Givens rotation matrix.
Consequently, all modifications of this type are intended to be incorporated within the scope of the appended claims.
Annex
With the present annex, the method described above may be better understood. Certain notations used earlier may possibly differ in the following. In any case, the changes in notation will be specified in order to facilitate understanding by the reader.
I. ABSTRACT
A new algorithm for computing the non-orthogonal joint diagonalization of a set of matrices is proposed for independent component analysis and blind source separation applications.
This algorithm is an extension of the Jacobi-like algorithm first proposed in the Joint Approximate Diagonalization of Eigenmatrices (JADE) method for orthogonal joint diagonalization. The improvement consists mainly in computing a mixing matrix of determinant one and columns of equal norm instead of an orthogonal mixing matrix. This target matrix is constructed iteratively by successive multiplications of not only Givens rotations but also hyperbolic rotations and diagonal matrices. The algorithm performance, evaluated on synthetic data, compares favorably with existing methods in terms of speed of convergence and complexity.
II. INTRODUCTION
Joint diagonalization algorithms are used for blind source separation (BSS) and independent component analysis (ICA) applications.
In these applications, one aims at separating independent signals (the sources) that were mixed instantaneously, i.e. without temporal convolution, by a matrix A observing only the mixtures and without any other prior information than the statistical independence of the sources.
Many BSS methods like [1], [1b], [2], [3], [4], [5], [11] contain a joint diagonalization step of a set R of K symmetric matrices R1, . . . , Rk, . . . RK of size N×N. According to the application at hand and the corresponding expected properties of the source signals, the considered matrices Rk are for instance covariance matrices estimated on different time windows, third or fourth ([1], [1b]) or higher order cumulants slices, or inter-correlation matrices with time shifts [2], etc. All these matrices share the common structure

Rk=ADkAT  (1)

where A is the mixing matrix and the Dk are diagonal matrices. Under these conditions, the separation matrix defined by BA−1 is characterized by the property of diagonalizing every Rk i.e. BRkBT=Dk for 1≦k≦K. Under weak assumptions and up to the permutation and scaling indeterminations, this property is sufficient for estimating the separation matrix, or equivalently the mixing matrix, by a joint diagonalization procedure of the Rk matrices. In practice, the Rk matrices are corrupted by some estimation error and A (or B) is efficiently estimated via an approximate joint diagonalization of the set R.
Besides, the first joint diagonalization techniques, like JADE [1], [1b] or SOBI [2] for instance, require the positive definiteness of one matrix in R, generally the covariance matrix of the mixed sources (without noise). In this context, it is then possible to pre-whiten the mixed sources, which reduces the joint diagonalization problem to computing an orthogonal (or unitary in the complex case) mixing matrix. Unfortunately, this pre-whitening step is never exact due to the estimation error in the covariance matrix of the mixed sources. This preliminary error cannot be corrected by the Orthogonal Joint Diagonalization (OJD) that follows. As a consequence, many authors developped Non-Orthogonal Joint Diagonalization (NOJD) methods to avoid pre-whitening. These optimization methods address sets of positive definite matrices [3], or sets containing one positive definite matrix like QDiag [12], [5] or, eventually, any set of matrices [11], [4], [7]).
A new non-orthogonal joint diagonalization algorithm is proposed for any set of matrices for application to BSS and ICA based on an algebraic approach that enjoys the good convergence properties of Jacobi techniques like JADE. To obtain this result, the mixing matrix A is also constructed by multiplication of elementary matrices. But as A is not orthogonal, it is necessary to define a new multiplicative group that contains the group of orthogonal matrices as a sub-group, and a new set of elementary matrices that generalizes the Givens rotations. This can be achieved by iteratively building a mixing matrix of determinant equal to one and whose columns are of equal norm by successive multiplications of Givens rotations, hyperbolic rotations and diagonal matrices.
Hereafter in the third section, the constraints of determinant and column norm of the mixing matrix and their consequences on NOJD problem indeterminations are investigated.
In the fourth section, it is shown how a matrix of determinant one can be generated as a product of Givens rotations, hyperbolic rotations and diagonal matrices.
The new non-orthogonal approximate Joint Diagonalization algorithm, called J-Di for Joint-Diagonalization, is described in the fifth section and its performance is evaluated on synthetic data in section six. In particular simulations are provided on large sets of large matrices, for instance 200 matrices of size 200×200. This is interesting for applications as electro-encephallograms processing where the number of electrods reaches 128 or 256.
Finally, a short complexity comparison with the recent algorithm proposed by Wang, Liu and Zhang in [6] is added.
III. MATRICES OF DETERMINANT EQUAL TO ONE AND COLUMNS OF EQUAL NORM
IIIA. Properties
It is assumed that any regular square mixing matrix A in model (1) has determinant equal to one and columns of equal norm. As a matter of fact, it is always possible to insert in (1) a regular diagonal matrix DA 

Rk=ADkAT=(ADA)(DA−1DkDA−1)(ADA)T  (2)

The matrices DA−1DkDA−1 are obviously diagonal and DA can be tuned such that ADA verifies the required determinant and column norm properties. It is sufficient to consider




  
    
      
        
          
            D
            A
          
          =
          
            ρ
            ⁡
            
              (
              
                
                  
                    
                      
                        sign
                        ⁡
                        
                          (
                          
                            det
                            ⁡
                            
                              (
                              A
                              )
                            
                          
                          )
                        
                      
                      
                        
                        
                          a
                          1
                        
                        
                      
                    
                  
                  
                    0
                  
                  
                    ⋯
                  
                  
                    0
                  
                
                
                  
                    0
                  
                  
                    
                      1
                      
                        
                        
                          a
                          2
                        
                        
                      
                    
                  
                  
                    ⋯
                  
                  
                    0
                  
                
                
                  
                    ⋮
                  
                  
                    ⋮
                  
                  
                    ⋱
                  
                  
                    ⋮
                  
                
                
                  
                    0
                  
                  
                    0
                  
                  
                    ⋯
                  
                  
                    
                      1
                      
                        
                        
                          a
                          N
                        
                        
                      
                    
                  
                
              
              )
            
          
        
        ⁢
        
          

        
        ⁢
        with
      
    
    
      
        (
        3
        )
      
    
  
  
    
      
        ρ
        =
        
          
            
              
                
                
                  a
                  1
                
                
              
              ⁢
              
                
                
                  a
                  2
                
                
              
              ⁢
              ⋯
              ⁢
              
                
                
                  a
                  N
                
                
              
            
            
              
              
                det
                ⁡
                
                  (
                  A
                  )
                
              
              
            
          
          N
        
      
    
    
      
        (
        4
        )
      
    
  




where an is the n-th column of A and ∥an∥ its Euclidean norm. These constraints on the mixing matrix provide a kind of normalization that is useful for numerical accuracy. In particular, the condition number of ADA is often smaller than the condition number of A but this is not a general rule.
III.B. Uniqueness Conditions and Indeterminations of the Mixing Matrix
As described in [9], [10], there is a unique solution to the NOJD problem if and only if there are no colinear columns in the matrix D resulting from the vertical concatenation of the Dk diagonals (D is K×N and its (k, n) entry is the n-th diagonal entry of Dk). If ρnm is the absolute value of the cosine of the D n-th and m-th columns angle and ρmaxtn,mρnm, then the uniqueness condition can be simply be reformulated as: ρ<1. This parameter ρ, called the modulus of uniqueness, is also an indicator of the difficulty of an NOJD problem with the obvious rule: the closer ρ is to 1, the more difficult is the NOJD.
It will be understood that a “unique solution” of the NOJD problem is only “unique” up to the classical permutation and scale indeterminations of the columns of the mixing matrix. The unity determinant and equal column norm properties (of the present invention) slightly change these indeterminations. As a matter of fact, it is easy to show that the permutation indetermination remains but that the scale indetermination reduces to a sign indetermination. More precisely, an even number of the mixing matrix columns can be multiplied by −1.
IV. A NEW CLASS OF ELEMENTARY MATRICES TO SPAN THE SPECIAL LINEAR GROUP
The goal of this section is to propose sets of elementary matrices which generate the set A(R,N) and the group SL(R,N) by repeated multiplications.
IV.A. Unique Decomposition in A(R, 2)
Consider a matrix A in A(R, 2) (det(A)=1 and ∥a1∥=∥a2∥) and its polar decomposition AGH where G is orthogonal and H is symmetric positive. As the determinants of A and H are both positive, the determinant of G is equal to plus one and G is necessarily a Givens rotation G(θ) with




  
    
      
        
          G
          ⁡
          
            (
            θ
            )
          
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          (
          
            
              
                
                  cos
                  ⁢
                  
                    
                  
                  ⁢
                  θ
                
              
              
                
                  
                    -
                    sin
                  
                  ⁢
                  
                    
                  
                  ⁢
                  θ
                
              
            
            
              
                
                  sin
                  ⁢
                  
                    
                  
                  ⁢
                  θ
                
              
              
                
                  cos
                  ⁢
                  
                    
                  
                  ⁢
                  θ
                
              
            
          
          )
        
      
    
    
      
        (
        5
        )
      
    
  




It will be shown now that H, whose determinant is also equal to plus one, is actually a hyperbolic rotation.
Denote e, f and g the entries of H




  
    
      
        H
        ⁢
        
          =
          Δ
        
        ⁢
        
          (
          
            
              
                e
              
              
                f
              
            
            
              
                f
              
              
                g
              
            
          
          )
        
      
    
    
      
        (
        6
        )
      
    
  




H=G(−θ)A has columns of equal norm like A. Therefore e2+f2=f2+g2, H is positive by construction, hence e>0 and g>0 and e=g. The determinant of H is equal to 1, then e2−f2=1 and there is a unique angle φ such that e=cos h(θ) and f=sin h(φ). Finally H=H(φ) with





  
    
      
        
          H
          ⁡
          
            (
            φ
            )
          
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          (
          
            
              
                
                  cosh
                  ⁢
                  
                    
                  
                  ⁢
                  φ
                
              
              
                
                  sinh
                  ⁢
                  
                    
                  
                  ⁢
                  φ
                
              
            
            
              
                
                  sinh
                  ⁢
                  
                    
                  
                  ⁢
                  φ
                
              
              
                
                  cosh
                  ⁢
                  
                    
                  
                  ⁢
                  φ
                
              
            
          
          )
        
      
    
    
      
        (
        7
        )
      
    
  




In conclusion, any matrix of A(R, 2) can be decomposed in a unique product of a Givens and a hyperbolic rotation.
IV.B. Multiple Solutions in SL(R, 2)
Any matrix F in SL(R, 2) can be uniquely decomposed in the product of a matrix A in A(R, 2) multiplied by a 2-by-2 diagonal matrix D(λ) with




  
    
      
        
          D
          ⁡
          
            (
            λ
            )
          
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          (
          
            
              
                λ
              
              
                0
              
            
            
              
                0
              
              
                
                  1
                  /
                  λ
                
              
            
          
          )
        
      
    
    
      
        (
        8
        )
      
    
  




and λ=√{square root over (∥f1∥/∥f2∥)} where f1, f2 are the columns of F and ∥f1∥, ∥f2∥ their norms. The matrix A can be decomposed in a product of a Givens and a hyperbolic rotation as shown in the previous section.

Finally, there are two unique angles: θ between −π and +π and φ in R, and a unique positive real number λ such that

F=G(θ)H(φ)D(λ)  (9)

Further decompositions can be derived from the singular value decomposition (SVD) of FUSVT.
Necessarily det(S)=1 and det(U)=det(V)=±1. But note that it is always possible to change the sign of the first column (or line) of U and V so that det(U)=det(V))=+1. This proves that both U and V can be chosen as Givens rotations: U=G(θ1) and V=G(θ2). Obviously, S=D(s1) where s1>0 is the first S singular value. The following expression is finally obtained

F=G(θ1)D(s1)G(θ2)T  (10)

In addition, the eigenvalue decomposition (EVD) of any hyperbolic rotation H(φ) gives

H(φ)=G(π/4)D(eφ)G(π/4)T  (11)

and consequently

F=G(θ1−π/4)H(log s1)G(θ2−π/4)T  (12)

These decompositions prove that any matrix of SL(R, 2) can be generated by multiplying Givens rotations and diagonal matrices, or Givens rotations and hyperbolic rotations. In addition, the diagonal matrices can be used to normalize the columns of any matrix in SL(R, 2) to get a matrix of A(R, 2). These results can be extended to dimension N.
IV.C. The Extension to SL(R,N)
The following notation is firstly introduced.
For any i<jε{1, . . . , N}G(θ,i,j) denotes the classical Givens rotation




  
    
      
        
          G
          ⁡
          
            (
            
              θ
              ,
              i
              ,
              j
            
            )
          
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          (
          
            
              
                
                  I
                  
                    i
                    -
                    1
                  
                
              
              
                ⋮
              
              
                0
              
              
                ⋮
              
              
                0
              
            
            
              
                ⋯
              
              
                
                  cos
                  ⁢
                  
                    
                  
                  ⁢
                  θ
                
              
              
                ⋯
              
              
                
                  
                    -
                    sin
                  
                  ⁢
                  
                    
                  
                  ⁢
                  θ
                
              
              
                ⋯
              
            
            
              
                0
              
              
                ⋮
              
              
                
                  I
                  
                    j
                    -
                    i
                    -
                    1
                  
                
              
              
                ⋮
              
              
                0
              
            
            
              
                ⋯
              
              
                
                  sin
                  ⁢
                  
                    
                  
                  ⁢
                  θ
                
              
              
                ⋯
              
              
                
                  cos
                  ⁢
                  
                    
                  
                  ⁢
                  θ
                
              
              
                ⋯
              
            
            
              
                0
              
              
                ⋮
              
              
                0
              
              
                ⋮
              
              
                
                  I
                  
                    N
                    -
                    j
                  
                
              
            
          
          )
        
      
    
    
      
        (
        13
        )
      
    
  




H(φ, i, j) is the corresponding hyperbolic rotation





  
    
      
        
          H
          ⁡
          
            (
            
              φ
              ,
              i
              ,
              j
            
            )
          
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          (
          
            
              
                
                  I
                  
                    i
                    -
                    1
                  
                
              
              
                ⋮
              
              
                0
              
              
                ⋮
              
              
                0
              
            
            
              
                ⋯
              
              
                
                  cosh
                  ⁢
                  
                    
                  
                  ⁢
                  φ
                
              
              
                ⋯
              
              
                
                  sinh
                  ⁢
                  
                    
                  
                  ⁢
                  φ
                
              
              
                ⋯
              
            
            
              
                0
              
              
                ⋮
              
              
                
                  I
                  
                    j
                    -
                    i
                    -
                    1
                  
                
              
              
                ⋮
              
              
                0
              
            
            
              
                ⋯
              
              
                
                  sinh
                  ⁢
                  
                    
                  
                  ⁢
                  φ
                
              
              
                ⋯
              
              
                
                  cosh
                  ⁢
                  
                    
                  
                  ⁢
                  φ
                
              
              
                ⋯
              
            
            
              
                0
              
              
                ⋮
              
              
                0
              
              
                ⋮
              
              
                
                  I
                  
                    N
                    -
                    j
                  
                
              
            
          
          )
        
      
    
    
      
        (
        14
        )
      
    
  




and D(λ, i, j) denotes the following diagonal matrix





  
    
      
        
          D
          ⁡
          
            (
            
              λ
              ,
              i
              ,
              j
            
            )
          
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          (
          
            
              
                
                  I
                  
                    i
                    -
                    1
                  
                
              
              
                ⋮
              
              
                0
              
              
                ⋮
              
              
                0
              
            
            
              
                ⋯
              
              
                λ
              
              
                ⋯
              
              
                0
              
              
                ⋯
              
            
            
              
                0
              
              
                ⋮
              
              
                
                  I
                  
                    j
                    -
                    i
                    -
                    1
                  
                
              
              
                ⋮
              
              
                0
              
            
            
              
                ⋯
              
              
                0
              
              
                ⋯
              
              
                
                  1
                  /
                  λ
                
              
              
                ⋯
              
            
            
              
                0
              
              
                ⋮
              
              
                0
              
              
                ⋮
              
              
                
                  I
                  
                    N
                    -
                    j
                  
                
              
            
          
          )
        
      
    
    
      
        (
        15
        )
      
    
  




Very similarly to the N=2 case, we use the SVD FUSVT of a matrix F in SL(R,N) is used. The determinant of the orthogonal matrices U and V can be chosen equal to plus one by changing the sign of the first column of U and V. It is well known that every orthogonal matrix of determinant one (in SO(R,N)) can be decomposed in the product of Givens rotations. By construction S is diagonal, positive definite and its determinant is equal to plus one (the product of the singular values s1, s2, . . . , sN is equal to one). One can also show that

S=D(s1,1,2)D(s1s2,2,3) . . . D(s1s2 . . . sN-1,N−1,N)  (16)

In addition, the D(λ, i, j) matrices can be transformed in the product of Givens and hyperbolic rotations like in the two-dimensional case. Finally the same conclusions hold in SL(R,N) as in SL(R, 2): every matrix in SL(R,N) can be generated by multiplying Givens rotations and diagonal matrices, or Givens and hyperbolic rotations. The diagonal matrices can be used to normalize the columns of any matrix in SL(R,N) to get a matrix in A(R,N).
It will be seen in the next section that the parameters of the three elementary matrices described above can be easily optimized in the NOJD context.
V. THE J-DI ALGORITHM
In this section, it is described how to construct the unknown matrix A of determinant equal to one and columns of equal norm as a product of the elementary matrices G(θ, i, j), H(φ, i, j) and D(λ, i, j) by jointly diagonalizing the set R={circumflex over (R)}1, . . . , {circumflex over (R)}k, . . . , {circumflex over (R)}K corresponding to estimations of the exact matrices of R1, . . . Rk, . . . RK.
More precisely, matrices G(θ, i, j) and H(φ, i, j) are used to minimize off-diagonal entries, while D(λ, i, j) matrices are used to normalize the columns.
V.A. Optimization of the Parameters θ and φ to Minimize the (i, j) Off-Diagonal Entries
For k=1, . . . , K denote by R′k the matrix obtained by updating {circumflex over (R)}k in the following way

R′k=HT(φ,i,j)×GT(θ,i,j)×{circumflex over (R)}k×G(θ,i,j)×H(φ,i,j)  (17)

It is proposed to minimize the sum of the squares of the (i, j)-entries, denoted R′k[i, j], of the K matrices R′k i.e.




  
    
      
        
          (
          
            
              θ
              opt
            
            ,
            
              φ
              opt
            
          
          )
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          arg
          ⁢
          
            
              min
              
                θ
                ,
                φ
              
            
            ⁢
            
              
                ∑
                
                  k
                  =
                  1
                
                
                  k
                  =
                  K
                
              
              ⁢
              
                
                  
                    R
                    k
                    ′
                  
                  ⁡
                  
                    [
                    
                      i
                      ,
                      j
                    
                    ]
                  
                
                2
              
            
          
        
      
    
    
      
        (
        18
        )
      
    
  




Minimizing this quantity is not equivalent to minimizing all the off-diagonal entries or a global cost function like in JADE. Nevertheless, the performance evaluation below will show that this iterated local minimization actually jointly diagonalizes the matrix set R. After some manipulations, one can see that




  
    
      
        
          
            (
            
              
                
                  
                    
                      R
                      1
                      ′
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                
              
              
                
                  ⋮
                
              
              
                
                  
                    
                      R
                      k
                      ′
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                
              
              
                
                  ⋮
                
              
              
                
                  
                    
                      R
                      K
                      ′
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                
              
            
            )
          
          =
          
            
              C
              ⁡
              
                (
                
                  
                    
                      
                        sinh
                        ⁡
                        
                          (
                          
                            2
                            ⁢
                            φ
                          
                          )
                        
                      
                    
                  
                  
                    
                      
                        
                          -
                          
                            sin
                            ⁡
                            
                              (
                              
                                2
                                ⁢
                                θ
                              
                              )
                            
                          
                        
                        ⁢
                        
                          cosh
                          ⁡
                          
                            (
                            
                              2
                              ⁢
                              φ
                            
                            )
                          
                        
                      
                    
                  
                  
                    
                      
                        
                          cos
                          ⁡
                          
                            (
                            
                              2
                              ⁢
                              θ
                            
                            )
                          
                        
                        ⁢
                        
                          cosh
                          ⁡
                          
                            (
                            
                              2
                              ⁢
                              φ
                            
                            )
                          
                        
                      
                    
                  
                
                )
              
            
            =
            
              Cv
              ⁡
              
                (
                
                  θ
                  ,
                  φ
                
                )
              
            
          
        
        ⁢
        
          

        
        ⁢
        Where
      
    
    
      
        (
        19
        )
      
    
  
  
    
      
        
          C
          =
          
            (
            
              
                
                  
                    
                      (
                      
                        
                          
                            
                              R
                              ^
                            
                            1
                          
                          ⁡
                          
                            (
                            
                              i
                              ,
                              i
                            
                            )
                          
                        
                        +
                        
                          
                            
                              R
                              ^
                            
                            1
                          
                          ⁡
                          
                            (
                            
                              j
                              ,
                              j
                            
                            )
                          
                        
                      
                      )
                    
                    /
                    2
                  
                
                
                  
                    
                      (
                      
                        
                          
                            
                              R
                              ^
                            
                            1
                          
                          ⁡
                          
                            (
                            
                              i
                              ,
                              i
                            
                            )
                          
                        
                        -
                        
                          
                            
                              R
                              ^
                            
                            1
                          
                          ⁡
                          
                            (
                            
                              j
                              ,
                              j
                            
                            )
                          
                        
                      
                      )
                    
                    /
                    2
                  
                
                
                  
                    
                      
                        R
                        ^
                      
                      1
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                
              
              
                
                  ⋮
                
                
                  ⋮
                
                
                  ⋮
                
              
              
                
                  
                    
                      (
                      
                        
                          
                            
                              R
                              ^
                            
                            k
                          
                          ⁡
                          
                            (
                            
                              i
                              ,
                              i
                            
                            )
                          
                        
                        +
                        
                          
                            
                              R
                              ^
                            
                            k
                          
                          ⁡
                          
                            (
                            
                              j
                              ,
                              j
                            
                            )
                          
                        
                      
                      )
                    
                    /
                    2
                  
                
                
                  
                    
                      (
                      
                        
                          
                            
                              R
                              ^
                            
                            k
                          
                          ⁡
                          
                            (
                            
                              i
                              ,
                              i
                            
                            )
                          
                        
                        -
                        
                          
                            
                              R
                              ^
                            
                            k
                          
                          ⁡
                          
                            (
                            
                              j
                              ,
                              j
                            
                            )
                          
                        
                      
                      )
                    
                    /
                    2
                  
                
                
                  
                    
                      
                        R
                        ^
                      
                      k
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                
              
              
                
                  ⋮
                
                
                  ⋮
                
                
                  ⋮
                
              
              
                
                  
                    
                      (
                      
                        
                          
                            
                              R
                              ^
                            
                            K
                          
                          ⁡
                          
                            (
                            
                              i
                              ,
                              i
                            
                            )
                          
                        
                        +
                        
                          
                            
                              R
                              ^
                            
                            K
                          
                          ⁡
                          
                            (
                            
                              j
                              ,
                              j
                            
                            )
                          
                        
                      
                      )
                    
                    /
                    2
                  
                
                
                  
                    
                      (
                      
                        
                          
                            
                              R
                              ^
                            
                            K
                          
                          ⁡
                          
                            (
                            
                              i
                              ,
                              i
                            
                            )
                          
                        
                        -
                        
                          
                            
                              R
                              ^
                            
                            K
                          
                          ⁡
                          
                            (
                            
                              j
                              ,
                              j
                            
                            )
                          
                        
                      
                      )
                    
                    /
                    2
                  
                
                
                  
                    
                      
                        R
                        ^
                      
                      K
                    
                    ⁡
                    
                      (
                      
                        i
                        ,
                        j
                      
                      )
                    
                  
                
              
            
            )
          
        
        ,
      
    
    
      
        (
        20
        )
      
    
  




Note that the squaring of the coefficients of G and H in R′k is transformed in double (trigonometric and hyperbolic) angles. The sum of squares of the R′k [i, j] is equal to v(θ,φ)T CT C v(θ,φ). Hence the minimization in (18) becomes




  
    
      
        
          (
          
            
              θ
              opt
            
            ,
            
              φ
              opt
            
          
          )
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          arg
          ⁢
          
            
              min
              
                θ
                ,
                φ
              
            
            ⁢
            
              
                
                  v
                  (
                  
                    θ
                    ,
                    φ
                  
                  )
                
                T
              
              ⁢
              
                C
                T
              
              ⁢
              
                Cv
                ⁡
                
                  (
                  
                    θ
                    ,
                    φ
                  
                  )
                
              
            
          
        
      
    
    
      
        (
        21
        )
      
    
  




where the vector v(θ,φ) is normalized not in the Euclidean norm but in a hyperbolic norm. As a matter of fact, we have −v1(θ, φ2+v2(θ,φ)2+v3(θ, φ)2=1, i.e. v(θ,φT J v(θ,φ)=1 with J=diag(−1,1,1).

One can prove that the whole hyperboloid defined by v(θ,φ)T J v(θ,φ)=1 is spanned by v(θ,φ) with −π/2≦θ≦π/2, and φ in R. In other words, the minimization of the quadratic quantity vTCTCv under the quadratic constraint vT Jv=1 is achieved. The solution v is known to be a generalized eigenvector of (CTC, J), i.e. v is such that CTCv=δvJv where δv is the generalized eigenvalue of v.
This generalized eigen decomposition is studied hereafter. Denote V the 3×3 matrix whose columns are the generalized eigenvectors and Δ the diagonal matrix of the generalized eigenvalues of (CTC, J), then CTCV=JVΔ and therefore VTCTCV=VTJVΔ. It is known that VTJV is diagonal and has one negative and two positive diagonal entries (Sylvester law of inertia) like J. As CTC is positive, Δ has the same inertia as J and there are:

    
    
        one generalized eigenvector with a negative generalized eigenvalue and a negative J-norm vTJv=−1, and
        two generalized eigenvectors with positive generalized eigenvalues and positive J-norm vTJv=+1.
    
    


The generalized eigenvector we are looking for is such that vTJv is equal to +1 and that vTCTCv is minimal, which means that it corresponds to the smallest positive generalized eigenvalue of (CTC, J).
In summary, the optimal Givens and hyperbolic angles θ and φ are defined by the equation




  
    v
    ⁡
    
      (
      
        θ
        ,
        φ
      
      )
    
  
  =
  
    
      (
      
        
          
            
              sinh
              ⁡
              
                (
                
                  2
                  ⁢
                  φ
                
                )
              
            
          
        
        
          
            
              
                -
                
                  sin
                  ⁡
                  
                    (
                    
                      2
                      ⁢
                      θ
                    
                    )
                  
                
              
              ⁢
              
                cosh
                ⁡
                
                  (
                  
                    2
                    ⁢
                    φ
                  
                  )
                
              
            
          
        
        
          
            
              
                cos
                ⁡
                
                  (
                  
                    2
                    ⁢
                    θ
                  
                  )
                
              
              ⁢
              
                cosh
                ⁡
                
                  (
                  
                    2
                    ⁢
                    φ
                  
                  )
                
              
            
          
        
      
      )
    
    =
    
      
        (
        
          
            
              x
            
          
          
            
              y
            
          
          
            
              z
            
          
        
        )
      
      =
      v
    
  




where v=(x,y,z)T is the generalized eigenvector of (CTC, J) of the smallest positive eigenvalue.
Since an eigenvector is determined up to its sign, it is always possible to choose v such that z>0 i.e. such that cos 2θ is positive. Besides, the expression (17) is invariant when θ is replaced with θ+π.
Hence θ can be chosen between −π/2 and −π/2 such that cos(θ)>0. Thus, it can assume that both cos θ and cos 2θ are positive, which is equivalent to assuming −π/4≦θ≦π/4.
Note that the explicit expression of the angles θ and φ is not necessary. Only the computation of cos h φ, sin h φ, cos θ and sin θ is necessary to implement the update (17). Simple trigonometry gives immediately the following solutions of (22)




  
    
      
        
          cosh
          ⁢
          
            
          
          ⁢
          φ
        
        =
        
          
            1
            
              2
            
          
          ⁢
          
            
              1
              +
              
                
                  1
                  +
                  
                    x
                    2
                  
                
              
            
          
        
      
    
    
      
        (
        23
        )
      
    
  
  
    
      
        
          sinh
          ⁢
          
            
          
          ⁢
          φ
        
        =
        
          x
          
            2
            ⁢
            cosh
            ⁢
            
              
            
            ⁢
            φ
          
        
      
    
    
      
        (
        24
        )
      
    
  
  
    
      
        
          cos
          ⁢
          
            
          
          ⁢
          θ
        
        =
        
          
            1
            
              2
            
          
          ⁢
          
            
              1
              +
              
                z
                
                  
                    1
                    +
                    
                      x
                      2
                    
                  
                
              
            
          
        
      
    
    
      
        (
        25
        )
      
    
  
  
    
      
        
          sin
          ⁢
          
            
          
          ⁢
          θ
        
        =
        
          
            -
            y
          
          
            2
            ⁢
            cos
            ⁢
            
              
            
            ⁢
            θ
            ⁢
            
              
                1
                +
                
                  x
                  2
                
              
            
          
        
      
    
    
      
        (
        26
        )
      
    
  




At this stage, a method for globally minimizing the R′k [i, j] for a given couple of indices 1≦i≦j≦N with a Givens rotation G(θ, i, j) and a hyperbolic rotation H(φ, i, j) is known. Once these optimal angles θ and φ are computed, every matrix of the set R is updated by (17) which can be achieved by computing only two linear combinations of the lines or the columns i and j of Rk.
The mixing matrix, initialized at the N×N identity, is updated by




  
    
      
        
          A
          ′
        
        =
        
          
            
              AG
              ⁡
              
                (
                
                  θ
                  ,
                  i
                  ,
                  j
                
                )
              
            
            
              -
              T
            
          
          ⁢
          
            
              H
              ⁡
              
                (
                
                  φ
                  ,
                  i
                  ,
                  j
                
                )
              
            
            
              -
              T
            
          
        
      
    
    
      
        (
        27
        )
      
    
  
  
    
      
        
          
        
        ⁢
        
          =
          
            
              AG
              ⁡
              
                (
                
                  θ
                  ,
                  i
                  ,
                  j
                
                )
              
            
            ⁢
            
              H
              ⁡
              
                (
                
                  
                    -
                    φ
                  
                  ,
                  i
                  ,
                  j
                
                )
              
            
          
        
      
    
    
      
        (
        28
        )
      
    
  




in order to conserve ARkAT=A′R′kA′T.

After an update, the norm of the columns of A are no longer equal and can be re-normalized with matrices D(i, j, λ). It is explained in the next section that it is not necessary to carry out this normalization at each step. The Rk and A updates are repeated for each pair of indices (l, j) with 1≦i<j≦N like in the Jacobi algorithm [8]. A complete updating over the N(N−1)/2 pairs of indices is called a sweep. Similarly to the classical Jacobi algorithms, several sweeps are generally necessary until complete convergence.
V.B. Details of Implementation
Other sequences of rotations could be imagined. As the Givens rotations are orthogonal, they generate less roundoff noise than the hyperbolic rotations. So, one could for instance begin the joint diagonalization by several sweeps of pure Givens rotations updates (i.e. JADE sweeps) before using the non-orthogonal hyperbolic rotations. This precaution was not necessary in our numerical experiments, even for badly conditioned mixing matrices (condition number up to 100000). The loss of numerical accuracy is probably linked to the hyperbolic rotations with a large angle φ: these events could also be monitored.
The JADE or SOBI pre-whitening is not necessary but can still be used for improving numerical accuracy if R contains a positive definite matrix. In BSS applications, the reduction of the data to the subspace of few principal components can obviously be computed if the prior knowledge that the number of sources is smaller than the number of sensors is known.
The expressions (23), (24), (25), (26) are not the only possible inversion formulae of (22). They have been chosen for their good numerical accuracy when v1 and v2 converge to 0. A better choice possibly exists. When close to convergence, the matrices C and CTC are close to singularity. Then the generalized eigen decomposition of (CTC, J) can be numerically difficult and sometimes the target generalized eigenvector no longer corresponds to the smaller positive generalized eigenvalue but to a very small negative eigenvalue. To avoid selecting the erroneous larger positive eigenvalue, it is preferable to choose the eigenvector associated with the median generalized eigenvalue instead of the smaller positive one.
It is implemented in the following simulations. Other solutions like discarding the update if the eigenvalue signs are not correct (+,+,−) or developping a specific procedure to compute only the target eigenvector could be investigated.
It is observed in the simulations that the normalization of the columns of A is not necessary at each step but may be performed only once per sweep. It is simply achieved by multiplying A at the right by a diagonal matrix DA and the Rk by D−1A on both sides (similarly to equations (2) and (3)) with




  
    
      
        
          D
          A
        
        =
        
          
            
              
                
                
                  a
                  1
                
                
              
              ⁢
              
                
                
                  a
                  2
                
                
              
              ⁢
              ⋯
              ⁢
              
                
                
                  a
                  N
                
                
              
            
            N
          
          ⁢
          
            (
            
              
                
                  
                    1
                    
                      
                      
                        a
                        1
                      
                      
                    
                  
                
                
                  0
                
                
                  ⋯
                
                
                  0
                
              
              
                
                  0
                
                
                  
                    1
                    
                      
                      
                        a
                        2
                      
                      
                    
                  
                
                
                  ⋯
                
                
                  0
                
              
              
                
                  ⋮
                
                
                  ⋮
                
                
                  ⋱
                
                
                  ⋮
                
              
              
                
                  0
                
                
                  0
                
                
                  ⋯
                
                
                  
                    1
                    
                      
                      
                        a
                        N
                      
                      
                    
                  
                
              
            
            )
          
        
      
    
    
      
        (
        29
        )
      
    
  




where an is the n-th column of A and ∥an∥ its Euclidean norm.

The cost of this normalization (2KN2) at each sweep is negligible compared to the update (17) of Rk(2KN3). In view of the simulations, the present invention still converges without any normalization of the columns' norm.
Several stop criteria can be imagined like monitoring the norm of off-diagonal terms and detecting its stabilization at a minimal value. For instance in the present case, it is chosen to stop the iterations when all the trigonometric and hyperbolic sines of a sweep are very small (a threshold between 10−20 and 10−25 seems relevant for exactly diagonalizable matrices and computations in Matlab double precision; this value has to be increased between 10−10 and 10−20 for non-exactly diagonalizable sets).
V.C. Summary of the J-Di Algorithm
The numerical simulations of the next section implement the following version of J-Di.
Require: K symmetric N×N matrices R1, . . . RK and a threshold τ















A ← IN



while maxi,j(|sinhφ|,|sinθ|) > τ do



 for all i,j such that 1 ≦ i < j ≦ N do



  build C as in (20)



  compute the eigenvector v   (v1,v2,v3)T of



  (CTC,diag(−1,1,1)) of median eigenvalue



  if v3 < 0 then



   v ← −v



  end if



  compute coshφ and sinhφ as in (23) and (24)



  compute cosθ and sinθ as in (25) and (26)



  for k = 1 to K do



   Rk ← H(φ,i,j)G(−θ,i,j)RkG(θ,i,j)H(φ,i,j)



   A ← AG(θ,i,j)H(−φ,i,j)



  end for



 end for



 compute DA as in (29)



 A ← ADA



 for k = 1 to K do



  Rk ← DA−1RkDA−1



 end for



end while










The computational cost of the algorithm is mainly the cost of updating the Rk matrices for each pair of indices i and j, i.e. the cost of (17). By using the sparsity of G and H and the symmetry of the Rk, the cost of this update can be reduced to 4KN flops. For one sweep over the N(N−1)/2 pairs of indices, the cost is then roughly 2KN3. The number of sweeps to be made until convergence depends on the size and the difficulty of the NOJD problem at hand as described in the next section.
V.D. Short Comparison with Afsari Algorithms
Several similarities between J-Di and the four algorithms proposed in [7] deserve to be emphasized.

    
    
        Both methods construct the diagonalizer as a product of planar transformations: Givens rotations and triangular matrices in QRJ1D and QRJ2D, or only triangular matrices in LUJ1D and LUJ2D methods, and Givens rotations and hyperbolic rotations in the case of J-Di. In all cases, the determinant of these transformations is one and their product spans the special linear group.
        LUJ1D, LUJ2D, QRJ1D and QRJ2D minimize global cost functions, J-Di minimizes a local cost function for each current pair of indices (i; j),
        For each pair of indices the two angles are simultaneously optimized by J-Di whereas the two optimizations are independent in LUJ1D, LUJ2D, QRJ1D and QRJ2D.
        In view of (necessarily) limited simulations, LUJ1D, LUJ2D, QRJ1D and QRJ2D seem to converge linearly and J-Di quadratically.
        The computational costs per sweep are identical (if grouping the two (i; j)-updates).
    
    


LUJ1D is selected for the comparison in the next section because it seems faster in the specific simulated contexts.
VI. PERFORMANCE EVALUATION ON NUMERICAL SIMULATIONS
The method according the present invention (i.e. J-Di) is compared to FFDiag [4] and LUJ1D [7] because these two last NOJD algorithms do not require the positive definiteness of any matrix of R.
One iteration (called sweep below) of the FFDiag algorithm has approximatively the same complexity (2KN3 for updating R) than one J-Di or LUJ1D sweep. Therefore, the only thing which will be compared is the number of sweeps necessary for convergence.
Nevertheless, the operations are structured differently within one sweep: J-Di and LUJ1D require N(N−1)/2 very sparse updates of R whereas FFDiag requires only a complete dense update.
This difference probably makes a FFDiag sweep slightly faster than a J-Di or LUJ1D sweep when implemented in an interpreted language like Matlab. But an implementation in C for instance should show similar execution times.
Two different criteria of performance are defined and measured first on a set of exactly diagonalizable matrices and second on a set of approximatively diagonalizable matrices. The simulations are run in Matlab double precision.
VI.A. Criteria of Performance for Non-Orthogonal Joint Diagonalization
Two ways of measuring the quality of a joint diagonalization are used below. The first criterion consists in computing the ratio of the off-diagonal norm, defined as the sum of the squared off-diagonal entries of R, and the diagonal norm, defined as the sum of the squared diagonal entries of R. This non-standard normalization is useful since the diagonal norm is not constant during the first sweeps.
A second criterion is necessary to assess the quality of the estimation of the mixing matrix and the corresponding separation performance. As a matter of fact, the inverse of the estimated mixing matrix Â is the optimal spatial filter (in the absence of additive noise) for separating the sources mixed by A.
The closer the product Â−1A is to a permutation matrix  times a diagonal matrix D, the better is the separation. Therefore, it is natural to measure the quality of separation by computing the distance between PÂ−1A and the closest product D of a permutation and a diagonal matrix.
In BSS, it is standard to use the index of performance I(P) defined by




  
    
      
        
          I
          ⁡
          
            (
            P
            )
          
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          
            
              1
              
                2
                ⁢
                
                  N
                  ⁡
                  
                    (
                    
                      N
                      -
                      1
                    
                    )
                  
                
              
            
            ⁢
            
              
                ∑
                
                  n
                  =
                  1
                
                
                  n
                  =
                  N
                
              
              ⁢
              
                (
                
                  
                    
                      ∑
                      
                        m
                        =
                        1
                      
                      
                        m
                        =
                        N
                      
                    
                    ⁢
                    
                      
                        
                        
                          P
                          nm
                        
                        
                      
                      
                        
                          max
                          k
                        
                        ⁢
                        
                          
                          
                            P
                            nk
                          
                          
                        
                      
                    
                  
                  -
                  1
                
                )
              
            
          
          +
          
            
              1
              
                2
                ⁢
                
                  N
                  ⁡
                  
                    (
                    
                      N
                      -
                      1
                    
                    )
                  
                
              
            
            ⁢
            
              
                ∑
                
                  m
                  =
                  1
                
                
                  m
                  =
                  N
                
              
              ⁢
              
                (
                
                  
                    
                      ∑
                      
                        n
                        =
                        1
                      
                      
                        n
                        =
                        N
                      
                    
                    ⁢
                    
                      
                        
                        
                          P
                          nm
                        
                        
                      
                      
                        
                          max
                          k
                        
                        ⁢
                        
                          
                          
                            P
                            km
                          
                          
                        
                      
                    
                  
                  -
                  1
                
                )
              
            
          
        
      
    
    
      
        (
        30
        )
      
    
  




even if it is not a perfect distance to D. The normalization term 1/2N(N−1) has been chosen so that I(P) is equal to α for 0≦α<1 when P is a matrix with diagonal entries equal to ones and off-diagonal entries equal to α. Hence I(P) gives the order of magnitude of the relative amplitude of interferences in the separated sources (cross-talk index).

VI.B. Exactly Diagonalizable Matrix Set

The mixing matrix entries are independent normally distributed, its determinant is set to 1 and its columns are normalized to the same norm using the equation (3). Those random mixing matrices generally have a condition number smaller than 104 or 105, rarely more as shown in the following figures. A more specific validation of the J-Di algorithm should be done for applications involving worse-conditioned mixing matrices. The diagonal entries of the Dk matrices are also chosen from a standard normal distribution. Note that this way of generating the Dk determines the distribution of the modulus of uniqueness which only depends on K and N. The Rk are computed by Rk=ADkAT.
1) Quadratic Convergence:

    
    
        The diagonality ratios of the J-Di, FFDiag and LUJ1D algorithms are computed after each sweep until convergence and are plotted in FIG. 2 for N=K=50 and 50 independent trials. In this case, the modulus of uniqueness is small almost always between 0.4 and 0.6.
        The separation criterion is plotted in FIG. 3 under the same conditions.
        These results indicate that FFDiag and J-Di algorithms seem to have (at least) quadratic convergence but that J-Di requires less sweeps. In spite of a final linear convergence LUJ1D shows intermediate performance.
    
    


2) Influence of the Matrix and Set Sizes on the J-Di Convergence Speed:

    
    
        For different mixing matrices and different set sizes (N=K=5, 10, 20, 50, 100 and 200), the number of sweeps necessary to reach convergence of J-DI DI is counted and its distribution for 100 independent trials is given in the following table:
    
    






















≦4
5
6
7
8
9
10
≧11
























N = K = 5
1
86
13
0
0
0
0
0


N = K = 10
0
5
81
14
0
0
0
0


N = K = 20
0
0
27
65
7
1
0
0


N = K = 50
0
0
0
48
47
5
0
0


N = K = 100
0
0
0
11
74
12
3
0


N = K = 200
0
0
0
2
43
41
11
3









    
    
        It can be seen that the J-Di number of sweeps increases with the matrix size but remains roughly smaller than 10 even for large sets (K=200) of large matrices (N=200).

VI.C. Non-Exactly Diagonalizable Sets of Matrices: Application to Blind Source Separation

    
    


The performance of the J-Di, FFDiag and LUJ1D non-orthogonal joint diagonalization algorithms is compared on non-exactly diagonalizable sets of matrices.
To evaluate the method according the present invention (J-Di) on a set of matrices that are neither positive (like covariance matrices) nor negative, a set of fourth-order cumulant slices is chosen.
Consider the classical BBS model: x=As +n where x, s and n are respectively the N-dimensional vectors of observed mixtures, sources and additive Gaussian noise, and A is the N×N mixing matrix. The considered matrix set R contains the K=N(N+1)/2 matrices Rmn of size N×N defined by

RmnCum(:,:,xm,xn)  (31)

for all m and n such that 1≦m≦n≦N and where xn denotes the n-th entry of x.

It is considered N=20 sources and therefore K=N(N−1)/2=210 cumulant slices (matrices) of size 20×20. The samples of source signals are independent and uniformly distributed between −√{square root over (3)} and √{square root over (3)} to get non-Gaussian, zero-mean and unity-variance signals. The standard deviation of the additive zero-mean Gaussian noise σ is first set to zero and second set to σ=0.1. The cumulants are estimated on 100000 independent samples. In these cases, the number of matrices K is large enough such that the modulus of uniqueness is small, generally between 0.3 and 0.6. It explains why this parameter does not seem to influence the performance in the simulations and is therefore not presented.
Speed of Convergence:
The convergence of the diagonality ratio and the separation criterion are plotted as functions of the number of sweeps with noise in FIG. 4.
In all cases the method according to the present invention (J-Di) converges faster than FFDiag and LUJ1D which seem to behave similarly like in [7]. J-Di outperforms slightly FFDiag and LUJ1D in terms of the final separation criterion, which is what matters for BSS applications.
These simulations also show that different convergence rates, quadratic for FFDiag and linear for LUJ1D, can be compatible with similar performance when the matrix set is not exactly diagonalizable.
VII. COMPARISON WITH THE ALGORITHM OF WANG, LIU AND ZHANG
A comparison with the algorithm of Wang, Liu and Zhang [6] (hereafter DNJD) will be discussed herebelow. The proposed algorithm DNJD builds the mixing matrix by successive multiplications of matrices J(θ,Ψ,i,j) defined by




  
    J
    ⁡
    
      (
      
        θ
        ,
        ψ
        ,
        i
        ,
        j
      
      )
    
  
  ⁢
  
    =
    Δ
  
  ⁢
  
    (
    
      
        
          
            I
            
              i
              -
              1
            
          
        
        
          ⋮
        
        
          0
        
        
          ⋮
        
        
          0
        
      
      
        
          ⋯
        
        
          
            ρcos
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          ⋯
        
        
          
            ρsin
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          ⋯
        
      
      
        
          0
        
        
          ⋮
        
        
          
            I
            
              j
              -
              i
              -
              1
            
          
        
        
          ⋮
        
        
          0
        
      
      
        
          ⋯
        
        
          
            ρcos
            ⁢
            
              
            
            ⁢
            ψ
          
        
        
          ⋯
        
        
          
            ρsin
            ⁢
            
              
            
            ⁢
            ψ
          
        
        
          ⋯
        
      
      
        
          0
        
        
          ⋮
        
        
          0
        
        
          ⋮
        
        
          
            I
            
              N
              -
              j
            
          
        
      
    
    )
  




With:




  ρ
  =
  
    
      (
      
        1
        +
        
          
            sin
            ⁢
            
              
            
            ⁢
            2
            ⁢
            θsin2ψ
          
          2
        
      
      )
    
    
      
        -
        1
      
      /
      4
    
  




This definition is clearly an attempt to generalize the Givens rotations and the Jacobi-like algorithm of JADE. It is clear that the DNJD algorithm is very different from the present invention. For instance, DNJD does not use nor the determinant constraint neither the hyperbolic trigonometry that are used in the method according to the invention.
The main difficulty with DNJD is the inversion of Eq. (16). No exact solution is provided when the Rk matrices are not exactly diagonalizable making necessary to use approximate expressions that do not guarantee the actual minimization of the off-diagonal entries. Therefore it is necessary to compute at each iteration (for each pair of indices) the evolution of the off-diagonal entries and to discard the update if the off-diagonal entries are increased. Unfortunately, the computational cost of this verification, 4KN, is equivalent to the cost of the algorithm itself (see page 5303 at the end of section III). Hence the cost of each sweep is multiplied by a factor of two. In addition, each time a couple of angles (θ, φ) is discarded, many computations (8KN flops) are made without any improvement of the cost function. This waste could explain the larger number of sweeps used by DNJD (Fig. 1 p. 5303 in [6]) than by J-Di (table I).
In summary, J-Di over-performs DNJD in terms of complexity per sweep by a factor larger than two.
VIII. CONCLUSION
A new method (J-Di) of non-orthogonal joint diagonalization has been presented. In one embodiment, this method comprises:

    
    
        constructing a mixing matrix that belongs to the special linear group and whose columns are of equal norm, instead of constructing it in the special orthogonal group,
        multiplying Givens rotations, hyperbolic rotations and diagonal matrices instead of only Givens rotations.
    
    


This new method admits many variants: the order of the elementary matrix multiplications, the stop test, the pre-whitening or not, etc. Its robustness and reduced complexity allow to deal with large dimension problems: up to N=500 and K=600 on a standard computer.
REFERENCES


    [1] Comparaison de méthodes de séparations de sources, Souloumiac A., Cardoso J.-F., Proceedings of GRETSI 1991, Juan les Pins, Septembre 1991.
    [1b] Blind beamforming for non Gaussian signals, Jean-Frangois Cardoso and Antoine Souloumiac, In IEE Proceedings-F, 140(6):362-370, December 1993.
    [2] A blind source separation technique using second-order statistics, Belouchrani A., AbedMeraim K., Cardoso J.-F., Moulines E., IEEE TRANSACTIONS ON SIGNAL PROCESSING 45 (2): 434-444, FEB 1997.
    [3] Joint Approximate Diagonalization of Positive Definite Hermitian Matrices, Pham D. T., SIAM J. on Matrix Anal. and Appl., 22(4): 1136-1152, 2001.
    [4] A Fast Algorithm for Joint Diagonalization with Non-orthogonal Transformations and its Application to Blind Source Separation, Ziehe A., Laskov P., Nolte G., Müller K.-R., Journal of Machine Learning Research 5 (2004) 777-800.
    [5] Quadratic Optimization for Simultaneous Matrix Diagonalization, Voligraf R., Obermayer K., IEEE Trans. on Signal Processing, vol. 54, no. 9, pp. 3270-3278, September 2006.
    [6] Nonorthogonal Joint Diagonalization Algorithm Based on Trigonometric Parametrization, Wang F., Liu Z., Zhang J., IEEE Trans. on Signal Processing, vol. 55, no. 11, pp. 5299-5308, November 2007.
    [7] Simple LU and QR Based Non-Orthogonal Matrix Joint Diagonalization, B. AFSARI, Independent Component Analysis and Blind Source Separation, Lecture Notes in Computer Science, vol. 3889, pp. 1-7, 2006.
    [8] Matrix Computations, G. H. GOLUB, C. F. VAN LOAN, Baltimore, Johns Hopkins University Press, 3rd edition, 1996.
    [9] What Can Make Joint Diagonalization Difficult?, B. AFSARI, ICASSP 2007, Vol. 3, pp. III-1377-1380, 15-20 Apr. 2007.
    [10] Sensitivity Analysis for the problem of Non-Orthogonal Matrix Joint Diagonalization, B. AFSARI, Submitted to SIAM J. on Matrix Computations.
    [11] Non-Orthogonal Joint Diagonalization in the Least-Squares Sense with Application in Blind Source Separation, A. YEREDOR, IEEE Trans. on Signal Processing, vol. 50, no. 7, pp. 1545-1553, July 2002.
    [12] Sur la diagonalisation conjointe approchée par un critère des moindres carrés, S. DEGERINE, in Proceedings XVIII Colloque Gretsi 2001, n2, pp. 311-314, Toulouse, France, September 2001.

## Claims

1. A method for separating mixed signals (x1(t), . . . , xN(t)) recorded by at least two sensors into a plurality of component signals (s1(t), . . . , sM(t)), each mixed signal xn(t) corresponding to a linear combination of the component signals (s1(t), . . . , sM(t)) stemming from independent sources, each mixed signal being able to be written as the product of a mixture matrix (A) multiplied by a vector of the component signals stemming from the sources (s1(t), . . . , sM(t)),
wherein the method comprises a joint diagonalization step (300) comprising a computer estimating the mixture matrix from a product of rotation matrices corresponding to one or more Givens rotation matrices (G(θ)) and to one or more hyperbolic rotation matrices (H(φ)).

2. The method according to claim 1, wherein the Givens rotation matrices include elements corresponding to trigonometric functions of θ and hyperbolic rotation matrices include elements corresponding to hyperbolic functions of φ.

3. The method according to claim 2, wherein the diagonalization step comprises:
multiplying a family of estimated matrices ({circumflex over (R)}k) by:
the product of a Givens rotation matrix and by a hyperbolic rotation matrix, and by
the transposed matrix of this product, and

estimating the θn and φn values with which the non-diagonal terms of the resulting matrices of order n of this multiplication may be minimized.

4. The method according to claim 3, wherein the multiplying step is repeated on resulting matrices of order n.

5. The method according to claim 4, wherein the multiplying step is repeated until the Givens angle θn and the hyperbolic angle φn are such that cos θn and cos hφn respectively tend to one or the corresponding sines to zero.

6. The method according to claim 1, wherein the estimated matrices are equal to the product of the mixture matrix by any diagonal matrix by the transposed mixture matrix, the estimated matrices being either matrices of cumulants, or covariance matrices in different frequency bands, or intercorrelation matrices with different time shifts, or covariance matrices estimated over different time intervals.

7. The method according to claim 1, wherein the Givens rotation matrices comprise cos θ terms on the diagonal, a sin θ term below the diagonal and a −sin θ term above the diagonal, and the hyperbolic rotation matrices comprise cos hφ elements on the diagonal, a sin hφ element below the diagonal and a sin hφ element above the diagonal.

8. The method according to claim 7, wherein the Givens rotation matrices are of the




   
  
    (
    
      
        
          
            cos
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          
            
              -
              sin
            
            ⁢
            
              
            
            ⁢
            θ
          
        
      
      
        
          
            sin
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          
            cos
            ⁢
            
              
            
            ⁢
            θ
          
        
      
    
    )
  




type and the hyperbolic rotation matrices are of the




   
  
    (
    
      
        
          
            cosh
            ⁢
            
              
            
            ⁢
            φ
          
        
        
          
            sinh
            ⁢
            
              
            
            ⁢
            φ
          
        
      
      
        
          
            sinh
            ⁢
            
              
            
            ⁢
            φ
          
        
        
          
            cosh
            ⁢
            
              
            
            ⁢
            φ
          
        
      
    
    )
  




type.

9. A nontransitory computer readable medium storing a program with instructions for applying a method for separating mixed signals (x1(t), . . . , xN(t)) recorded by at least two sensors into a plurality of component signals (s1(t), . . . , sMt)), each mixed signal xn(t) corresponding to a linear combination of the component signals (s1(t), . . . , sM(t)) stemming from independent sources, each mixed signal being able to be written as the product of a mixture matrix (A) multiplied by a vector of the component signals stemming from the sources (s1(t), . . . , sM(t)), wherein the method further comprises:
a joint diagonalization step (300) comprising estimating the mixture matrix from a product of rotation matrices corresponding to one or more Givens rotation matrices (G(θ)) and to one or more hyperbolic rotation matrices (H(φ)).

10. The nontransitory computer readable medium according to claim 9, wherein the Givens rotation matrices include elements corresponding to trigonometric functions of θ and hyperbolic rotation matrices include elements corresponding to hyperbolic functions of φ.

11. The nontransitory computer readable medium according to claim 10, wherein the diagonalization step further comprises:
Multiplying a family of estimated matrices ({circumflex over (R)}k) by:
The product of a Givens rotation matrix and by a hyperbolic rotation matrix, and by
The transposed matrix of this product, and

estimating the θn and φn values with which the non-diagonal terms of the resulting matrices of order n of this multiplication may be minimized.

12. The nontransitory computer readable medium according to claim 11, wherein the multiplication step is repeated on resulting matrices of order n.

13. The nontransitory computer readable medium according to claim 12, wherein the multiplication step is repeated until the Givens angle θn the hyperbolic angle φn are such that cos θn and cos hφn respectively tend to one or the corresponding sines to zero.

14. The nontransitory computer readable medium according to claim 9, wherein the estimated matrices are equal to the product of the mixture matrix by any diagonal matrix by the transposed mixture matrix, the estimated matrices being either matrices of cumulants, or covariance matrices in different frequency bands, or intercorrelation matrices with different time shifts, or covariance matrices estimated over different time intervals.

15. The nontransitory computer readable medium according to claim 9, wherein the Givens rotation matrices comprise case terms on the diagonal, a sin θ term below the diagonal and a −sin θ term above the diagonal, and the hyperbolic rotation matrices comprise cos hφ elements on the diagonal, a sin hφ element below the diagonal and a sin hφ element above the diagonal.

16. The nontransitory computer readable medium according to claim 15, wherein the Givens rotation matrices are of the




   
  
    (
    
      
        
          
            cos
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          
            
              -
              sin
            
            ⁢
            
              
            
            ⁢
            θ
          
        
      
      
        
          
            sin
            ⁢
            
              
            
            ⁢
            θ
          
        
        
          
            cos
            ⁢
            
              
            
            ⁢
            θ
          
        
      
    
    )
  




type and the hyperbolic rotation matrices are of the




   
  
    (
    
      
        
          
            cosh
            ⁢
            
              
            
            ⁢
            φ
          
        
        
          
            sinh
            ⁢
            
              
            
            ⁢
            φ
          
        
      
      
        
          
            sinh
            ⁢
            
              
            
            ⁢
            φ
          
        
        
          
            cosh
            ⁢
            
              
            
            ⁢
            φ
          
        
      
    
    )
  




type.