Commit b2d937f5 authored by Riccardo La Placa's avatar Riccardo La Placa
Browse files

Split Lambda (very inefficiently at the moment probably)

parent 6634f164
Loading
Loading
Loading
Loading
+26 −18
Original line number Diff line number Diff line
@@ -265,9 +265,9 @@ tic
%%%[kung,fu,fight] = ndgrid(nis{1},nino{2},nino{3});
% tm=gpuArray(tm);
% nibank = gpuArray(combinations(nis{:}).Variables);
% Lambda = zeros(length(nibank),length(f_gr),M,'gpuArray');
% Lambda = zeros(length(nibank),length(f_gr),'gpuArray');
nibank = combinations(nis{:}).Variables;
Lambda = zeros(length(nibank),length(f_gr),M);
Lambda = zeros(length(nibank),length(f_gr));
toc 
%Fourier transform on original time-series --------------------------------
%per mantenere l'informazione di fase, non faccio il valore assoluto al quadrato della fft
@@ -361,19 +361,23 @@ for m=1:M
            % Y1=Y1(1:round(length(Y1)/2));
            % toc
            % tic
            if n ~= 1 && n ~= length(f_gr)
                cond = F1>=0.5*(nizero+f_gr(n-1)) & F1<0.5*(nizero+f_gr(n+1));
            elseif n == 1
                cond = F1>=(nizero) & F1<0.5*(nizero+f_gr(n+1));
            else
                cond = F1>=0.5*(nizero+f_gr(n-1)) & F1<=nizero;
            end
            Y1=Y1(cond); clear F1
            
            % if n ~= 1 && n ~= length(f_gr)
            %     cond = F1>=0.5*(nizero+f_gr(n-1)) & F1<0.5*(nizero+f_gr(n+1));
            % elseif n == 1
            %     cond = F1>=(nizero) & F1<0.5*(nizero+f_gr(n+1));
            % else
            %     cond = F1>=0.5*(nizero+f_gr(n-1)) & F1<=nizero;
            % end
            [nnfreq,nnind] = min(abs(F1-nizero));
            % cond = F1>=F1(nnind-1) & F1<=F1(nnind+1);
            Y1=Y1(nnind); clear F1

            %Calcolo della detection statistic
            % Lambda(i,n,m)=sum(abs(Y1).^2)/sum(xtemp(:)); %CREDO (oppure prendono la potenza massima?)
            % [nnfreq,nnind] = min(abs(F1-curpar(1)));
            Lambda(i,n,m) = 2*(abs(max(Y1)).^2)/sum(xtemp(:)); %CREDO (oppure prendono la potenza massima?)
            % Lambda(i,n,m) = 2*(abs(max(Y1)).^2)/sum(xtemp(:)); %CREDO (oppure prendono la potenza massima?)
            Lambda(i,n) = 2*(abs(max(Y1)).^2)/sum(xtemp(:)); %CREDO (oppure prendono la potenza massima?)
            
            % toc
        end
@@ -381,6 +385,9 @@ for m=1:M
    end
    toc
    
    lamfiname = sprintf('Lambda_seg_%d.mat', m);
    save(lamfiname,"Lambda");
    Lambda = zeros(length(nibank),length(f_gr));
    disp(m);

end
@@ -400,11 +407,6 @@ bestpar = zeros(1,5);
toc

totlam = zeros(length(parbank),length(f_gr));
% for i = 1:length(parbank)
%     for n=1:length(f_gr)
%         totlam(i,n) = totlam(i,n)+sum(Lambda(i,n,:));
%     end
% end
tic
for n=1:length(f_gr)
    for i=1:length(parbank)
@@ -420,8 +422,14 @@ for n=1:length(f_gr)
            curni = -curni.*curpar(1).*curpar(3);
            curni(1) = curni(1) + curpar(1);

            lamfiname = sprintf('Lambda_seg_%d.mat', m);
            load(lamfiname);
            
            [Idx,D] = knnsearch(nisearcher,curni);
            totlam(i,n) = totlam(i,n)+Lambda(Idx,n,m);
            totlam(i,n) = totlam(i,n)+Lambda(Idx,n);

            clear Lambda

        end
        % % if (totlam > bestpar(1))
        % %     bestpar = [totlam,f_gr(n),parbank(i,:)];