1abed Slim

99
  Cycle de formation des ingénieurs en Télécommunications Option : Architectures des Systèmes de Télécommunications  Rapport de Projet de fin d’études Thème : Conception et implémentation hardware d’un émetteur/récepteur BFDM Réalisé par : SLIM EL ABED Encadré par : M. Fathi TLILI M. Mohamed SIALA Travail proposé et réalisé en collaboration avec la société Smart-Waves Année universitaire : 2006/2007 

Transcript of 1abed Slim

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 1/99

 

Cycle de formation des ingénieurs en Télécommunications

Option :

Architectures des Systèmes de Télécommunications 

Rapport de Projet de fin d’études

Thème :

Conception et implémentation hardware

d’un émetteur/récepteur BFDM

Réalisé par :

SLIM EL ABED

Encadré par :

M. Fathi TLILI

M. Mohamed SIALA

Travail proposé et réalisé en collaboration avec la société Smart-Waves

Année universitaire : 2006/2007 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 2/99

 i

 Dédicace

 A mon cher père,

et ma chère mère,

 pour l’éducation et le grand amour dont ils m’ont entouré depuis ma naissance.

 Et pour leurs patiences et leurs sacrifices.

 A mon cher frère et mes adorables sœurs,

 A tous mes proches ;

 A tous mes ami(e)s;

 A tous ceux que j’aime.

 Je dédie ce mémoire.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 3/99

 ii

 Remerciement  

 Je profite de cette occasion pour remercier tous ceux qui m’ont aidé à réaliser 

ce projet dans les meilleures conditions.

  Je tiens à exprimer mes vifs remerciements en premier lieu à mes deux

encadreurs, Mr. Fathi TLILI & Mr. Mohamed SIALA, Pour l’aide déterminante

qu'ils m’ont accordée et pour l’intérêt qu'ils ont porté à mon projet. Qu'ils

trouvent ici l'expression de mon profond respect.

  Je ne manquerai pas cette occasion pour remercier mes enseignants Mr.

  Hichem BESBES et Mr. Sofien CHERIF pour leur sympathie et leur 

disponibilité.

Ce mémoire s’appuie sur les travaux Mlle Ismahen NASRI. Je la remercie pour 

son aide précieuse et sa collaboration durant la période ce projet.

 Enfin, je tiens à exprimer ma gratitude aux membres de jury qui ont accepté de

 juger ce travail.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 4/99

 iii

 Résumé  

Ce projet porte sur la mise en place d’une solution hardware pour un système de transmission

 basé sur la technique de modulation BFDM (Biorthogonal Frequency Division Multiplexing)

avec forme d’onde optimisée. Il constitue la continuité de plusieurs travaux de recherches

effectués dans ce thème qui avaient montré l’intérêt que peut nous apporter cette technique de

modulation par rapport aux systèmes OFDM conventionnels. De ce fait, la réalisation d’un tel

système fournirait une solution aux limites imposées par le canal radio-mobile limitant le

débit supporté. En conséquence, nous pouvons envisager l’utilisation du contenu multimédia

gourmand en termes de débit pour les récepteurs mobiles ce qui entrainera la possibilité

d’enrichir les services offerts par les entreprises du monde du TIC.

L’objectif de ce travail est de concevoir l’architecture d’un émetteur/récepteur BFDM et del’implémenter sur FPGA. La partie synchronisation sera considérée dans la phase de la

conception mais son implémentation ne sera pas incluse dans ce projet. Il en est de même

 pour l’égalisation fréquentielle du canal.

La simulation avec ModelSim a permis de confirmer que l’objectif de ce projet est atteint.

Mots clés : Modulation BFDM, transformée de Fourier rapide, filtrage, égalisationfréquentielle, implémentation VHDL, Simulation.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 5/99

 iv

TABLE DES MATIERES

INTRODUCTION GENERALE ....................................................................... 1 

CHAPITRE 1 : PRINCIPE DES SYSTEMES BFDM....................................3 

1.1. I NTRODUCTION .................................................................................................................4 

1.2. LES SYSTEMES OFDM...................................................................................................... 5 

1.2.1. Principe de la modulation OFDM........................................................................................ 6  

1.2.2. Principe de la démodulation................................................................................................. 8 

1.2.3. Techniques d'implémentation des modulateurs OFDM........................................................ 9 

1.2.4. Implantation numérique du démodulateur ......................................................................... 10 

1.2.5. Egalisation et séquences d'apprentissage........................................................................... 10 

1.2.6. Intervalle de garde.............................................................................................................. 11 

1.3. FAIBLESSES DE LA FORME D’ONDE RECTANGULAIRE DE L’OFDM ................................. 13 

1.3.1. Offset fréquentiel ................................................................................................................ 13 

1.3.2. Effet de l’étalement Doppler............................................................................................... 14 

1.4. OPTIMISATION DE LA FORME D'ONDE POUR LA MODULATION BFDM............................. 14 

1.5. CONCLUSION .................................................................................................................. 15 

CHAPITRE 2 : CONCEPTION DE L’ARCHITECTURE DEL’EMETTEUR/RECEPTEUR BFDM ...........................................................16 

2.1. I NTRODUCTION ...............................................................................................................17 

2.2. CONCEPTION DE L'EMETTEUR BFDM............................................................................. 17 

2.2.1. Etude fonctionnelle ............................................................................................................. 17  

2.2.2. Architecture interne de l’émetteur...................................................................................... 20 

2.2.2.1. Description de l’IP XFFT de Xilinx ................... ...................... ...................... ...................... ...................... . 20 

2.2.2.2. Etage de filtrage..................... ..................... ...................... ..................... ...................... .................... ............ 20 

2.2.2.3. Sélection des porteuses actives et insertion des symboles pilotes..................... ...................... ..................... 24 

2.2.2.4. Etage de mapping ...................... ..................... ..................... ...................... ..................... ..................... ........ 27 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 6/99

 v

2.2.2.5. Générateur d’horloges ...................... ..................... ...................... ..................... ..................... ..................... . 28 

2.3. CONCEPTION DU RECEPTEUR BFDM .............................................................................. 29 

2.3.1. Etude fonctionnelle ............................................................................................................. 29 

2.3.2. Architecture interne ............................................................................................................ 30 

2.3.2.1. Etage de filtrage à la réception .................... ...................... ...................... ...................... ...................... ........ 30 

2.3.2.2. Démapping ..................... ..................... ...................... ..................... ...................... .................... ................... 33 

2.3.2.3. Extraction des Symboles Pilotes.............. ...................... ...................... ...................... ...................... ............ 33 

2.4. CONCLUSION .................................................................................................................. 34 

CHAPITRE 3 : IMPLEMENTATION SUR FPGA DE

L’EMETTEUR/RECEPTEUR BFDM ...........................................................35 

3.1. I NTRODUCTION ...............................................................................................................36 

3.2. IMPLEMENTATION SUR FPGA DE L’EMETTEUR ...............................................................37 

3.2.1. Etage de Mapping............................................................................................................... 37  

3.2.2. Génération et configuration de l’IP XFFT de Xilinx.......................................................... 38 

3.2.3. Filtrage à l’émission........................................................................................................... 43 

3.2.4. Sélection des porteuses et insertion des symboles pilotes .................................................. 44 

3.2.5. Générateur d'horloges ........................................................................................................ 45 

3.3. IMPLEMENTATION DU RECEPTEUR BFDM ...................................................................... 46 

3.3.1. Etage de filtrage à la réception .......................................................................................... 47  

3.3.2. Extraction des Symboles Pilotes......................................................................................... 48 

3.3.3. Démapping.......................................................................................................................... 49 

3.4. CONCLUSION .................................................................................................................. 49 

CHAPITRE 4 : SIMULATION ET SYNTHESE DE

L’EMETTEUR/RECEPTEUR BFDM ...........................................................51 

4.1. I NTRODUCTION ...............................................................................................................52 

4.2. R ESULTATS DE SIMULATION DE L'EMETTEUR /RECEPTEUR BFDM .................................. 52 

4.2.1. Mapping et Démapping ...................................................................................................... 52 

4.2.2. Sélection, insertion et extraction des symboles pilotes....................................................... 54 

4.2.3. Simulation du Core XFFT : ................................................................................................ 56  

4.2.4. Filtrage ............................................................................................................................... 57  

4.2.5. Générateur d’horloges........................................................................................................ 58 

4.3. R ESULTATS DE SYNTHESE DE L'EMETTEUR /RECEPTEUR BFDM...................................... 60 

4.3.1. Synthèse de l’étage Mapping.............................................................................................. 61 

4.3.2. Synthèse de l’étage Demapping.......................................................................................... 62 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 7/99

 vi

4.3.3. Synthèse du bloc « Sélection des porteuses et insertion des SP » ...................................... 64 

4.3.4. Synthèse du bloc « Sélection des porteuses et extraction des SP » .................................... 65 

4.3.5. Synthèse du bloc « Générateur d’horloges »...................................................................... 66  

4.3.6. Synthèse du bloc « Filtrage » ............................................................................................. 68 

4.4. CONCLUSION .................................................................................................................. 70 

CONCLUSION ET PERSPECTIVES ............................................................ 70 

BIBLIOGRAPHIE............................................................................................72 

ANNEXE A : CARACTERISATION DE L’ENVIRONNEMENT RADIO-

MOBILE............................................................................................................. 74 

1. Les variations à grande et moyenne échelle............................................................................. 74 

2. Les variations à petite échelle .................................................................................................. 75 

3. Modèle de canal........................................................................................................................ 75 

3.1. Modèle statique du canal radio-mobile...... ...................... ...................... ...................... ...................... ................ 75 

3.2. Modèle dynamique du canal radio-mobile................... ...................... ...................... ...................... .................... 76 

ANNEXE B : LE CORE XFFT DE XILINX..................................................79 

ANNEXE C : RAPPORTS DE SYNTHESE .................................................. 82 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 8/99

 vii

LISTE DES FIGURES 

FIGURE 1.1 : SCHEMA DE PRINCIPE DU MODULATEUR OFDM. ................................................ 6 

FIGURE 1.2 : SPECTRE EN SORTIE DU MODULATEUR OFDM.................................................... 7 

FIGURE 1.3 : SCHEMA DE PRINCIPE DU DEMODULATEUR OFDM. ............................................8 

FIGURE 1.4 : MODULATEUR OFDM NUMERIQUE. ...................................................................9 

FIGURE 1.5 : DEMODULATEUR OFDM NUMERIQUE. ............................................................. 10 

FIGURE 1.6 : I NTERVALLE DE GARDE POUR LES SYMBOLES OFDM....................................... 11 

FIGURE 1.7 : EMETTEUR ET RECEPTEUR OFDM.................................................................... 12 

FIGURE 1.8 : SCHEMA BLOC EMETTEUR ET RECEPTEUR 802.11A. ..........................................12 

FIGURE 2.1 : L'EMETTEUR BFDM VU DE L'EXTERIEUR . ......................................................... 18 

FIGURE 2.2 : SCHEMA BLOC DE LA CONCEPTION DE L'EMETTEUR . ......................................... 18 

FIGURE 2.3 : SCHEMA EXPLICATIF DE L’OPERATION DE FILTRAGE A L’EMISSION................... 21 

FIGURE 2.4 : CONCEPTION DU BLOC FILTRAGE A L'EMISSION................................................. 23 

FIGURE 2.5: CONCEPTION DU BLOC SELECTION DE PORTEUSES ET INSERTION DES SP. .......... 25 

FIGURE 2.6 : DISPOSITION DES SP ET DES PORTEUSES DESACTIVEES. .................................... 26 

FIGURE 2.7 : CONSTELLATION DE LA MODULATION QAM16................................................. 27 

FIGURE 2.8 : SCHEMA CONCEPTUEL DU BLOC MAPPING. ....................................................... 28 

FIGURE 2.9 : SCHEMA CONCEPTUEL DU RECEPTEUR . ............................................................. 30 

FIGURE 2.10 : SCHEMA CONCEPTUEL DU BLOC « FILTRAGE » A LA RECEPTION...................... 32 

FIGURE

2.11 : S

CHEMA CONCEPTUEL DU BLOC« D

EMAPPING»............................................ 33

 

FIGURE 2.12 : CONCEPTION DE L’ETAGE « EXTRACTION DES SP ». ....................................... 34 

FIGURE 3.1 : I NTERFACE DE L’OUTIL XILINX CORE GENERATOR ......................................... 39 

FIGURE 3.2 : CONFIGURATION DU CORE XFFT, INTERFACE 1................................................ 40 

FIGURE 3.3 : CONFIGURATION DU CORE XFFT, INTERFACE 2................................................ 41 

FIGURE 3.4 : CONFIGURATION DU CORE XFFT, INTERFACE 3................................................ 42 

FIGURE 3.5 : EXTRAIT DU CODE SOURCE DE « INDEX _ CIRC _ GEN.VHD »................................ 44 

FIGURE 3.6 : DECLARATION DU COMPOSANT « BLOCKDRAM ». ............................................ 45 

FIGURE 3.7 : DECLARATION DU COMPOSANT « CLK  _ GEN »................................................... 46 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 9/99

 viii

FIGURE 3.8 : DECLARATION DU BLOC « ORGANIZER ».......................................................... 47 

FIGURE 3.9 : DECLARATION DU BLOC « SELECTION DES PORTEUSES ET EXTRACTION DES SP ».

.............................................................................................................................................. 49 

FIGURE 3.10 : EXTRAIT DU CODE DE L’ETAGE « DEMAPPING » ............................................. 49 

FIGURE 4.1 : SIMULATION DE L’ETAGE « MAPPING ». ........................................................... 53 

FIGURE 4.2 : SIMULATION DE L’ETAGE « DEMAPPING » ET VISUALISATION DU BITSTREAM..53 

FIGURE 4.3 : SIMULATION DU BLOC « INSERTION DES SYMBOLES PILOTES ». ........................ 55 

FIGURE 4.4 : SIMULATION DU BLOC « EXTRACTION DES SYMBOLES PILOTES ». .................... 55 

FIGURE 4.5 : SIMULATION DU CORE XFFT EN MODE ‘FORWARD’ (I.E. FFT). ....................... 56 

FIGURE 4.6 : ZOOM SUR LE DEBUT DE LA SORTIE DE L’FFT................................................... 56 

FIGURE 4.7 : SUPERPOSITION DES COURBES DE FILTRAGE. .................................................... 57 

FIGURE 4.8 : INTRODUCTION DE L’EFFET DE QUANTIFICATION SUR L’OPERATION DE FILTRAGE.

.............................................................................................................................................. 58 

FIGURE 4.9 : OBSERVATION DU DEPHASAGE ENTRE LES SIGNAUX HORLOGES GENERES.........59 

FIGURE 4.10 : SIMULATION DU GENERATEUR D’HORLOGES. .................................................. 60 

FIGURE 4.11 : SCHEMA RTL EXTERNE DU BLOC « MAPPING ».............................................. 61 

FIGURE 4.12 : SCHEMA RTL INTERNE DU BLOC « MAPPING »............................................... 62 

FIGURE 4.13 : SCHEMA RTL EXTERNE DU BLOC « DEMAPPING ».......................................... 63 

FIGURE 4.14 : SCHEMA RTL INTERNE DU BLOC « DEMAPPING ». ......................................... 63 

FIGURE 4.15 : SCHEMA RTL EXTERNE DU BLOC « SELECTION DES PORTEUSES ET INSERTION

DES SP »................................................................................................................................ 64 

FIGURE 4.16 : SCHEMA RTL INTERNE DU COMPOSANT BLOCK  _ DRAM..................................65 

FIGURE 4.17 : SCHEMA RTL EXTERNE DU BLOC « SELECTION DES PORTEUSES ET EXTRACTION

DES SP »................................................................................................................................ 66 

FIGURE 4.18 : SCHEMA RTL EXTERNE DU BLOC « GENERATEUR D’HORLOGES ».................. 67 

FIGURE 4.19 : SCHEMA RTL EXTERNE DU BLOC « FI _ MUL _ I ». ............................................ 69 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 10/99

 ix

LISTE DES TABLEAUX 

TABLEAU 2.1 :  NOMBRE DES SP ET DES PORTEUSES DESACTIVEES DE L’IFFT. ..................... 26 

TABLEAU 3.1 : MAPPING, CHOIX DE IOUT. .............................................................................. 37 

TABLEAU 3.2 : MAPPING, CHOIX DE QOUT. ............................................................................. 38 

TABLEAU 3.3 : DIFFERENCES DANS LE FONCTIONNEMENT DES ETAGES DE FILTRAGE ........... 47 

TABLEAU 4.1 : VALEURS INITIALES DES COMPTEURS POUR LE GENERATEUR D’HORLOGES.... 59 

TABLEAU 4.2 : R ECAPITULATION DES RESULTATS DE SYNTHESE...........................................69 

TABLEAU B.1 : R ESUME DES BROCHES DU CORE XFFT ........................................................ 81 

TABLEAU C.1 : SYNTHESE DU BLOC « MAPPING » ................................................................82 

TABLEAU C.2 : SYNTHESE DU BLOC « DEMAPPING » ............................................................ 83 

TABLEAU C.3 : SYNTHESE DU BLOC « SELECTION DES PORTEUSES ET INSERTION DES SP » ..84 

TABLEAU C.4 : SYNTHESE DU BLOC « SELECTION DES PORTEUSES ET EXTRACTION DES SP »

.............................................................................................................................................. 85 

TABLEAU C.5 : SYNTHESE DU BLOC « CLOCK GENERATOR » ................................................ 86 

TABLEAU C.6 : SYNTHESE DU COMPOSANT « ADDRESS _ GENERATOR »................................. 87 

TABLEAU C.7 : SYNTHESE DU COMPOSANT « FI _ MUL _ I » ..................................................... 88 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 11/99

 x

Liste des Acronymes

ADC : Analog to Digital Converter 

ADSL : Asymmetric Digital

Subscriber Line

BFDM: Biorthogonal Frequency

Division Multiplexing

CPOFDM : Cyclic Prefix OFDM

DAC : Digital to Analog Converter 

DVB-T : Digital Video Broadcast-

Terrestrial

FEC : Forward Error Correction

FFT : Fast Fourier Transform

FPGA : Field Programmable Gate

Array

ICI : Inter Carrier Interference

IEEE : Institute of Electrical

and Electronics Engineers

IES : Interférences Entre

Symboles

IFFT : Inverse Fast Fourier 

Transform

IP : intellectual Property

ISI : inter Symbols interferences

MAQ : Modulation

d’Amplitude en Quadrature

OFDM : Orthogonal Frequency

Division Multiplexing

P/S, S/P : conversion Parallèle /Série,

Série/Parallèle

QAM : Quadrature

Amplitude Modulation

RAM : Random Access

memory

ROM : Read Only Memory

RTL : Register Transfer Level

SP : Symboles Pilotes

TFR : Transformée de Fourier 

rapide

VHDL : VHSIC hardware

description language

VHSIC : very high-speed IntegratedCircuit

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 12/99

 1Introduction

 Introduction générale

Depuis quelques années, de plus en plus d’importance a été accordée à la technique de

modulation OFDM, les chercheurs voyaient dans cette technique la solution efficace et

 pratique aux problèmes de sélectivité imposés par le canal (support de transmission) dans le

cas des systèmes de transmission haut débit. Par conséquent, des systèmes développés comme

le DVB-T et l’ADSL ont vu le jour grâce à l’adoption de cette technique de modulation.

Malheureusement, dans le cas d’un canal radio-mobile caractérisé par une grande sélectivité

temporelle, les performances de la modulation OFDM se dégradent. Ceci peut s’expliquer par 

la délocalisation fréquentielle de la forme d’onde rectangulaire utilisée dans l’OFDM. Ainsi,

en modifiant la forme d’onde à l’émission et à la réception, nous pouvons corriger ce défaut.

 Nous passons donc à la technique de modulation BFDM qui diffère à l’OFDM par le fait que

la forme d’onde à l’émission et celle à la réception sont différentes de la fonction rectangle

adoptée par les modulateur OFDM.

Pour implémenter un système de transmission multiporteuse, l’utilisation de l’FFT s’avère

très efficace et permet de réduire l’ordre de complexité de l’émetteur et du récepteur. C’estd’ailleurs ça qui rend l’implémentation d’un émetteur BFDM possible sur une carte FPGA.

 Nous avons choisit d’organiser ce mémoire en quatre chapitres. Le premier chapitre présente

les notions techniques des modulations OFDM et BFDM.

Le deuxième chapitre est consacré à l’élaboration de la conception de l’architecture de

l’émetteur/récepteur BFDM. Nous y verrons le schéma général de l’émetteur et du récepteur 

et nous détaillerons ensuite la conception de chaque étage.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 13/99

 2Introduction

La phase de l’implémentation est décrite au niveau du troisième chapitre et enfin dans le

dernier chapitre, nous exposons les résultats de simulation et de synthèse des composants de

l’émetteur et du récepteur BFDM implémentés.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 14/99

 3

Chapitre 1 : Principe des systèmes BFDM 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 15/99

 4Chapitre 1 : Princ ipe des systèmes

1.1.  I NTRODUCTION 

Un signal radiofréquences est émis sur un canal, qui constitue son support physique. Ainsi

toute transmission numérique est limitée par les contraintes physiques de son support.

Un canal est dit sélectif en fréquence lorsqu'il ne se comporte pas identiquement suivant la

fréquence du signal. Certaines fréquences seront atténuées plus que d'autres. Le signal sera

alors déformé lors de la transmission : les données seront dispersées dans le temps, pouvant

mener à des interférences entre symboles.

Du fait des nombreuses réflexions que le signal peut subir en environnement urbain, le

récepteur recevra une série d'échos d'amplitudes et de retards variables. Cette problématique

du canal à trajets multiples est critique dans le cas d'un canal radio-mobile, c'est-à-dire lorsque

le récepteur et l'émetteur ne sont pas fixes relativement. Les différents échos et amplitudes qui

varient dans l'espace, ils entraînent des variations dans le canal vu par le récepteur mobile.

Ces problématiques sont d'autant plus d'actualité que les débits transmis augmentent

exponentiellement, et donc la bande de fréquence nécessaire pour transporter ces informations

à haut débit. Or l'effet de la sélectivité en fréquence des canaux sur la dégradation des

 performances augmente avec la largeur de bande de fréquence du signal transmis.

La famille des modulations multiporteuses dont fait partie l'OFDM permet de répondre à cet

enjeu en utilisant des sous-porteuses peu sensibles aux multitrajets et à la sélectivité en

fréquence, faciles à égaliser.

Dans ce chapitre, nous nous proposons de définir les systèmes OFDM ainsi que les moyens

d'implémenter les chaînes de transmission basées sur la modulation OFDM en utilisant la

transformée de fourrier rapide (TFR). Nous verrons ensuite les limites de cette technique et

les caractéristiques de la modulation BFDM.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 16/99

 5Chapitre 1 : Princ ipe des systèmes

1.2.  LES SYSTEMES OFDM  

Les problèmes de multi-trajet et de sélectivité fréquentielle (Annexe A) sont d'autant plus

importants que le débit de transmission augmente, car la bande de fréquence nécessaire pour 

transporter ces informations à haut débit augmente. Or l'effet de la sélectivité en fréquence

des canaux sur la dégradation des performances augmente avec la largeur de bande de

fréquence du signal transmis.

Dans le cas mono-porteuse, les processus d'égalisation censés compenser les effets des multi-

trajets et de la sélectivité en fréquence des canaux sont cependant d'une grande complexité

lorsque le canal varie beaucoup dans le temps. Ils nécessitent de plus la connaissance à tout

instant de la fonction de transfert du canal de transmission.

La famille des modulations multi-porteuses dont fait partie l'OFDM (Orthogonal Frequency

Division Multiplexing) permet de répondre à cet enjeu en utilisant des sous-porteuses peu

sensibles aux multi-trajets et à la sélectivité en fréquence, faciles à égaliser.

Cette technique de modulation consiste à répartir les symboles sur un grand nombre de

 porteuses à bas débit, à l'opposé des systèmes mono-porteuses qui transmettent les symboles

en série, chaque symbole occupant alors toute la bande passante disponible.

Ainsi dans le cas de l'OFDM, pour un train de symboles initial de période T Si , les Symboles

seront répartis en N trains plus lents et auront alors une durée TS

= N*TSi

. Cette diminution du

rythme symbole entraîne une diminution des interférences entre symboles d'un rapport N.

Ainsi, dans le cas mono-porteuse, pour un débit symbole de 10 Msymboles/s transmis sur un

canal radio de distorsion maximale τm = 250 µs, un symbole interfère avec K=250 * 10 =

2500 Symboles.  Le processus d'égalisation s'effectuant par bloc est très complexe. En

revanche, en répartissant ces symboles sur N = 2048 porteuses, moins de 2 symboles rentrent

en interférence, ce qui simplifie énormément l'égalisation du canal [1].

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 17/99

 6Chapitre 1 : Princ ipe des systèmes

1.2.1.  PRINCIPE DE LA MODULATION OFDM

Pour répartir les données à transmettre sur les N porteuses, on groupe les symboles c k  par 

 paquets de N. Les ck  sont des nombres complexes définis à partir des éléments binaires par 

une constellation souvent de modulation MAQ à 4, 16, 64, 2q états.

La séquence de N symboles c0 , c1 , ..., c N-1 constitue un symbole OFDM. Le k-ième train de

symboles parmi les N trains module un signal de fréquence f k . Le signal modulé du train k 

s'écrit sous forme complexe :

Le signal total s(t) correspondant à l'ensemble des N symboles réassemblés en un symbole

OFDM :

Symbole

s OFDM

c 2

c N-1

b 0, b1, … c 0, c 1,

c 0

c 1

.

.

.

.

.

MAQ 2q

 

Figure 1.1 : Schéma de principe du modulateur OFDM.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 18/99

 7Chapitre 1 : Princ ipe des systèmes

Les fréquences sont orthogonales si l'espace entre deux fréquences adjacentes f k  et f k+1 est

1/Ts. En effet, chaque porteuse modulant un symbole pendant une fenêtre rectangulaire

temporelle de durée Ts, son spectre en fréquence est un sinus cardinal, qui est une fonction qui

s'annule tous les multiples de 1/Ts.

f k = f 0 + k/Ts (1.2)

Figure 1.2 : Spectre en sortie du modulateur OFDM.

Ainsi, lorsque l'échantillonnage est effectué précisément à la fréquence f k d'une sous-porteuse,

il n'y a aucune interférence avec les autres sous-porteuses. C'est ce qui permet de recouvrir lesspectres des différentes porteuses et d'obtenir ainsi une occupation optimale du spectre. Le

nombre de sous-porteuses N est choisi de manière à remplir les deux conditions primordiales

Ts >> Tm afin de pouvoir considérer le canal plat et Ts << 1/Bd pour considérer le canal

statique pendant la transmission du symbole OFDM [1].

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 19/99

 8Chapitre 1 : Princ ipe des systèmes

1.2.2.  PRINCIPE DE LA DEMODULATION

Le signal parvenu au récepteur s'écrit sur une durée symbole Ts :

Où Hk  (t) est la fonction de transfert du canal autour de la fréquence f k  et à l'instant t. Cette

fonction varie lentement et on peut la supposer constante sur la période Ts (Ts<<1/Bd) .La

démodulation classique consisterait à démoduler le signal suivant les N sous-porteuses suivant

le schéma classique détaillé dans la figure 1.3.

Filtre

Filtre

Filtre

y(t)

Figure 1.3 : Schéma de principe du démodulateur OFDM.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 20/99

 9Chapitre 1 : Princ ipe des systèmes

1.2.3.  TECHNIQUES D 'IMPLEMENTATION DES MODULATEURS OFDM

L'analyse algébrique indique que le signal de sortie s(t) est sous la forme :

En discrétisant ce signal et en le ramenant en bande de base pour l'étude numérique, on

obtient une sortie s(n) sous la forme :

Les sn sont donc obtenus par une transformée de Fourier inverse discrète des c k . En

choisissant le nombre de porteuses N tel que N = 2n, le calcul de la transformée de Fourier 

inverse se simplifie et peut se calculer par une simple IFFT [2] nous conduisant au schémanumérique suivant :

C0(

IFFT P/S

CN-

 

C1(

C( S/ P

Figure 1.4 : Modulateur OFDM numérique.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 21/99

 10Chapitre 1 : Princ ipe des systèmes

1.2.4.  IMPLANTATION NUMERIQUE DU DEMODULATEUR  

L'analyse théorique définit le signal discrétisé reçu au niveau du démodulateur sous la forme :

 

zn est la transformée de Fourier discrète inverse de ck  Hk  , la démodulation consiste donc à

effectuer une transformée de Fourier directe discrète. Le nombre de porteuses ayant été choisi

tel que N = 2n, on peut réaliser ce calcul à l'aide d'une FFT[2]. On obtient alors le schéma de

 principe suivant :

FFT

C0(

C1(

 

nTs

S/ P

CN-

P/ S

Zn

Figure 1.5 : Démodulateur OFDM numérique.

1.2.5.  EGALISATION ET SEQUENCES D 'APPRENTISSAGE 

La connaissance des Hk (t) qui caractérisent chaque canal est nécessaire à l'égalisation dans la

démodulation OFDM. Le processus visant à découvrir les paramètres du canal est appelé

estimation du canal. Il s'effectue par la transmission de séquences d'apprentissage sur 

différentes fréquences et à différents instants. Le système de transmission devient dynamique

et beaucoup plus complexe à modéliser.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 22/99

 11Chapitre 1 : Princ ipe des systèmes

1.2.6.  I NTERVALLE DE GARDE 

Un des grands avantages de l’OFDM est sa robustesse vis-à-vis des canaux sélectifs en

fréquence. En divisant le flux de données en N sous-porteuses, la durée symbole est N fois

 plus grande. Ainsi le rapport délai canal/durée symbole est réduit par le même facteur.

L’impact de l’interférence entre symboles (IES) est donc considérablement affaibli [2].

Cependant, il peut subsister une légère interférence entre les symboles OFDM. En effet, les

symboles subissent des échos et un symbole émis parvient au récepteur sous forme de

  plusieurs symboles atténués et retardés. Un symbole émis lors d’une période iTs peut se

superposer à un écho provenant du symbole émis à la période (i+1)T s. Pour résister contre ces

interférences, on ajoute un intervalle de garde d’une durée ∆ comme l’indique la figure (1.6).

Symbo le Symbo le

Intervalle de

Symbole

Figure 1.6 : Intervalle de garde pour les symboles OFDM.

Afin que les interférences soient éliminées, il faut que l’intervalle de garde soit plus grand que

le plus grand des retards Tm qui apparaissent sur le canal. En pratique, on choisit l’intervalle

de garde de durée égale au quart du temps symbole OFDM, ce qui représente un bon

compromis entre la diminution des erreurs et la perte du débit utile.

Suite à l’introduction de l'intervalle de garde, on peut représenter les différentes étapes de la

modulation OFDM par le schéma bloc de la figure 1.7 [2] :

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 23/99

 12Chapitre 1 : Princ ipe des systèmes

S/ IFFTAjout préfixe

cycliqueP/ S

Filtre

d’émissio

Cana

P/ SRetrait

préfixeFFTP/ 

1/ TFiltre d e

réc e tio

S1 … Sp

1 … p

Figure 1.7 : Emetteur et récepteur OFDM.

La figure 1.8 illustre un exemple d'utilisation de la modulation OFDM dans une chaine de

transmission WIFI 802.11a [3].

Emetteur

DACP/ S Sortie

64

bandes

IFFT 64

oints

S/ P

48 bandes

250 kBaud

Modulation

16 QAM

Sortie 12

FEC Sortie

à 48

Flux

d’entrée

à 36

FEC Sortie

à 36

Flux d e

Mbit/s

sortie à 36ADCS/ P Sortie

64

bandes

FFT 64

oints

P/ S

48 bandes

250 kBaud

Démodulatio

n 16 QAM

Sortie 48 MHz

Récepteur

Figure 1.8 : Schéma bloc émetteur et récepteur 802.11a.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 24/99

 13Chapitre 1 : Princ ipe des systèmes

1.3.   FAIBLESSES DE LA FORME D’ONDE RECTANGULAIRE DE

L’OFDM  

Les systèmes OFDM utilisent des impulsions rectangulaires en racine de NYQUIST pour 

  permettre une transmission avec une efficacité spectrale optimale. Les impulsions

rectangulaires en temps ne sont pas bien localisées en fréquence. Cette mauvaise localisation

fréquentielle va largement influer sur l’orthogonalité entre les sous-porteuses surtout si le

canal présente des variations temporelles sévères dues à des décalages Doppler importants. De

  plus, une mauvaise localisation en fréquence peut augmenter la sensibilité aux offsets

fréquentiels.

Pour combattre ces points faibles, plusieurs travaux [4],[5] [6] et [7] ont été réalisés pour 

mettre en œuvre une forme d'onde optimale à l'émission et une autre forme d'onde optimale à

la réception offrant une bonne localisation dans le plan temps-fréquence en exploitant les

  propriétés des bonnes concentrations des fonctions d’HERMITE. On parle ainsi de BFDM

(Biorthogonal Frequency Division Multiplexing) parce que la forme d'onde de l'émetteur est

différente de celle du récepteur.

Les interférences inter-porteuses dans la modulation OFDM sont engendrées par deux

 principaux facteurs : l’offset fréquentiel et l’étalement Doppler.

1.3.1.  OFFSET FREQUENTIEL

L’offset fréquentiel résulte de la différence entre l’oscillateur de l’émetteur et celui du

récepteur. Deux effets destructifs sont engendrés par un offset fréquentiel. L’un consiste en la

réduction de l’amplitude du signal puisque les fonctions sinus cardinal (transformée de

Fourier de la forme rectangulaire) sont décalées et ne sont plus donc échantillonnées aux pics.

L’autre effet est l’introduction d’interférences inter-porteuses résultant de la perte

d’orthogonalité entre les sous-canaux.

L’OFDM est très vulnérable à l’offset fréquentiel dus à des problèmes de synchronisation.

Cette sensibilité est affectée par la durée plus longue des symboles OFDM.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 25/99

 14Chapitre 1 : Princ ipe des systèmes

1.3.2.  EFFET DE L’ETALEMENT DOPPLER 

En utilisant l'intervalle de garde cyclique, les sous-porteuses individuelles retrouvent leurs

orthogonalités après suppression du préfixe. Cette orthogonalité est détruite quand le canal

varie temporellement et ses caractéristiques changent durant la durée d'un symbole d'OFDM.

Ces variations sont modélisées par l'étalement Doppler « Doppler Spread ». Ce dernier résulte

de la différence en fréquences Doppler entre les différents trajets du canal. Il décrit donc les

changements aléatoires dans le canal radio et peut être considéré comme résultat de

déplacement des usagers.

L'étalement Doppler réduit l'énergie utile dans chaque sous-porteuse et introduit de

l'interférence inter-canaux « Inter Carrier Interference » (ICI) due à une perte d’orthogonalité.

Ces deux effets réduisent le rapport signal à bruit SNR dans le récepteur.

La perte d’orthogonalité s’accentue avec l’utilisation d’une fonction d’enveloppe

rectangulaire pour mettre en forme les symboles OFDM. En effet, l’énergie s’étale sur tout

l’axe fréquentiel ce qui va générer de plus en plus d’interférences ICI sur les canaux dispersifs

en fréquence.

1.4.   OPTIMISATION DE LA FORME D 'ONDE POUR LA

MODULATION BFDM

Pour réduire l’effet du Doppler, on doit remplacer la forme d’onde rectangulaire très étendue

en fréquence par une forme d’onde présentant une meilleure localisation en fréquence. On

doit recourir à une optimisation de la forme d’onde afin de réduire l’effet de l’étalement

Doppler. Cette optimisation a été effectuée sous forme de plusieurs projets qui ont eu lieu au

sein de la société Smart-Waves [4] et [5]. Le critère d'optimisation était de maximiser le

rapport signal sur interférence (SIR) et l'opération consistait à trouver la meilleure

combinaison linéaire des formes d'onde d'Hermite pour la construction de la forme d'onde

optimale à l'émission et à la réception. Le choix des Hermites comme base élémentaire se

  justifie par la bonne localisation temp-fréquence qu'offraient ces formes d'onde. Les

simulations sous MATLAB effectués au sein de cette société ont validé l'optimisation réalisée

et ont montré un gain de 10 dB par rapport à la modulation OFDM conventionnelle à préfixe

cyclique (CPOFDM) pour un canal radio-mobile caractérisé par un Doppler important.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 26/99

 15Chapitre 1 : Princ ipe des systèmes

De ce fait, nous pouvons ainsi passer à l'implémentation hardware de cette solution de

transmission BFDM avec forme d'onde optimisée; ce qui constitue le sujet de ce projet de fin

d'étude.

1.5.  CONCLUSION

Dans ce chapitre, nous avons présenté la technique de modulation OFDM avec ses avantages

et ses limites. Nous avons ensuite enchaîné avec la présentation de la solution BFDM avec

forme d'onde optimisée qui présente le remède pour diminuer les interférences dans le cas

d'un canal variable dans le temps.

Dans ce qui suit, nous allons passer à la réalisation de la chaîne de transmission BFDM, à

savoir l'émetteur et le récepteur. Le chapitre suivant consiste donc à développer l'étape de

conception qui a été effectuée pour l'implémentation hardware de l'ensemble émetteur,

récepteur BFDM.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 27/99

 16

Chapitre 2 : Conception de

l’architecture de

l’émetteur/récepteur BFDM 

 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 28/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 17

2.1.  I NTRODUCTION 

L’implémentation de la modulation multiporteuse est une tache difficile puisqu’elle est

composée de plusieurs étages de modulation qui fonctionnent en parallèle. Mais l’utilisation

de l’FFT dans le récepteur et de l’IFFT dans l’émetteur permet de réduire l’ordre de

complexité du modulateur et du démodulateur. Ainsi l’implémentation d’un émetteur /

récepteur BFDM est désormais réalisable sur un FPGA. On se propose donc dans ce chapitre

d’élaborer la conception de l’architecture de cet émetteur / récepteur BFDM.

Pour cela, nous avons choisi d’organiser ce chapitre en deux parties. La première présentera la

conception de l'émetteur et la deuxième sera consacrée au récepteur.

2.2.  CONCEPTION DE L 'EMETTEUR BFDM

Tout d’abord, nous allons élaborer la conception générale de l'émetteur en réalisant son étude

fonctionnelle. Ensuite, nous détaillerons chaque élément complexe de cette conception.

2.2.1.  ETUDE FONCTIONNELLE 

Une première approche pour effectuer l’étude fonctionnelle de l’émetteur serait de

commencer par identifier ses entrées et ses sorties. Considérons donc la figure 2.1.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 29/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 18

Figure 2.1 : L'émetteur BFDM vu de l'extérieur.

On a donc trois entrées dont une pour les données (Bitstream) et deux pour le contrôle (Reset

et clock).

Le signal de sortie étant complexe, on va donc lui réserver deux sorties qui sont Iout et Qout et

qui représentent respectivement la composante en phase et la composante en quadrature du

signal à la sortie de l'émetteur.

Avant d’être transmises, les données passent par trois phases principales qui sont le mapping,l’IFFT et enfin le filtrage par projection sur la forme d’onde optimisée. La figure 2.2 présente

le schéma conceptuel de l’émetteur.

Figure 2.2 : Schéma bloc de la conception de l'émetteur.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 30/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 19

  Nous avons connecté l’entrée Reset à tous les composants de l'émetteur pour garantir 

l'utilisation efficace du reset asynchrone qui permet à tout moment d'interrompre le

fonctionnement de l'émetteur et de le réinitialiser, c'est-à-dire de vider tous les registres

internes dans cet émetteur. Ensuite, en ce qui concerne le premier bloc à travers lequel passe

l'information et comme l'indique sont nom, le bloc « Mapping » est responsable de la

modulation numérique du signal. Il permet de passer de l'espace binaire à l'espace symbole

complexe. On pourra choisir la modulation QPSK, QAM16 ou QAM64… Ce choix

n'intervient pas au niveau de la conception générale de l'émetteur et n’affectera pas les autres

 blocs de l’émetteur.

Passons maintenant au bloc « IFFT » sur lequel se base la modulation multi-porteuse. Pour 

réaliser cet étage, nous allons utiliser l’IP XFFT de Xilinx [8] que nous avons généré avecl’outil COREGenerator[9]. Ce bloc est normalement cascadé au bloc « mapping ». Mais pour 

  pouvoir estimer le canal de transmission, nous allons utiliser la technique des symboles

 pilotes comme dans le cas des standards IEEE802.11a et IEEE802.16d [10]. Cette technique

consiste à émettre des symboles connus par le récepteur à des instants précis et des sous

 porteuses bien définies. Ainsi, le récepteur pourra estimer le canal en identifiant son effet sur 

les symboles pilotes. Pour mettre en œuvre cette technique, nous avons choisi d'ajouter un

 bloc qui permet d'insérer les symboles pilotes et de sélectionner (ou activer) les sous porteuseseffectivement utilisée de l'IFFT.

Les symboles OFDM obtenus à la sortie du bloc « IFFT » seront donc transférés au bloc

« filtrage » qui réalisera la projection de ces symboles sur la forme d'onde optimisée dont

nous avons parlée dans le chapitre précédent.

Reste donc à préciser que ces différents blocs, que nous venons de citer, ne fonctionnent pas

tous avec la même fréquence d'horloge, d'où la nécessité d'ajouter un bloc « générateur 

d'horloges » qui comme son nom l’indique, génère plusieurs horloges parfaitement

synchronisées à partir d'une seule horloge maître (Master Clock).

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 31/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 20

2.2.2.  ARCHITECTURE INTERNE DE L’EMETTEUR  

2.2.2.1.  DESCRIPTION DE L’IP  XFFT DE XILINX 

Pour l’étage responsable de l’IFFT au niveau de l’émetteur, nous utiliserons l’IP XFFT de

Xilinx. Cet étage admet cinq entrées dont trois signaux de contrôle (Reset, Clock et Enbl) et

deux signaux de données (Iin et Qin). Ces sorties sont au nombre de trois (Iout, Qout et enbl).

  Nous devons choisir le type « Pipelined, streaming I/O », parce que notre émetteur doit

garantir un fonctionnement continu à cause des données qui se présentent sous forme d’un

flux de bits (BitStream). Nous considérons un système BFDM composé de 1024 sous-

 porteuses. Donc nous choisissons une FFT de taille 1024. Le tableau extrait du Datasheet [9]

de cet IP, présenté dans l’annexe B, résume les signaux d’entrée et de sortie de ce Core.

2.2.2.2.  ETAGE DE FILTRAGE  

Pour effectuer la conception du bloc « filtrage » à l’émission, nous considérons les

spécifications suivantes :

  Le réseau temps fréquence sous-jacent au système BFDM étudié repose sur une

densité sous-critique. Ce qui se traduit par l’inégalité suivante : F*T > 1. Dans notre cas, on

 prend : F*T = 1,25.

  L’IFFT est calculée sur 1024 échantillons. Donc 1/F correspond à 1024 échantillons.

  La durée de l’impulsion (forme d’onde), d’origine infinie, est tronquée sur 8T

(équivalent à 10/F soit 10240 échantillons)

L’entrée du bloc filtrage étant de taille 1/F = 1024 échantillons, la sortie sera de durée T =

1.25/F = 1.25*1024 = 1280 échantillons.

La figure 2.3 illustre le déroulement de l’opération de filtrage :

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 32/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 21

Forme d’onde

sans décalage.

Figure 2.3 : Schéma explicatif de l’opération de filtrage à l’émission.

T 2T 3T 4T 5T 6T 7T 8T0

RAM7RAM 4 RAM 5 RAM 6RAM3RAM1RAM2RAM0 

S0

S1

S2

S3

S4

S5

S6

S7

 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 33/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 22

•  L’entrée correspond à la sortie du bloc « IFFT ». on admet que c’est un bloc de taille

1024 échantillons qui arrivent en série sous forme de flux de données.

•  On duplique ce symbole 10 fois et on multiplie le résultat par la forme d’onde

optimisée enregistrée dans une mémoire ROM de taille 10240 échantillons.•  Le résultat de la multiplication est transféré à une mémoire RAM qui a pour rôle de

stocker la somme de 8 multiplications successives pour former le signal émis (1280

échantillons) qui correspond à une période temporelle.

•  A chaque fois qu’un nouveau symbole (1024 échantillons) arrive, on le duplique 10

fois et on décale la forme d’onde d’une période T de façon circulaire (figure 2.3) avant

d’effectuer la multiplication. Ensuite, on accumule le résultat de la multiplication dans un

registre temporaire de longueur 10240 échantillons. Enfin, on transmet une partie de ce

registre qui correspond dans cette figure à l’une des RAMi que l’on vide après la transmission

de son contenu.

•  Ceci nous mène à adopter la conception illustrée dans la figure 2.4.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 34/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 23

Figure 2.4 : Conception du bloc filtrage à l'émission.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 35/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 24

L’entrée du bloc « filtrage » correspond comme on a déjà dit à la sortie du bloc « IFFT », elle se

  présente sous forme d’échantillons successifs (I et Q) que nous allons adresser par un compteur 

(index), on duplique cet échantillon 10 fois (I i avec i de 0 à 9) et on multiplie les échantillons

dupliqués par les échantillons pris de la forme d’onde (notée φ) et stockés dans la rom et dont l’adresse

correspond à index décalé (de façon circulaire) de i * 1/F et k * T avec k le numéro du symbole IFFT

(k allant de 0 à 7 ).

Le résultat de la multiplication sera transféré à un buffer qui a pour rôle d’accumuler 8 résultats

consécutifs pour former le signal à transmettre.

 Nous avons ajouté un bloc parallèle au buffer et qui comprend 8 mémoires RAMout i pour réorganiser 

la sortie du filtre pour des raisons de spécification car l’entrée est périodique de période 1/F = 1024

échantillons et la sortie est périodique mais de période T = 1280 échantillons. C’est aussi pour cette

raison que le bloc filtrage nécessite deux signaux d’horloge (clk2 et clk3 (voir figure 2.2)).

2.2.2.3.   SELECTION DES PORTEUSES ACTIVES ET INSERTION DES SYMBOLES

PILOTES 

 Nécessité de la sélection des porteuses actives :

Pour éviter le repliement de spectre, on ne doit pas émettre de l’information sur toutes les

  porteuses de l’IFFT. On doit donc sélectionner certaines porteuses et désactiver les autres.

Autrement dit, on doit forcer intentionnellement l’entrée de certaines porteuses de l’IFFT à

zéro. Un autre problème que nous devons éviter consiste à la fréquence nulle de l’IFFT qui

entraîne un DC offset dans le cas des systèmes utilisant une conversion directe à cause des

courants de fuite (leakage). Donc la porteuse centrale sera aussi désactivée.

Utilité des symboles pilotes :

Pour pouvoir estimer le canal de transmission au niveau du récepteur, nous utiliserons la

technique des symboles pilotes qui consiste à insérer entre les données à transmettre un

certain nombre de symboles connus par l’émetteur et le récepteur à des fréquences bien

définies.

C’est de là que vient l’idée d’introduire un bloc dans l’émetteur entre l’IFFT et le bloc

« mapping » et qui sera responsable de la sélection des porteuses et de l’insertion des

symboles pilotes.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 36/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 25

Afin de concevoir le bloc qui réalise ces taches, l’idée consisterait donc à imaginer que ce

 bloc va lire l’entrée comme un flux de données qui arrivent en série avec un rythme clock_in

et introduire des zéros ainsi que des symboles pilotes à des endroits convenablement choisis

entre les symboles données pour enfin former la sortie de ce bloc. Cette sortie doit être

contrôlée par un rythme clock_out plus rapide que celui de clock_in pour garantir le

fonctionnement synchrone des blocs successifs.

Autrement dit, clock_in correspond au rythme de l’horloge de sortie du bloc précédent c'est-à-

dire le bloc « mapping » et clock_out correspond au rythme de l’horloge du bloc IFFT.

La figure 2.5 illustre le schéma conceptuel du bloc « Sélection des porteuses et insertion des

symboles pilotes ».

Figure 2.5: Conception du bloc sélection de porteuses et insertion des SP.

Pour choisir l’emplacement des porteuses nulles et des symboles pilotes, nous nous sommes

inspirés de l’exemple de la modulation OFDM pour le Standard IEEE802.11a. Le tableau 2.1

 présente le nombre des symboles pilotes et des porteuses désactivées de l’IFFT dans le cas de

la modulation OFDM du standard IEEE802.11a ainsi que le système que nous avons

implémenté et la figure 2.6 détaille leurs positions. Il s’agit d’un choix personnel mais le code

sera générique et la modification des positions des symboles pilotes par l’utilisateur sera

simple.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 37/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 26

  IEEE802.11a Notre système

 Nbre de porteuses de l’IFFT  64 1024

 Nbre de porteuses désactivées 12 192

 Nbre de symboles pilotes 4 64

 Nbre de symboles data 48 768

Tableau 2.1 : Nombre des SP et des porteuses désactivées de l’IFFT.

Figure 2.6 : Disposition des SP et des porteuses désactivées.

60 64

Porteuses

25 29 33 37 4127 27 31 31 35 35 39 39

62 62 66 66 70 70 74 74

76 83 89 96 10279 80 86 86 92 92 99 99

0 63 12 19 2515 16 22 2231 34 94 9

Symboles p ilotes

0 25 51 76 102

41 60

 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 38/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 27

2.2.2.4.  ETAGE DE MAPPING  

Pour un choix de la modulation QAM16, l’entrée du bloc mapping étant le flux binaire, la

sortie sera séparée en deux signaux qui représentent la partie réelle et imaginaire des

symboles déduis à partir du flux binaire. La figure 2.7 présente la constellation de la

modulation QAM16, passons maintenant à la conception de ce bloc : dans l’opération de

mapping, nous identifions une partie qui réalise la sauvegarde de 4 bits successifs de l’entrée

et une partie qui en fonction de ces 4 bits choisit la valeur du symbole numérique. Ceci nous a

menés à adopté la conception illustrée par la figure 2.8 avec Iout et Qout sont respectivement la

 partie réelle et imaginaire du symbole à la sortie de ce bloc.

Figure 2.7 : constellation de la modulation QAM16.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 39/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 28

Figure 2.8 : Schéma conceptuel du bloc Mapping.

2.2.2.5.  GENERATEUR D’HORLOGES 

Après avoir conçu les différents blocs de l’émetteur, il nous reste à garantir leur 

fonctionnement synchrone en présentant à chaque bloc le signal horloge qui lui convient.

Pour énumérer les différents signaux que nous devons générer, nous avons analysé le

fonctionnement de chacun des autres blocs et cette analyse nous a mené à générer 4 signaux

de rythmes différents : clk1, clk2, clk3 et clk4 (figure 2.2).

Les périodes de ces horloges sont reliées entre elles par les équations suivantes :

T(clk4) = 0.8*T(clk3) équation 2.1

T(clk3) = 0.75*T(clk2) équation 2.2

T(clk2) = 4*T(clk1) équation 2.3

Cette dernière est propre à la modulation QAM16. Enfin, on ajoute l’équation suivante :

T(clk1) = α*T(clk) équation 2.4

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 40/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 29

L’importance de cette équation est de permettre de déduire les différentes périodes des clk i 

sous forme de multiple entier et pair de la période T(clk) qui constitue le signal d’entrée de ce

 block.

Un choix convenable de α serait 10, ainsi on aura les relations suivantes entre les périodes des

clk i.

T(clk1) = 10*T(clk) équation 2.5

T(clk2) = 40*T(clk) équation 2.6

T(clk3) = 30*T(clk) équation 2.7

T(clk4) = 24*T(clk) équation 2.8

Maintenant, après avoir dégagé les relations entre les périodes des différentes horloges, nous

 pouvons passer à l’élaboration de la solution conceptuelle du bloc générateur d’horloge. Pour 

cela, considérons l’exemple de clk1, nous avons un signal horloge clk à l’entrée et nous

voulons générer un signal horloge 10 fois plus lent, on considère donc un compteur modulo

10 qui s’incrémente à chaque front montant de l’horloge d’entrée. Finalement, nous mettons à

zéro le signal de sortie clk1 tant que le compteur est inférieur à 5 et nous le forçons à un

lorsque le compteur est entre 6 et 10. On voit ici la nécessité de choisir les périodes des

horloges sous forme de multiple pair de celle de l’horloge d’entrée.

Le même raisonnement s’applique pour générer les autres horloges.

2.3.  CONCEPTION DU RECEPTEUR BFDM

Tout comme le plan adopté pour l’émetteur, nous commencerons par élaborer la conception

générale du récepteur pour ensuite détailler les éléments qui le constituent.

2.3.1.  ETUDE FONCTIONNELLE 

L’architecture du récepteur est légèrement plus complexe que celle de l’émetteur. En effet,

d’un côté tous les blocs de l’émetteur sont reproduits au niveau du récepteur pour effectuer le

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 41/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 30

traitement inverse afin de reconstruire le signal de départ, et de l’autre côté, nous devons

ajouter des blocs supplémentaires qui seront responsables de la synchronisation, du calcul de

l’effet du canal sur la distorsion du signal et de la décision sur les symboles reçus.

De ce fait, nous avons mis en œuvre la conception illustrée par la figure suivante. Il reste à

noter que les blocs « Synchronisation » et « Estimation du canal » ne seront pas implémentés

dans le cadre de ce projet.

Figure 2.9 : Schéma conceptuel du récepteur.

2.3.2.  ARCHITECTURE INTERNE  

Pour éviter la répétition, nous allons nous contenter par rédiger la conception détaillée du

 bloc « Extraction des symboles pilotes », du boc « Démapping » et de l’étage « filtrage à la

réception ».

2.3.2.1.  ETAGE DE FILTRAGE A LA RECEPTION 

L’opération de filtrage du côté récepteur est semblable à celle de l’émetteur à quelques

différences près.

Bloc non

Bloc

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 42/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 31

Tout d’abord l’entrée est reliée à la sortie du bloc synchronisation et la sortie du bloc

« filtrage » est reliée au bloc « FFT » , ce qui impose sur ce bloc le fonctionnement

suivant :

•  Le signal à l’entrée est collecté par bloc de 1280 échantillons successifs qui

correspondent à des symboles notés Si.

•  Chaque symbole Si est dupliqué 8 fois avant d’être multiplié par la forme d’onde

 propre au récepteur.

•  Le résultat de la multiplication est transféré sur une RAM de taille 10240 échantillons

qui réalisera l’accumulation de 10 produits successifs pour former la sortie du bloc

« filtrage » à la réception libéré par bloc de 1024 échantillons.

La figure 2.10 présente donc la conception du bloc « filtrage » à la réception.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 43/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 32

Figure 2.10 : schéma conceptuel du bloc « filtrage » à la réception.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 44/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 33

2.3.2.2.  DEMAPPING 

Le fonctionnement de ce bloc consiste à lire les deux entrées Iin et Qin, convertir ce symbole

en un mot binaire et passer ce mot à un process de sortie qui le libère bit par bit pour former le

 bitStream. Entre temps, le premier composant de ce bloc va lire le symbole suivant et ainsi de

suite.

Figure 2.11 : Schéma conceptuel du bloc « Démapping ».

2.3.2.3.  EXTRACTION DES SYMBOLES P ILOTES 

Pour pouvoir extraire l’information et les symboles pilotes, nous avons choisit d’adopter la

conception illustrée dans la figure 2.12. L’utilisation de deux types de RAM est justifiée par le

  besoin de récupérer à partir du symbole BFDM constitué par 1024 échantillons 768

échantillons de données et 64 échantillons correspondants aux symboles pilotes reçus. Donc,

nous devons enregistrer les échantillons de données dans une RAM de profondeur 768 et les

échantillons qui correspondent aux symboles pilotes dans une RAM de profondeur 64. Les

signaux wena1 et wena2 sont des signaux de contrôle de a RAM, ils permettent d’accéder à la

RAM en mode écriture (write ena ble).

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 45/99

 Chap itre 2 : Conc ep tion d e l’a rc hitec ture d e 34

En conséquence, nous utiliserons deux process de sortie : le premier servira à sortir les

échantillons de données à un rythme d’horloge clk2 et le deuxième passera les symboles

 pilotes reçus au bloc « calculateur » à un rythme d’horloge clk_SP.

Process delecture

1024 échantillons

Process deSortie 1

Clock_in

Clock_out

Reset

Data_in RAM1 : stockerles 768

échantillonsData

Data_out

Mux

data

index0

data

index1

RAM 2 : stockerles 64 Symboles

pilotes

Process deSortie 2

SP

index2

wena1

wena2

SP_out

 Figure 2.12 : conception de l’étage « Extraction des SP ».

2.4.  CONCLUSION 

Dans ce chapitre, nous avons exposé la conception générale de notre système de transmission

BFDM ainsi que son architecture interne en détaillant les différents blocs ou modules qui le

constituent. Le chapitre suivant présentera l’implémentation de ces différents modules et

quelques captures d’écrans expliquant la génération du Core XFFT de Xilinx.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 46/99

 35

Chapitre 3 : Implémentation

 sur FPGA de

l’émetteur/récepteur BFDM 

 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 47/99

 Cha p itre 3 : Imp lém enta tion de 36

3.1.  I NTRODUCTION 

Après avoir achevé la phase de la conception de l’architecture de notre émetteur et récepteur 

BFDM, nous pouvons passer à la mise en œuvre de cette conception en exposant

l’implémentation des différents étages qui forment cet émetteur/récepteur. Mais avant cela,

nous allons décrire l’environnement de travail et les outils qui nous ont permis de mettre en

œuvre la conception déjà citée :

Pour la réalisation de ce travail, nous avons utilisé un PC Sharp IQON Core Duo 2.8Ghz, 448

Mo de RAM.

L’environnement logiciel se compose de :

-  ISE 8.1i de Xilinx.

-  Xilinx Core Generator.

-  ModelSim 6.0c.

-  Matlab 7.0.

Avec cette configuration, et à l’aide de ces outils, nous avons réalisé l’implémentation

hardware de l’émetteur/récepteur BFDM que nous allons décrire dans ce chapitre. Nous avons

choisi de partager ce chapitre en deux sections. La première décrit l’implémentation de

l’émetteur BFDM et la deuxième évoquera celle du récepteur.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 48/99

 Cha p itre 3 : Imp lém enta tion de 37

3.2.  IMPLEMENTATION SUR FPGA DE L’EMETTEUR  

3.2.1.  ETAGE DE MAPPING 

Pour implémenter le bloc responsable de la modulation numérique QAM16, nous avons

réalisé les tâches suivantes :

•  Déclarer un signal compteur modulo 4.

  Déclarer un buffer de taille 4 bits.•  Ecrire un Process qui à chaque front montant d’horloge lit la valeur à l’entrée du

BitStream et l’enregistre dans le nième bit du buffer où n est la valeur du compteur.

•  Lorsque le compteur atteint trois, un Process détermine la valeur des outputs Iout et Qout

en fonction du contenu du buffer et de la valeur du BitStream. Les tableaux suivants

résument les valeurs des sorties Iout et Qout en fonction des 4 bits successifs A3, A2, A1

et A0 :

  A0 A1 I  out

0  0 00

0  1 10

1  0 01

1  1 11

Tableau 3.1 : Mapping, choix de Iout.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 49/99

 Cha p itre 3 : Imp lém enta tion de 38

A2 A3 Qout

0  0 11

0  1 01

1  0 10

1  1 00

Tableau 3.2 : Mapping, choix de Qout.

D’après ces deux tableaux, nous déduisons les équations qui relient Iout et Qout avec les Ai.

  Iout = A1 & A0 équation (3.1).

  Qout = Not (A3 & A2) équation (3.2).

Où l’opérateur ‘&’ est l’opérateur de concaténation binaire.

Finalement, on réalise une extension de signe pour Iout et Qout pour les écrire sur 8 bits car l’IP

XFFT de Xilinx exige que la taille des données à l’entrée soit égale à 8, 10, 12 ou 16 bits.

3.2.2.  GENERATION ET CONFIGURATION DE L’IP  XFFT DE XILINX 

En plus de l’environnement de développement ISE, Xilinx offre plusieurs outils comme Chip

Viewer, Timing Analyzer, Xpower et CORE Generator.

  Nous avons utilisé ce dernier pour générer l’IP XFFT V3.1. Les étapes nécessaires pour 

effectuer cette opération sont décrites par les figures 3.1, 3.2, 3.3 et 3.4.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 50/99

 Cha p itre 3 : Imp lém enta tion de 39

Figure 3.1 : Interface de l’outil Xilinx CORE Generator.

Au démarrage de l’outil, nous devons créer un nouveau projet. Le nom complet du projet ne

doit pas contenir des espaces, si non l’outil ne va pas pouvoir générer de core. Ensuite, on

cherche le produit qu’on veut générer (dans notre cas « Fast Fourier Transform ») et sur le

volet de droit, on aperçoit une brève description du produit ainsi que des liens qui permettent

de personnaliser le core, consulter sa documentation et le rapport des erreurs… Avant de

commencer la personnalisation du core, on devrait bien consulter sa documentation (Data

Sheet [7]) pour faire le bon choix parmi les paramètres qui sont proposés. En cliquant sur le

lien « Customize », on passe à la phase « personnalisation du core » qui comprend trois

étapes.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 51/99

 Cha p itre 3 : Imp lém enta tion de 40

Figure 3.2 : Configuration du core XFFT, interface 1.

Dans cette interface, nous observons le schéma logique du core avec ses différentes broches et

nous devons configurer la taille et le type de l’FFT ; le type Pipelined, Streaming I/O est celui

qui nous convient puisqu’il permet de calculer la transformée de Fourier sans arrêter le flux

des symboles à l’entrée. On passe maintenant à la deuxième interface en cliquant sur le

 bouton « Next ».

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 52/99

 Cha p itre 3 : Imp lém enta tion de 41

Figure 3.3 : Configuration du core XFFT, interface 2.

La deuxième interface nous permet de choisir le nombre de bit sur lequel sont codés l’entrée

et le facteur de phase (incrément de phase entre 2 porteuses successives, il correspond à la

valeur de 2π/1024), nous activons la broche SCLR (Synchronous Clear) et nous choisissons

les options « Scaled » et « Truncation » pour que la sortie de l’FFT soit tronquée sur 8 bits. La

dernière interface de la configuration du core est illustrée par la figure 3.4.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 53/99

 Cha p itre 3 : Imp lém enta tion de 42

Figure 3.4 : Configuration du core XFFT, interface 3.

Finalement, nous sélectionnons le nombre de stages qui utilisent des blocs Ram et nous

  précisons que le core doit générer un output dans l’ordre naturel ou bien dans l’ordre bit

Reverse (voir annexe A), le choix « ordre naturel » consomme une Ram supplémentaire.

Arès avoir terminé la phase de configuration du core, nous cliquons sur le bouton

« Generate » et voilà, nous venons de générer le core XFFT de Xilinx. Reste maintenant à

créer le fichier « wrapper » qui permet d’instancier le core et de l’inclure dans notre projet en

affectant à ces broches les signaux convenables.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 54/99

 Cha p itre 3 : Imp lém enta tion de 43

3.2.3.  FILTRAGE A L’EMISSION 

Ce bloc constitue la partie la plus compliquée de l’émetteur. Pour l’implémenter, nous avons

créé ces fichiers :

•  Index_gen.vhd : qui a pour rôle de générer l’adressage des entrées Iin et Qin.

•  Index_circ_gen.vhd : qui a pour rôle de calculer l’adresse correspondant à celle des

entrées après un décalage circulaire pour l’utiliser au niveau de l’extraction de la

valeur de la forme d’onde.

•  Rom_fi.vhd : c’est une Rom dans laquelle nous avons sauvegardé les valeurs des

échantillons de la forme d’onde, on lui donne l’adresse circulaire et elle nous fourniela valeur de l’échantillon correspondant.

•  Multiply_fi.vhd : permet de multiplier les entrées Iin et Qin par la valeur de

l’échantillon de la forme d’onde fi_val.

•  Fi_mul_i.vhd : rassemble les composants index_circ_gen, rom_fi et multiply_fi.

•  My_buffer.vhd : Ram de taille 10240 échantillons qui accumule les résultats de la

multiplication de la forme d’onde par les copies des entrées Iin et Qin, et qui envoie en

sortie deux blocs de taille 1024 échantillons.•  Organizer.vhd : récupère les deux blocs envoyés par la Ram et construit la sortie qui

correspond à un bloc de 1280 échantillons. Ce bloc fonctionne avec deux rythmes

d’horloge, un pour la lecture et un pour sortir les outputs Iout et Qout.

•  Main_fi.vhd : le composant principal qui fait appel à tous les composants qu’on vient

de citer.

La figure 3.5 illustre la déclaration du composant index_circ_gen :

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 55/99

 Cha p itre 3 : Imp lém enta tion de 44

entity adress_circ is 

Port ( reset : in  STD_LOGIC;

clk : in  STD_LOGIC;

iteration : in  STD_LOGIC_VECTOR (3 downto 0);

offset : in  STD_LOGIC_VECTOR (2 downto 0);

index : in  STD_LOGIC_VECTOR (9 downto 0);

index_circ : out  STD_LOGIC_VECTOR (13 downto 0));

end adress_circ;

Figure 3.5 : Extrait du code source de « index_circ_gen.vhd »

3.2.4.   SELECTION DES PORTEUSES ET INSERTION DES SYMBOLES

PILOTES 

Pour réaliser cet étage, nous avons créé les deux fichiers :

•  Block_dram.vhd : ce composant est une dram qui comprend un process de lecture et

un autre d’écriture avec forçage à zéro de la sortie pour les sous porteuses désactivées.

•  Read_insert.vhd : ce composant comprend un process de lecture de l’entrée data_in au

rythme de clock_in, un process Mux qui translate l’adresse de lecture pour obtenir 

l’adresse d’écriture dans la dram et enfin un process de sortie qui libère la sortie

formée par data_in, les symboles pilotes et les zéros.

La figure 3.6 présente la déclaration du comosant « block_dram.vhd ».

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 56/99

 Cha p itre 3 : Imp lém enta tion de 45

entity blockdram is 

generic(

depth : integer := 1024;

Dwidth : integer := 8;

Awidth : integer := 10

);

 port (

reset : IN  std_logic;

addra : IN  std_logic_VECTOR (Awidth-1 downto 0);

clk1 : IN  std_logic; -- pour l'écriture dans le buffer  

addrb : IN  std_logic_VECTOR (Awidth-1 downto 0);

clk2 : IN  std_logic;-- pour la lecture 

data_in : IN  std_logic_VECTOR (Dwidth-1 downto 0);

wea : IN  std_logic;

renabl : IN  std_logic;

data_out: OUT std_logic_VECTOR (Dwidth-1 downto 0)

);

end blockdram;

Figure 3.6 : Déclaration du composant « Blockdram ».

3.2.5.  GENERATEUR D 'HORLOGES 

Le principe du générateur étant présenté dans le chapitre dédié à la conception, et étant donné

que la génération des différentes horloges est réalisée d’une façon identique, il suffit donc de

changer quelques paramètres pour obtenir un autre rythme d’horloge.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 57/99

 Cha p itre 3 : Imp lém enta tion de 46

entity clk_gen is 

Port ( reset : in  STD_LOGIC;

start : in  STD_LOGIC;

clk : in  STD_LOGIC;

clk1 : out  STD_LOGIC;

clk2 : out  STD_LOGIC;

clk3 : out  STD_LOGIC;

clk4 : out  STD_LOGIC);

end clk_gen;

Figure 3.7 : Déclaration du composant « clk_gen ».

3.3.  IMPLEMENTATION DU RECEPTEUR BFDM

Une fois l’implémentation de l’émetteur terminée, la mise en œuvre du récepteur devient plus

facile en raison de la ressemblance des codes de leurs composants. Pour l’étage FFT, nous

n’allons pas régénérer le core XFFT puisque parmi ces entrées il y a la broche « FWD_INV »qui permet à cet IP de fonctionner en mode direct (FFT) ou inverse (IFFT). Il suffit donc de

copier le code du core généré pour l’émetteur et modifier dans le fichier « wrapper » la valeur 

attribuée à la broche « FWD_INV ».

  Nous allons donc commencer par exposer l’implémentation de l’étage de filtrage. Ensuite,

nous passerons à l’implémentation des blocs « Extraction des symboles pilotes » et

« Démapping ».

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 58/99

 Cha p itre 3 : Imp lém enta tion de 47

3.3.1.  ETAGE DE FILTRAGE A LA RECEPTION 

L’implémentation de l’étage qui réalise l’opération de filtrage à la réception est semblable à

celle de l’émetteur ; les différences entre ces deux blocs sont résumées dans le tableau 3.3.

  Emission Réception

 Nbre d’échantillons à l’entrée 1024 1280

 Nbre d’échantillons à la sortie 1280 1024

 Duplication du symbole à l’entrée 10 fois 8 fois

Tableau 3.3 : Différences dans le fonctionnement des étages de filtrage

En plus de ça, la forme d’onde à l’émission est différente de celle à la réception donc nous

devons créer une autre Rom pour sauvegarder les échantillons de la forme d’onde.

Pour implémenter l’étage de filtrage à la réception selon la conception illustrée dans la figure

2.10, nous avons tiré profit des codes sources de l’émetteur sur lesquels nous avons effectué

les changements nécessaires pour les adapter au fonctionnement du récepteur. La figure 3.8

expose la déclaration du composant « Organizer ».

entity organizer is 

Port ( reset : in  STD_LOGIC;

clk : in  STD_LOGIC; -- horloge pour l'input 

clk2 : in  STD_LOGIC; -- horloge pour la sortie 

add_in : in  STD_LOGIC_VECTOR (10 downto 0) ;

decalage : in  STD_LOGIC_VECTOR (3 downto 0) ;

I1 : in  STD_LOGIC_VECTOR (19 downto 0) ;

I2 : in  STD_LOGIC_VECTOR (19 downto 0) ;

Q1 : in  STD_LOGIC_VECTOR (19 downto 0) ;

Q2 : in  STD_LOGIC_VECTOR (19 downto 0) ;

start_trans : out STD_LOGIC;

data_out1 : out STD_LOGIC_VECTOR (19 downto 0) ;

data_out2 : out STD_LOGIC_VECTOR (19 downto 0));

end organizer;

Figure 3.8 : Déclaration du bloc « Organizer ».

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 59/99

 Cha p itre 3 : Imp lém enta tion de 48

Pour les autres composants, nous avons réalisé beaucoup de changements pour pouvoir les

adapter au contexte du filtrage à la réception.

3.3.2.  EXTRACTION DES SYMBOLES PILOTES 

Pour mettre en œuvre l’étage de l’extraction des symboles pilotes, nous avons utilisé deux

RAM de tailles différentes, un multiplexeur, un process de lecture et deux process de sortie, le

  premier est responsable des échantillons de données et le deuxième libère en sortie les

symboles pilotes.

Le multiplexeur permet de :

•  Calculer en fonction de l’adresse d’entrée, l’adresse d’écriture dans la RAM des

données appelée addres_in1.

•  Calculer en fonction de l’adresse d’entrée, l’adresse d’écriture dans la RAM des

symboles pilotes appelée addres_in2.

•  Sélectionner et désélectionner les broches « write enable » des deux RAM que nous

avons appelées wena_1 et wena_2.

La figure 3.9 présente la déclaration du bloc « Sélection des porteuses et extraction des SP ».

entity read_extract is 

generic(

Dwidth : integer := 8

);

Port (

reset : in  STD_LOGIC;

start : in  STD_LOGIC;

clk1 : in  STD_LOGIC;

clk2 : in  STD_LOGIC;

clk3 : in  STD_LOGIC;

data_inI : in  STD_LOGIC_VECTOR (Dwidth - 1 downto 0);

data_inQ : in  STD_LOGIC_VECTOR (Dwidth - 1 downto 0);

data_out1_I : out  STD_LOGIC_VECTOR (Dwidth - 1 downto 0);-- data 

data_out1_Q : out  STD_LOGIC_VECTOR (Dwidth - 1 downto 0);

data_out2_I : out  STD_LOGIC_VECTOR (Dwidth - 1 downto 0);-- SP 

data_out2_Q : out  STD_LOGIC_VECTOR (Dwidth - 1 downto 0);

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 60/99

 Cha p itre 3 : Imp lém enta tion de 49

output_index1 : out  STD_LOGIC_VECTOR (10 downto 0);-- index des data 

output_index2 : out  STD_LOGIC_VECTOR (6 downto 0);-- index des SP 

sonde_cmp : out STD_LOGIC_VECTOR (9 downto 0);

enbl_next : out  STD_LOGIC);

end read_extract;

Figure 3.9 : Déclaration du bloc « Sélection des porteuses et extraction des SP ».

3.3.3.  DEMAPPING 

Pour réaliser l’implémentation de l’étage responsable de la démodulation numérique, nous

avons choisi de créer deux process :

•  Le premier est responsable de la lecture des entrées I in et Qin à une fréquence de

l’horloge clk_in.

•  Le deuxième convertie les symboles en un mot binaire composé de quatre bits et les

libère en série à un rythme d’horloge clk_out qui est quatre fois plus rapide que celui

de clk_in.

 Nous présentons dans la figure 3.10 la déclaration du composant « Démapping ».

entity demapping is 

Port (

reset : in  STD_LOGIC;

start : in  STD_LOGIC;

clk_in : in  STD_LOGIC;

clk_out : in  STD_LOGIC;

Iin : in  STD_LOGIC_VECTOR (7 downto 0);

Qin : in  STD_LOGIC_VECTOR (7 downto 0);

enbl_next : out STD_LOGIC;

  bitstream :out STD_LOGIC);

end demapping;

Figure 3.10 : Extrait du code de l’étage « Demapping »

3.4.  CONCLUSION 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 61/99

 Cha p itre 3 : Imp lém enta tion de 50

Ainsi nous avons exposé dans ce chapitre la réalisation de l’émetteur/récepteur BFDM en

respectant la conception élaborée précédemment. Il ne nous reste que de faire les tests de

simulation afin de s’assurer de son bon fonctionnement, c’est ce qui sera l’objet du prochain

chapitre.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 62/99

 51

Chapitre 4 : Simulation et

Synthèse de

l’émetteur/récepteur BFDM 

 

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 63/99

 52Co nc lusion e t

4.1. Introduction

Après avoir achevé l’implémentation de l’émetteur/récepteur BFDM et pour valider le travail

effectué, nous commencerons la phase de vérification du code par simulation en isolant

chaque composant et en le stimulant par un testbench. La partie validation constitue le dernier 

volet de ce rapport. Elle est organisée en deux sections. Nous présenterons dans la première

les résultats de simulation et dans la deuxième les résultats de synthèse de

l’émetteur/récepteur BFDM.

4.2.   R ESULTATS DE SIMULATION DE L 'EMETTEUR /RECEPTEUR 

BFDM

4.2.1.  MAPPING ET DEMAPPING 

L’étage Mapping constitue le premier bloc que traverse l’information au niveau de l’émetteur.

Pour tester son fonctionnement, nous avons créé un testbench qui présente au niveau del’entrée « bitStream » la séquence binaire suivante « 1011100101001110 ». Appliquons le

 principe de la modulation QAM16 :

1.    Nous commençons par lire l’entrée par groupe de quatre bits, nous avons donc les

mots suivant : « 1011 », « 1001 », « 0100 » et « 1110 ».

2.  La conversion de ces mots donne :

« 1011 » Iout = « 10 » et Qout = « 00 »

« 1001 » Iout = « 10 » et Qout = « 10 »

« 0100 » Iout = « 01 » et Qout = « 11 »

« 1110 » Iout = « 11 » et Qout = « 01 »

3.  Après l’extension de signe nous obtiendrons les sorties successives suivantes :

i)  Iout = « 11111110 » et Qout = « 00000000 »

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 64/99

 53Co nc lusion e t

ii)  Iout = « 11111110 » et Qout = « 11111110 »

iii) Iout = « 00000001 » et Qout = « 11111111 »

iv)  Iout = « 11111111 » et Qout = « 00000001 »

Le résultat de simulation de l’étage « Mapping » présenté dans la figure 4.1 est identique au

résultat qu’on vient de calculer. Nous avons ajouté un signal à la sortie de ce bloc qui est

« enbl_next_load », son utilité est d’annoncer au bloc suivant le début du symbole avant un

cycle d’horloge.

Figure 4.1 : Simulation de l’étage « Mapping ».

 Nous récupérons la sortie de ce testbench (Iout et Qout) et nous créons un autre testbench pour 

simuler le fonctionnement du bloc « Démapping » et nous appliquons aux entrées Iin et Qin la

sortie qu’on vient de récupérer du premier testbench. Le résultat de cette simulation comme le

montre la figure 4.2 correspond bien à la séquence binaire initiale, c'est-à-dire :

« 1011100101001110 ».

Figure 4.2 : Simulation de l’étage « Démapping » et visualisation du bitStream.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 65/99

 54Co nc lusion e t

4.2.2.  SELECTION, INSERTION ET EXTRACTION DES SYMBOLES PILOTES  

Avant d’exposer le résultat de simulation du code responsable de la sélection des sous-

 porteuses et de l’insertion des symboles pilotes, nous rappelons le principe de fonctionnement

de ce bloc :

•  L’entrée de ce bloc est un symbole de données constitué par 768 échantillons

successifs.

•  Ce bloc insère 192 échantillons nuls au milieu du symbole de données.

•  Il insère 64 échantillons correspondants aux symboles pilotes répartis dans les

 positions définies dans la figure 2.6.

•  La sortie de ce bloc est donc un symbole de taille 1024 échantillons composés de

données, d’échantillons nuls et de symboles pilotes.

Du côté du récepteur, le bloc « Extraction des symboles pilotes » réalise l’opération inverse. Il

  permet d’éliminer les échantillons nuls et de récupérer les données et les observations

relatives aux symboles pilotes.

Pour simuler le fonctionnement de ces deux blocs, nous avons créé deux testbenchs, le

  premier applique au bloc « insertion des symboles pilotes » un signal sinusoïdal et qui

récupère la sortie et l’enregistre dans un fichier texte. Le deuxième testbench lit les

échantillons data_ini à partir du fichier texte et les applique à l’entrée du bloc « Extraction des

symboles pilotes ». Les symboles pilotes et les données seront séparés et récupérés

respectivement dans les signaux data_out2i et data_out1i. Les figures 4.3 et 4.4 présentent le

résultat de simulation des deux testbenchs.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 66/99

 55Co nc lusion e t

Figure 4.3 : Simulation du bloc « insertion des symboles pilotes ».

Figure 4.4 : Simulation du bloc « Extraction des symboles pilotes ».

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 67/99

 56Co nc lusion e t

4.2.3.  SIMULATION DU CORE XFFT :

Etant donné que nous n’avons pas implémenté l’étage responsable de la réalisation de la

transformée de Fourier et que nous avons utilisé l’IP XFFT de Xilinx, nous devons réaliser 

 plusieurs simulations pour être sûr qu’il fonctionne et qu’il fournit le bon résultat ; surtout que

dans le rapport de cet IP (Information Report), il est mentionné que ce core ne fournit pas le

  bon résultat avec la famille Virtex4. Nous avons donc testé le core avec un signal entrée

constant {xn_re = « 01000000 » et xn_im = « 00000000 »} puis avec un signal sinus et enfin

avec un signal Rect. Les résultats de simulation concordent avec ceux des simulations

réalisées avec Matlab en présence de quelques erreurs de quantification. La figure 4.5

 présente le résultat de la simulation de l’FFT d’un signal Rect et la figure 4.6 correspond à un

zoom sur la région de début de la sortie de l’FFT.

Figure 4.5 : Simulation du Core XFFT en mode ‘Forward’ (i.e. FFT).

Figure 4.6 : Zoom sur le début de la sortie de l’FFT.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 68/99

 57Co nc lusion e t

4.2.4.  FILTRAGE 

Pour valider l’opération de filtrage, nous avons réalisé les tâches suivantes :

•  Créer un testbench qui appelle le composant principale du bloc filtrage (main_fi) et lui

applique un signal constant de valeur 0.25 pour Iin et nul pour Qin.

•  Récupérer la sortie du bloc filtrage dans un fichier texte à l’aide du testbench et grâce

à la bibliothèque Textio ; (nous avons testé avec des sorties sur 8, 12 et 18 bits).

•  Visionner avec Matlab le résultat de filtrage en lisant les échantillons à partir du

fichier texte.

•  Implémenter avec Matlab le bloc filtrage.

•  Comparer les résultats des deux implémentations.

L’opération de vérification nous conduit à la figure 4.7 (dans le cas du résultat sur 18 bits).

Figure 4.7 : Superposition des courbes de filtrage.

Si dans le code de filtrage avec Matlab on introduit l’effet de quantification en quantifiant leséchantillons de la forme d’onde sur 10 bits, on obtient deux courbes presque superposées. En

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 69/99

 58Co nc lusion e t

revanche, nous remarquons la présence de trois faux échantillons qui résulte du dépassement

(overflow) lors de l’addition sur un nombre de bits constant.

Figure 4.8 : introduction de l’effet de quantification sur l’opération de filtrage.

4.2.5.  GENERATEUR D’HORLOGES 

Le bloc générateur d’horloges permet de construire des signaux horloges synchronisés à partir 

d’un signal clock appliqué à son entrée. Le principe de la génération d’un rythme à partir d’un

autre est décrit dans le deuxième chapitre mais nous n’avons pas précisé l’importance de la

valeur initiale du compteur. Nous allons en premier lieu simuler le fonctionnement de ce bloc

en initialisant les compteurs de tous les process ‘1’. Ensuite nous allons calculer les bonnes

valeurs initiales de chaque compteur et enfin nous présenterons la simulation du bloc

« générateur d’horloges » avec les initialisations convenables.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 70/99

 59Co nc lusion e t

Figure 4.9 : observation du déphasage entre les signaux horloges générés.

D’après cette figure, nous constatons :

•  Le premier signal horloge qui passe à l’état ‘1’ est le signal clk1. On rappelle que sa

 période T1 vérifie l’équation suivante : T1 = 10 * T (clk).

•  Le deuxième signal horloge, qui est clk4, présente un retard de 7 * T (clk) par rapport à

clk1.

•  Le troisième signal horloge est clk3, il présente un retard de 10 * T (clk) par rapport à

clk1.

•  Le dernier signal horloge est clk2, il présente un retard de 15 * T (clk) par rapport à clk1.

Pour corriger ce défaut, nous allons annuler les retards des signaux horloges en translatant lavaleur initiale du compteur de chaque process responsable de la génération d’un signal clk i.

Par exemple, la valeur initiale du compteur de clk2 est : Vi2 = 1 + (retard de clk2) = 16.

Ainsi, les valeurs initiales des différents compteurs sont résumées dans le tableau 4.1.

Signal horloge Valeur de Demi-période Retard considéré Valeur initiale

Clk1 5 0 1

Clk2 20 15 16

Clk3 15 10 11

Clk4 12 7 8

Tableau 4.1 : valeurs initiales des compteurs pour le générateur d’horloges.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 71/99

 60Co nc lusion e t

Après la correction des valeurs initiales, nous obtenons des signaux horloges parfaitement

synchronisés et qui commencent tous en même temps. La nouvelle simulation du bloc

« générateur d’horloges » se présente dans la figure 4.10.

Figure 4.10 : simulation du générateur d’horloges.

4.3.   R ESULTATS DE SYNTHESE DE L 'EMETTEUR /RECEPTEUR 

BFDM

 Nous avons effectué a synthèse en prenant en considération ce qui suit :

•  D’abord notre système demande des ressources qui dépassent les capacités d’un circuit

Spartan3 et qui ne sont disponibles que dans le circuit Virtex4.

•  Le Core XFFT ne fonctionne pas correctement pour Virtex4 et si on le génère pour une

carte Spartan3, sa simulation donne un résultat correct mais il n’est pas synthétisable

  puisqu’il demande beaucoup plus de ressources que celles disponibles (le nombre de

Multiplieurs18x18 offert est 4 alors que le core demande 12 multiplieurs « voir la figure

3.4 »).

  Nous allons donc réaliser la synthèse des composants de l’émetteur et du récepteur 

séparément et nous exploiterons les rapports de consommation des ressources et le « Timing

Report » pour dégager les délais ou retard générés par notre code. Les tableaux générés par 

l’ISE pour résumer la synthèse des composants ont été recopiés dans l’annexe C.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 72/99

 61Co nc lusion e t

4.3.1.  SYNTHESE DE L’ETAGE MAPPING 

D’après le tableau C.1, le bloc « Mapping » occupe 7 Slices parmi les 6144 Slices offertes par 

le circuit Virtex4 soit une occupation de 0.114%.

Le rapport de synthèse du bloc « Mapping » nous a permis de dégager la valeur de la période

minimale, elle est de 1.902 ns, ce qui fait que ce bloc peut fonctionner à la fréquence

maximale : f max = 525.762 MHz.

La figure 4.11 illustre le schéma RTL du bloc « Mapping » vu de l’extérieur et la figure 4.12

 présente le Netlist de ce bloc.

Figure 4.11 : Schéma RTL externe du bloc « Mapping ».

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 73/99

 62Co nc lusion e t

Figure 4.12 : Schéma RTL interne du bloc « Mapping ».

4.3.2.  SYNTHESE DE L’ETAGE DEMAPPING 

Le bloc « Demapping » occupe 2 Slices parmi les 6144 Slices offertes par le circuit Virtex4

soit un pourcentage d’occupation de 0.0325% (voir tableau C.2). Pour ce bloc, la valeur de la

 période minimale est de 1.692 ns, et donc la fréquence maximale est : f max = 591.016 MHz.

Le schéma RTL externe du bloc « Demapping » est présenté dans la figure 4.13 et la figure

4.14 correspond au Netlist de ce bloc.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 74/99

 63Co nc lusion e t

Figure 4.13 : Schéma RTL externe du bloc « Demapping ».

Figure 4.14 : Schéma RTL interne du bloc « Démapping ».

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 75/99

 64Co nc lusion e t

4.3.3.   SYNTHESE DU BLOC « SELECTION DES PORTEUSES ET INSERTION

DES SP »

La synthèse de l’étage responsable de la sélection des porteuses actives et de l’insertion des

symboles pilotes occupe 64 slices soit 1.042% des ressources de la virtex4 et elle consomme

aussi 2 FIFO16/RAMB16s parmi les 48 disponibles soit un pourcentage de 4.17%.

La valeur de la période minimale est de 5.181 ns, et donc la fréquence maximale est : f max =

193.013 MHz.

La figure 4.15 illustre le schéma RTL externe du bloc « Sélection des porteuses et insertion

des SP » et la figure 4.16 présente le Netlist du composant block_dram qui est un composant

inclus dans l’architecture de l’étage de sélection et insertion des symboles pilotes.

Figure 4.15 : Schéma RTL externe du bloc « Sélection des porteuses et insertion des SP ».

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 76/99

 65Co nc lusion e t

Figure 4.16 : Schéma RTL interne du composant Block_dram.

4.3.4.   SYNTHESE DU BLOC « SELECTION DES PORTEUSES ET

EXTRACTION DES SP »

Cet étage qui appartient au récepteur occupe 160 Slices parmi les 6144 donc 2.606% des

Slices disponibles et il réserve 4 FIFO16/RAMB16s parmi les 48 RAMB16s présentes dans la

Virtex4.

La valeur de la période minimale est de 4.492 ns, et donc la fréquence maximale est : f max =

222.618 MHz.

Le schéma RTL externe de ce bloc est présenté dans la figure 4.17

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 77/99

 66Co nc lusion e t

Figure 4.17 : Schéma RTL externe du bloc « Sélection des porteuses et extraction des SP ».

4.3.5.  SYNTHESE DU BLOC « GENERATEUR D’HORLOGES »

Après sa synthèse, le composant clock_generator consomme 21 Slices parmi les 6144

disponibles c'est-à-dire 0.342% des ressources du circuit. Sa période minimale de

fonctionnement étant 2.247 ns donc ce bloc peut fonctionner à une fréquence maximale : f max 

= 445.038 MHz.

Puisque ce composant est responsable de la génération des horloges nécessaires pour le

fonctionnement de l’émetteur et du récepteur, et le signal clk est plus rapide que tous les

autres signaux horloges (clk1, clk2, clk3 et clk4) donc sa fréquence de fonctionnement

maximale va décider de la valeur des fréquences de fonctionnement des autres blocs. D’après

les équations (2.5), (2.6), (2.7) et (2.8) nous déduisons les fréquences de fonctionnement des

 blocs clk_generator (f), mapping (f 1), Sélection des porteuses et insertion des SP (f 2 et f 3),

IFFT (f 3) et filtrage (f 3 et f 4).

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 78/99

 67Co nc lusion e t

Le schéma RTL externe de ce bloc est décrit dans la figure 4.18.

Figure 4.18 : Schéma RTL externe du bloc « Générateur d’horloges »

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 79/99

 68Co nc lusion e t

4.3.6.  SYNTHESE DU BLOC « FILTRAGE »

Parmi les composants du bloc filtrage, nous avons deux qui ne sont pas synthétisables, il

s’agit de « mybuffer.vhd » et « organizer.vhd ». Le problème est que le compilateur n’arrive

  pas à identifier les composants FIFO/RAM à l’intérieur du code vu sa complexité. Pour 

corriger cette erreur, nous devrons simplifier le code de mybuffer et de l’organizer en séparant

les traitements d’adressage et d’accès à la partie RAM. Cette correction devrait rendre le code

synthétisable puisque les deux composants demandent ensemble 24 RAMs de taille 1024

échantillons et 2 RAMs de taille 1280 échantillons du côté de l’émetteur alors que le filtrage à

la réception demande 20 RAMs de taille 1280 échantillons et 2 RAMs de taille 1024

échantillons.

 Nous avons donc réalisé la synthèse des composants :

•  Addres_generator (tableau C.6)

•  Fi_mul_i (tableau C.7) qui regroupe les composants :

o  Addres_circ_gen.

o  Import_fi : la ROM où sont stockés les échantillons de la forme d’onde.

o  Multiply_fi : qui réalise la multiplication des entrées (Iin et Qin) par la forme

d’onde et tronque le résultat sur la taille de la sortie qu’on veut obtenir.

Le composant fi_mul_i consomme 1177 Slices parmi les 6144 disponibles c'est-à-dire

19.157% des ressources du circuit. Sa période minimale de fonctionnement étant 6.274 ns

donc ce bloc peut fonctionner à une fréquence maximale : f max = 159.388 MHz.

Le schéma RTL externe de ce bloc est décrit dans la figure 4.19.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 80/99

 69Co nc lusion e t

Figure 4.19 : Schéma RTL externe du bloc « Fi_mul_i ».

  Nous récapitulons dans le tableau 4.2 les résultats de synthèse des différents blocs de

l’émetteur/récepteur BFDM.

  Désignation Occupation en termes

 de ressources

 Fréquence

 maximale possible

 Fréquences de

 fonctionnement

 Mapping 7 Slices 525.762 MHz 44.5 MHz

 Démapping 2 Slices 591.016 MHz 11.3 MHz et 44.5 MHz

 Insertion des SP 64 Slices et 2 RAMs 193.013 MHz 11.13 MHz et 14.83 MHz

 Extraction des SP 160 Slices et 4 RAMs 222.618 MHz 11.13 MHz et 14.83 MHz

Générateur d’horloges 21 Slices 445.038 MHz 445 MHz

 Filtrage \ addres_gen 83 Slices 159.388 MHz 14.83 MHz et 18.54 MHz

 Filtrage \fi_mul_i 1177 Slices 159.388 MHz 14.83 MHz et 18.54 MHz

Tableau 4.2 : Récapitulation des résultats de synthèse

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 81/99

 70Co nc lusion e t

4.4.  CONCLUSION 

La phase de validation de l’implémentation est une phase importante et demande beaucoup

  plus de temps que les autres phases du travail. Elle permet de détecter et de corriger les

erreurs grâce à la simulation RTL.

Dans ce dernier chapitre nous avons simulé le fonctionnement des blocs constituants

l’émetteur et le récepteur BFDM implémentés, cette simulation a permis de confirmer la

validité du code implémenté. En deuxième lieu, nous avons présenté le résultat de synthèse

des différents étages de l’émetteur/récepteur ; cela nous a mené à conclure qu’il reste encore à

optimiser le code de certains composants du bloc filtrage pour obtenir un émetteur BFDM

synthétisable sur FPGA et pareillement pour le récepteur.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 82/99

 71Co nc lusion e t

Conclusion et Perspectives

Dans le présent mémoire, nous avons commencé par étudier les techniques de modulation

OFDM/BFDM, leur principe, la méthode de leur implantation numérique et les limites de la

modulation OFDM conventionnelle. Nous avons ensuite élaboré dans le deuxième chapitre la

conception de notre système BFDM, à savoir l’émetteur et le récepteur, en détaillant les

différents étages qui les constituent. Le troisième chapitre a été consacré à la présentation de

l’implémentation réalisée. Enfin, grâce à la simulation RTL effectuée avec l’outil ModelSim,

nous avons observé le fonctionnement des composants de l’émetteur et du récepteur dans le

 but de valider le code VHDL écrit. La synthèse de ces composants a révélé la présence de

défauts au niveau du code de deux composants du bloc filtrage. Ces codes restent donc à

optimiser pour pouvoir les synthétiser sur FPGA.

Le projet d’implantation du système BFDM ne s’arrête donc pas là. Les prochaines étapes

seraient d’optimiser le code de l’étage de filtrage et d’implémenter les blocs responsables de

l’estimation du canal, de l’égalisation fréquentielle et de la synchronisation temporelle. Ainsi

nous obtiendrons un système complet capable de concurrencer et de devancer les solutions de

télécommunication présents sur le marché actuel des TIC.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 83/99

 72

 Bibliographie

[1] G. BAUDOIN, Radiocommunications numériques, Tome 1 : Principes, modélisation et

simulation, Dunod Electronique, 2002.

[2] J.H. STOTT, « The how and why of COFDM », EBU Technical Review, 1998.

[3] B. ESCRIG «Communications Numériques, cours», ENSEIRB, Septembre 2005.

[4] N.Debbabi, M.Siala and H.Boujemâa, « Optimization of the OFDM prototype waveform

for highly time and frequency dispersive channels through a maximization of the SIR. »,

Sup'Com, Tunis, 2005.

[5] I.NASRI, « Etude des performances des systèmes OFDM/BFDM avec formes d'onde

optimisées dans le cadre de canaux radio-mobiles sélectifs en temps et en fréquence. »,

Rapport de Mastère, Ecole Polytechnique de Tunisie, 2007.

[6] M. Siala, « Optimisation de la forme d'onde d'un système OFDM. », Rapport interne

Smart-Waves, Sup'Com, Tunis, 2005.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 84/99

 73

[7] D.SCHAFHUBER, G.MATZ et F.HLWATSCH, « Pulse-shaping OFDM/BFDM Systems

for Time-Varying Channels: ISI/ICI analysis, Optimal Pulse Design and Efficient

Implementation», IEEE PIMRC, 2002.

[8] Xilinx LogiCORE, « Fast Fourier Transform », Data Sheet of the CORE : XFFT V3.1,

2004.

[9] Référence web : Assistance en ligne, http://www.xilinx.com/.

[10] IEEE Std 802.16e, Amendment and Corrigendum to IEEE Std 802.16-2004/Cor-2005.

[11] A.Pedroni, « Circuit Design With VHDL », Volnei E-Book, 2004.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 85/99

 74Annex

 Annexe A : Caractérisation de

l’environnement Radio-

 mobile

Généralement, la propagation en environnement radio-mobile est perturbée par trois types de

variations : grande, moyenne et petite échelle. Ces variations sont dues à des mécanismes de

  base qui affectent la propagation du signal en environnement radio-mobile comme la

réflexion et la diffusion.

1.  LES VARIATIONS A GRANDE ET MOYENNE ECHELLE  

Les variations à grande et moyenne échelle se manifestent par l’affaiblissement de parcours et

les fluctuations lentes du signal autour de la moyenne. Il est exprimé par l'équation a1.1

Où d > d0 et d0 est une distance de référence, sa valeur est variable en fonction du type de

l’environnement étudié : macro cellule, micro cellule, pico cellule, la valeur de n dépend de la

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 86/99

 75Annex

fréquence, de la hauteur de l’antenne et de l’environnement de propagation. Dans l’espace

libre, n est généralement égal à deux.

Et enfin, Xσ est une variable aléatoire gaussienne de moyenne nulle avec un écart type égal à

σ.

2.  LES VARIATIONS A PETITE ECHELLE 

Les variations à petite échelle réfèrent aux changements de l’amplitude et de la phase du

signal reçu causés par des petites variations (de l’ordre de la longueur d'onde). Les variations

à petite échelle se manifestent de deux manières : la dispersion du signal dans le temps et

l’aspect changeant du canal au cours du temps. En ce qui concerne la dispersion du signal, on

distingue entre canal sélectif en fréquence et non sélectif en fréquence. Pour l’aspect

changeant du canal au cours du temps, on distingue entre fading rapide et fading lent.

3.  MODELE DE CANAL  

Pour caractériser le canal radio-mobile, on peut utiliser deux modèles de canaux :

- canal invariant dans le temps modèle statique.

- canal variable dans le temps modèle dynamique.

3.1.  MODELE STATIQUE DU CANAL RADIO-MOBILE 

La réponse impulsionnelle d’un canal multi-trajets est donnée par l'équation a1.2

Où L est le nombre de trajets, τl est le délai du trajet l, αl son amplitude et θl sa phase.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 87/99

 76Annex

 

On définit le délai maximum Tm : le retard que met le signal qui parcourt le chemin le plus

long par rapport à celui qui parcourt le chemin le plus court. En comparant Tm et le temps

symbole Ts, on pourra dire qu'il s'agit d'un canal sélectif en fréquence ou bien le canal est à

fading plat. Donc deux cas se présentent :

- Tm > Ts : le canal est dit sélectif en fréquence ce qui donne lieu à des interférences entre

symboles (IES).

- Tm < Ts : le canal est considéré dans ce cas à fading plat, c'est-à-dire que les copies d'un

symbole transmis et qui parcourent différents chemins arrivent tous durant la période

symbole. Dans ce cas là, on n'a pas d'IES.

On définit également la bande de cohérence Bc comme la bande de fréquence pour la quelle le

canal présente une réponse constante

Soit Bs = 1/Ts la bande occupée par le signal utile, on dit que :

•  le canal est sélectif en fréquence si Bs << Bc .

•  le canal est non sélectif en fréquence ou à fading plat (frequency non selective) si B s>>

Bc.

Pour éviter l’IES induite par le canal, le canal doit montrer un évanouissement plat en

assurant que Bc << 1/Ts.

3.2.  MODELE DYNAMIQUE DU CANAL RADIO-MOBILE 

Passons maintenant à une autre propriété du canal radio-mobile; à cause du mouvement du

récepteur par rapport à l’émetteur qui entraîne le changement des parcours de propagation du

signal, le canal est aperçu par le récepteur comme un canal variable au cours du temps. Ainsi,

la réponse impulsionnelle du canal sera modélisée par l’expression :

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 88/99

 77Annex

 

Afin de caractériser l'évolution temporelle du canal, on définira deux paramètres qui sont

l'étalement Doppler et le temps de cohérence.

Supposons qu'un signal est émis à la fréquence f e. A cause de la mobilité du récepteur, il sera

reçu à la fréquence f r = f e + f d, où f d est le décalage Doppler défini par :

Avec v, f e, c et θd sont respectivement la vitesse du mobile, la fréquence du signal émis, la

célérité de la lumière et l’angle d’arrivée entre l’onde incidente et le vecteur vitesse du

mobile.

Donc, l'étalement Doppler ou la bande Doppler est donné par l'équation (a1.5)

Un canal est considéré à fading rapide si la bande occupée par le signal Bs est inférieure à la

fréquence Doppler. Inversement, un canal est à fading lent si Bs> f d.

Tout comme la bande de cohérence, on définit le temps de cohérence T c , qui caractérise la

dispersion fréquentielle du canal. Cette valeur est la durée pendant laquelle la réponse

impulsionnelle du canal peut être considérée comme constante ou stationnaire. Ce paramètre

est crucial dans la modélisation d’un système de communication radio-mobile. En effet, il

détermine la durée pendant laquelle l’estimation du canal est toujours acceptable. Si la durée

de la transmission dépasse le temps de cohérence, il est nécessaire de ré-éstimer le canal.

Le mécanisme de rapidité des évanouissements du canal induit une classification de canaux en

deux types: canaux à fading rapide et d’autres à fading lent. Le terme fading rapide est utilisé

 pour qualifier les canaux pour lesquels Tc < Ts.

Un canal est à évanouissement lent lorsque Tc > Ts. Ici, la durée pendant laquelle le canal se

comporte de manière corrélée est longue en comparaison à la durée symbole. Dans ce cas, le

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 89/99

 78Annex

canal peut rester invariant durant la période de transmission d’un ou de plusieurs symboles

successifs.

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 90/99

 79Annex

 

 Annexe B : Le CORE XFFT 

 de Xilinx

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 91/99

 80Annex

 

Figure : les broches du CORE XFFT

Nom Largeur Direction Description

XN_RE 8 In Données, partie réelle

XN_IM 8 In Données, partie imaginaire

START 1 In Début du calcul, actif niveau haut

UNLOAD 1 In Pas nécessaire dans le cas

Pipelined/Streaming IO

NFFT 5 In Nombre de porteuses en puissance de 2.

Dans notre cas c’est 10

NFFT_WE 1 In Validation de NFFT

FWD_INV 1 In Fonctionnement FFT ou IFFT

FWD_INV_WE 1 In Validation de FWD_INV

SCALE_SCH 2*E(NFFT/2) In Programme de troncature, la séquence

convenable pour l’FFT de taille 1024 est[1010101011]

SCALE_SCH_WE 1 In Validation de SCALE_SCH

SCLR 1 In Reset synchrone

CE 1 In Validation de CLK 

CLK 1 In Signal horloge

XK_RE[(B-1):0] 8 Out Sortie calculée, composante réelle

XK_IM[(B-1):0] 8 Out Sortie calculée, composante imaginaire

XN_INDEX 10 Out Index de l’entrée

XK_INDEX 10 Out Index de la sortie

RFD 1 Out Ready for data

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 92/99

 81Annex

BUSY 1 Out Indique que le core est entrain de calculer 

la transformée

DV 1 Out Indique que la sortie est valide

EDONE 1 Out Précède DONE d’une période CLK.

DONE 1 Out Indique le début et la fin d’un bloc calculéà la sortie du core

BLK_EXP 5 Out Lorsqu’on travaille avec virgule flottante

OVFLO 1 Out Indique la présence d’un dépassement

Tableau B.1 : Résumé des broches du core XFFT

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 93/99

 82Annex

 

 Annexe C : Rapports de

 synthèse

MAPPING Project Status 

Project File:  mapping.ise Current State:  Programming File Generated

Module Name:  mapping•  Errors: 

Target Device:  xc4vlx15-12sf363•  Warnings: 

Product Version:  ISE, 8.1i•  Updated: 

mar. 12. juin 12:28:54 2007

Device Utilization Summary 

Logic Utilization  Used Available Utilization  Note(s)

  Number of Slice Flip Flops 9 12,288 1%

  Number of 4 input LUTs 12 12,288 1%

Logic Distribution 

  Number of occupied Slices 7 6,144 1%  Number of Slices containing only related logic 7 7 100%

  Number of Slices containing unrelated logic 0 7 0%

Total Number of 4 input LUTs  12 12,288 1%

  Number of bonded IOBs 22 240 9%

  Number of BUFG/BUFGCTRLs 1 32 3%

  Number used as BUFGs 1

  Number used as BUFGCTRLs 0

Total equivalent gate count for design  160

Additional JTAG gate count for IOBs 1,056Tableau C.1 : Synthèse du bloc « Mapping »

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 94/99

 83Annex

 

DEMAPPING Project Status 

Project File:  demapping.ise Current State:  Placed and Routed

Module Name:  demapping•

  Errors:   No Errors

Target Device:  xc4vlx15-12sf363•  Warnings: 

5 Warnings (5 new, 0 filtered)

Product Version:  ISE, 8.1i•  Updated: 

mar. 12. juin 12:34:29 2007

Device Utilization Summary 

Logic Utilization  Used Available Utilization  Note(s)

  Number of Slice Flip Flops 2 12,288 1%

  Number of 4 input LUTs 3 12,288 1%

Logic Distribution 

  Number of occupied Slices 2 6,144 1%

  Number of Slices containing only related logic 2 2 100%

  Number of Slices containing unrelated logic 0 2 0%

Total Number of 4 input LUTs  3 12,288 1%

  Number of bonded IOBs 9 240 3%

  Number of BUFG/BUFGCTRLs 1 32 3%

  Number used as BUFGs 1

  Number used as BUFGCTRLs 0

Total equivalent gate count for design  53

Additional JTAG gate count for IOBs 432

Tableau C.2 : Synthèse du bloc « Démapping »

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 95/99

 84Annex

 

INSERTION Project Status 

Project File:  insertion.ise Current State:  Programming File Generated

Module Name:  read_insert•  Errors: 

 No Errors

Target Device:  xc4vlx15-12sf363•  Warnings: 

1 Warning

Product Version:  ISE, 8.1i•  Updated: 

mer. 13. juin 00:58:17 2007

Device Utilization Summary 

Logic Utilization  Used Available Utilization  Note(s)  Number of Slice Flip Flops 41 12,288 1%

  Number of 4 input LUTs 100 12,288 1%

Logic Distribution 

  Number of occupied Slices 64 6,144 1%

  Number of Slices containing only related logic 64 64 100%

  Number of Slices containing unrelated logic 0 64 0%

Total Number 4 input LUTs  101 12,288 1%

  Number used as logic 100

  Number used as a route-thru 1

  Number of bonded IOBs 47 240 19%

  Number of BUFG/BUFGCTRLs 2 32 6%

  Number used as BUFGs 2

  Number used as BUFGCTRLs 0

  Number of FIFO16/RAMB16s 2 48 4%

  Number used as FIFO16s 0

  Number used as RAMB16s 2

Total equivalent gate count for design  1,070

Additional JTAG gate count for IOBs 2,256

Tableau C.3 : Synthèse du bloc « Sélection des porteuses et insertion des SP »

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 96/99

 85Annex

 

EXTRACTION Project Status 

Project File:  extraction.ise Current State:  Programming File Generated

Module Name:  read_extract•  Errors: 

 No Errors

Target Device:  xc4vlx15-12sf363•  Warnings: 

43 Warnings

Product Version:  ISE, 8.1i•  Updated: 

mer. 13. juin 00:53:49 2007

Device Utilization Summary 

Logic Utilization  Used Available Utilization  Note(s)  Number of Slice Flip Flops 61 12,288 1%

  Number of 4 input LUTs 289 12,288 2%

Logic Distribution 

  Number of occupied Slices 160 6,144 2%

  Number of Slices containing only related logic 160 160 100%

  Number of Slices containing unrelated logic 0 160 0%

Total Number of 4 input LUTs  289 12,288 2%

  Number of bonded IOBs 82 240 34%

  Number of BUFG/BUFGCTRLs 3 32 9%  Number used as BUFGs 3

  Number used as BUFGCTRLs 0

  Number of FIFO16/RAMB16s 4 48 8%

  Number used as FIFO16s 0

  Number used as RAMB16s 4

Total equivalent gate count for design  2,520

Additional JTAG gate count for IOBs 3,936

Tableau C.4 : Synthèse du bloc « Sélection des porteuses et extraction des SP »

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 97/99

 86Annex

 

CLK_GENERATOR Project Status 

Project File:  clk_generator.ise Current State:  Programming File Generated

Module Name:  clk_gen•

  Errors:   No Errors

Target Device:  xc4vlx15-12sf363•  Warnings: 

2 Warnings

Product Version:  ISE, 8.1i•  Updated: 

mar. 12. juin 12:27:59 2007

Device Utilization Summary 

Logic Utilization  Used Available Utilization  Note(s)

  Number of Slice Flip Flops 24 12,288 1%

  Number of 4 input LUTs 39 12,288 1%

Logic Distribution 

  Number of occupied Slices 21 6,144 1%

  Number of Slices containing only related logic 21 21 100%

  Number of Slices containing unrelated logic 0 21 0%

Total Number of 4 input LUTs  39 12,288 1%

  Number of bonded IOBs 6 240 2%

  Number of BUFG/BUFGCTRLs 1 32 3%

  Number used as BUFGs 1

  Number used as BUFGCTRLs 0

Total equivalent gate count for design  432

Additional JTAG gate count for IOBs 288

Tableau C.5 : Synthèse du bloc « Clock generator »

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 98/99

 87Annex

 

SYNTHESE DES COMPOSANTS DU BLOC FILTRAGE (1)

FILTRAGE Project Status 

Project File:  filtrage.ise Current State:  Programming File Generated

Module Name:  adress_generator •  Errors: 

 No Errors

Target Device:  xc4vlx15-12sf363•  Warnings: 

21 Warnings (0 new, 0 filtered)

Product Version:  ISE, 8.1i

•  Updated: 

mer. 13. juin 14:43:24 2007

Device Utilization Summary 

Logic Utilization  Used Available Utilization  Note(s)

  Number of Slice Flip Flops 63 12,288 1%

  Number of 4 input LUTs 101 12,288 1%

Logic Distribution 

  Number of occupied Slices 83 6,144 1%

  Number of Slices containing only related logic 83 83 100%

  Number of Slices containing unrelated logic 0 83 0%

Total Number 4 input LUTs  134 12,288 1%

  Number used as logic 101

  Number used as a route-thru 33

  Number of bonded IOBs 26 240 10%

  Number of BUFG/BUFGCTRLs 1 32 3%

  Number used as BUFGs 1

  Number used as BUFGCTRLs 0

Total equivalent gate count for design  1,625

Additional JTAG gate count for IOBs 1,248

Tableau C.6 : Synthèse du composant « address_generator »

5/12/2018 1abed Slim - slidepdf.com

http://slidepdf.com/reader/full/1abed-slim 99/99

 88Annex

 

SYNTHESE DES COMPOSANTS DU BLOC FILTRAGE (2)

FILTRAGE Project Status 

Project File:  filtrage.ise Current State:  Placed and Routed

Module Name:  fi_mul_i•  Errors: 

 No Errors

Target Device:  xc4vlx15-12sf363•  Warnings: 

2 Warnings (2 new, 0 filtered)

Product Version:  ISE, 8.1i•  Updated: 

mer. 13. juin 16:11:10 2007

Device Utilization Summary 

Logic Utilization  Used  Available Utilization  Note(s)

  Number of Slice Flip Flops 329 12,288 2%

  Number of 4 input LUTs 1,686 12,288 13%

Logic Distribution 

  Number of occupied Slices 1,177 6,144 19%

  Number of Slices containing only related logic 1,177 1,177 100%

  Number of Slices containing unrelated logic 0 1,177 0%

Total Number 4 input LUTs  1,708 12,288 13%

  Number used as logic 1,686

  Number used as a route-thru 9

  Number used as Shift registers 13

  Number of bonded IOBs 84 240 35%

  Number of BUFG/BUFGCTRLs 1 32 3%

  Number used as BUFGs 1

  Number used as BUFGCTRLs 0

  Number of DSP48s 2 32 6%

Total equivalent gate count for design  14,914

Additional JTAG gate count for IOBs 4,032

Tableau C.7 : Synthèse du composant « fi_mul_i »