fastIVA {ivaBSS} | R Documentation |
Fast Fixed-point IVA Algorithm
Description
The algorithm estimates the sources from multiple dependent datasets jointly using their observed mixtures. The estimation is done by maximizing the independence between the sources, when the estimated unmixing matrices are restricted to be orthogonal. The options for different source densities are provided.
Usage
fastIVA(X, source_density="laplace_diag", student_df=1,
max_iter = 1024, eps = 1e-6, W_init = NA, verbose = FALSE)
Arguments
X |
numeric data array containing the observed mixtures with dimension |
source_density |
string to determine which source density model should be used. The options are |
student_df |
integer.
The degree of freedom for multivariate Student's distribution. Used only if |
max_iter |
positive integer, used to define the maximum number of iterations for algorithm to run. If |
eps |
convergence tolerance, when the convergence measure is smaller than |
W_init |
numeric array of dimension |
verbose |
logical. If |
Details
The algorithm uses fixed-point iteration to estimate to estimate the multivariate source signals from their observed mixtures. The elements of the source signals, or the datasets, should be dependent of each other to achieve the estimates where the sources are aligned in same order for each dataset. If the datasets are not dependent, the sources can still be separated but not necessarily aligned. This algorithm restricts the estimates unmixing matrices to be orthogonal. For more of the fast fixed-point IVA algorithm, see Lee, I. et al (2007).
The source density model should be selected to match the density of the true source signals. When source_density = "laplace_diag"
, the multivariate Laplace source density model with diagonal covariance structure is used. When source_density = "entropic"
, the approximated entropy based source density model is used. For more about multivariate Laplace and entropic source density models, see Lee, I. et al (2007).
When source_density = "student"
the multivariate Student's source density model is used, for more see Liang, Y. et al (2013).
The algorithm assumes that observed signals are multivariate, i.e. the number of datasets D >= 2
. The estimated signals are zero mean and scaled to unit variance.
Value
An object of class "iva"
.
S |
The estimated source signals with dimension |
W |
The estimated unmixing matrices with dimension |
W_whitened |
The estimated unmixing matrices with dimension |
V |
The whitening matrices with dimension |
X_means |
The means for each observed mixture with dimension |
niter |
The number of iterations that the algorithm did run. |
converged |
Logical value which tells if the algorithm converged. |
source_density |
The source density model used. |
N |
The number of observations. |
D |
The number of datasets. |
P |
The number of sources. |
student_df |
The degree of freedom for Student's source density model. |
call |
The function call. |
DNAME |
The name of the variable containing the observed mixtures. |
Author(s)
Mika Sipilä
References
Lee, I., Kim, T., & Lee, T.-W. (2007). Fast fixed-point independent vector analysis algorithms for convolutive blind source separation. Signal Processing, 87, 1859–1871. <doi:10.1016/j.sigpro.2007.01.010>
Liang, Y., Chen, G., Naqvi, S., & Chambers, J. A. (2013). Independent vector analysis with multivariate Student’s t-distribution source prior for speech separation. Electronics Letters, 49, 1035–1036. <doi:10.1049/el.2013.1999>
See Also
Examples
if (require("LaplacesDemon")) {
# Generate sources from multivariate Laplace distribution
P <- 2; N <- 1000; D <- 5;
S <- array(NA, c(P, N, D))
for (i in 1:P) {
S[i, , ] <- rmvl(N, rep(0, D), diag(D))
}
# Generate mixing matrices from standard normal distribution
A <- array(rnorm(P * P * D), c(P, P, D))
# Generate mixtures
X <- array(NaN, c(P, N, D))
for (d in 1:D) {
X[, , d] <- A[, , d] %*% S[, , d]
}
# Estimate sources and unmixing matrices
res <- fastIVA(X)
}