close all; clear all; echo on;

%-------------------------------------------------------------
% Exercício 3: Relação Sinal Ruído (SNR)
%-------------------------------------------------------------

% 3.1)	Calcule a relação sinal ruído (SNR) de s(n)
%--------------------------------------------------

% Inicializando as variaveis
N=2048;
A=1; n=1:N; f=25;

% calculando os sinais
R = random('Normal',0,1,1,N); % ruido gaussiano
x = A*cos(2*pi*f*n/N); % sinal senoidal
s = R + x;% funcao soma

% Calculo da relacao sinal ruido
Pot_sinal = sum(abs(x).^2)/N;
Pot_ruido = std(R)^2;

SNR = 10*log10(Pot_sinal/Pot_ruido)

% 3.2)	Gere outra seqüência aleatória N(0,0.25). Calcule a 
%       nova relação sinal ruído de s(n). 
%       O que aconteceu com a relação sinal ruído? 

R = random('Normal',0,0.25,1,N); % ruido gaussiano
s = R + x;% funcao soma
% Calculo da relacao sinal ruido
Pot_sinal = sum(abs(x).^2)/N;
Pot_ruido = std(R)^2;

SNR = 10*log10(Pot_sinal/Pot_ruido)

% 3.3)	Explique como podemos calcular a verisimilhança entre s(n) e x(n).

% gerando quatro sequencias de ruido

Acumulacao = 100;
stddata = 100;
R = random('Normal',0,stddata,Acumulacao,N);
T = zeros(Acumulacao,N);
echo off;
for i=1:Acumulacao
    T(i,:) = R(i,:)+x;
end
echo on;

L = mean(T,1);
vari = std(T,0,1);
chi2=0;
echo off;
for i=1:N
    chi2 = chi2+((L(i)-x(i))^2)/(vari(i)^2);
end

echo on;
chi2/N
echo off;
L_f = fft(L);
Modulo_L = abs(L_f);

figure, 
subplot(2,1,1), plot(L)
subplot(2,1,2), plot(Modulo_L)
pause, close




