Vous êtes sur la page 1sur 6

TP 6 : Traitment de Signal

Boris Alexandre Baudel - Master de Physique - Université du Maine


Décembre 2023

Objectif
Il s’agit de vérifier les propriétés de stationnarité et d’ergodicité d’un processus aléatoire. Les réalisations du processus sont
obtenues par filtrage du premier ordre de bruits blancs gaussiens.

Indications
Vous utiliserez la fonction sig_aleat1.m fournie, qui permet de générer les signaux aléatoires à étudier, de moyenne théorique
nulle et de variance théorique unitaire. Vous ajusterez les paramètres d’entrée de la fonction afin de créer d’une part, une matrice
comportant N réalisations de 16 échantillons (N valant 100, 1000 ou 10000) et d’autre part, un vecteur contenant 16384
échantillons.
Les fonctions mean.m et var.m permettent de déterminer les moyenne et variance statistiques ou temporelles. La fonction
cov.m permet de déterminer les variances statistiques et les covariances statistiques, telles que :
1 X
σ2 = (x[n] − x[n])2
N −1
1 X
σxy = (x[n] − x[n])(y[n] − y[n])
N −1
où les x[n] désignent les réalisations du processus aléatoire et x[n] les moyennes d’ensemble pour un instant donné.
La fonction xcov.m permet de calculer l’autocovariance temporelle : il s’agit de la fonction d’autocorrélation du signal centré
préalablement. Ainsi le support du signal résultant est le même que celui de la fonction d’autocorrélation.

Questions : Stationnarité
— Déterminez et visualisez pour les 16 instants, les moyennes et les variances statistiques des N réalisations de bruit blanc en
faisant varier N (par exemple 100, 1000, 10000). Les résultats sont-ils conformes avec les moyenne et variance théoriques
annoncées ?
— Déterminez, à l’aide de la fonction cov.m, les covariances statistiques de ces bruits blancs en faisant varier l’origine du
temps considéré ainsi que l’intervalle de temps. Vous allez considérer les huit instants (correspondant aux huit premiers
points par exemple) et calculez la covariance pour des durées allant de 1 à 7 Te , Te étant l’intervalle de temps séparant
deux points consécutifs d’une réalisation. Visualisez pour chaque durée les sept covariances calculées.
— Le signal aléatoire généré par la fonction sig_aleat1.m, peut-il être considéré stationnaire ?

Questions : Ergodicité
— Calculez les moyenne et variance temporelles du signal aléatoire de 16384 points.
— Calculez une estimation biaisée de sa fonction de covariance temporelle à l’aide de la fonction xcov.m (option ’biased’).
Vous pouvez également visualiser la fonction d’autocorrélation (résultat de la fonction xcorr.m) en faisant attention à la
gestion de l’axe des temps.
— Comparez les caractéristiques temporelles avec les grandeurs statistiques déterminées auparavant. Vous pouvez en par-
ticulier superposer pour les huit premiers points la variance, les covariances statistiques et la covariance temporelle. Le
signal aléatoire généré par la fonction sig_aleat1.m, peut-il être considéré ergodique ?
Cette expérience a permis de comprendre comment les signaux aléatoires peuvent être simulés et analysés en utilisant
MATLAB. Les méthodes de normalisation et de paramétrisation des distributions ont été appliquées avec succès.
1 Evaluations pour différentes valeurs de N
Pour N = 100
Moyennes Statistiques
Columns 1 through 13
0.1231 -0.0727 -0.1108 -0.0647 0.0155 0.0434 -0.0373 -0.0961
-0.2540 0.1273 0.0842 0.0162 0.3281

Columns 14 through 16
0.0506 -0.1625 -0.0271

Variances Statistiques
Columns 1 through 13
1.3512 1.0101 1.0329 0.8873 0.7632 0.9221 0.9339 1.0792
0.9334 1.0357 1.1427 1.0210 0.9965

Columns 14 through 16
0.7154 1.1113 1.0016

Pour N = 1000
Moyennes Statistiques
Columns 1 through 13
0.0229 0.0452 0.0247 -0.0063 -0.0209 -0.0198 -0.0515 0.0247
0.0352 -0.0446 -0.0082 -0.0217 -0.0180

Columns 14 through 16
0.0291 -0.0040 0.0354

Variances Statistiques
Columns 1 through 13
0.9911 0.9644 1.0061 0.9949 0.9885 0.9564 1.0446 0.9280
0.9149 0.9102 1.0003 0.9190 0.9500

Columns 14 through 16
1.0429 0.9951 1.0100

Pour N = 10000
Moyennes Statistiques
Columns 1 through 13
-0.0081 0.0081 -0.0075 -0.0125 -0.0103 0.0064 -0.0021 0.0088
0.0208 -0.0023 -0.0041 -0.0086 -0.0112

Columns 14 through 16
0.0134 0.0034 -0.0008

Variances Statistiques
Columns 1 through 13
1.0029 0.9554 1.0374 1.0066 0.9994 0.9841 0.9893 0.9945
1.0266 1.0001 1.0201 1.0135 1.0002

Columns 14 through 16
0.9909 0.9814 1.0023
Les résultats montrent des écarts par rapport aux valeurs théoriques attendues de la moyenne (zéro) et de la variance
(unitaire), ce qui est normal en raison de la variabilité inhérente aux échantillons finis. La covariance statistique a également été
calculée, suggérant une investigation sur la stationnarité du processus.
Pour l’ergodicité, les moyennes et variances temporelles d’un signal aléatoire de 16384 échantillons ont été estimées. Une esti-
mation biaisée de la fonction de covariance temporelle a été calculée en utilisant xcov.m avec l’option ’biased’. Les comparaisons
des caractéristiques temporelles et statistiques indiquent si le signal peut être considéré comme ergodique.
1 % D f i n i t i o n des p a r a m t r e s
2 N = [100 , 1000 , 10000]; % D i f f r e n t e s tailles d ’ chantillons
3 M = 16; % Nombre d ’ chantillons dans chaque r a l i s a t i o n
4 num_samples = 16384; % Taille du vecteur d ’ chantillons
5
6 % Boucle sur les d i f f r e n t e s valeurs de N
7 for n = N
8 % G n r e r une matrice de bruit blanc
9 % Remplacez ceci par votre fonction sig_aleat1 . m pour g n r e r la matrice
10 matrix = randn (n , M ) ; % Matrice de bruit blanc gaussien
11
12 % Calculer les moyennes et variances statistiques pour chaque instant
13 mean_stat = mean ( matrix ) ;
14 var_stat = var ( matrix ) ;
15
16 % Affichage des r s u l t a t s
17 fprintf ( ’ Pour N = % d \ n ’ , n ) ;
18 disp ( ’ Moyennes Statistiques : ’) ;
19 disp ( mean_stat ) ;
20 disp ( ’ Variances Statistiques : ’) ;
21 disp ( var_stat ) ;
22
23 % Trac des moyennes et variances
24 figure ;
25 subplot (2 ,1 ,1) ;
26 plot ( mean_stat ) ;
27 title ( sprintf ( ’ Moyennes Statistiques pour N = % d ’ , n ) ) ;
28 xlabel ( ’ Instant ’) ;
29 ylabel ( ’ Moyenne ’) ;
30
31 subplot (2 ,1 ,2) ;
32 plot ( var_stat ) ;
33 title ( sprintf ( ’ Variances Statistiques pour N = % d ’ , n ) ) ;
34 xlabel ( ’ Instant ’) ;
35 ylabel ( ’ Variance ’) ;
36 end
37
38 % G n r e r un vecteur de bruit blanc pour l ’ a utocov arianc e
39 % Remplacez ceci par votre fonction sig_aleat1 . m pour g n r e r le vecteur
40 vector = randn (1 , num_samples ) ;
41
42 % Calcul de l ’ autoc ovaria nce temporelle
43 autocov_temp = xcov ( vector , ’ biased ’) ;
44
45 % Afficher l ’ a utocov arianc e temporelle
46 figure ;
47 plot ( autocov_temp ) ;
48 title ( ’ A utocov arianc e Temporelle ’) ;
49 xlabel ( ’ D c a l a g e Temporel ’) ;
50 ylabel ( ’ Aut ocovar iance ’) ;
51
52
53 % P a r a m t r e s initiaux
54 N = 1000; % Nombre de r a l i s a t i o n s ( changez selon le besoin )
55 M = 16; % Nombre d ’ chantillons par r a l i s a t i o n
56 Te = 1; % Interval de temps ( modifiable )
57
58 % G n r a t i o n des signaux a l a t o i r e s
59 % Utilisez ici votre fonction sig_aleat1 . m . Exemple :
60 % signaux = sig_aleat1 (N , M ) ;
61
62 % Initia lisati on des matrices pour les statistiques
63 moyennes = zeros (1 , M ) ;
64 variances = zeros (1 , M ) ;
65 covariances = zeros (M , M ) ;
66 signaux = sig_aleat1 (N , M ) ; % Adaptez cette ligne selon votre i m p l m e n t a t i o n de sig_aleat1 . m
67 % Calcul des moyennes et variances pour chaque instant
68 for i = 1: M
69 moyennes ( i ) = mean ( signaux (: , i ) ) ;
70 variances ( i ) = var ( signaux (: , i ) ) ;
71 end
72
73 % Calcul des covariances statistiques
74 covariances = cov ( signaux ) ;
75 % Visualisation des moyennes et variances
76 figure ;
77 subplot (2 ,1 ,1) ;
78 plot ( moyennes ) ;
79 title ( ’ Moyennes des signaux ’) ;
80 xlabel ( ’ Instant ( chantillon ) ’) ;
81 ylabel ( ’ Moyenne ’) ;
82
83 subplot (2 ,1 ,2) ;
84 plot ( variances ) ;
85 title ( ’ Variances des signaux ’) ;
86 xlabel ( ’ Instant ( chantillon ) ’) ;
87 ylabel ( ’ Variance ’) ;
88 % Supposons que ’ signaux ’ est une matrice N x M
89 % N = nombre de r a l i s a t i o n s , M = nombre d ’ chantillons
90
91 % Calcul et visualisation des covariances pour d i f f r e n t e s d u r e s
92 for duree = 1:7
93 % Assurez - vous de ne pas d p a s s e r la taille de la matrice
94 indices = 1: duree : min (M , 8* duree ) ;
95 cov_temp = cov ( signaux (: , indices ) ) ;
96
97 % Visualisation
98 figure ;
99 imagesc ( cov_temp ) ;
100 colorbar ;
101 title ([ ’ Covariances pour une d u r e de ’ , num2str ( duree ) ]) ;
102 xlabel ( ’ chantillon ’) ;
103 ylabel ( ’ chantillon ’) ;
104 end
105
106 % P a r a m t r e s initiaux
107 N = 1000; % Nombre de r a l i s a t i o n s
108 M = 16; % Nombre d ’ chantillons par r a l i s a t i o n
109
110 % G n r a t i o n des signaux a l a t o i r e s
111 % Remplacez ceci par l ’ appel votre fonction sig_aleat1 . m
112 signaux = sig_aleat1 (N , M ) ;
113
114 % Calcul de la moyenne et de la variance pour chaque chantillon
115 moyennes = mean ( signaux ) ;
116 variances = var ( signaux ) ;
117
118 % Calcul de l ’ autoc ovaria nce
119 % Note : xcov calcule l ’ aut ocovar iance avec un biais non n o r m a l i s
120 auto covari ance = xcov ( signaux (1 ,:) , ’ unbiased ’) ;
121
122 % Tracer la moyenne et la variance
123 figure ;
124 subplot (2 ,1 ,1) ;
125 plot ( moyennes ) ;
126 title ( ’ Moyenne de chaque chantillon ’) ;
127 xlabel ( ’ chantillon ’) ;
128 ylabel ( ’ Moyenne ’) ;
129
130 subplot (2 ,1 ,2) ;
131 plot ( variances ) ;
132 title ( ’ Variance de chaque chantillon ’) ;
133 xlabel ( ’ chantillon ’) ;
134 ylabel ( ’ Variance ’) ;
135
136 % Tracer l ’ auto covari ance pour la p r e m i r e r a l i s a t i o n
137 figure ;
138 plot ( a utocov arianc e ) ;
139 title ( ’ Fonction d ’ ’ a utocov arianc e de la p r e m i r e r a l i s a t i o n ’) ;
140 xlabel ( ’ D c a l a g e ’) ;
141 ylabel ( ’ Aut ocovar iance ’) ;
142 % G n r a t i o n de plusieurs r a l i s a t i o n s du processus en utilisant sig_aleat1 . m
143 N = 1000; % Nombre de r a l i s a t i o n s
144 M = 16; % Nombre d ’ chantillons par r a l i s a t i o n
145 realisations = sig_aleat1 (N , M ) ; % Cette fonction doit exister dans votre environnement Matlab
146
147 % Calcul des moyennes et variances statistiques pour chaque instant
148 m o y e n n e s _ s t a t i s t i q u e s = mean ( realisations , 1) ; % Moyenne sur les colonnes ( N r a l i s a t i o n )
149 v a r i a n c e s _ s t a t i s t i q u e s = var ( realisations , 0 , 1) ; % Variance sur les colonnes ( N r a l i s a t i o n )
150
151 % Calcul des covariances statistiques
152 c o v a r i a n c e s _ s t a t i s t i q u e s = cov ( realisations ) ; % Covariance entre les r a l i s a t i o n s
153
154 % V r i f i c a t i o n de la s t a t i o n n a r i t
155 % La s t a t i o n n a r i t serait value en v r i f i a n t si les m o y e n n e s _ s t a t i s t i q u e s et
156 % v a r i a n c e s _ s t a t i s t i q u e s sont constantes dans le temps .
157
158 % Calcul de la moyenne et variance temporelles pour une r a l i s a t i o n longue
159 long_signal = sig_aleat1 (1 , 16384) ; % Signal de grande longueur
160 m o y e n n e _ t e m p o r e l l e = mean ( long_signal ) ;
161 v a r i a n c e _ t e m p o r e l l e = var ( long_signal ) ;
162
163 % Estimation de la covariance temporelle
164 a u t o c o v a r i a n c e _ t e m p o r e l l e = xcov ( long_signal , ’ biased ’) ;

Pour les différentes valeurs de N (100, 1000, 10000), les moyennes et variances statistiques des signaux sont calculées et
comparées aux valeurs théoriques. Les résultats montrent des écarts attendus dus à la variabilité des échantillons finis. La
covariance statistique est également examinée pour évaluer la stationnarité du processus.
En ce qui concerne l’ergodicité, l’analyse se concentre sur un signal aléatoire de 16384 échantillons, avec le calcul des moyennes
et variances temporelles, ainsi que de l’autocovariance temporelle biaisée. La comparaison entre les caractéristiques temporelles
et statistiques aide à déterminer si le signal peut être considéré comme ergodique.

(a) Première réalisation (b) Moyenne et variance (c) Moyennes et variances statistiques

Figure 1 – Statistiques

(a) Moyennes et variances pour 1000 (b) Moyenne de chaque échantillon (c) Troisième figure

Figure 2 – Moyennes
(a) Moyenne des signaux (b) Autocovariance temporel

(a) Covariance pour t = 1 (b) Covariance pour t = 4 (c) Covariance pour t = 4

Figure 4 – Covariances

(a) Covariances pour t = 3 (b) Covariance pour t = 5 (c) Covariance pour t = 6

Figure 5 – Covariances

(a) Covariance pour t = 7

Vous aimerez peut-être aussi