Exercices correlation -Traitement de signal - Télécharger p

Exercices correlation -Traitement de signal  - Télécharger p

Exercices correlation -Traitement de signal - Télécharger p

Télécharger PDF

La Corrélation

La corrélation est une opération fondamentale dans le domaine du traitement numérique du signal (TNS). Ce chapitre explore ses principes, ses applications et ses différentes fonctions de calcul.

Objectifs du Programme (OP) abordés par l'activité

  • Appliquer les connaissances en mathématiques et en sciences pour résoudre des problèmes d'ingénierie.
  • Identifier, formuler et résoudre des problèmes d'ingénierie.
  • Utiliser les techniques, compétences et outils d'ingénierie modernes nécessaires à la pratique de l'ingénierie.

Résultats d'apprentissage visés par l'activité

  • Écrire des programmes MATLAB qui implémentent diverses fonctions de corrélation.
  • Employer la corrélation dans le traitement des signaux à temps discret.
  • Démontrer et expliquer les propriétés de la corrélation.

Contexte de la corrélation

L'opération de corrélation est d'une importance capitale dans le domaine du traitement numérique du signal (TNS). Ses applications sont nombreuses et variées, incluant la reconnaissance de formes, l'estimation de délai, le traitement de signaux RADAR/SONAR, l'estimation de la hauteur tonale (pitch) et la récupération de signaux périodiques.

La corrélation entre deux ensembles de données ou séquences quantifie leur degré de similarité. Elle repose sur le principe que la somme des produits de deux séquences indépendantes et aléatoires tend vers un nombre extrêmement petit à mesure que la longueur des signaux augmente.

On distingue deux types principaux de corrélation :

  • Corrélation croisée (ou intercorrélation) : la corrélation entre deux séquences différentes.
  • Autocorrélation : la corrélation d'une séquence avec elle-même.

Il existe diverses fonctions de corrélation, chacune ayant ses propres avantages et inconvénients. Les fonctions couramment utilisées sont décrites ci-dessous.

Fonctions de Corrélation et leurs Descriptions

  • Séquence de corrélation brute (non normalisée) : Calculée comme la somme des produits des éléments de deux séquences, sans aucune mise à l'échelle.
  • Séquence de corrélation normalisée par la longueur : Similaire à la corrélation brute, mais divisée par la longueur des séquences.
  • Séquence de corrélation corrigée des effets de bord (ou "vraie" corrélation) : Prend en compte les effets de bord pour offrir une estimation plus précise, souvent en normalisant par le nombre de points de chevauchement.
  • Coefficients de corrélation : Une version normalisée par l'énergie des séquences, où la valeur maximale est de 1 (ou 100%), indiquant une similarité parfaite.

L'autocorrélation d'une séquence est calculée en corrélant la séquence avec elle-même, selon une formule similaire aux fonctions de corrélation croisée, mais appliquée à une seule séquence.

Calcul et propriétés de la corrélation

Cette section aborde la création de programmes MATLAB pour calculer diverses corrélations. MATLAB dispose d'une fonction intégrée, xcorr, qui calcule la corrélation. Bien que sa formule puisse différer légèrement de celles mentionnées précédemment, elle est très utile.

  • Pour la corrélation croisée de deux séquences x1 et x2, utilisez : y = xcorr(x1, x2).
  • Pour l'autocorrélation de x1, utilisez : y = xcorr(x1).

Exemple 6.1 : Calcul de la corrélation croisée normalisée

Créons une fonction MATLAB (fichier M) qui calcule et renvoie la séquence de corrélation croisée normalisée par la longueur, r12(j), pour deux séquences d'entrée x1(n) et x2(n). Supposons que la fonction func_6_1.m soit déjà définie pour effectuer ce calcul.

Pour tester la fonction func_6_1.m, nous allons calculer la séquence de corrélation croisée des signaux suivants :

x1 = [-1, -3, 0.5, 1.5, 4, -0.2]

x2 = [7, -0.8, -1.9, -6, 2, 4.5]

Dans la fenêtre de commande MATLAB, exécutez les commandes suivantes et observez le résultat :

>> x1=[-1,-3,0.5,1.5,4,-0.2];
>> x2=[7,-0.8,-1.9,-6,2,4.5];
>> r12=func_6_1(x1,x2)
r12 =
  -1.2417    4.0833    4.6083    0.3750   -2.5833   -0.7500

Le même calcul de la séquence de corrélation croisée peut être réalisé avec la fonction intégrée xcorr de MATLAB :

>> x1=[-1,-3,0.5,1.5,4,-0.2];
>> x2=[7,-0.8,-1.9,-6,2,4.5];
>> r12=xcorr(x1,x2,'biased');
r12=r12(6:-1:1)
r12 =
  -1.2417    4.0833    4.6083    0.3750   -2.5833   -0.7500

Exercice 6.1 : Corrélation corrigée des effets de bord

Modifiez la fonction func_6_1.m pour créer un nouveau fichier M (exer_6_1.m) qui calcule la séquence de corrélation corrigée des effets de bord (ou "vraie" corrélation) r12(j)true de deux séquences d'entrée.

Question 6.1 : Testez votre fonction avec les mêmes entrées x1(n) et x2(n) de l'Exemple 6.1. Quelle est la séquence de sortie de votre fonction ?

Question 6.2 : En utilisant les mêmes entrées x1(n) et x2(n), comment la sortie de func_6_1.m se compare-t-elle à la sortie de exer_6_1.m ?

Exercice 6.2 : Coefficients de corrélation

Modifiez la fonction func_6_1.m pour créer un nouveau fichier M (exer_6_2.m) qui calcule les coefficients de corrélation ρ12(j) de deux séquences d'entrée.

Question 6.3 : Testez votre fonction avec les mêmes entrées x1(n) et x2(n) de l'Exemple 6.1. Quelle est la séquence de sortie de votre fonction ?

Comparaison des sorties

Question 6.4 : En utilisant les mêmes entrées x1(n) et x2(n), comment la sortie de func_6_1.m se compare-t-elle à la sortie de exer_6_2.m ?

Exemple 6.2 : Propriétés de l'autocorrélation

Une propriété fascinante de l'autocorrélation est sa capacité à distinguer les signaux aléatoires des signaux périodiques. L'autocorrélation d'un signal aléatoire est elle-même aléatoire et tend vers zéro, tandis que l'autocorrélation d'un signal périodique, même contaminé par du bruit aléatoire, restera périodique avec la même période que le signal original.

Cette propriété est cruciale car elle permet de récupérer ou d'estimer des signaux périodiques masqués par du bruit aléatoire. Pour vérifier cette propriété, on pourrait créer un fichier M (par exemple, script_6_1.m) qui génère un signal aléatoire et un signal périodique bruité, puis calcule et affiche leurs autocorrélations respectives.

Dans un tel script, la fonction func_6_1.m de l'Exemple 6.1 serait utilisée pour calculer les séquences d'autocorrélation (par exemple, r11 et r22). L'observation clé est que l'autocorrélation du signal périodique bruité (r22) tend à être un signal périodique plus lisse, montrant que les fluctuations dues au bruit aléatoire sont significativement réduites.

Exercice 6.3 : Estimation de délai en RADAR/SONAR

Dans le traitement de signaux RADAR/SONAR, une étape cruciale est la détermination de la distance entre l'émetteur et la cible. Cela s'effectue en calculant la corrélation croisée entre le signal d'impulsion transmis et le signal reçu. Le pic de la séquence de corrélation indique le délai aller-retour du signal, permettant ainsi de calculer la distance.

Créez une fonction MATLAB (fichier M exer_6_3.m) qui accepte deux séquences d'entrée (représentant respectivement les signaux transmis et reçus) et calcule le délai temporel entre elles.

Question 6.5 : Testez votre fonction avec les entrées x1(n) et x2(n) suivantes. Quel est le résultat de votre fonction ?

x1 = [5, -5, 5, -5, 3, -3, 0, 0, 0, 0, 0, 0, 0, 0]

x2 = [0.3, -0.5, 0.2, 3, -3, 2.5, -2.5, 1.5, -1.5, -0.4, 0.3, 0.1, -0.25, -0.15]

Remarque : Les problèmes de machine sont généralement fournis par l'instructeur de laboratoire.

Foire Aux Questions (FAQ)

Qu'est-ce que la corrélation en traitement numérique du signal et quelles sont ses principales applications ?

En traitement numérique du signal (TNS), la corrélation est une opération mathématique qui mesure le degré de similarité entre deux signaux, ou entre un signal et une version décalée de lui-même. Ses applications sont vastes, incluant la reconnaissance de formes, l'estimation de délai (par exemple en RADAR/SONAR), l'extraction de signaux périodiques noyés dans le bruit, et l'estimation de la hauteur tonale (pitch).

Quelle est la différence entre la corrélation croisée et l'autocorrélation ?

La corrélation croisée (ou intercorrélation) mesure la similarité entre deux séquences différentes en fonction de leur décalage relatif. Elle est utilisée pour trouver des caractéristiques communes ou des retards entre deux signaux distincts. L'autocorrélation, en revanche, mesure la similarité d'une séquence avec elle-même à différents décalages. Elle est utile pour détecter des périodicités ou des motifs répétitifs au sein d'un seul signal et pour analyser sa structure temporelle.

Comment la fonction MATLAB xcorr peut-elle être utilisée, et quelles sont les propriétés clés de l'autocorrélation ?

La fonction MATLAB xcorr est un outil intégré polyvalent pour calculer la corrélation. Pour la corrélation croisée entre deux séquences x1 et x2, on utilise y = xcorr(x1, x2). Pour l'autocorrélation d'une seule séquence x1, la syntaxe est y = xcorr(x1). Une propriété clé de l'autocorrélation est sa capacité à révéler les périodicités d'un signal : l'autocorrélation d'un signal périodique est également périodique, même en présence de bruit, alors que celle d'un signal aléatoire tend vers zéro, permettant de récupérer des signaux périodiques noyés dans le bruit.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne