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/)