📄 milcadelay.m
字号:
function [icasig, W]=milcadelay(x,kneig,algo,emb_dim,emb_tau,harm,finetune,PCAflag)% Mutual information based least dependent component analysis including% additional the time structure of the input% Output: most independent components under linear transformation and the transformation matrix% x....input data mxn m...channelnummer n...sampling points m<<n% kneig... k nearest neigbor for MI algorithm% algo ... 1=cubic 2=rectangular% emb_dim... embxding dimension (default is 1, no embedding)% emb_tau... time-delay, only relevant when emb_dim>1 (default is 1)% harm ... fit the MI vs. angle curve with # harmonics% finetune ... Number 2^# of angles between 0 and pi/2 (default is 7)% PCAflag ... 0=without whitening else whitening (default with whitening)%default-valuesif ~exist('kneig'), kneig=18; endif ~exist('algo'), algo=2; endif ~exist('emb_dim'), emb_dim=2; endif ~exist('emb_tau'), emb_tau=1; endif ~exist('harm'), harm=1; endif ~exist('finetune') Nb=128;else Nb=2^finetune;endif ~exist('PCAflag'), PCAflag=1; end[Nd,N]=size(x);if Nd>N x=x'; [Nd,N]=size(x);end%removing mean and normalizationx=x-mean(x')'*ones(1,N); x=x./(std(x')'*ones(1,N));%whiteningif PCAflag [u,s,v]=svd(cov(x')); V=v*s^(-.5)*u'; x=V*x;end% Augmentation see% Erik Learnx-Miller and John Fisher, (2003) "ICA Using Spacings Estimates of Entropy." Journal of Machine Learning Research% x=randn(Nd,N*30)*0.175+repmat(x,[1,30]);% save data for external Programmzwsp=x';save zwspmilcadelay.txt zwsp -ASCII% execute C Programm[a unout]=unix(['milcadelay zwspmilcadelay.txt ',num2str(Nd),' ',num2str(N),' ',num2str(kneig),' ',num2str(emb_tau),' ',num2str(emb_dim),' ',num2str(algo-1),' ',num2str(Nb),' ',num2str(harm)]);Rall=str2num(unout);%outputicasig=Rall*x;if PCAflag W=Rall*V;else W=Rall;end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -