close all; clear all; echo on;

%-------------------------------------------------------------
%Exercício 2: Geração de Ruído
%-------------------------------------------------------------

%2.1)	Gere uma seqüência aleatória de N=2048 pontos com a 
%       seguinte função densidade de probabilidade (pdf)
%-------------------------------------------------------------

% Inicializacao das variavies
N=2048;
Nb=50;

% Gerando um ruido uniforme
R = random('Uniform',0,1,1,N); 

% Calcule seu histograma com número de bins igual a Nb=50 entre a faixa 0 e 1.
[Histograma,Faixa] = hist(R,Nb); % calculando seu histograma
% grafico do histograma
bar(Faixa,Histograma)
pause,close

% Qual o valor médio desta distribuição? 
Media = mean(R) % calculando a media do ruido

% caculando a funcao de distribuicao de probabilidade
echo off;
for i=1:Nb
    FDistrib(i) = sum(Histograma(1:i)); 
end
figure, plot(Faixa,FDistrib)
pause,close

%2.2)	Gere uma seqüência aleatória de N=2048 pontos com a função 
%       de densidade de probabilidade Normal com média zero e variância unitária - N(0,1).
%-------------------------------------------------------------
echo on;

% Inicializacao das variavies
N=2048;
Nb=50;

% Gerando um ruido uniforme
R = random('Normal',0,1,1,N); 

% grafico do sinal aleatorio
figure,plot(R);
pause,close

% Calcule seu histograma com número de bins igual a Nb=50 entre a faixa 0 e 1.
[Histograma,Faixa] = hist(R,Nb); % calculando seu histograma
% grafico do histograma
bar(Faixa,Histograma)
pause, close
% Qual o valor médio desta distribuição? 
Media = mean(R) % calculando a media do ruido

% caculando a funcao de distribuicao de probabilidade
echo off;
for i=1:Nb
    FDistrib(i) = sum(Histograma(1:i));
end
figure, plot(Faixa,FDistrib)
pause,close

% 2.3)	Calcule a transformada de Fourier de uma função senoidal 
%       somada com a seqüência aleatória do exercício 1.1
%-------------------------------------------------------------

% funcao do exercicio 1.1
A=0.25; n=1:N; f=25;
x = A*cos(2*pi*f*n/N);

% funcao soma
s = R + x;
figure, plot(s)
pause, close

% calculando Transformada de Fourier da funcao soma
S = fft(s);
Modulo_S = abs(S);

figure, 
subplot(2,1,1), plot(s)
subplot(2,1,2), plot(Modulo_S)
pause, close

echo off;