Académique Documents
Professionnel Documents
Culture Documents
EXERCICE 1
On veut transmettre un signal vocal de largeur de bande 3kHz par la technique
CDMA. On demande de calculer le débit chip Dc=1/Tc pour obtenir un gain
d’étalement de 20dB.
Réponse
Bs=3kHz, B=1/Ts Ts=1/3000
Bc=1/Tc
Bc/Bs=Ts/Tc=G
Gain d’étalement G=10log (Bc/Bs)=20dB Log(Bc/Bs)/log(10)=2 soit log(Bc/Bs)=ln(10)*2
Bc/Bs= exp(ln(10)*2) = 100=Ts/Tc
Ts=100*Tc, Tc=Ts/100=1/3.103.100=0.33.10-5≈3.3.10-6=3.3μs
EXERCICE 2
On veut transmettre un signal de débit binaire Db=7500bits/s avec un DS–CDMA à
192Mchips/s avec une modulation QPSK
1. Calculer le gain d’étalement
2. On suppose que le signal reçu a une puissance de 410.10 -14watts et la densité
spectrale du bruit est N0=1.6.10 -20W/Hz. On demande le rapport signal à bruit
à l’entrée du récepteur
Réponse
1
RSB=Eb/N0=P/Ds.N0=410.10-14/(7500*1.6.10-20)=3.4.104
en dB : RSBdB=10*Log(3.4.104)=45.31dB
Exercice 3
Un système CDMA consiste en 15 utilisateurs ayant la même puissance, et transmettant de
l’information avec débit de 10000 bits/s. Chacun d’eux utilise un signal d’étalement de
spectre à séquence directe d’un débit par chip de 1 MHz. La modulation utilisée étant BPSK.
On donne la relation entre la puissance émise Ps et la puissance du bruit P j, due aux
interférences entre utilisateurs ou MAI (Multi Access Interference) : Pj=Ps*(Nu-1)
1. Déterminer SNR=Eb/Nj, ou Nj est la densité spectrale d’énergie de l’interférence liée aux
MAI.
2. Quel est le gain de traitement (d’étalement).
3. De combien doit-on augmenter le gain de traitement pour pouvoir doubler le nombre des
utilisateurs sans changer le SNR de sortie.
Correction
Ds=R=10 000bit/s , Dc=1MHz, N=15 utilisateurs ayant la même puissance.
Exercice 4
2
Soient deux utilisateurs A et B transmettant leurs messages sur un réseau CDMA. Il est
demandé de décrire la méthode effectuée pour transmettre et recevoir les méssages
émis.
Emission
Le message A de l’émetteur A, représentée par une séquence de +1, -1 traduisant la
séquence de bits 1 et 0 logiques, est multiplié par un code CA: une séquence de +1 et
–1 (les « chips ») judicieusement choisie, et dont les transitions sont m fois plus
fréquentes.
A=[+1 -1 -1]
Idem pour un émetteur du message B: message multiplié par un code B.
B=[-1 -1 +1]
Les codes CA et CB des deux utilisateurs sont donnés tels que :
CA=[+1, -1, -1, 1] ; CB=[+1, -1, +1, -1]
Réception
3
Intégrer à la fin revient (à calculer la corrélation entre un code et le signal envoyé) à faire la
somme en numérique sur une période et diviser par le nombre de chips (somme de tous les
signaux sur une durée de 1 bit : on a ici 3 bits :
¼*(0+0+-2- 2)=-4/4
(moyenne non nulle des signaux reçus sur un bit en reception,ce qui permet la
reconstitution du signal)
Remarque :
4
En réception, les signaux reçus sur chaque durée d’un bit de message ont une
moyenne non nulle, ce qui permet la reconstitution du signal. On préfère en fait
mesurer la corrélation: la somme des produits code * signal reçu sur la durée d’un
bit et diviser par le nombre de chips.
Les codes sont choisis tels que leur produit scalaire CA.CB soit nul et CA.CA soit
maximum (codes orthogonaux). On rappelle qu’un produit scalaire est la somme
des produits des composantes correspondantes : u1v1 + u2v2 pour deux vecteurs U
et V de composantes u1, u2 et v1, v2. Cette notion de produit scalaire n’est pas
limitée aux vecteurs dans le plan, mais dans tout l’espace. Le code est ici un
vecteur dont les composantes sont les chips.
Exercice 5
5
La séquence obtenue alors est appelée séquence maximale (maximal
length sequence, maximal sequence ou m-sequence) Si :
Une séquence maximale est une séquence périodique pour laquelle la
longueur L de la période est maximale pour le nombre r de bascules du
registre à décalage et vaut L=2r-1.
La longueur L représente le nombre de chips dans une période.
On peut générer une séquence maximale uniquement si le nombre de
prises, excluant la prise de rétroaction, est pair.
Les séquences maximales possèdent entre autres les propriétés suivantes :
Elles sont équilibrées (balanced), c’est-à-dire qu’elles possèdent un 1
de plus que de 0 dans une période complète de 2r– 1 éléments
binaires.
6
Nous voyons que Les séquences générées par un registre à décalage dépendent de la
longueur L, des prises de rétroaction et des valeurs initiales de ce registre. La séquence
obtenue par la configuration de la figure 4.2 est périodique de période 15. Cette séquence
périodique est 001101011110001. Elle est illustrée à la figure suivante, dans le cas antipodal.
Tant que l’horloge fonctionne, on obtient cette séquence de façon cyclique à tous les 15 coups
d’horloge.
Exercice 6
Le registre à décalage suivant est un générateur de codes pour le DS-CDMA
Condition initiale : 1 0 0
P(x)=x3+x2+0x1+1=1+ x2+ x3
7
Top R0= R1 R2 Sorti
d’horloge R1+R2 e
0 1 0 0
1 0 1 0 0
2 1 0 1 0
3 1 1 0 1
4 1 1 1 0
5 0 1 1 1
6 0 1 1 1
7 0 0 1 1
8 (revient à 1 0 0 1
0)
R0= R1 R2 Sorti
R1+R2 e
0 1 1 1
1 0 1 1 1
2 0 1 1 1
3 0 0 1 1
4 1 0 0 1
5 0 1 0 0
6 1 0 1 0
7 1 1 0 1
8 1 1 1 0
La séquence générée est c(n)= 1111001 Nous voyons que si nous changeons l’état
initial la séquence change.
Exemple à faire :
Trouver la séquence PN générée par le registre :
8
Exemple : pas m-séquence
9
Rappels sur les codes OVSF
Ce sont des codes orthogonaux a facteur d’étalement variable (OVSF : Orthogonal Variable
Spreading Factor). L’utilisation de codes OVSF permet de modifier le facteur d’étalement,
même si ces derniers sont de longueurs différentes.
Les codes binaires d’étalement correspondent aux lignes ou aux colonnes de la matrice
H. N=2n avec n=0, 1, 2, … entier
Exemples
10
N=SF=4, en utilisant l’arbre des codes
C4=
1 1 1 1
1 1 -1 -1
1 -1 1 -1
1 -1 -1 1
Pour N=SF=8, en utilisant l’arbre des codes
C8= 1 1 1 1 1 1 1 1
1 1 1 1 -1 -1 -1 -1
1 1 - 1 -1 1 1 - 1 -1
1 1 - 1 -1 -1 -1 + 1 +1
1 -1 1 -1 1 -1 1 -1
1 -1 1 -1 -1 +1 -1 +1
1 -1 -1 1 1 -1 -1 1
1 -1 -1 1 -1 +1 +1 -1
Exercice 7
11
C4(4) C2(2) - C2(2) 1 -1 -1 1
Il faut à présent calculer la matrice C2
C2= C2(1) = C1(1) C1(1) = 1 1
C2(2) C1(1) - C1(1) 1 -1
Avec C1=C1(1)=1
La séquence d’étalement à attribuer à chaque utilisateur sera :
C1= [1 1 1 1] ; C2 = [1 1 -1 -1] ;
C3= [1 - 1 1 -1] ; C4 = [1 - 1 -1 1]
2. Montrer que ces séquences de chips sont orthogonales 2 à 2 :
Pour cela il faut soit fait le produit scalaire 2 à 2 des codes qui doit
être nul (produit scalaire de deux vecteurs est obtenu en faisant la
somme du produit des composantes)
Ou faire l’autocorrélation de chaque code qui doit être maximale si
le décalage =0 ou minimale pour un certain décalage (on prendra
ici =2)
L
φ𝝉 =∑ Ci .Ci-𝝉
i=1
12
3.1 Déterminer le message en bande de base à transmettre par chaque
utilisateur
U1.C1= [1 1]* [1 1 1 1] = [+1 +1 +1 +1] [+1 + 1 +1 + 1]
U2C2= [-1 -1]* [1 1 -1 -1] = [-1 -1 +1 +1] [-1 -1 +1 +1]
U3C3= [1 -1]* [1 - 1 1 -1] = [1 - 1 +1 -1] [-1 + 1 - 1 +1]
U4C4= [- 1 1]* [1 - 1 - 1 +1]= [-1 + 1 +1 -1] [1 - 1 -1 1]
13
(b) Donnez le code de Gold dans le cas des états initiaux 100 et 111.
(d) Si n= 31, proposer le schéma représentant la génération de la séquence Gold, ainsi que
les polynômes correspondants.
Corrigé
(a) Donnez le schéma représentant la génération de la séquence Gold
(a) Le schéma représentant la génération de la séquence Gold est comme suit :
Pour obtenir un générateur de codes gold il faut associer ces deux registre par un ou exclusif
par leurs sorties
(b) Donnez le code de Gold dans le cas des états initiaux 100 et 111.
Sachant que chaque registre contient 3 bascules donc le code généré par chacun sera de
longueur : 23-1=7
14
1 0 0 1 1 1 1 0 1
Le code gold obtenu sera alors : 1111001
Avec des états initiaux 100 et 111, les séquences h(x) et h’(x) génèrent, respectivement, les
m-séquences ‘’préférées’’ :
U=0010111 séquence maximale car le nombre de chips 1 est supérieur au
nombre de chips 0
V=1110010
La séquence obtenu pour le code gold est : w=uv=1111001
(c) Si n=31, proposer un système de registres pour générer une séquence de codes
gold.
Si n=31 cela veut dire que le nombre de bascules est 5, donc la longueur de la séquence
sera :
25-1=32-1=31
15
1. Calculer R la matrice d’inter-corrélation normalisée (K x K) des codes d’étalements.
2. Donner la forme matricielle y en fonction de R, A, b.
3. Calculer les MAI.
Corrigé
1. Calculer R la matrice d’inter-corrélation normalisée (K x K) des codes
d’étalements.
16
C1C3T= ;
C2C1T= ;
C2C2T
……………
Le MAI (Multiple Access Interférence) définie les interférant par rapport à l’usager désiré.
S’il y a 3 usagers donc le nombre de MAI=K-1=3-1=2 , les MAI sont les interférences des
autres utilisateurs, comme on a 3 utilisateurs, donc on 2 utilisateurs qui interférent sur le 1er..
Les MAI pour chaque vecteur b est obtenu en faisant la différence entre la valeur réelle et la
valeur estimée
A l’aide de Matlab, il est possible d’inverser R et la multiplier par y pour obtenir b^ k. Pour
obtenir les MAI, iml faut alors effectuer l’opération : b-b^ k
Exercice 10
Rappels :
produit scalaire entre 2 fonctions f1(t) et f2(t) périodiques continues de période T :
T
< f 1 ( t ) , f 2 ( t )>=∫ f 1 ( t ) . f 2 ( t ) . dt
0
Deux utilisateurs veulent transmettre une information (respectivement b1 et b2) sur un même
canal. Pour cela ils utilisent chacun un code d’étalement respectivement c1(t) et c2(t)) ayant
des propriétés particulières :
- Une autocorrélation ressemblant à un Dirac :
17
L
Soit, Rcici(τ) =∑ ci(t) .ci(t−τ )= δ(t) (avec i = 1 ou 2)
i=1
Telle que si τ=0 alors δ(t)=1 ; si τ≠0 alors δ(t)=0
L
- Une intercorrélation nulle : Rc1,c2(τ) = ∑ c 1(i). c 2( i−τ )=0 quel que soit τ
i=1
+∞
Figure 2
Ces signaux passent ensuite via des canaux multitrajets de réponse impulsionnelle h 1(t) et
h2(t) telles que h1(t)=0.δ(t)+1.δ(t-t1) et h2(t)=β0.δ(t)+β1.δ(t-t2)
On reçoit alors au niveau du récepteur la somme des deux signaux filtrés représentés par
y(t) = x1(t)+x2(t)
1. Donner les expressions des signaux des signaux x1(t), x2(t) et y(t) en fonction de b1, b2,
c1(t), c2(t) et h1(t), h2(t)
x1(t) = [b1.c1(t)]*h1(t) x2(t)=[b2.c2(t)]*h2(t) ;
y(t)= (b1.c1(t))*h1(t) +(b2.c2(t))*h2(t) où * représente le produit de convolution
Calcul de la corrélation entre le signal reçu y(t) et le code de cet utilisateur c1(t) : Ryc1(τ)
Ryc1(τ)=Ʃy(t).c1(t-τ)
Ryc1(τ)= Ʃ [0.b1.c1(t) + 1.b1.c1(t-t1) + β0.b2.c2(t) + β 1.b2.c2(t-t2)].c1(t- τ)
=Ʃ (0.b1.c1(t).c1(t-τ) + 1.b1.c1(t-t1).c1(t-τ) + β0.b2.c2(t).c1(t- τ) + β1.b2.c2(t-t2).c1(t-τ)]
= 0.b1 .R[c1(t).c1(t-τ)] + 1.b1. R[c1(t-t1).c1(t-τ)] + β0.b2. R[c2(t).c1(t- τ)] + β1.b2. R[c2(t-t2).c1(t-
τ)]= 0.b1.(τ)+ 1.b1. (τ-t1)+ β0.b2.0+ β1.b2.0 =
0.b1.(τ)+ 1.b1. .(τ-t1)=b1(0.(τ)+ 1.(τ-t1))
Si τ=0 alors (τ)= (0)=1 et (τ-t1)= (-t1)=0 comme donné plus haut d’où :
Ryc1(τ)= 0.b1 avec 0=cste, on retrouve ainsi le message du l’utilisateur 1
18
Ryc2(τ)= Ʃ (0.b1.c1(t) + 1.b1.c1(t-t1) + β0.b2.c2(t) + β 1.b2.c2(t-t2)).c2(t- τ)
= 0.b1 .R[c1(t).c2(t-τ)] + 1.b1. R[c1(t-t1).c2(t-τ)] + β0.b2. R[c2(t).c2(t- τ)] + β1.b2. R[c2(t-t2).c2(t-
τ)]= 0.b1.0 + 1.b1.0+. β0.b2 .(τ) + β1.b2. .(τ-t1) = β0.b2 .(τ) + β1.b2. .(τ-t1)
Si τ=0 alors (τ)= (0)=1 et (τ-t1)= (-t1)=0:
Ryc2(τ) = β0.b2 avec β0=cste, on retrouve ainsi le message du l’utilisateur 2
Ces résultats montrent que si on corrèle le signal reçu avec l’un des codes, on retrouve le
message de l’utilisateur correspondant au code. Ce qui correspond à la méthode utilisée pour
extraire l’information émise à la réception dans le cas du récepteur mono-utilisateur.
19