Fonctions > Traitement du signal > Signaux et systèmes > Exemple : Générateurs de bruit
  
Exemple : Générateurs de bruit
Utilisez les fonctions de whiten, gaussn et onefn pour simuler des bruits blancs, gaussiens et 1/f respectivement.
Bruit blanc
La fonction whiten simule le bruit généré par N sources indépendantes, chacune d'entre elles présentant une sortie aléatoire selon une distribution uniforme comprise entre -0.5 et 0.5.
1. Utilisez la fonction whiten pour évaluer la fonction de bruit blanc pour six sources de bruit indépendantes.
Cliquez pour copier cette expression
La répétition de l'évaluation de la fonction whiten génère un autre jeu de valeurs du vecteur.
2. Considérez un vecteur de sortie un peu plus grand.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
3. Tracez la fonction de bruit blanc.
Cliquez pour copier cette expression
4. Utilisez les fonctions mean et stdev pour calculer la moyenne et l'écart-type du vecteur de bruit blanc.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
5. Affichez la valeur théorique de la moyenne, puis utilisez la fonction var pour calculer l'écart-type.
Le tracé montre que le signal wn a une moyenne théorique égale à 0.
L'écart-type est égal à la racine carrée de la variance.
Cliquez pour copier cette expression
6. Comparez les valeurs calculées de la moyenne et de l'écart-type aux valeurs théoriques et vous verrez qu'elles n'en diffèrent pas de manière significative.
Bruit gaussien
La fonction gaussn simule un nombre x de sources de bruit indépendantes, chacune d'entre elles suivant une distribution de probabilité gaussienne de moyenne 0 et d'écart-type 1.
1. Evaluez la fonction de bruit gaussian pour six sources de bruit indépendantes.
Cliquez pour copier cette expression
Les éléments d'un vecteur peuvent en théorie avoir n'importe quelle valeur réelle, mais ils sont généralement compris entre -3 et +3. Vous pouvez le vérifier en appuyant sur F5 pour recalculer la fonction.
2. Tracez une séquence gaussienne de l'échantillon.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
3. Préparez les données de Gauss pour un tracé de l'histogramme en cloche en regroupant les valeurs en 20 emplacements de 0,05 de large.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
4. Définissez le vecteur qui contient les limites des emplacements et définissez la frontière la plus à droite.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
5. Utilisez la fonction hist pour créer l'histogramme et tracer un graphique à barres.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
6. Comparez la moyenne et l'écart-type de l'échantillon aux valeurs prévues 0 et 1.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Bruit 1/f
La fonction onefn calcule une approximation du bruit 1/f à l'aide d'une routine basée sur un algorithme développé par Richard Voss (voir l'article de Martin Gardner dans la revue Scientific American d'avril 1978).
1. Utilisez la fonction onefn permettant de générer un vecteur 1/f de 1 000 points.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
2. Ajustez à la moyenne 0.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
3. Tracez les données de vecteur.
Cliquez pour copier cette expression
On trouve des bruits 1/f dans les signaux de nombreux phénomènes naturels ou de phénomènes créés par l'homme, comme la musique, les signaux émis par le cerveau, les conditions atmosphériques, les mouvements sur le marché des actions et d'autres systèmes à interaction hiérarchique. Par exemple, si vous numérisez des échantillons de musique de différents styles (rock, jazz, classique), vous trouverez que la distribution de leurs spectres de puissance est très proche d'un bruit 1/f.
4. Utilisez la fonction lcorr pour comparer la structure statistique de ce bruit avec celle du bruit blanc généré ci-dessus en calculant leurs autocorrélations.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Contrairement au bruit blanc, le bruit généré par onefn est corrélé, avec la corrélation diminuant lorsque le retard augmente.
Comparaison des signaux de bruit à l'aide des spectres de puissance
Une autre manière d'analyser les différences entre le bruit blanc et le bruit 1/f est de comparer leurs spectres de puissance.
1. Supposez 50 cellules de groupes de fréquences de 20.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
2. Utilisez les fonctions mag et dft pour calculer l'amplitude des spectres de fréquence pour chaque signal.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
3. Lissez le résultat en moyennant sur les groupes de fréquences.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
4. Tracez le spectre de bruit blanc.
Cliquez pour copier cette expression
Comme prévu, le spectre de bruit blanc est essentiellement plat. Le spectre d'amplitude de l'approximation 1/f diminue rapidement avec l'augmentation de la fréquence.
5. Utilisez la fonction log pour calculer le logarithme plus représentatif de l'amplitude.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Expérience
En guise d'expérience, essayez de construire un spectre de puissance 1/f, avec des phases aléatoires, puis prenez-en la transformée inverse afin d'obtenir le vecteur de bruit.
1. Définissez la largeur du spectre.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
2. Utilisez la fonction exp pour construire la première moitié de la transformée. Le spectre de puissance 1/f correspond à un spectre d'amplitude de 1/sqrt(f).
Cliquez pour copier cette expression
3. Calculez la seconde moitié de la transformée (pour un signal réel, cette seconde moitié est symétrique conjuguée autour du point médian).
Cliquez pour copier cette expression
4. Définissez la moyenne du bruit à zéro.
Cliquez pour copier cette expression
5. Utilisez la fonction idft pour obtenir la transformée de Fourier inverse (transformée relative au domaine temporel).
Cliquez pour copier cette expression
6. Tracez les valeurs réelles de la transformée inverse.
Cliquez pour copier cette expression
7. Utilisez la fonction lcorr pour calculer la courbe d'autocorrélation.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Le comportement de l'autocorrélation est similaire à la sortie de onefn, avec une corrélation de 1.0 à 0 et différents degrés de corrélation à d'autres points.