Quantifier un signal

Dans ce chapitre, vous allez voir qu'un signal est un vecteur. Je vous montrerai comment le décomposer sur des vecteurs de base. Enfin, vous verrez comment obtenir des valeurs comme la puissance, l'énergie, ou la valeur efficace du signal grâce au produit scalaire.

Un signal est un vecteur


Dans le cadre de cours, un signal 1D sera considéré comme un tableau de valeurs ordonnées :

\( signal:\begin{bmatrix} 5 \\ 8 \\ 8 \\ 9 \\ 11 \\ 8 \\ 4 \end{bmatrix} \)

Cette façon de représenter un signal devrait vous rappeler quelque chose, non ? Elle est très proche de la façon que l'on a de représenter un vecteur.

C'est la raison pour laquelle vous allez représenter les signaux en utilisant un formalisme très proche de celui des vecteurs. Les composantes de ce vecteur sont donc les valeurs successives du signal.

Voici comment vous pouvez créer ce signal en syntaxe Matlab :

%Les points-virgules servent à créer un vecteur colonne
u = [5 ; 8 ; 8 ; 9 ; 11 ; 8 ; 4]

Allez-y, ne me croyez pas sur parole. Faites-le vous même, ouvrez Octave/Matlab et recopiez la ligne non commentée ci-dessous.

La dimension du signal correspond à la dimension du vecteur qui y est associé (le nombre de points, ici 7). La dimensionnalité correspond au nombre de dépendances (ici 1, car il n'y a qu'une grandeur qui change). Voilà pourquoi le titre de ce cours parle de signaux 1-D, qui sont pourtant représentés par des vecteurs de dimension N.

Décomposer un signal en composantes

Mettez de côté la représentation d'un signal sous la forme de tableau dont je viens de vous parler. Considérez-le maintenant uniquement comme un vecteur. Vous pouvez donc le décomposer sur des vecteurs de base.

\( u⃗ =u_{1} \begin{bmatrix} 1 \\ 0 \\ 0 \\ . \\ . \\ . \\ 0 \end{bmatrix} + u_{2} \begin{bmatrix} 0 \\ 1 \\ 0 \\ . \\ . \\ . \\ 0 \end{bmatrix} +⋯+u_{N} \begin{bmatrix} 0 \\ 0 \\ 0 \\ . \\ . \\ . \\ 1 \end{bmatrix} \)

Vérifiez que vous avez bien saisi ! Quelles sont les valeurs de \( u_{1} \), \( u_{2} \), etc. Dans le cas de l'exemple ci-dessus, que vaut N dans notre exemple ?

Ici, les vecteurs de base sont :

\( \overrightarrow{ \delta }_{1} = \begin{bmatrix} 1 \\ 0 \\ 0 \\ . \\ . \\ . \\ 0 \end{bmatrix}, \overrightarrow{ \delta }_{2} = \begin{bmatrix} 0 \\ 1 \\ 0 \\ . \\ . \\ . \\ 0 \end{bmatrix}, ... \)

Cette décomposition correspond à une projection sur les vecteurs de base. Autrement dit, vous venez d'utiliser un produit scalaire (peut-être sans le savoir) car la notion de projection est éminemment reliée à la notion de produit scalaire !

Le produit scalaire permet d'obtenir des grandeurs simples


Dans l'exemple précédent, \( u_{1} \) est obtenu via le produit scalaire de \( u⃗ \) avec le vecteur de base \( \overrightarrow{ \delta }_{1} \) :

\( u_{1} = <\overrightarrow{ u}, \overrightarrow{ \delta }_{1}> \)

Dans la suite du cours, je noterai comme suit le produit scalaire de deux vecteurs :
\( <\overrightarrow{ u}, \overrightarrow{ v}> \)

En Octave/Matlab, vous pouvez obtenir le produit scalaire de deux vecteurs en faisant le produit terme à terme .*  puis en sommant chacun des termes avec la fonction sum.

%On définit deux vecteurs
v1 = [1 ; 2 ; 0 ; 4]
v2 = [2 ; 0 ; 3 ; -1]
%On en calcule le produit scalaire
sum(v1 .* v2)

L'outil "produit scalaire" vous sera très utile pour accéder facilement à tout un tas de grandeurs utiles associées à un signal. Je vais vous montrer tout de suite comment obtenir sa valeur moyenne, sa valeur efficace et sa puissance grâce à un produit scalaire particulier.

Valeur moyenne

La valeur moyenne s'obtient par :

\( moy(u)=\frac{1}{N} \sum _{i=1}^n u(i) \)

qui en Matlab s'écrit :

% On crée un vecteur aléatoire de taille 10 pour faire des tests
u = rand(10,1);
%Moyenne: mean(u) fait ça d'un coup
moy = sum(u) / length(u)


Vous pouvez également voir la valeur moyenne comme un produit scalaire : il s'agit de la projection des données sur un vecteur constant.
\( moy(u⃗ )=\frac{1}{N} <\vec{u}, \begin{bmatrix} 1 \\ 1 \\ 1 \\ . \\ . \\ . \\ 1 \end{bmatrix} > \)


Valeur efficace

La valeur efficace est obtenue par :

\( eff(u)=\sqrt{\frac{1}{N}<\vec{u},\vec{u}}> \\ = \sqrt{\frac{1}{N} \sum_{i=1}^n (u(i))^2 } \)

qui en Matlab s'écrit :

%La valeur efficace
eff = sqrt(sum(u .* u) / length(u))

Énergie

L'énergie est obtenue par :

\( E(u)=<\overrightarrow{u},\overrightarrow{u} > \\ = \sum_{i=1}^n (u(i))^2 \)

qui en Matlab s'écrit :

% L'énergie est le produit scalaire de u avec lui-même
Energie = sum(u .* u)

L'énergie d'un signal ne s'exprime pas de façon nécessaire en joules ! Dans l'exemple des choucroutes, l'unité serait : \( choucroutes^2/s^2 \) puisqu'il s'agit d'une multiplication pure et simple de nombres dont l'homogénéité est \( choucroutes/s \).

Puissance

La puissance est obtenue par :

\( P(u)=\frac{1}{N} <\overrightarrow{u}, \overrightarrow{u} > \\ = \frac{1}{N} \sum_{i=1}^n (u(i))^2 \)

qui en Matlab s'écrit :

% La puissance
Puissance = sum(u .* u) / length(u)

Conclusion

Vous verrez plus loin que la décomposition fréquentielle d'un signal est aussi le résultat d'un produit scalaire.

À retenir :
  • Vous pouvez confondre un signal et le vecteur qui le représente.
  • Vous pouvez utilisez ce que vous connaissez sur les vecteurs, en particulier la décomposition sur une base.
  • Le produit scalaire permet d'obtenir des grandeurs simples associées au signal, telles que la valeur moyenne, la valeur efficace, l'énergie et la puissance.

Vous savez maintenant quantifier un signal. Dans le prochain chapitre, vous allez voir comment ces outils de base peuvent servir à évaluer la qualité d'un modèle.