%% metoda nulování spektrálních čar
% Petr Procházka
close all

%% základní parametry
svod=1;                       %výběr svodu
xx=xT(svod,:);      

fvz = 500;                      % Hz - vzorkovaci frekvence
fmez = 0.67;                    % Hz - mezni frekvence HP
N = length( xx );               % delka signalu
cas= 0.002:0.002:10;            % Prepocet casove osy
%% operace ve spektralní části
X = fft( xx );                  % spocitam spektrum
df = fvz/N;                     %vzdalenost spektralnich car
%vynulování složek
do = ceil(fmez/df);
Y = X;

Y(1:do) = 0;

% nulování symetrické části spektra
Y(N-do+2:N) = 0;

%inverzní FT
y = real( ifft( Y ) );
%% přepočet osy
sign=xZ(svod,:);
XX=fft(sign);

prepocet = real( ifft(XX) ); 
delk=length(XX);
prepocet=0:fvz/(delk-1):fvz; 

%% vypočet SNR
orig=xZ(svod,:);
VykonSig=sum(orig.^2);
VykonSum=sum((y-orig).^2);
SNR = 10*log( VykonSig/VykonSum )

%% vykreslení

figure
subplot(311)
plot( cas,xZ(svod,:));
title('originální signál')
xlabel('Čas [s]')
ylabel('napětí [uV]')
subplot(312)
plot( cas,xx );
title('původní signál s navázaným trendem')
xlabel('Čas [s]')
ylabel('napětí [uV]')
subplot(313);
plot( cas,y,'r');
title('vyfiltrovaný signál ')
xlabel('Čas [s]')
ylabel('napětí [uV]')

figure
subplot(211)
plot( cas,xZ(svod,:));
hold on
plot( cas,y,'r');
title('originální signál + vyfiltrovaný signálv')
xlabel('Čas [s]')
ylabel('napětí [uV]')
subplot(212);
plot(cas,(xZ(svod,:))-y );
title('rozdílový signál')
xlabel('Čas [s]')
ylabel('napětí [uV]')

% vykreslení spekter
spekt_puv=abs(X);
spekt_vyf=abs(Y);
spekt_orig=abs(XX);

figure
subplot(211);
stem( prepocet,spekt_orig);
title('spektrum originálního signálu')
xlabel('frekvence[Hz]')
ylabel('amplituda [uV/Hz]')
% axis([0 500 0 (max((X))+100)])
subplot(212);
stem(prepocet,spekt_puv ) ;
title('spektrum originálního signálu s navázaným trendem')
xlabel('frekvence[Hz]')
ylabel('amplituda [uV/Hz]')


figure
subplot(211);
stem( 0.1:0.1:20,spekt_orig(1:200) ) ;
title('výřez spektra originálního signálu')
xlabel('frekvence[Hz]')
ylabel('amplituda [uV/Hz]')
 axis([0 20 0 400000])
subplot(212);
stem(0.1:0.1:20,spekt_puv(1:200) ) ;
title('výřez spektra originálního signálu s navázaným trendem')
xlabel('frekvence[Hz]')
ylabel('amplituda [uV/Hz]')
 axis([0 20 0 400000])


% vykreslení spekter
figure;
subplot(121);
stem((1:60)/10,abs(spekt_puv(1:60)))
title('výřez spektra původního signálu')
% axis([0 5 0 (max(X)+100)])
xlabel('frekvence[Hz]')
ylabel('amplituda[uV/Hz]')
subplot(122);
stem((1:60)/10,abs(spekt_vyf(1:60)))
title('výřez spektra vyfiltrovaného signálu')
% axis([0 5 0 (max(X)+10)])
xlabel('frekvence[Hz]')
ylabel('amplituda[uV/Hz]')

% vykreslení spekter

delka_vyrezu_spektra=50;

figure
subplot(131);
stem((1:delka_vyrezu_spektra)/10,spekt_puv(1:delka_vyrezu_spektra));
title('              výřez spektra původního signálu')
axis([0 5 0 max(spekt_puv(1:delka_vyrezu_spektra))+10000])
xlabel('frekvence[Hz]')
ylabel('amplituda[uV/Hz]')
subplot(132);
stem((1:delka_vyrezu_spektra)/10,spekt_puv(1:delka_vyrezu_spektra));
title('              výřez spektra původního signálu')
axis([0 5 0 max(spekt_vyf(1:delka_vyrezu_spektra))+10000])
xlabel('frekvence[Hz]')
ylabel('amplituda[uV/Hz]')
subplot(133);
stem((1:delka_vyrezu_spektra)/10,spekt_vyf(1:delka_vyrezu_spektra),'r');
title('              výřez spektra vyfiltrovaného signálu')
axis([0 5 0 max(spekt_vyf(1:delka_vyrezu_spektra))+10000])
xlabel('frekvence[Hz]')
ylabel('amplituda[uV/Hz]')

% vykreslení spekter
delka_vyrezu_spektra1=100;

figure
subplot(211)
stem((1:delka_vyrezu_spektra1)/10,abs(spekt_puv(1:delka_vyrezu_spektra1)))
hold on
stem((1:delka_vyrezu_spektra1)/10,spekt_vyf(1:delka_vyrezu_spektra1),'r')
title('výřez spektra vyfiltrovaného a původního signálu s trendem')
xlabel('frekvence[Hz]')
ylabel('amplituda[uV/Hz]')
subplot(212)
stem((1:delka_vyrezu_spektra1)/10,spekt_orig(1:delka_vyrezu_spektra1))
hold on
stem((1:delka_vyrezu_spektra1)/10,spekt_vyf(1:delka_vyrezu_spektra1),'r')
title('výřez spektra originálního a vyfiltrovaného signálu')
xlabel('frekvence[Hz]')
ylabel('amplituda[uV/Hz]')