% funkcia prepocita na zaklade zadanej hodnoty SNR a energie sumu ako ma
% zmenit energia sumu aby bol pomer vykonu EKG signalu ku vykonu sumu zhodny so zadanou hodnotou SNR
function [rusenie] = PrepocetRusenia(signalEKG, SNR, povodneRusenie, energiaPovodnehoRusenia)
% PrepocetRusenia - funkcia prepocita na zaklade zadanej hodnoty SNR a energie sumu ako sa ma
% zmenit energia sumu aby bol pomer vykonu EKG signalu ku vykonu sumu zhodny so zadanou hodnotou SNR
% Syntax: [rusenie] = PrepocetRusenia(signalEKG, SNR, povodneRusenie, energiaPovodnehoRusenia)
% Vstupy:
    % signalEKG - uzitocna zlozka signalu EKG
    % SNR - pozadovana hodnota SNR (Signal to Noise Ratio)
    % povodneRusenie - rusenie vypocitane z generovaneho signalu
    % energiaPovodnehoRusenia 
% Vystupy:
    % rusenie - prepocitana hodnota rusenia
% Autor: Martina Babicova
    priemerSignalEKG = mean(signalEKG);
    citatel = 0;
    for i = 1:length(signalEKG)
         citatel = citatel + ((signalEKG(i) - priemerSignalEKG) * (signalEKG(i) - priemerSignalEKG));
    end
    % odvodene zo vzorca: SNR = 10 .* log10(citatel/menovatel)% uvedene v teoretickej casti bakalarskej prace
    menovatel = citatel / (10.^(SNR / 10)); % menovatel = pozadovana energia sumu = w^2
    konstanta = sqrt(menovatel / energiaPovodnehoRusenia);
    rusenie = konstanta.*povodneRusenie; % hodnota noveho sumu po vynasobeni kostantou tak, aby hodnota SNR bola zhodna so zadanou
end