harj42.m

function harj42()
    % Aikavektori
    dt = 1/100;
    t = 0:dt:10;

    % Signaali
    x = sinisignaali(t);

    % Signaalin käsittely
    y = kasittele(t,x);

    % Esitetään tulokset graafisesti
    hold off
    plot(t,x,'b-')
    xlabel('Aika (s)')
    ylabel('Amlitudi')
    hold on
    plot(t,y,'r-')
end


% Signaali tuotetaan tässä alifunktiossa hyödyntäen aikavektoria
function x = sinisignaali( t )
    freq = 12;
    for i=1:length(t)
        if t(i) < 3
            x(i) = 0;
        elseif t(i) < 6
            x(i) = sin( 2*pi*freq*t(i) );
        else
            x(i) = 0;
        end
    end
end


% Signaalin käsittely tässä alifunktiossa
function z = kasittele(t,x)

    dt = t(2)-t(1);
    fc = 1.2;
    rc = 1/(2*pi*fc);
    alpha = dt/(rc+dt);
    
    y = abs(x);
    z(1) = y(1);
    for i=2:length(y)
        z(i) = alpha*y(i) + (1-alpha)*z(i-1);
    end
end

Last modified: Wed Feb 22 15:57:39 2017