IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Signal Discussion :

Calcul intercorrélation entre 2 signaux


Sujet :

Signal

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Calcul intercorrélation entre 2 signaux
    Bonjour,
    Je travaille sur un projet dans lequel je dois définir la réponse impulsionnelle d'un processus par identification. La démarche est la suivante :
    Je crée un signal dans Matlab (une sbpa : séquence binaire pseudo aléatoire centrée autour de 0), l'envoie via une carte d'acquisition à travers le filtre. Je reçois la sortie du filtre via la même carte d'acquisition. Ensuite, je dois effectuer un calcul de corrélation entre le signal envoyé et le signal reçu. Le résultat est censé donner la réponse impulsionnelle du filtre. Pour m'aider, mon tuteur m'a fourni un code réalisé en basic réalisant la création du signal, son envoi, sa réception et le calcul final. Je n'arrive pas a comprendre le calcul de l'envoi/réception et de la corrélation dont voici l'extrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    	% Module 1 et 2: generation de la sbpa sur 6 registres   
    310	for i = 1 to 6	   
    320	x(i) = 1	   
    330	next i	   
    	% Module 2	   
    340	for k = 1 to 63	   
    350	x=x(5)+x(6)	   
    360	if x<2 then 380	   
    370	x = 0	   
    380	x(6) = x(5)	   
    390	x(5) = x(4)	   
    400	x(4) = x(3)	   
    410	x(3) = x(2)	   
    420	x(2) = x(1)	   
    430	x(1) = x	   
    440	if x = 0 then 443	   
    441	u(k) =  u(k+63) = +10	   
    442	goto 450	   
    443	u(k) =  u(k+63) = -10	   
    450	next k
    Ce langage offre aussi des instructions permettant de commander différents périphériques* :

    call (0, t) Initialisation de l’horloge temps réel. Lance l’horloge et fixe la valeur de T exprimée en milli seconde.
    call (0) Arrêt de l’horloge
    call (1, a) Transmet au convertisseur numérique analogique (CNA), au rythme de la RTC, le nombre A qui donne en sortie du convertisseur une tension égale à A volts
    call (2, b) Le convertisseur analogique numérique (CAN) reçoit la tension électrique B et fournit au calculateur, au rythme de la RTC, un nombre correspondant à B.
    call (12) Arrêt du CNA et du CAN
    Le module n°3, toujours aussi peu commenté (*!), est le suivant*:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    	% Module 3 : envoi et reception du signal   
    470	call (0, 100)	   
    480	for k = 1 to 126	   
    490	a = u(k)	   
    500	call(1, a)	   
    510	if k <= 63  then 540	   
    520	call(2, b)	   
    530	y(k-63) = B	   
    540	call 12	   
    550	next k	   
    560	call (0)	 
     
    	% Module 4  : calcul et identification 
    570	for k = 1 to 63	   
    580	p = 0	   
    590	for i = 1 to 63	   
    600	j = i – k + 1	   
    610	if j > 0 then 630	   
    620	j = j + 63	   
    630	p = p + y(i)*u(j)	   
    640	next i	   
    650	q(k) = p*/ 63	   
    660	h(k) = q(k) /101.59	   
    670	print «*k =*»*; k-1*; q(k)	   
    690	next k
    Je ne comprends pas l'instruction à la ligne 510 du module 3. De plus, je ne vois pas d'où vient la valeur 101.59 a la ligne 660.

    Toute aide est la bienvenue et merci d'avance !!

    JM

  2. #2
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Bonjour,

    pour le calcul de l'intercorrelation en Matlab, c'est la fonction xcorr( ) :
    c est la correlation entre les signaux x et y.

    le reste n'est pas un probléme de Matlab, tu auras beaucoup plus de chance d'avoir une reponse, si tu le poste dans le forum de Basic.
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

Discussions similaires

  1. Calcul d'une différence de phase entre 2 signaux
    Par rollo dans le forum Signal
    Réponses: 7
    Dernier message: 13/02/2018, 18h29
  2. Réponses: 1
    Dernier message: 18/02/2015, 19h52
  3. Calcul du déphasage entre deux signaux sinusoidaux
    Par bendesarts dans le forum Signal
    Réponses: 2
    Dernier message: 02/10/2014, 10h33
  4. Calcul de retard entre 2 signaux
    Par Reglisse1991 dans le forum Signal
    Réponses: 0
    Dernier message: 07/05/2013, 18h48
  5. Calcul d'un déphasage entre 2 signaux via une FFT
    Par JeKiffeLesMath dans le forum Traitement du signal
    Réponses: 6
    Dernier message: 13/05/2011, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo