You are on page 1of 7

Grenoble INP - SICOM

Année 2017 - 2018

Communication numérique : Introduction aux modulations


multi-porteuses OFDM ou DMT.
Objectifs du TP : Étude en simulation des techniques de transmission multi-porteuses
OFDM : Orthogonal Frequency Division Multiplexing ; DMT : Discrete Multi-Tone

Le principe de ces modulations est de répartir l’information en un assez grand nombre de porteuses adjacentes. Sur
chaque porteuse, le débit étant plus faible, les symboles OFDM peuvent être de durée Ts grande devant celle de la
réponse impulsionnelle du canal (∆τ ).

Porteuses OFDM

Figure 1 – Principe de la modulation OFDM

En OFDM, comme dans toute modulation linéaire multi-voie, on peut avoir 2 types d’interférence : Interférence Entre
Symboles successifs (IES ou ISI en anglais pour "Inter-Symbol-Interference"), et interférence entre voies plutôt nommé
Interférence Entre Porteuse (IEP ou ICI en anglais pour "Inter-Carrier-Interference") pour le cas OFDM. En ajoutant
un intervalle de garde (ou préfixe) de durée Tg entre les parties “utiles” (de durée Tu = Ts − Tg ) des symboles OFDM,
on peut supprimer totalement l’interférence inter-symbole (sous hypothèse canal quasi invariant sur la durée d’un
symbole, bonne synchronisation, intervalle de garde bien choisi et de durée suffisante, . . .). En fait, on rempliera cet
intervalle de garde en prolongeant les symboles de façon cyclique, ce qui permet, en réception, de réduire l’égalisation
à un simple coefficient pour chacune des fréquences. Cette relative insensibilité à l’étalement de la réponse impul-
sionnelle du canal rend cette modulation particulièrement intéressante dans les cas de propagation présentant des
trajets multiples. De plus, un autre atout important de la modulation OFDM est qu’en pratique la mise en forme de
l’information sur les porteuses (modulation) et la détection (démodulation) sont basées sur la Transformée de Fourier
Discrète (ou son Inverse), implémentée dans sa version rapide basse complexité FFT (“Fast Fourier Transform”) en
choisissant un nombre de porteuse égal à une puissance de 2. Dans le cas d’un accès multiple OFDMA (non traité ici),
elle offre une flexibilité pour ajuster les différents débits (selon nombre de sous-porteuses par utilisateur et leur charge).
On considère un système d’émission-réception classique sur fréquence porteuse fc , caractérisé par un étage d’émission,
une transmission effective dans l’air (canal supposé ici à trajets multiples) et d’un étage de réception.

Source Mise en Séquence


<{• × Réception
Binaire au forme Canal à 2e−2jπfc t LPF binaire
e2jπfc t } OFDM
débit Ds OFDM trajets décodée
bk x(n) xHF (t) multiples r HF (t) y(n) âp b̂k

Figure 2 – Chaîne d’émission-réception classique

Dans le TP on travaillera sur une séquence binaire aléatoire dont le débit binaire Db est fixé. Cette séquence subit
différents traitements associés à la mise en forme OFDM dont les étapes sont rappelées ci dessous. La séquence binaire
subit d’abord une opération de modulation élémentaire qui consiste à la transformation bits => symboles élémentaires
à M états (modulation de phase à 4 états ici (QPSK en anglais)), puis l’opération de modulation OFDM est appliquée
par l’intermédiaire d’une transformation série-parallèle et d’une IFFT. On considére dans le TP N = 16 porteuses
d’informations. Ensuite, on applique éventuellement au signal remis en série un préfixe qui, dans le cadre du TP, peut
être une insertion de zéros (intervalle de garde "Zero Padding"), ou une recopie de la fin du signal (Préfixe Cyclique).

Source Série Parallèle


Modulation Insertion
Binaire au // IFFT //
QPSK préfixe
débit Db ap Parallèle Série x(n)
bk
Ap X(p)

Figure 3 – Étage de Mise en forme OFDM

Dans la réalité, le signal est alors converti en analogique et translaté sur une fréquence porteuse, par l’intermédiaire
d’une modulation I/Q phase-quadrature (Cf figure 2) puis passe par le canal. L’étage de réception débute par l’étape
de démodulation I/Q qui translate fréquentiellement le signal reçu (haute fréquence) vers la bande de base (Cf figure
2), puis le filtre et le numérise. Mais dans le cadre du TP, on utilisera la représentation complexe en bande de base du
canal, discrétisé au temps élémentaire (Tc) du signal OFDM. Le canal est ainsi modélisé comme un filtre à Réponse
Impulsionnelle Finie de L coefficients complexes (tap en anglais) : il permet de relier par convolution discrète les
échantillons x(n) aux échantillons y(n) (la durée des échos pourra ainsi être assimilée à ∆τ = (L − 1)T c).
L’opération de décodage OFDM (dual des opérations de modulation de la figure 3) est présentée sur la figure 4.

Série Parallèle
Supprime Démodulation
Sync. // FFT Égalisation //
préfixe QPSK
y(n) Parallèle série âp b̂k

Y (n) Âp Âeg


p

Figure 4 – Étage de réception OFDM

Le signal reçu complexe en bande de base y(n) est d’abord synchronisé de manière à réaliser une conversion série-
parallèle sur les bons N échantillons qui constituent un symbole OFDM complet Y (n). L’opération de FFT est alors
appliquée à ce signal donnant les échantillons complexes non égalisés Âp . Une potentielle étape d’égalisation qui a pour
objectif de compenser l’atténuation complexe du canal (1 coefficient multiplicatif par sous-porteuse) de transmission
est appliquée, puis la démodulation QPSK est effectuée, donnant une séquence binaire estimée b̂k .

2
L’objectif du BE est d’étudier la modulation OFDM, l’impact de l’effet du canal et plus particulièrement l’effet
des préfixes et du nombre de porteuses actives (parmi les N=16 sous-porteuses qui partagent la bande). L’ensemble
des codes MATLAB sont fournis et l’utilisateur sera amené à modifier certains paramètres présents dans le fichier
TP_SICOM_OFDM.m qu’il convient d’éditer. L’ensemble des ajouts (affichages des courbes, calculs intermédiaires)
sont à réaliser dans un script à part qui appelle le script TP_SICOM_OFDM.m. Un exemple d’une bonne pratique
de code est présenté ci-dessous :

1 % −−− TP SICOM 3A : Introduction a l'OFDM


2 % −−− Suppression des variables
3 clearvars;
4 close all;
5 clc;
6 % −−− Appel du script principal
7 TP_SICOM_OFDM;
8 % −−− Ajout des methodes utilisateurs
9 plot(real(x),'−r');

L’ensemble des variables nécessaire à la réalisation de ce TP sont initialisées lorsque TP_SICOM_OFDM.m est lancé.
La liste de ces variables, et leur annotations sont présentées à la fin du document. Par ailleurs, les lignes de commandes
associées aux routines de visualisation sont fournies en dessous des questions.

1 Construction du signal OFDM


Dans les questions 1 à 4, on considérera l’OFDM sans prefixe, Tg = 0 (typePrefixe = ’none’).

1. Théorie : Donnez le lien entre la durée utile d’un symbole OFDM Tu , le débit binaire (global) Db , le nombre
de bits par symbole de la modulation élémentaire n = log2 (M ) et le nombre de porteuses OFDM, N .

2. Observer la partie réelle et la partie imaginaire de la base analogique (trait plein) des N sous-porteuses (ou
formes d’ondes des N voies) {si (t) = exp(j2πfi t)} servant pour décrire le concept de modulation (linéaire
multi-voie) OFDM.

1 % −−− Visualisation de la base d'exponentielle


2 displayOFDMBase(numPorteuses);

Nota Bene :
-(1) : les unités de temps en abscisse sont relatives au temps élémentaire de la discrétisation, Tc.
-(2) : dans les visualisations les indices i des N porteuses numérotées de 1 à N correspondent à des indices
fréquentiels respectifs 0,1,..., N2 − 1 ; puis − N2 ,− N2 + 1, ..., -1.
a- Que vaut l’écart de fréquence entre deux sous-porteuses ∆f en fonction de la durée utile du symbole OFDM ?
Justifier théoriquement pourquoi on choisit cet écart ?
b- Certaines sous-porteuses ont-elles des fréquences fn négatives ? Quelle est finalement la plage de fréquence
occupée par les N sous-porteuses (à exprimer en fonction de paramètres précédemment introduits).

3. L’application de la base analogique de mise en forme des symboles élémentaires ai [m] devrait s’exprimer, pour
PN
le symbole OFDM d’indice m=0, et t ∈ [0; Tu [ : x(t) = i=1 ai [m].si (t) (modulation linéaire multi-voie).
a- Dans la chaîne de réalisation pratique de construction du signal OFDM (version discrète) présentée figure 3,
par quelle étape est remplacée l’application de la base analogique de mise en forme des symboles élémentaires ?
b- Justifier cela théoriquement, en considérant la fréquence 1/Tc minimale à laquelle le signal x(t) peut-être
représenté de manière discrète par la suite x(n) ?
c- Commentez dans la version numérique de la base des exponentielles le nombre de points (ou échantillons)
utilisés par période Tu , ainsi que la durée du temps élémentaire Tc en fonction de Tu .
4. Observer l’émission dans le domaine temporel de deux symboles OFDM, en précisant le nombre de bits à envoyer
(en modulation élémentaire BPSK et QPSK).
a- Commenter brièvement l’allure du signal, notamment sa dynamique (distribution des amplitudes).

3
b- Afin de mieux saisir la constitution du symbole OFDM, refaire des manipulations (visualisations) en n’allu-
mant qu’une seule sous-porteuse (ou deux, ...), et commenter brièvement vos observations.
Préférez au départ utiliser des symboles réels BPSK (voir paramètre tailleconstellation) et attention à la phase
imprimée sur la/les sous-porteuses si vous utilisez des symboles élémentaires QPSK (commenter).

1 % −−− Visualisation du symbole OFDM transmis


2 displaySymb=1; % 1 pour avoir les limites temporelles, ne pas mettres sinon
3 displayTimeSignal;
4 % −−− Decimation des porteuses d'information selon valeur de masquePorteuse
5 masquePorteuse = 2; % si = 2 : seule la seconde porteuse porte de l'information
6 % si = [1:numPorteuses] : toutes les porteuse allumees

5. Observer à nouveau l’émission dans le domaine temporel de deux symboles OFDM (partie réelle), dans le cas
de l’utilisation d’un préfixe de taille ν = 4 échantillons (taillePrefixe = 4) dans les cas d’un préfixe de type
Intervalle de garde "Zero Padding" (typePrefixe = ’garde’) puis de type préfixe cyclique (typePrefixe = ’PC’).
Rappeler en quoi consiste chaque préfixe.
Exprimer la durée totale d’un symbole OFDM, Ts , en fonction du nombre de sous-porteuses N, du nombre
d’échantillons de garde ν et du pas élémentaire Tc .

6. Théorie : Conclusion sur les débits dans le cas de l’OFDM avec préfixe :
a- exprimer le débit binaire (global) Db en fonction du nombre de porteuses OFDM N , du nombre d’échantillons
de garde ν, du nombre de bits par symbole élémentaires n = log2 (M ), et de la bande passante globale B (= N.∆f
pour N  1) autour de la fréquence porteuse.
b- Vérifier que l’expression de Db pour ν = 0 (pas de PC) ramènerait à celle d’une modulation linéaire mono-
porteuse qui utiliserait la même bande B [soit par exemple pour B = 1MHz, un débit binaire Db = 1Mbit/sec
avec des symboles BPSK, ou 2 Mbit/sec avec des symboles QPSK], et qu’elle est cohérente avec celle que vous
avez donné en question 1.
La modulation multi-porteuse OFDM n’offrant pas d’avantages en terme de débit par rapport à la modulation
monoporteuse, dans quel scénario de canal pourrait-on se contenter d’une modulation mono-porteuse ?

4
2 Canal multi-trajet et effets des différents préfixes
On s’intéresse dans un premier temps à la chaîne sans égalisation. Par ailleurs, on ne considère pour le moment la
présence d’aucun préfixe, et on considère un canal mono-trajet. Dans TP_SICOM_OFDM.m, vérifier et modifiez :

1 % −−− Type du prefixe utilise


2 typePrefixe = 'none'; % −−− Pas de prefixe
3 % −−− Coefficients du canal multi−trajet
4 channelTap = [1 0 0 ]; % −−− R.I. d'un canal mono−trajet de retard nul et gain 1

1. Avec un canal mono-trajet (sans retard, gain 1) vérifier les bonnes performances de décodage. Pour se faire, on
peut observer les constellations sur les différentes porteuses (avec symboles QPSK), avant égalisation.

1 % −−− Constellation avant egalisation


2 carrierConstellation(AKEst);

2. Changer le canal pour qu’il soit multi-trajet. On peut observer la réponse du canal en lançant

1 % −−− Constellation avant egalisation


2 displayChannel(H,1, numPorteuses);

Avant de voir l’effet sur les constellations, commentez la réponse fréquentielle du canal selon la durée des échos
∆τ (ou la notion de bande de cohérence) et leur signe (exemple canal de R.I. [1 0.9] puis [1 -0.9]).
Observer la dégradation des constellations après décodage en présence du canal multi-trajet retenu pour la suite
(préciser les valeurs de la Réponse Impulsionnelle).

3. Ajouter un intervalle de garde (préfixe rempli de zéro, ou ”zero-padding”) d’une longueur au moins égale à la
longueur du canal multi-trajet.

1 % −−− Type du prefixe utilise


2 typePrefixe = 'garde';
3 % −−− Taille du prefixe OFDM
4 taillePrefixe = 3;

Quel est l’effet de l’intervalle de garde ? Comment expliquez la présence d’interférence au niveau des constellations
décodées ? On pourra annuler certaines porteuses d’information pour s’aider à la compréhension en utilisant par
exemple la fonction “masquePorteuse”.
4. Ajouter un préfixe cyclique. Quel est son effet ? Comparez avec l’insertion d’un intervalle de garde.

1 % −−− Type du prefixe utilise


2 typePrefixe = 'PC'; % −−− Prefixe cyclique
3 masquePorteuse = 1:numPorteuses; % −−− On allume toutes les porteuses

5. Egalisation : en OFDM l’égaliseur (le plus simple) consiste à appliquer un coefficient complexe multiplicatif par
sous-porteuse. Vérifier le bon comportement de l’égalisation pour l’OFDM avec préfixe cyclique. Commenter les
résultats lorsque la modulation OFDM est sans intervalle de garde, ou avec un intervalle de garde zero-padding.
On peut visualiser les constellations décodées et égalisées par la commande

1 % −−− Constellation apres egalisation


2 carrierConstellation(AKEgal);

5
3 Erreur de Synchronisation temporelle (positionnement fenêtre TFD)
Une étape importante pour la détection est le repérage du début de la trame, c’est à dire de la partie « utile » du
symbole OFDM en réception, afin de procéder à la démodulation par TFD. Un algorithme de synchronisation temporel
est chargé de bien positionné le curseur associé au début du symbole OFDM. On simule une erreur en avance de cet
algorithme en plaçant

1 % −−− Erreur de synchronisation


2 erreurDelay = −1;

1. Commenter les résultats (constellation) selon le type de l’intervalle de garde utilisé.

2. Expliquez (en faisant le lien avec la partie précédente).


3. Pensez-vous que les conclusions auraient été identiques en présence d’un retard (et non d’une avance) de syn-
chronisation d’une échantillon ?

Conclusion générale : Conclure le TP en énonçant forces et faiblesses de la modulations OFDM vues dans ce
TP, qui considérait un canal à trajet multiple statique.

Annexes compléments (bonus et révisions DS ...) :

a) si l’aspect dynamique du canal avait aussi été simulé par des variations aléatoires des coefficients du filtre de
canal (loi Gaussienne complexe circulaire pour un canal de Rayleigh), quelles forces ou faiblesses supplémentaires de
l’OFDM auraient pu être révélées (indiquer les remèdes en cas de faiblesse).

b) Pour Db = 1 Mbit/sec, N=16 sous-porteuses et ν = 4 :


- calculer l’espacement inter-porteuses ∆f et la largeur de bande B en BPSK (on pourra indiquer les modifications
pour le cas QPSK).
- indiquer les plages de bande de cohérence Bcoh et Temps de cohérence Tc oh pour lesquelles le canal de communication
(vue par chaque sous-porteuse) pourra être considéré comme "lent et plat en fréquence".
- Re-exprimer une des conditions précédentes en terme de Doppler fd maximum admissible ? Conséquence si cette
condition n’est pas respectée ?

6
4 Listes des paramètres de la chaîne

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 % OFDM Transmitter −− Receiver %
3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 % −−−
5 % v 1.0 : June 2016. Grenoble INP− Ense3 − Phelma
6 % SICOM − 3A
7 % Laurent Ros − Robin Gerzaguet
8 % −−−
9 % N'oubliez pas de lancer startup.m avant toute chose
10 % Ne modifiez pas directement ce fichier ! Creez un fichier vide
11 % Example : script TP_SICOM.m
12 % clear all; % −−− Vidage des buffers
13 % close all;
14 % clc;
15 % TP_SICOM_OFDM; % −−− Lancement du script initial pour charger les variables
16 % .... % −−− Ajout des routines
17 % −−−−−−
18 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19 % −−− PARAMETERS GLOBAUX
20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
21 % bitRate : Debit binaire
22 % egalisation : Application de l'egalisation (bool)
23 % masquePorteuse : Masque des porteuses allumees
24 % methodeEgal : Methode utilisee pour l'egalisation
25 % modulation : modulation OFDM
26 % numBit : nombre d'element binaire transmis
27 % numPorteuses : Nombres de porteuses OFDM
28 % overSamp : sur−echantillonage pour l'etage analogique de transmission
29 % rsbCanal : Rapport Signal sur Bruit du canal
30 % tailleConstellation : Taille de la constellation (2^(bitParSymbole))
31 % taillePrefixe : Taille du prefixe eventuel
32 % typePrefixe : Type du prefixe utilise
33 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
34 % −−− PARAMETRES ET SIGNAUX DE TRANSMISSION
35 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
36 % bK : Sequence binaire d'emission
37 % AP : Sequences des signaux complexes modules (QPSK) en emission apres ...
conversion serie // parallele
38 % aP : Sequences des signaux complexes modules (QPSK)
39 % XP : Symbole OFDM avant prefixe
40 % XPPrefix : Symbole OFDM apres prefixe
41 % nbOFDMSymbols : Nombre de symboles OFDM transmis
42 % x : Sequence des symboles OFDM mixes
43 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 % −−− PARAMETRES ET SIGNAUX DU CANAL
45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
46 % H : Reponse impulsionnelle du canal
47 % b : Bruit blanc additif gaussien
48 % r : signal OFDM bruite et filtre par le canal
49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 % −−− PARAMETRES ET SIGNAUX DU RECEPTEURS
51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 % YP : Symboles ODFM apres suppression du prefixe
53 % AKEst : sequences des symboles complexes mappes avant egalisation
54 % AKEgal : sequences des symboles complexes mappes apres egalisation
55 % bitEst : Sequence binaire estimee en reception
56 % bitErrorRate : Taux d'erreur binaire

You might also like