Learn R Programming

JADE (version 1.1-0)

SOBI: SOBI Method for Blind Source Separation

Description

The SOBI method for the second order blind source separation problem. The function estimates the unmixing matrix in a second order stationary source separation model by jointly diagonalizing the covariance matrix and several autocovariance matrices at different lags.

Usage

SOBI(X, ...)

## S3 method for class 'default':
SOBI(X, k=12, method="rjd", eps = 1e-06, maxiter = 100, ...)
## S3 method for class 'ts':
SOBI(X, \dots)

Arguments

X
a numeric matrix or a multivariate time series object of class ts. Missing values are not allowed.
k
if a single integer, then the lags 1:k are used, if an integer vector, then these are used as the lags.
method
method to use for the joint diagonalization, options are djd and rjd.
eps
maximum number of iterations.
maxiter
convergence tolerance.
...
further arguments to be passed to or from methods.

Value

  • A list with class 'bss' containing the following components:
  • Westimated unmixing matrix.
  • klags used.
  • methodmethod used for the joint diagonalization.
  • Sestimated sources as time series objected standardized to have mean 0 and unit variances.

References

Belouchrani, A., Abed-Meriam, K., Cardoso, J.F. and Moulines, R. (1997), A blind source separation technique using second-order statistics, IEEE Transactions on Signal Processing, 434--444.

See Also

ts

Examples

Run this code
# creating some toy data
A<- matrix(rnorm(9),3,3)
s1 <- arima.sim(list(ar=c(0.3,0.6)),1000)
s2 <- arima.sim(list(ma=c(-0.3,0.3)),1000)
s3 <- arima.sim(list(ar=c(-0.8,0.1)),1000)

S <- cbind(s1,s2,s3)
X <- S %*% t(A)

res1<-SOBI(X)
res1
coef(res1)
plot(res1) # compare to plot.ts(S)
MD(coef(res1),A)

# input of a time series
X2<- ts(X, start=c(1961, 1), frequency=12)
plot(X2)
res2<-SOBI(X2, k=c(5,10,1,4,2,9,10))
plot(res2)

Run the code above in your browser using DataLab