clear all; close all; clc;
%%                           Odhad vykonoveho spektra
% tento program pocita odhad vykonoveho spektra 1D signalu ze 20-ti nahodne
% vybranych snimku LAMP
%-------------------------------------------------------------------------
snimky = ziskaniSouboru('');

upraveny = imread (cell2mat(snimky(2))); % nacteni upraveneho normalizovaneho snimku kvuli velikosti snimku
[signals1D] = extraction1D (upraveny); % extrakce tri 1D signalu

pocet = length(snimky);
pom = 1; % pomocna promenna pro indexovani
pom2 = size(signals1D,1); % pocet 1D signalu z jedne duhovky

for ind = 1:pocet % postupne prochazeni vsech 20-ti duhovek
     upraveny = imread(cell2mat(snimky(ind))); % nacteni upraveneho snimku
     
     % extrakce 1D signalu
     [signals1D] = extraction1D (upraveny);
     [r c] = size(signals1D);
     S_signals = zeros(r,c);
    
    % vypocet spekter 1D signalu
    for ind2 = 1:r % postupne vsechny 1D signaly
        S_signals(ind2,:) = fft( signals1D(ind2,:)/255);
    end
    
    spektra(pom:pom2,:) = ((abs(S_signals)).^2)/c; % kvadrat spektra podeleny delkou signalu
    pom = pom2+1;
    pom2= pom2+r;
    
end

vykon_spektrum = sum(spektra)/(size(spektra,1)); % suma spekter podelena poctem realizaci
vykon_spektrum(1) = 0; % nulovani stejnosmerne slozky
%% zobrazeni grafu vykonoveho spektra
plot((fftshift(vykon_spektrum)));
title('Vykonove spektrum snimku LAMP')
