Accès multiple par Code (C.D.M.A.)****

Notre applet Java simule ici les transmissions multiples sur une
même
liaison. Le récepteur extrait par calcul de corrélation
avec
un code, le message d'un des émetteurs à partir du signal
transmis
: somme de toutes les émissions. Cette technique de
l'accès
multiple est employée en téléphonie sans fil :
IS-95,
CDMA2000 et UMTS.
Créez les émetteurs ('transmitters') avec leurs
propres codes?
Après après avoir ajusté le nombre de chips
("lamelles") pour chaque code, on doit créer un code
ou demander au programme d'en produire un (différentes
méthodes).
Les codes doivent ressembler à du bruit: équilibre des
'1' et
de '0', séquences de 1
consécutifs en progression distribution
géométrique i.e. la moitié des séquences
sont de longueur 1, le quart sont de longueurs 2 etc. En outre la
fonction d'autocorrélation
doit être pratiquement nulle.
En outre les codes doivent être deux à deux orhogonaux,
i.e. intercorrélation nulle.
Le logiciel peut généere les codes suivants:
m-sequences : (code de longueur 2^N -1),
séquence
pseudo- aléatoire produite avec une registre à
décalage
bouclé. On peut générer plusieurs codes par simple
permutation circulaire : bouton < code shift >. Les codes sont
quasi-orthogonaux: la fonction de corrélation a un
maximum = 2^N-1 pour le décalage 0, et -1 (~ 0) pour
d'autres valeurs de décalage. Pour produire d'une
famille
d' émetteurs avec chacun leur code, les étapes sont: <menu m-séquence>
puis pour chaque émetteur : nouvel émetteur <new transmitter>,
décalage de code <code
shift> puis <new
transmitter> etc.
Gold codes: Un code d'or est établi par un 'XOR'
sur deux m-séquences
'appariées '. Une des deux m-séquences peut être
décalée
(ajustez le 'lag'), et différents codes d'or peuvent être
obtenus.
Hadamard-Walsh: le menu < Hadamard-Walsh > produit une
matrice de Hadamard dont chaque ligne (de longueur 2^N), sauf la
premiere,
peut être un code. Toutes les lignes sont entièrement
orthogonales, et donc valides pour être associées ainsi
aux émetteurs.
Une fois que les codes sont créés et
sélectionnés,
le menu <famille d'émetteurs> créera tous les
émetteurs.
La corrélation <menu: cross correlation>
vérifie
l'orthogonalité des codes.
Créez le signal transmis?
Une fois les émetteurz créés, le programme calcule
le
signal transmis (bouton<byte > pour un octet de message produit
par
tous les émetteurs ensemble) en ajoutant les signaux produit par
chaque
émetteur.
Au niveau de chaque émetteur le bit '1' est remplacé par
le code,
tandis que le bit '0' est remplacé par le complément du
code (signal
bleu et message rouge dans les fenêtres d'émetteur).
Le
message de chaque émetteur est un texte editable. Ce texte peut
être
un ensemble aléatoire des caractères: bouton <
scramble> pour tous les émetteurs en même temps si l'on
veut une meilleure répartition statistique. En
théorie, le message est 'XOR'é avec une
longue séquence aléatoire connue pour être
reconstitué en sortie.
Le signal transmis apparaît en bleu dans la fenêtre
principale.Il doit ressembler à du bruit blanc gaussien.
Ceci peut être observé (d'autant plus que le nombre
d'émetteurs est important) grâce au menu
<statistiques>
qui fournit l'histogramme (une "courbe en cloche"), et un spectre
étalé
(théoriquement la largeur de bande devrait être la largeur
de
bande de chaque message multiplié par le nombre de 'chips' des
codes).
On peut observer la largeur de bande du signal en essayant de faux
codes comme '111111111 '.
Extrayez le message d'un émetteur?
Tandis que le signal est transmis, la corrélation avec le code
apparaissant
dans la fenêtre principale est calculée pour chaque
durée
d'un bit de message émetteur. Quand la corrélation est
positive
(rectangle en bleu), le bit 1 est reconnu, quand la corrélation
est
négative (rectangle en jaune) le bit 0 est
détecté,
si la corrélation est faible, le code ou son
complément
n'est pas reconnu, le bit correspondant n'a pu alors être
transmis
sans faute..
Voir aussi cours CDMA
Retour à la page principale du groupe
photonique
de Montpellier.
oooo