function [nout] = spectrum(x,t,name)
%[nout] = SPECTRUM(x,t)
%SPECTRUM vykreslí Fourierovu transformáciu signálu (aplitúdové spektrum)
%v decibelových súradniciach
% Vstupy:   x - signál v časovej oblasti
%           t - časové vzorky - k určeniu frekvenčnej kály
% Výstup:   nout - číslo nasledujúceho obrázku (figure)

N = length(x);

if nargin < 3
    name = [];
end

if nargin < 2
    samples = 1;
    t = 1:N;
else
    samples = 0;
end



ta = t(1:end-1);
tb = t(2:end);
dt = sum(tb-ta)/length(ta);
fs = 1/dt; %vzorkovacia frekvencia

Lfft = 2^nextpow2(N);
freq = fs*[0:Lfft-1]/Lfft; %frekvenčná osa
X = fft(x,Lfft);
AX = abs(X);
AXDB = 20*log10(AX); %prevod na decibely

n = get(gcf,'Number');
nout = n+2;
figure(n+1);
hold off;

plot(freq(1:Lfft/2),AXDB(1:Lfft/2));
tit = sprintf('Fourierova transformácia signálu - %s',name);
title(tit);

set(0,'defaulttextinterpreter','Latex');

if samples
    xlabel('$f[-]$');
else
    xlabel('$f[Hz]$');
end
ylabel('$\left|X(f)\right|$');
ylh = get(gca,'ylabel');
gyl = get(ylh);                                                        
ylp = get(ylh, 'Position');
set(ylh, 'Rotation',0, 'Position',ylp, 'VerticalAlignment','middle', 'HorizontalAlignment','right')

grid

set(0,'defaulttextinterpreter','none');

end

