clear all
clc
close all
% IIR pásnová zádrž 2.řádu 
% výpočet vektorů koeficientů [b,a] pásmové zádrže 2.řádu 
% r..vzdálenost polů o počátku ovlivnující šířku pásma (r<1)
% f..střední kmitočet potlačovaného pásma
% fvz..vzorkovací kmitočet
% b...konstanty čitatele přenosové funkce
% a...konstanty jmenovatele přenosové funkce     

r=0.98;
f=50;
fvz=500;
omT=2*pi*f/fvz;
b=[1 -2*cos(omT) 1];
a=[1 -2*r*cos(omT) r^2];
figure(1);
zplane(a,b);
title('jednotková kružnice')
K=sum(a)/sum(b);
b=b*K;

jmena=[];
svody={};
%signaly=load('signaly_f_ADP9_2.mat');
%signaly=signaly.signaly_f_ADP9_2;
signaly=load('signaly_zkraceno');
signaly=signaly.signaly_zkraceno;
 for i=1:1
x=signaly(i,:);
sig=signaly(i,:); 
x = x - mean(x);
sig=sig- mean(sig);
x = x - mean(x);
fvz=500;
n = 1:1:length(x); 
A=40;
brum =A*cos(2*pi*50*n/fvz);
x=x+brum;
 y = filter(b, a, x);
 figure(2);
 subplot(211)
 plot(x)
 title('Původní signál')
 xlabel('počet vzorků[-]')
 ylabel('napětí [µV]')
 subplot(212)
 plot(y)
 title('signál po filtraci')
 xlabel('počet vzorků[-]')
 ylabel('napětí [µV]')

X = fft(x);
f = linspace(0,fvz-(fvz/length(x)), length(x));
Y = fft(y);

 figure(4)
 subplot(211)
 plot(f, abs(X))
 title('Spektrum vstupního signálu')
 subplot(212)
 plot(f, abs(Y))
 title('Spektrum filtrovaného signálu')
figure(5)
impz(b,a,1:500);
title('impulzní charakteristika')
figure(6)
    plot(f, abs(freqz(b,a, 5000, 'whole',500)));
    title('Modulová frekvenční charakteristika |H(f)| filtru')
    xlabel('frekvence [Hz]')
    ylabel('přenos |H(f)|')
    k=abs(freqz(b,a, 5000, 'whole'));
    YS=ifft(k);
 zac=500;
 kon=4500;

rozdil=[];
for d=1:5000
    rozdil=[rozdil y(1,d)-sig(1,d)];
end
figure(6)
subplot(2,1,1)
 rozdilovy=[];
 plot(y(zac:kon))
 hold on
 plot(sig(zac:kon))
 ylabel('U[\muV]')
 title('fitrovaný a původní signál')
 xlabel('n[-]')
 subplot(2,1,2)
 plot(rozdil)
 ylabel('U[\muV]')
 title('rozdílový signál')
 xlabel('n[-]')

figure(7)
freqz(b,a,5000,'whole',500);
title('Amplitudová a fázová charakteristika')

 end