aspcore.correlation.Autocorrelation

class aspcore.correlation.Autocorrelation(forget_factor, max_lag, num_channels)

Bases: object

Autocorrelation is defined as r_m1m2(i) = E[s_m1(n) s_m2(n-i)] the returned shape is (num_channels, num_channels, max_lag) r[m1, m2, i] is positive entries, r_m1m2(i) r[m2, m1, i] is negative entries, r_m1m2(-i)

size : scalar integer, correlation matrix is size x size. forget_factor : scalar between 0 and 1. 1 is straight averaging, increasing time window 0 will make matrix only dependent on the last sample

__init__(forget_factor, max_lag, num_channels)

size : scalar integer, correlation matrix is size x size. forget_factor : scalar between 0 and 1. 1 is straight averaging, increasing time window 0 will make matrix only dependent on the last sample

Methods

__init__(forget_factor, max_lag, num_channels)

size : scalar integer, correlation matrix is size x size.

get_corr_mat([max_lag, new_first, pos_def])

shorthands: L=max_lag, M=num_channels, r(i)=r_m1m2(i)

update(sig)

get_corr_mat(max_lag=None, new_first=True, pos_def=False)

shorthands: L=max_lag, M=num_channels, r(i)=r_m1m2(i)

R = E[s(n) s(n)^T] = [R_11 … R_1M ]

[ ] [ ] [R_M1 … R_MM ]

R_m1m2 = E[s_m1(n) s_m2(n)^T]

== With new_first==True the vector is defined as s_m(n) = [s_m(n) s_m(n-1) … s_m(n-max_lag+1)]^T

R_m1m2 = [r(0) r(1) … r(L-1) ]

[r(-1) ] [ r(1) ] [r(-L+1) … r(-1) r(0) ]

== With new_first==False, the vector is defined as s_m(n) = [s_m(n-max_lag+1) s_m(n-max_lag+2) … s_m(n)]^T

R_m1m2 = [r(0) r(-1) … r(-L+1) ]

[r(1) ] [ r(-1) ] [r(L-1) … r(1) r(0) ]