function [xclean,x,t]=monitoringtk(N,avgtk,dipping,snr,b,a)
%
% [xclean,x,t]=monitoringtk(N,avgtk,dipping,snr,b,a)
%
% generator casove rady prestavujici 24-h monitoring tlaku krve (kosinusovy model)
% N - delka vysledne casove rady, pri vzorkovaci periode 15 min
% avgtk - prumerny denni tlak krve v mmHg
% dipping - nocni pokles tlaku v procentech
% snr - amplitudovy pomer signalu k sumu
% xclean - vysledna casova rada bez rusive slozky
% x - vysledna casova rada
% t - casova osa v sekundach
% b,a - koeficienty linearniho filtru pro vytvoreni barevneho sumu (zadejte 1,1 pro bily sum)



reldipping = dipping/100;

% z grafickeho vyjadreni muzeme urcit, ze:
% avgtk = [tkdenni+(1-reldipping)*tkdenni]/2
tkdenni = 2*avgtk/(2-reldipping);
absdipping = tkdenni*reldipping;


Tvz = 15*60; % 15 minut
t = 0:Tvz:(N-1)*Tvz; % casova osa v sekundach
T = 24*60*60; % zakladni perioda casove rady
f = 1/T; % frekvence kosinusovky
xclean = avgtk+(absdipping/2)*cos(2*pi*f*t);

wnoise = (rand(1,N)-0.5)*2; % bily sum s nulovou stredni hodnotou a amplitudou 1
cnoise = filter(b,a,wnoise); % z rovnomerneho spektra vyselektujeme jen urcite slozky

%SNR = Asignal/Anoise = (absdipping/2)/Anoise;
Anoise = (absdipping/2)/snr; %amplituda sumu
x = xclean+Anoise*cnoise;




