cedalion.sigdecomp.multimodal.arc_erbm
Independent Component Analysis by Entropy Bound Rate Minimization (ICA-ERBM).
This code is based on Li and Adali [LA10a] and Fu et al. [FPA+14]. It was converted from matlab versions provided by the MLSP Lab at the University of Maryland, which is available here: https://mlsp.umbc.edu/resources.html.
Functions
|
Adaptive-reverse Constrained ICA by Entropy Rate Bound Minimization (arc-ERBM) is a spectrally constrained ICA algorithm. |
|
Performs assignment using Bertsekas' auction algorithm. |
Helper function for ERBM ICA: calculates the cos and sin matrix for integral calculation in ERBM ICA. |
|
Helper function for ERBM ICA: returns constraint direction used for calculating projected gradient and gain of filter a. |
|
|
Helper function for ERBM ICA: computes the inverse square root of a matrix. |
|
Helper function for ERBM ICA: computes the linear filtering coefficients (LFC) with length p for entropy rate estimation, and the estimated entropy rate. |
Helper function for ERBM ICA: Preprocessing (removal of mean, patial pre-whitening, temporal pre-filtering) |
|
|
Helper function for ERBM ICA: simplified version of ppval. |
- cedalion.sigdecomp.multimodal.arc_erbm.arc_erbm(
- X: ndarray,
- guess_mat,
- p: int = None,
- pr_guess_mat=None,
Adaptive-reverse Constrained ICA by Entropy Rate Bound Minimization (arc-ERBM) is a spectrally constrained ICA algorithm.
- Parameters:
X (np.ndarray, (Channels, Time Points)) – the [N x T] input multivariate time series with dimensionality N observations/channels and T time points
guess_mat (np.ndarray, (Time Points/2 , Referenced Channels)) – Frequency reference signal for the reconstruction
p (int) – the filter length for the invertible filter source model, does not need to be specified. Default is p = minimum(11, T/50).
pr_guess_mat (np.ndarray, (Time Points, Referenced Channels)) – Optional time domain reference signal for the reconstruction, however, only frequency characteristics are used. Only needed if Phase Retrieval Projection constraint should be included.
- Returns:
the [N x N] demixing matrix with weights for N channels/sources. To obtain the independent components, the demixed signals can be calculated as S = W @ X.
- Return type:
W (np.ndarray, (Channels, Channels))
- Initial Contributors:
Jacqueline Behrendt | j.behrendt@tu-berlin.de | 2026
References
This code is based on the matlab version of bss by Xi-Lin Li (Li and Adali [LA10a]) Xi-Lin Li, Tulay Adali, “Blind spatiotemporal separation of second and/or higher-order correlated sources by entropy rate minimization,” IEEE International Conference on Acoustics, Speech and Signal Processing 2010. The original matlab version is available at https://mlsp.umbc.edu/resources.html under the name “Real-valued ICA by entropy bound minimization (ICA-EBM)”
- cedalion.sigdecomp.multimodal.arc_erbm.lfc(x: ndarray, p: int, choice, a0) tuple[ndarray, ndarray][source]
Helper function for ERBM ICA: computes the linear filtering coefficients (LFC) with length p for entropy rate estimation, and the estimated entropy rate.
- Parameters:
x (np.ndarray, (Time Points, 1)) – the source estimate [T x 1]
p (int) – the filter length for the source model
choice – can be ‘sub’, ‘super’ or ‘unknown’; any other input is handled as ‘unknown’
a0 (np.ndarray or empty list) – is the intial guess [p x 1] or an empty list []
- Returns:
the filter coefficients [p x 1] min_cost (np.ndarray, (1, 1)): the entropy rate estimation [1 x 1]
- Return type:
a (np.ndarray, (p, 1))
- cedalion.sigdecomp.multimodal.arc_erbm.simplified_ppval(pp: dict, xs: float) float[source]
- Helper function for ERBM ICA: simplified version of ppval.
This function evaluates a piecewise polynomial at a specific point.
- Parameters:
pp (dict) – a dictionary containing the piecewise polynomial representation of a function
xs (float) – the evaluation point
- Returns:
the value of the function at xs
- Return type:
v (float)
- cedalion.sigdecomp.multimodal.arc_erbm.cnstd_and_gain(a: ndarray) tuple[ndarray, ndarray][source]
Helper function for ERBM ICA: returns constraint direction used for calculating projected gradient and gain of filter a.
- Parameters:
a (np.ndarray, (p, 1)) – the filter coefficients [p x 1]
- Returns:
the constraint direction [p x 1] G (np.ndarray, (1,)): the gain of the filter a
- Return type:
b (np.ndarray, (p, 1))
- cedalion.sigdecomp.multimodal.arc_erbm.calculate_cos_sin_mtx(p: int) None[source]
Helper function for ERBM ICA: calculates the cos and sin matrix for integral calculation in ERBM ICA.
- Parameters:
p (int) – the filter length for the invertible filter source model
- Returns:
None
- cedalion.sigdecomp.multimodal.arc_erbm.pre_processing(X: ndarray) tuple[ndarray, ndarray][source]
Helper function for ERBM ICA: Preprocessing (removal of mean, patial pre-whitening, temporal pre-filtering)
- Parameters:
X (np.ndarray, (Channels, Time Points)) – the [N x T] input multivariate time series with dimensionality N observations/channels and T time points
- Returns:
the pre-processed input multivariate time series P (np.ndarray, (Channels, Channels)): the pre-whitening matrix
- Return type:
X (np.ndarray, (Channels, Time Points))
- cedalion.sigdecomp.multimodal.arc_erbm.inv_sqrtmH(B: ndarray) ndarray[source]
Helper function for ERBM ICA: computes the inverse square root of a matrix.
- Parameters:
B (np.ndarray) – a square matrix
- Returns:
the inverse square root of B
- Return type:
A (np.ndarray)
- cedalion.sigdecomp.multimodal.arc_erbm.auction(assignCost, guard=None)[source]
Performs assignment using Bertsekas’ auction algorithm.
Parameters: assignCost (ndarray): m x n matrix of costs for associating each row with each column. m >= n. guard (float, optional): Cost of column non-assignment. All assignments will have cost < guard.
Returns: colsol (ndarray): Column assignments, where colsol[j] gives the row assigned to column j. rowsol (ndarray): Row assignments, where rowsol[i] gives the column assigned to row i.