TP Signaux aléatoires - SRT4

TP1 Générateurs

Nom - Prénom : Avenel Théophile
  1. Générer un vecteur de valeurs prises par une variable aléatoire de loi uniforme (valeurs équiréparties entre 0 et 10) (utiliser la fonction rand). Visualiser plusieurs réalisations de la variable aléatoire. Calculer la moyenne et la variance de la variable aléatoire. Comparer avec la théorie. Tracer l'histogramme.
  2. Même question pour une variable aléatoire de Bernouilli prenant les deux valeurs 0 ou 1 avec les probabilités p et .
  3. Même question pour une variable aléatoire Gaussienne (on utilisera la fonction randn).
 
 
close all;
clear all;
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Générateurs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Loi uniforme
 
N = 10000; % Définition du nombre de réalisations
 
 
%% Loi uniforme
% Génération de valeurs aléatoires (uniforme sur [0, 10])
X = 10 * rand(1, N);
 
% Visualisation
figure(1); % Ouvre une nouvelle figure
plot(X, '.')
title('Visualisation de la variable aléatoire uniforme')
 
% Tracé de l'histogramme
figure(2); % Ouvre une nouvelle figure
histogram(X, 10, 'Normalization', 'pdf')
title('Histogramme de la loi uniforme')
xlabel('Valeur')
ylabel('Densité de probabilité')
 
% Estimation de la moyenne et de la variance
moyenne_X = mean(X);
variance_X = var(X);
 
moy_X = sum(X)/N;
var_X = 1/N * sum((X-moy_X).*(X-moy_X))
var_X = 8.3173
 
% Valeurs théoriques
moyenne_theorique_X = 5;
variance_theorique_X = (10^2) / 12;
 
% Affichage des résultats
fprintf('Loi uniforme : \n');
Loi uniforme :
fprintf('Moyenne estimée = %.2f, Moyenne théorique = %.2f\n', moyenne_X, moyenne_theorique_X);
Moyenne estimée = 4.97, Moyenne théorique = 5.00
fprintf('Variance estimée = %.2f, Variance théorique = %.2f\n', variance_X, variance_theorique_X);
Variance estimée = 8.32, Variance théorique = 8.33
 
Loi de Bernoulli
 
 
N = 10000; % Définition du nombre de réalisations
 
%% Loi de Bernoulli
p = 0.8;
 
% Génération de valeurs aléatoires
XB = zeros(1, N);
for k = 1:N
tirage = rand;
if tirage < p
XB(1, k) = 1;
end
end
 
% Visualisation des tirages
figure;
plot(XB, '.')
title('Visualisation de la variable aléatoire de Bernoulli')
 
% Tracé de l'histogramme
figure;
histogram(XB, 2, 'Normalization', 'probability') % Deux catégories 0 et 1
title('Histogramme de la loi de Bernoulli')
xlabel('Valeur')
ylabel('Probabilité')
 
% Estimation de la moyenne et comparaison avec la valeur théorique
moyenne_XB = mean(XB);
 
variance_XB = var(XB);
 
 
% Valeurs théoriques
moyenne_theorique_XB = p;
variance_theorique_XB = p * (1 - p);
 
% Affichage des résultats
fprintf('\nLoi de Bernoulli : \n');
Loi de Bernoulli :
fprintf('Moyenne estimée = %.2f, Moyenne théorique = %.2f\n', moyenne_XB, moyenne_theorique_XB);
Moyenne estimée = 0.79, Moyenne théorique = 0.80
fprintf('Variance estimée = %.2f, Variance théorique = %.2f\n', variance_XB, variance_theorique_XB);
Variance estimée = 0.16, Variance théorique = 0.16
 
 
 
Loi Normale
 
%% Loi Normale (Gaussienne)
mx = 2; % Moyenne théorique
vx = 4; % Variance théorique
sx = sqrt(vx); % Écart-type
 
% Génération de valeurs aléatoires
XG = mx + sx * randn(1, N);
 
% Visualisation des tirages
figure;
plot(XG, '.')
title('Visualisation de la variable aléatoire Gaussienne')
 
% Tracé de l'histogramme
figure;
histogram(XG, 50, 'Normalization', 'pdf') % 50 intervalles
title('Histogramme de la loi Gaussienne')
xlabel('Valeur')
ylabel('Densité de probabilité')
 
% Estimation de la moyenne et de la variance
moyenne_XG = mean(XG);
variance_XG = var(XG);
 
% Affichage des résultats théoriques
fprintf('\nLoi Gaussienne : \n');
Loi Gaussienne :
fprintf('Moyenne estimée = %.2f, Moyenne théorique = %.2f\n', moyenne_XG, mx);
Moyenne estimée = 1.99, Moyenne théorique = 2.00
fprintf('Variance estimée = %.2f, Variance théorique = %.2f\n', variance_XG, vx);
Variance estimée = 4.06, Variance théorique = 4.00