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