Independent vector analysis (IVA) is a blind source separation (BSS) model where several datasets are jointly unmixed. This package provides several methods for the unmixing together with some performance measures.
Make sure you have git installed and clone the package using:
git clone https://github.com/mikasip/IVA.git
or just download ivaBSS_1.0.0.tar.gz
file from this
repository.
Make sure you have R in your environment variables, open command prompt and run:
R CMD INSTALL path_to_file/ivaBSS_1.0.0.tar.gz
The package is used to estimate source vectors by unmixing the observed mixtures. The next example generates mixtures from sources following multivariate Laplace distribution and unmixes them using Newton update based IVA with multivariate Gaussian source density model.
if (require("LaplacesDemon")) {
# Generate sources from multivariate Laplace distribution
P <- 4; N <- 1000; D <- 4;
S <- array(NA, c(P, N, D))
for (i in 1:P) {
U <- array(rnorm(D * D), c(D, D))
Sigma <- crossprod(U)
S[i, , ] <- rmvl(N, rep(0, D), Sigma)
}
# 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_G <- NewtonIVA(X, source_density = "gaussian")
}
}