implementation d`un modem adsl sous matlab

Transcription

implementation d`un modem adsl sous matlab
LABO 5 - 6 - 7
PROJET :
IMPLEMENTATION D’UN MODEM
ADSL SOUS MATLAB
5.1 Introduction
Au cours de séances précédentes, nous avons appris à utiliser un certain nombre
d'outils fondamentaux en traitement du signal : générateurs (et
échantillonneurs), analyseurs, et filtres. Ces outils vont maintenant nous
permettre de modéliser et synthétiser des signaux audio-numériques.
Plus précisément, le but de ce projet sera de réaliser un système de transmission
numérique basé sur le principe DMT (Discrete Multitone Transmission), avec
modulation QAM de chaque porteuse. En clair : le principe d’un modem ADSL.
Le codeur-décodeur ADSL sera réalisé sous MATLAB, pour des raisons évidentes
de temps de développement. Il ne sera par conséquent pas « temps réel » : il
fonctionnera en deux étapes : codage d’une information numérique sous la forme
d’un fichier.wav ; décodage du fichier .wav et vérification du résultat.
Pour ce faire, nous commencerons par créer un signal simple, que nous
soumettrons au codeur. Cette première étape permettra de mieux comprendre le
principe de ce codeur. Chaque étape du processus de codage sera analysée
(dans les domaines temporels et fréquentiels). Nous utiliserons ensuite le codeur
et le décodeur correspondant sur un signal numérique réel.
5.2 Notions Théoriques
5.2.1Transmissions numériques
Il est difficilement envisageable d’envoyer, à longue distance, un signal
numérique sous la forme d’une simple suite d’impulsions rectangulaires
analogiques (ce que l’on appelle transmission en bande de base dans le jargon
des télécoms). Le spectre d’un tel signal est en effet très large, et contient en
général des fréquences pour lesquelles le milieu de transmission (air, fils)
possède une mauvais réponse en fréquence. La transmission correcte d’un signal
en bande de base requiert donc l’utilisation de filtres complexes, appelés filtres
égaliseurs, qui compensent la fonction de transfert du canal.
2
LABORATOIRES DE TRAITEMENT DU SIGNAL
Un modem est un appareil qui transforme un signal numérique (suite de bits) en
un signal analogique possédant des propriétés facilitant sa transmission sur un
canal donné.
La transmission s’effectue en général par modulation d’une porteuse sinusoïdale,
dont on modifie l’amplitude, la phase ou la fréquence, au rythme du signal à
envoyer (Fig 5.1). De l’autre côté de la chaîne de transmission, le modem
récepteur détecte les modifications apportées à la porteuse, et en déduit le signal
modulant.
Fig 5.1 Exemples de modulations (d’après [Agilent 97]).
Dans le cas où le signal à transmettre est lui-même analogique, on parle de
modulation d’amplitude, de fréquence (AM, FM1) ; s’il est numérique, on parle
plutôt modulation par saut d’amplitude, de fréquence ou de phase (QAM :
quadrature amplitude modulation, FSK : frequency shift keying, PSK : phase shift
keying2), car les modifications d’amplitude, de phase, ou de fréquence, sont
brutales et discrètes.
La méthode de modulation utilisée dans un modem ADSL est de type DMT/QAM.
Dans les paragraphes suivants, nous donnons une explication des principes
associés à la modulation AM, QAM, puis du principe de la transmission DMT.
5.2.2Modulation d’amplitude (AM)
1 En analogique, modifier la phase d’une cisoïde de façon continue revient à en modifier la
fréquence (qui est en effet la dérivée de la phase).
2 En numérique, une modification instantanée de fréquence ne conduit pas au même résultat
qu’une modification instantanée de phase (cf. les deux ondes au centre de la Fig 5.1).
LABORATOIRES DE TRAITEMENT DU SIGNAL
3
Soit x(t) un signal réel, et cos(ω0t) une porteuse de pulsation fondamentale ω0(ω0
= 2πf0). Le spectre du signal y(t)=x(t)cos(ω0t) résulte de la translation, sur l’axe
des pulsations, de + et – ω0 du spectre de x(t) (Fig 5.2).
|X(f)|
x(t)
A(0)
a
f
t
A(f)
cos(w0t)
1/2
1
1/2
t
f
-f0
a
0
f0
|Y(f)|
y(t)=x(t)cos(w0t)
A(0)/2
f
-f0
f0
Fig 5.2 Modulation d’amplitude.
En effet le développement en séries de Fourier de cos(ω0t) comprend deux
termes d’amplitude ½:
F
cos(ω 0t ) ⇔
1
[δ ( f − f 0 ) + δ ( f + f0 )]
2
On sait par ailleurs que le produit x(t)cos(ω0t) correspond à la convolution des
transformées de Fourier de x(t) et cos(ω0t), et que la convolution d’un signal par
une impulsion de Dirac correspond au déplacement de ce signal au droit de
l’impulsion, et à une multiplication par son poids. Ceci explique la Fig 5.2.
Le signal y(t) peut alors être envoyé au démodulateur, qui effectuera simplement
une multiplication par la même porteuse pour obtenir z(t)=y(t)cos(ω0t)=
x(t)cos²(ω0t)= x(t)/2[1+cos(2ω0t)]. Ceci peut s’interpréter spectralement comme
la convolution entre Y(f) et les deux raies de la porteuse. On constate donc que,
si l’on fait suivre le démodulateur d’un filtre passe-bas de fréquence de coupure
f0¸ on retrouve x(t) à un facteur ½ près.
5.2.3 Saut de phase en quadrature (QPSK : Quadrature Phase
Shift Keying)
Le principe de la modulation d’amplitude peut être facilement transformé en
modulation de phase pour la transmission de signaux numériques.
Le principe le plus simple est celui d’une modulation « d’amplitude » sur deux
porteuses de même fréquence mais déphasées de 90° : un cos(ω0t) et un
4
LABORATOIRES DE TRAITEMENT DU SIGNAL
sin(ω0t). La première porteuse est appelée porteuse en phase ; la seconde est
dite en quadrature. Si x(n) est la suite de bits (0/1) à envoyer, on constitue deux
signaux analogiques binaires xQ(t) et xI(t) prenant des valeurs +1/-1 et
représentant respectivement des bits d’indices pairs et impairs de x(n), et on
crée deux signaux modulés yQ(t)= xQ(t)cos(ω0t) et yI(t)= xI(t)cos(ω0t). On envoie
alors le signal y(t)= yI(t)+ yQ(t) sur le canal de transmission (Fig 5.3).
xI(n)
10011010
xI(t)
+1
yI(t)
-1
x(n)
y(t)
01|10|00|11|11|00|01|10
xQ(n)
01011001
+1
yQ(t)
-1
xQ(t)
Fig 5.3 Principe de la modulation QPSK.
On comprend que cette double modulation « d’amplitude » correspond en fait à
une modulation de phase des deux porteuses, puisqu’on les multiplie simplement
par 1 ou –1. D’où le nom de cette technique.
Le spectre du signal y(t) est alors la somme complexe des spectres de yQ(t) et
yI(t), eux-mêmes obtenus pas modulation AM de xQ(t) et xI(t) sur des porteuses
en quadrature (Fig 5.4).
|SQ(f)|
Re
Im
|YQ(f)|
|SI(f)|
|YI(f)|
f
-f0
f0
Fig 5.4 Effet spectral de la modulation QPSK
Dans le démodulateur, on peut retrouver xQ(t) et xI(t) en remultipliant y(t) par
les deux porteuses séparément 3:
zQ(t)=y(t)cos(ω0t)= xQ(t)cos²(ω0t)+ xI(t)sin(ω0t)cos(ω0t)
=xQ(t)/2[1+cos(2ω0t)] + xI(t)/2sin(2ω0t)
3 On peut également retrouver les expressions qui suivent en considérant que le démodulateur
effectue une convolution entre le spectre de y(t) et celui des deux porteuses.
LABORATOIRES DE TRAITEMENT DU SIGNAL
5
zI(t)=y(t)sin(ω0t)= xQ(t)sin(ω0t)cos(ω0t)+ xI(t)sin²(ω0t)
= xQ(t)/2sin(2ω0t) + xI(t)/2[1-cos(2ω0t)]
On retrouve donc facilement xQ(t) et xI(t) (à un facteur ½ près) en passant zQ(t)
et zI(t) par un filtre passe-bas de fréquence de coupure f0.
zI(t)
LowPass
(f0)
+1
xI(n)
xI(t)
10011010
-1
x(n)
y(t)
01|10|00|11|11|00|01|10
zQ(t)
LowPass
(f0)
xQ(n)
+1
-1
01011001
xQ(t)
Fig 5.5 Principe de la démodulation QPSK.
En pratique, le signal que l’on obtient en sortie des filtres passe-bas peut être
fort différent des signaux xQ(t) et xI(t), pour trois raisons principales:
∑
le milieu de transmission possède une réponse en fréquence non constante
sur l’étendue spectrale des signaux ;
∑
les filtres passe-bas ne sont pas idéaux ;
∑
le milieu de transmission ajoute du bruit au signal transmis.
5.2.4Modulation d’amplitude en quadrature (QAM)
On peut facilement généraliser cette idée, en augmentant à N le nombre de bits
encodés dans le signal modulé à tout instant. Il suffit pour ce faire de segmenter
le signal x(n) en mots (ou symboles) s(i) de N bits successifs, et d’associer
chaque mot parmi les 2N possibles à une amplitude et une phase dans un
diagramme polaire appelé diagramme de constellation (Fig 5.6). Chacune des
deux porteuses est alors modulée en fonction des parties réelles et imaginaires
des valeurs obtenues dans ce diagramme pour chaque mot. Comme les points
dans ce diagramme de constellation ont des phases et des modules différents, on
parle de modulation d’amplitude en quadrature (QAM)4.
Il en résulte un débit en bits par secondes (bps) égal à N/T, où T est le temps
d’une impulsion élémentaire (+1 ou –1).
La seule limitation à ce principe est celle liée à la possibilité d’une détection
efficace des bits à la réception. En effet, si on augmente trop le nombre de
niveaux de modulation :
∑
le bruit apporté par la ligne risque de rendre difficile l’interprétation de
xI(t) ou xQ(t) en x(n) ;
∑
l’effet de filtrage induit par la ligne de transmission, et qui tend à distordre
la forme des signaux xQ(t) et xI(t) à la réception, crée de l’interférence
4 Il est clair, dans ces conditions, que QPSK pourrait aussi bien s’appeler QAM4, puisqu’il y a 4
points dans le diagramme de constellation d’un modulateur QPSK.
6
LABORATOIRES DE TRAITEMENT DU SIGNAL
entre symboles : la valeur prise par un bit à un instant du passé de xQ(t-τ)
ou xI(tτ) influence la forme courante de xQ(t) ou xI(t) et risque de produire
une erreur d’interprétation.
Le taux d’erreur au niveau du bit (BER : bit error rate) commence alors à
augmenter.
Fig 5.6 Diagramme de constellation QAM 32 : 5 bits par mot ; 32 valeurs : Q= axe
imaginaire et I=axe réel (d’après [Agilent 97]).
5.2.5 Transmission DMT (Discrete Multitone Transmission)
Il est en principe facile de généraliser encore la modulation QAM en faisant
passer le nombre de porteuses de 2 à 2M, chaque couple de porteuses
fonctionnant à une fréquence différente des autres. Si chaque couple de
porteuses envoie un signal à N/T bps, la somme des porteuses correspond en
principe à un débit de M.N/T bps.
Le problème est évidemment celui de l’interférence entre canaux : les spectres
des M signaux modulés se recouvrent toujours partiellement (et d’autant plus
qu’on veut n’occuper qu’une faible bande passante globale, ce qui conduit à ne
pas trop espacer les couples de porteuses en fréquence). Ce recouvrement
spectral se traduit par le fait qu’un symbole sur une couple de porteuses donné
(sur un « canal » donné) peut induire une erreur sur le symbole porté au même
instant par un autre couple (sur une autre « canal »).
La modulation DMT permet de résoudre ce problème en réalisant la modulation
(et la démodulation) multi-porteuses dans le domaine des fréquences, à l’aide
d’une IFFT (et d’une FFT).
La modulation est obtenue très simplement :
∑
On découpe le signal x(n) en symboles s(i) de N bits chacun ;
∑
On assigne aux symboles successifs les valeurs complexes sQ(i)+j sI(i)
obtenues dans le diagramme de constellation ;
∑
On utilise ces valeurs complexes comme coefficients d’une FFT créée de
toute pièce. On prend bien soin, lors de cette opération, à ce que la FFT
créée soit bien celle d’un signal réel. Il faut pour ce faire que la FFT
possède la propriété de symétrie hermitienne. Rappelons en effet que le
LABORATOIRES DE TRAITEMENT DU SIGNAL
7
signal {y(n)} correspondant à une FFT {Y(k)} (sur NFFT points) donnée
est obtenu par IFFT :
y ( n) =
1
NFFT
avec WNFFT = e
NFFT −1
∑
nk
Y (k )WNFFT
(n = 0...NFFT − 1)
k =0
2π
j
NFFT
Pour que y(n) soit réel, il faut que :
Y (k ) = Y * ( NFFT − k )
(k = 1...NFFT / 2 − 1)
On constitue dès lors « artificiellement » une FFT {Y(k)} sur NFFT=2(M+1)
points :
Y (0) = 0
Y (k ) = sQ (k ) + jsI (k )
(k = 1...NFFT / 2 − 1)
Y ( NFFT / 2) = 0
Y ( NFFT − k ) = Y * (k )
∑
(k = 1...NFFT / 2 − 1)
On calcule le signal modulé y(n) par IFFT.
Ces opérations sont répétées en boucle, de façon à constituer un signal y(n) par
paquets de NFFT points. Le signal y(n) est alors converti en un signal analogique
y(t) par passage à travers un convertisseur D/A.
La démodulation est alors en principe immédiate :
∑
En supposant que le démodulateur reçoit bien y(t) 5, on échantillonne y(t)
à la même fréquence d’échantillonnage Fe que celle utilisée dans le
modulateur, et on obtient y(n) ;
∑
On soumet chaque paquet de NFFT échantillons y(n) à une FFT, et on
obtient les NFFT/2-1 valeurs complexes sQ(i)+j sI(i) correspondantes.
∑
On en déduit les valeurs des symboles correspondants, par examen du
diagramme de constellation.
Le débit obtenu par cette technique est de (NFFT/2-1).N bits par trame de NFFT
échantillons, soit (NFFT/2-1).N.Fe/NFFT, soit à peu près (si NFFT est
suffisamment grand):
D=Fe*N/2 bps
En pratique, il est clair que pour que la démodulation se passe correctement, il
faut que le démodulateur puisse retrouver avec suffisamment de précision
l’horloge utilisée au modulateur (c’est-à-dire les instants d’échantillonnage). On
intercale donc en général, et à intervalles périodiques, dans le signal y(n)
transmis par le modulateur un ensemble d’échantillons de synchronisation, qui
font légèrement tomber le débit (puisqu’ils ils n’apportent aucune information en
terme de symbole transmis). Ces échantillons de synchronisation permettent
également de minimiser les risques d’interférence entre trames successives de
NFFT échantillons, due à l’effet de filtrage de la ligne.
5.2.6 Modem ADSL
5 Ce qui suppose que le milieu de transmission ne dégrade pas trop le signal et n’apporte pas de
bruit additif.
8
LABORATOIRES DE TRAITEMENT DU SIGNAL
Un modem ADSL (Asymetric Digital Subscriber Line) utilise la paire torsadée
téléphonique qui relie l’abonné au central le plus proche pour transmettre des
informations numériques dans les deux sens (on parle de full duplex).
Pour ne pas perturber les communications téléphoniques, les canaux fréquentiels
utilisés pour les communications montantes et descendantes se situent au delà
de la bande passante téléphonique. Ils sont de plus asymétriques : le canal
« upstream » est classiquement plus étroit que le canal « downstream » (Fig
5.7). Chaque canal correspond à une modulation DMT/QAM.
Fig 5.7 Occupation du spectre sur une ligne ADSL (d’après [Caleca 02]). POTS est mis
pour « plain old telephone service »
Le nombre de couples de porteuses (NFFT/2) et le nombre de bits par symbole
(N) ne peuvent évidemment pas être choisis n’importe comment. Comme pour la
modulation QAM en général, si N est trop important, la distance entre les
différents points constituant la constellation diminue, et le bruit apporté par le
milieu de transmission risque d’augmenter le taux d’erreur binaire. Il y a
cependant une nouvelle contrainte à prendre en compte ici : le délai de
transmission. Une valeur trop importante de NFFT ou de N implique en effet un
délai important à la tranmission : on ne peut pas envoyer de symbole tant qu’on
n’en n’a pas accumulé (NFFT/2-1) symboles de N bits chacun.
En pratique, on utilise typiquement les valeurs suivantes :
∑
Downstream : QAM 64 ou 128 (6 ou 7 bits par symbole)
∑
Upstream : QPSK (2 bits par symbole) ou QAM 16 (4 bits par symbole).
Les canaux utilisés par DMT sont de 4 kHz de large. Le nombre de couples de
porteuses ne dépasse pas 256 (ce qui correspond à des FFT sur 512 points).
Enfin, dans un vrai modem ADSL, les constellations sont adaptées à chaque
porteuse, en fonction de sa qualité de transmission (analysée en temps réel par
le modem), de façon à s’adapter aux caractéristiques du milieu de transmission,
très variables d’une ligne à l’autre. Ainsi, on attribuera peu (voire pas) de bits à
une porteuse dont on constate qu’elle passe mal. C’est d’ailleurs là la
caractéristique la plus intéressante de ce système. On remarque en effet que le
débit D=Fe*N/2 bps est en pratique assez indépendant du nombre de porteuses.
Par contre, l’utilisation de plusieurs porteuse sur des bandes de fréquence
adjacentes permet un mécanisme d’allocation dynamique des bits en fonction de
la fréquence des porteuses.
LABORATOIRES DE TRAITEMENT DU SIGNAL
9
5.3 Réalisation d’un modulateur-démodulateur QPSK
numérique
On se propose dans un premier temps de réaliser un modem QPSK, que l’on
testera sur un signal de test simple pour en vérifier le bon fonctionnement, puis
sur un signal réel.
5.3.1Signal de test
On commencera par supposer qu’on veut envoyer un signal binaire
x(n)=11|10|01|00|11|10|01|00|11|10|01|00|…, ce qui correspond à deux
signaux de test xQ(t) et xI(t) périodiques de fréquences doubles l’une de l’autre
(Fig. 5.8). On supposera ici que l’intervalle de temps associé à un bit est de 1 ms
et que la fréquence d’échantillonnage est de 10000 Hz.
xI(t))
t (ms)
1
2
3
xQ(t))
t (ms)
Fig. 5.8 Signaux de test xQ(t) et xI(t)
Pour fixer les idées, nous commencerons par utiliser la fonction square pour
créer les deux ondes carrées et nous en vérifierons le contenu spectral sous
MATLAB.
Rappelons que la décomposition en séries de Fourier d’un signal carré peut être
obtenue par calcul de la transformée de Fourier de sa période (Fig. 5.9), en
utilisant par exemple la méthode de Guillemin (Fig. 5.9).
x’0(t)
2
x0(t)
t
t
T/2
-1
-1
Fig. 5.9 Une période de l’onde carrée et sa dérivée
10
LABORATOIRES DE TRAITEMENT DU SIGNAL
On en déduit alors la décomposition en séries de Fourier de la fonction périodique
carrée :
x '0 (t ) = −δ (t + T / 2) + 2δ (t ) − δ (t − T / 2)
X '0 ( f ) = 2 − (e jωT / 2 + e− jωT / 2 ) = 2 − 2 cos(ωT / 2)
X0( f ) =
X(f ) =
2 − 2 cos(ωT / 2)
jω
1 ∞
∑ S0 (kf0 )δ ( f − kf0 )
T k =−∞
(5.1)
1 ∞ 2 − 2 cos(kπ )
∑ jk 2π δ ( f − k / T )
T k =−∞
T
∞
1 − cos(kπ )
δ ( f − k /T)
= ∑
jkπ
k =−∞
=
Le résultat (5.1) permet de prédéterminer par calcul l’amplitude des
harmoniques d’un signal carré. On demande de retrouver ces valeurs sur le
spectre des signaux xQ(t) et xI(t), obtenu avec freqz.
Quantifier l’importance théorique du phénomène d’aliasing ? Constate-t-on son
effet ? Et si on échantillonne le tout à 10200Hz ?
5.3.2 Codage QPSK du signal de test
On demande d’implémenter sous Matlab une version numérique du codeur dont
le principe est donné à la Fig 5.3, en utilisant un couple de porteuses à 2000 Hz.
Pour ce faire, le plus simple est de créer une fonction Matlab :
function[y,xi,xq,yi,yq]=qpskmod(s,T,f0,fs);
% Performs QPSK modulation
%
% s=bit stream (characters; ex : ‘0110010110’)
% y=modulated signal
% T=bit period
% f0=carrier freq
% fs=sampling freq
On vérifiera le bon fonctionnement du codeur :
∑
en examinant les sauts de phase dans les signaux yQ(t) et yI(t)
∑
en examinant, avec la fonction freqz, le spectre du signal de test codé
(séparément : avant et après sommation des signaux en quadrature).
On écoutera également le signal original et le signal codé (fonction sound sous
Matlab).
5.4 Réalisation du décodeur dans le domaine temporel
5.4.1 Décodage QPSK du signal de test
On demande d’implémenter sous Matlab une version numérique du décodeur
dont le principe est donnée à la Fig 5.5.
LABORATOIRES DE TRAITEMENT DU SIGNAL
11
Pour ce faire, le plus simple est de créer une fonction Matlab :
function[s,zi,zq,zif,zqf]=qpskdemod(y,T,f0,fs);
% Performs QPSK demodulation
%
% y=modulated signal
% s=bit stream
% T=bit period
% f0=carrier freq
% fs=sampling freq
% zi,zq = demodulated signals, not filtered
% zif,zqf = demodulated signals, filtered
Cette étape nécessite la synthèse d’un filtre numérique passe-bas de fréquence
de coupure 2000 Hz. On utilisera une synthèse de Cauer (fonctions ellipord et
ellip), dont on s’imposera les spécifications de façon à ce que l’ordre du filtre
ne soit pas trop élevé, tout en coupant suffisamment au delà de 2000 Hz.
On examinera dans quelle mesure les signaux démodulés zi(t) et zq(t)
ressemblent bien aux signaux originaux (dans le domaine temporel et
fréquentiel). On comparera également ces deux signaux auditivement.
Pourquoi la forme des signaux après démodulation et filtrage est-elle assez
différente de la forme des signaux de départ ?
Utiliser un filtre FIR à phase symétrique (synthèse par remezord et remez) et
constater la différence.
Pour la détection finale du signal binaire à partir des signaux zi(t) et zq(t), on
utilisera une simple mesure du signe de zi(t) et zq(t) au centre de chaque
impulsion rectangulaire6.
Quel est le débit binaire ? Quel est le taux d’erreur binaire (BER : bit error rate) ?
5.4.2 Décodage d’un signal réel
On répétera l’opération de décodage pour un signal numérique (une suite de
caractères ASCII formant un message) fourni sur disquette (‘message.wav’). On
se servira de la commande7 suivante pour segmenter la suite de bits s en nchar
caractères :
char(bin2dec(reshape(s,7,length(s)/7)')))
Chaque paquet de 7 bits correspond à un nombre entre 0 et 127 (obtenu sous
Matlab par la fonction bin2dec), et chaque nombre correspond à un caractère
ASCII (obtenu facilement grâce à la fonction char de Matlab).
Le signal décodé est-il de bonne qualité ?
NB : on utilisera pour la suite les fonctions wavread et wavwrite de Matlab pour
charger/sauver les données audio. (NB : le fichier son stocké sur disquette a subi
une division par 2 avant enregistrement).
6 En réalité, la détection du bit peut se faire de façon beaucoup plus complexe et fiable, mais cela
sort du cadre d’un cours d’introduction au traitement du signal.
7 Cette commande ne fonctionne que si le nombre de bits est multiple de 7. Si pas, il faut tronquer
s.
12
LABORATOIRES DE TRAITEMENT DU SIGNAL
5.4.3 Décodage d’un signal de test transmis en audio
Afin de se placer dans des conditions de bruit et de désynchronisation plus
réalistes, on enverra d’un PC à un autre le signal audio généré par codage8. Le
second PC procèdera à l’échantillonnage du signal envoyé par le premier, sous la
forme d’un fichier .wav à 11025 Hz.
On répétera les opérations de démodulation et décodage, en ajustant le point de
synchronisation à l’œil.
On cherchera ensuite à estimer le rapport signal sur bruit de la transmission. La
PSD du bruit sera obtenue en ne transmettant aucun signal sur la ligne, et en
mesurant ce qui est reçu. La PSD du signal sera obtenue par calcul, puis par
mesure sur le signal reçu lorsqu’un signal de test est transmis (ce qui revient en
fait à calculer un rapport « (signal+bruit)/bruit »).
Pourquoi ne parvient-on finalement pas à bien démoduler le signal ? Le signal
décodé est-il sensible à ce point de synchro ?
5.5 Simulation simple d’un modem ADSL
5.5.1 Codage du signal de test
On demande d’implémenter sous Matlab un modulateur DMT à 7 canaux (M=7;
NFFT=16), où chaque canal est modulé en QPSK (N=2).
Pour ce faire, le plus simple est de créer une fonction Matlab :
Function y=dmtmod(s);
% Performs DMT modulation
%
% s=bit stream (characters; ex : ‘0110010110’)
% y=modulated signal
On examinera (et on écoutera) le signal y, pour y constater la présence des
porteuses à plusieurs fréquences différentes.
5.5.2 Décodage du signal de test
On demande d’implémenter sous Matlab un démodulateur correspondant au
modulateur précédent et de lui présenter le signal modulé au point précédent
pour vérifier son bon fonctionnement.
Pour ce faire, le plus simple est de créer une fonction Matlab :
Function s=dmtdemod(y);
% Performs DMT demodulation
%
% s=bit stream (characters; ex : ‘0110010110’)
% y=modulated signal
8 Le signal sera par exemple envoyé depuis le PC étudiant et enregistré sur le portable du
professeur.
LABORATOIRES DE TRAITEMENT DU SIGNAL
13
NB : ici , la détection des bits est encore plus simple : il suffit de comparer
chacun des coefficients de la FFT du signal d’entrée aux quatre valeurs de la
constellation QPSK.
On constatera l’extrême souplesse de ce type de modulation : que nécessite un
changement de valeur de M, ou N ? Comment effectuerait-on une allocation
dynamique du nombre de bits en fonction du canal (si la ligne présente des
défauts à certaines fréquences) ?
5.6 Bibliographie
[Agilent 97] « Digital Modulation in Communications Systems — An Introduction
Application Note », Agilent AN 1298, 1997.
(http://www.web-ee.com/primers/files/5965-7160E.pdf)
[Caleca 02] « Large Bande », Christian Caleca, 2002,
(http://christian.caleca.free.fr/modulation/)