2
$\begingroup$

I am implementing auxiliary function based Independent Vector Analysis (AuxIVA) from Nobutaka Ono's original paper Stable and fast update rules for independent vector analysis based on auxiliary function technique. AuxIVA is also presented in other freely available papers, for example this one. It is an extension of plain Independent Vector Analysis where an auxiliary function of the original cost function is minimized.

There are four equations that make up the update rules of AuxIVA:

$$ r_k = \sqrt{\sum_{\omega=1}^{N_\omega} {\lvert w_k^h(\omega)x(\omega)\rvert}^2} $$ $$ V_k(\omega) = {1\over{N_t}}\sum_{t=1}^{N_t}{{G'(r_k) \over r_k} x(\omega) x^h(\omega) } $$ $$ w_k(\omega) = (W(\omega)V_k(\omega))^{-1}e_k$$ $$ w_k(\omega) = {w_k(\omega) \over {\sqrt {w_k^h(\omega)V_k(\omega)w_k(\omega)}}} $$

where

$ N_s $ is the number of sources.

$ k = 1,2,...,N_s$ is the source index.

$ e_k = [0,0,...0,1,0...]^T $, is a column vector with its only non-zero entry being a 1 at the k-th index.

$ G'(r_k)$ is the first derivative of the AuxIVA contrast function and since I'm using $G(r) = r$, $ G'(r_k) = 1$.

$ N_w $ is the number of frequency bins and $ N_t $ is the number of time bins in the STFT of the mixture.

The input I am using is structured like this:

  1. $X$ is a tensor $N_s * N_t * N_\omega $ which is the short-time Fourier transform (STFT) of $N_s$ mixtures.
  2. $W$ is the mixing tensor that will be estimated by repeatedly applying the 4 update rules. Its dimensions are $N_s*N_s*N_\omega$

In Matlab notation, $w^h_k(\omega) = W[k,:,\omega] $ and $x(\omega)=X[:,:,\omega]$.

When I evaluate $r_k$ using the first equation , I get a vector of size $ 1 * N_t $.

To evaluate $V_k(\omega)$ using the second equation, I evaluate $ {G'(r_k) \over r_k}$, which is just $r_k$ because of the assumption $G(r_k) = r_k$. I then do point-wise multiplication between $ {G'(r_k) \over r_k} $ and $x(\omega)$ then post-multiply this product by $x^h(\omega)$. Because $x(\omega)$ has size $N_s*N_t$ and $ {G'(r_k) \over r_k} $, the point-wise multiplication between them a weighted copy of $x(\omega)$. When this weighted copy is post-multiplied by $x^h(\omega)$, a weighted covariance matrix of size $N_s*N_s$ is generated.

In the third equation I post-multiply $W(\omega)$, that has size $N_s*N_s$, by $V_k(\omega)$ from the previous equation, that has size $N_s*N_s$. I then invert this matrix to get $(W(\omega)V_k(\omega))^{-1}$ and post-multiply this by $e_k$ to get $w_k(\omega)$ that is a vector of size $1*N_s$

Finally, in the last equation, I evaluate ${\sqrt {w_k^h(\omega)V_k(\omega)w_k}}$, that is a scalar, and divide the vector $w_k(\omega)$ by this scalar to get a scaled version of $w_k(\omega)$.

I'd like to know if my interpretation of the four equations is correct. I do not have an in-depth understanding of the derivation of these equations so I'm relying on little information present in these papers to interpret and implement the algorithm.

$\endgroup$
  • $\begingroup$ Are you sure about " G′(rk) which is the first derivative of the AuxIVA contrast function using G(r)=rG(r)=r, G′(rk)=1G′(rk)=1. " ? Even I have the same doubt. Please let me know if you know the answer by now. Your understanding on the other 3 equations are right according to my understanding. $\endgroup$ – Gautam Sep 12 '17 at 15:42
  • $\begingroup$ @Gautam : PLEASE DO NOT POST COMMENTS AS ANSWERS. Earn enough rep to allow posting of comments, first. $\endgroup$ – Peter K. Sep 12 '17 at 16:13
  • $\begingroup$ @Gautam I couldn't quite get good results from AuxIVA, most likely the result of a logical or programming bug. G'(r_k) is definitely 1. For example in the paper "Auxiliary Function Independent Vector Analysis Using a Harmonic Clique Dependence Model" look at equation 29, which is a variation of the AuxIVA term G'(r_k)/r_k and notice the numerators and denominators. $\endgroup$ – farhanhubble Sep 13 '17 at 4:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.