1、fasticagfunction fasticag(mixedsig, InitialGuess)%FASTICAG - Fast Independent Component Analysis, the Graphical User Interface% FASTICAG gives a graphical user interface for performing independent% component analysis by the FastICA package. No arguments are% necessary in the function call.% Optional
2、 arguments can be given in the form:% FASTICAG(mixedsig, initialGuess) where the matrix mixedsig contains the% multidimensional signals as row vectors, and initialGuess gives the% initial value for the mixing matrix used in the algorithm.% FASTICA uses the fixed-point algorithm developed by Aapo Hyv
3、arinen,% see http:/www.cis.hut.fi/projects/ica/fastica/. The Matlab package% was programmed by Hugo Gavert, Jarmo Hurri, Jaakko Sarela, and Aapo% Hyvarinen.% See also FASTICA% (#)$Id: fasticag.m,v 1.5 2005/10/19 13:05:34 jarmo Exp $% Global values% Handle to this main figureglobal hf_FastICA_MAIN;%
4、Check to see if GUI is already running% Cant have more than one copy - otherwise the global% variables and handles can get mixed up.if isempty(hf_FastICA_MAIN) error(FastICA GUI already running!);end% Handles to other controls in this main windowglobal ht_FastICA_mixedStatus;global ht_FastICA_dim;gl
5、obal ht_FastICA_numOfSamp;global ht_FastICA_newDim;global ht_FastICA_whiteStatus;global ht_FastICA_icaStatus;global hpm_FastICA_approach;global he_FastICA_numOfIC;global hpm_FastICA_g;global hpm_FastICA_stabilization;% These global variables are used to store all the values% I used to use the UserDa
6、ta field of components, but% that got too complex, so I decided to put everything% in global variablesglobal g_FastICA_mixedsig;global g_FastICA_pca_D;global g_FastICA_pca_E;global g_FastICA_white_sig;global g_FastICA_white_wm;global g_FastICA_white_dwm;global g_FastICA_ica_sig;global g_FastICA_ica_
7、A;global g_FastICA_ica_W;global g_FastICA_initGuess;global g_FastICA_approach;global g_FastICA_numOfIC;global g_FastICA_g;global g_FastICA_finetune;global g_FastICA_a1;global g_FastICA_a2;global g_FastICA_myy;global g_FastICA_stabilization;global g_FastICA_epsilon;global g_FastICA_maxNumIte;global g
8、_FastICA_maxFinetune;global g_FastICA_sampleSize;global g_FastICA_initState;global g_FastICA_displayMo;global g_FastICA_displayIn;global g_FastICA_verbose;% initial values for them:% All the initial values are set here - even for% variables that are not used in this fileif nargin 2 g_FastICA_initGue
9、ss = 1; % The user didnt enter initial guess so we default % back to random initial state. g_FastICA_initState = 1; % see below for string valueselse g_FastICA_initGuess = InitialGuess; % If initial guess was entered, then the user probably % want to use it, eh? g_FastICA_initState = 2; % see below
10、for string valuesendif nargin 1 g_FastICA_mixedsig = ;else g_FastICA_mixedsig = mixedsig; % Well remove meanend % the first time we % use this.% Global variable for stopping the ICA calculationsglobal g_FastICA_interrupt;g_FastICA_pca_D = ;g_FastICA_pca_E = ;g_FastICA_white_sig = ;g_FastICA_white_wm
11、 = ;g_FastICA_white_dwm = ;g_FastICA_ica_sig = ;g_FastICA_ica_A = ;g_FastICA_ica_W = ;g_FastICA_approach = 1; % see below for string valuesg_FastICA_numOfIC = 0;g_FastICA_g = 1; % see below for string valuesg_FastICA_finetune = 5; % see below for string valuesg_FastICA_a1 = 1;g_FastICA_a2 = 1;g_Fast
12、ICA_myy = 1;g_FastICA_stabilization = 2; % see below for string valuesg_FastICA_epsilon = 0.0001;g_FastICA_maxNumIte = 1000;g_FastICA_maxFinetune = 100;g_FastICA_sampleSize = 1;g_FastICA_displayMo = 1; % see below for string valuesg_FastICA_displayIn = 1;g_FastICA_verbose = 1; % see below for string
13、 values% These are regarded as constants and are used to store% the strings for the popup menus the current value is% seen in the variables above% D - refers to strings that are displayed% V - refers to string values that are used in FPICAglobal c_FastICA_appr_strD;global c_FastICA_appr_strV;global
14、c_FastICA_g1_strD;global c_FastICA_g1_strV;global c_FastICA_g2_strD;global c_FastICA_g2_strV;global c_FastICA_finetune_strD;global c_FastICA_finetune_strV;global c_FastICA_stabili_strD;global c_FastICA_stabili_strV;global c_FastICA_iSta_strD;global c_FastICA_iSta_strV;global c_FastICA_dMod_strD;glob
15、al c_FastICA_dMod_strV;global c_FastICA_verb_strD;global c_FastICA_verb_strV;% All the values for these are set here - even for% variables that are not used in this filec_FastICA_appr_strD = deflation|symmetric;c_FastICA_appr_strV = defl;symm;% The g1 and g2 below correspond to the values of approac
16、h (1 or 2)% Deflation and Symmetric used to have a bit different selection% of available nonlinearities.c_FastICA_g1_strD = pow3|tanh|gauss|skew;c_FastICA_g1_strV = pow3;tanh;gaus;skew;c_FastICA_g2_strD = pow3|tanh|gauss|skew;c_FastICA_g2_strV = pow3;tanh;gaus;skew;c_FastICA_finetune_strD = pow3|tan
17、h|gauss|skew|off;c_FastICA_finetune_strV = pow3;tanh;gaus;skew;off ;c_FastICA_stabili_strD = on|off;c_FastICA_stabili_strV = on ;off;c_FastICA_iSta_strD = random|guess;c_FastICA_iSta_strV = rand ;guess;c_FastICA_dMod_strD = signals|basis|filters|off;c_FastICA_dMod_strV = signals;basis ;filters;off ;
18、c_FastICA_verb_strD = on|off;c_FastICA_verb_strV = on ;off;% Configuration optionsFIGURENAME = FastICA;FIGURETAG = f_FastICA;SCREENSIZE = get(0,ScreenSize);FIGURESIZE = round(0.1*SCREENSIZE(3) (SCREENSIZE(4)-round(0.1*SCREENSIZE(4)-370) 530 370;% Create the figurea = figure(Color,0.8 0.8 0.8, . Pape
19、rType,a4letter, . Name, FIGURENAME, . NumberTitle, off, . Tag, FIGURETAG, . Position, FIGURESIZE, . MenuBar, none);% Resizing has to be denied after the window has been created -% otherwise the window shows only as a tiny window in Windows XP.set (a, Resize, off);hf_FastICA_MAIN = a;set(hf_FastICA_M
20、AIN, HandleVisibility, callback);% From here on it gets ugly as I have not had time to clean it up% Create the framespos_l=2;pos_w=FIGURESIZE(3)-4;pos_h=FIGURESIZE(4)-4;pos_t=FIGURESIZE(4)-2-pos_h;h_f_background = uicontrol(Parent,a, . BackgroundColor,0.701961 0.701961 0.701961, . Position,pos_l pos
21、_t pos_w pos_h, . Style,frame, . Tag,f_background);pos_l=4;pos_w=400;pos_h=106;pos_t=FIGURESIZE(4)-4-pos_h;h_f_mixed = uicontrol(Parent,a, . BackgroundColor,0.701961 0.701961 0.701961, . Position,pos_l pos_t pos_w pos_h, . Style,frame, . Tag,f_mixed);pos_h=90;pos_t=FIGURESIZE(4)-(106+4+2)-pos_h;h_f_
22、white = uicontrol(Parent,a, . BackgroundColor,0.701961 0.701961 0.701961, . Position,pos_l pos_t pos_w pos_h, . Style,frame, . Tag,f_white);pos_h=pos_t - 4 - 2;pos_t=4;h_f_ica = uicontrol(Parent,a, . BackgroundColor,0.701961 0.701961 0.701961, . Position,pos_l pos_t pos_w pos_h, . Style,frame, . Tag
23、,f_ica);pos_w=120;pos_l=FIGURESIZE(3)-(pos_w+2+2);pos_h=FIGURESIZE(4)-2*4;pos_t=FIGURESIZE(4)-(4)-pos_h;h_f_side = uicontrol(Parent,a, . BackgroundColor,0.5 0.5 0.5, . Position,pos_l pos_t pos_w pos_h, . Style,frame, . Tag,f_side);% Controls in f_mixedbgc = get(h_f_mixed, BackgroundColor);pos_vspace
24、 = 6;pos_hspace = 6;pos_frame=get(h_f_mixed, Position);pos_l = pos_frame(1) + 6;pos_h = 16;pos_t = pos_frame(2) + pos_frame(4) - pos_h - 6;pos_w = 150;b = uicontrol(Parent,a, . BackgroundColor,bgc, . HorizontalAlignment,left, . Position,pos_l pos_t pos_w pos_h, . String,Mixed signals:, . FontWeight,
25、 bold, . Style,text, . Tag,t_mixed);pos_l = pos_l + pos_w;pos_w = 120;ht_FastICA_mixedStatus = uicontrol(Parent,a, . BackgroundColor,bgc, . HorizontalAlignment,left, . Position,pos_l pos_t pos_w pos_h, . String,Not loaded yet, . Style,text, . Tag,t_mixedstatus);% V鋒鋘 v鋖i?pos_t = pos_t - 8;pos_l = po
26、s_frame(1) + 6;pos_t = pos_t - pos_h;pos_w = 150;b = uicontrol(Parent,a, . BackgroundColor,bgc, . HorizontalAlignment,left, . Position,pos_l pos_t pos_w pos_h, . String,Number of signals:, . Style,text, . Tag,t_2);pos_l = pos_l + pos_w;pos_w = 50;ht_FastICA_dim = uicontrol(Parent,a, . BackgroundColo
27、r,bgc, . HorizontalAlignment,left, . Position,pos_l pos_t pos_w pos_h, . String, . Style,text, . Tag,t_dim);pos_l = pos_frame(1) + 6;pos_t = pos_t - pos_h;pos_w = 150;b = uicontrol(Parent,a, . BackgroundColor,bgc, . HorizontalAlignment,left, . Position,pos_l pos_t pos_w pos_h, . String,Number of samples:, . Style,text, . Tag,t_3);pos_l = pos_l + pos_w;pos_w = 50;ht_FastICA_numOfSamp = uicontrol(Parent,a, . BackgroundColor,bgc, . HorizontalAlignment,left, . Position,pos_l pos_t pos_w pos_h, . String, . Style,text, . Tag,t_numOfSamp);% Buttonspos_l = pos_frame(1) + pos_hspace;pos_
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1