function [E] = test_fourier (filename,t)
%funkce urcena pro vypocet chyby fourierova slovniku
A = cut(filename,t); %matice A je matice testovacich signalu 
X = zeros (size (A,1),size (A,2)); %prazdna matice na ukladani vektoru x
for i = 1:size(A,2) % cyklus na naplneni matice
    X(:,i) = fft(A(:,i)); %vypocet vektoru x
    %X(:,i) = inv(F)*A(:,i);
end
[B,I] = sort (X,'descend'); %serazeni X kde I jsou indexy a B je serazena matice
X_s = zeros (size (A)); % przadna matice na ukladani 
E = zeros(1,size(X,1)); %prazdny vektor 
for p = 1:size(X,1) %iterace po radcich
    for s = 1:size(X,2) %iterace po sloupcich
         x_s = X_s(:,s); %s-ty vekotr z X_s
         i_s = I(:,s); %s-ty vektor z I
         b_s = B(:,s); %s-ty vektor z B
         x_s(i_s(p)) = b_s(p); %serazeni
         X_s(:,s)=x_s; %ulozeni sloupce do matice
    end
    E (p) = norm(A-ifft(X_s),'fro'); %vypocet p-te chyby
end
end
    







    
