owned this note
owned this note
Published
Linked with GitHub
# PSC
[Moodle](https://moodle.insa-lyon.fr/course/view.php?id=4078)
[Tuto 1](https://moodle.insa-lyon.fr/pluginfile.php/254237/mod_resource/content/0/intro_OFDM_2020.pdf)
[Diapo intéressant pour certaines définitions](https://easytp.cnam.fr/alexandre/index_fichiers/support/ele207_presentation_ofdm.pdf)
###### tags : `PSC` `TP`
## Introduction : QPSK
Le sample time vaut $1\mu s$, et output 2 bits par symboles
Le débit binaire vaut 1Mb/s et le débit symbole vaut 0.5 Msymbols/s.
Le sample time à la sortie du filtre de mise en forme vaut 200ns, car le filtre de mise en forme suréchantillonne le signal (facteur 10)
Spectre en sortie du filtre d'émission : 
Spectre en sortie du filtre de réception : 
La bande occupée est de l'ordre du MHz (comme le débit symbole qui est de l'ordre du Msymbols/s)
-> On retire le bruit
Constellation avant sélection de l'échantillon idéal : 
Constellation après la sélection de l'échantillon idéal : 
## Canal de Rayleigh, canal multi-chemins
### Préliminaire : canal RF, canal bande de base
*NB : Signal RF = Signal Radio Fréquence*
**Canal de Rayleigh** => plusieurs copies du signal reçues simultanément (on néglige le retard), déphasées, avec des amplitudes différentes. Utilisé pour modéliser des réflexions locales.
**Fading** : évanouissement lorsque les amplitudes $a_i$ sont trop faibles
**Modèle Bande de base** => On décale le spectre RF vers la gauche
$\underline{h}_{BB}(t) = \sum_i \underline{a}_i \cdot e^{-j2 \pi f_c \tau_i} \cdot \delta(t-\tau_i)$
$\underline{H}_{BB}(f) = \underline{H}_{RF}(f+f_c)$
Pour un canal de Rayleigh :
- L'amplitude $a_0$ est une variable aléatoire qui suit une loi de Rayleigh
- La puissance $a_0^2$ est une variable aléatoire qui suit une loi exponentielle
- La phase $\varphi_0$ est une variable aléatoire qui suit une loi uniforme
*Configuration du bloc SISO Fading Channel*
- *Discrete path delay vector* => Retard $\tau_0$
- *Average path gain vector* => Valeur moyenne du gain (en tension) -> espérance de $a_0$ en dB
- *Max Doppler shift* => vitesse de déplacement (obstacle, émetteur ou récepteur), exprimé par un décalage max en fréquence.
$\Delta f = \frac{v}{c} f_c$
Exemple, pour un décalage maximum en fréquence de 10Hz, la vitesse de déplacement de l'objet serait de : $v=\frac{c}{f_c}\cdot 10 = 4.3 \ km/h$ ce qui est réaliste pour un piéton par exemple.
Ce paramètre permet de simuler un canal variant due à un mouvement du récepteur.
Avec des signaux arrivant déphasées et avec des amplitudes différentes, on obtient une constellation tournée et avec un rayon différent de celui dans le cas parfait.
Avec un canal de Rayleigh et un Max Doppler shift de 10Hz, on ne peut rien déduire de la constellation, qui tourne et change d'amplitude tout le temps.

### Canal multi-chemins
On ne néglige maintenant plus le retard :
$\underline{h}_{RF}(t) = \underline{a}_0 \cdot \delta(t-\tau_0) + \underline{a}_1 \cdot \delta(t-\tau_1)$
**Fading sélectif** => Evanouissement localisé en fréquence, lorsqu'on a du retard entre les réceptions
La réponse en fréquence est non constante, par exemple une racine de cosinus, qui trouve ses minimums tous les $\Delta f = \frac{1}{\tau_1}$.
$\tau_{RMS}$ est la différence de temps entre le temps d'arrivée du premier signal et du dernier significatif ([Article Wiki](https://en.wikipedia.org/wiki/Delay_spread))
Bande de cohérence : écart qui doit séparer 2 porteuses pour qu'elles soient décorrélées, calculé ici par $B_c=\frac{1}{6.78 \tau_{RMS}}$
De manière générale, tous les canaux RF sont multi-chemins. Cependant, si l'on travaille sur une bande W assez étroite pour considérer $|\underline{H}_{RF}(f)|$ alors on se trouve dans les condition d'un fading plat.
**Condition de fading plat :** $W<B_c$ ou $W << \frac{1}{\Delta\tau_{max}}$ si on ne connait pas $B_c$
:warning: **Le canal ```SISO Fading Channel``` est en pratique un filtre numérique. Pour chaque chemin, le retard $\tau_i$ doit être un multiple du sample time. C'est une contrainte d'implémentation que nous devrons avoir constamment à l'esprit pendant tout le projet** :warning:
On ajoute un chemin avec un retard d'un temps symbole ($10^{-6}$) sur le modèle. Le fading n'est pas plat, la réponse en fréquence présente deux bosses (quelqu'un a un meilleur nom ?). Le graphe est statique lorsqu'il n'y a pas d'effet Doppler (pas de mouvement), mais varie lorsqu'on ajoute des variations en fréquence (fading non plat).


#### Limite des modulations mono-porteuse
Pour corriger les problèmes de fading, on utilise l'égalisation :
- D'abord, on évalue la fonction de transfert du canal (problème d'estimation)
- Ensuite, on met en place les filtres nécessaires
Avec une bande de 20MHz, et un retard max de 100ns en indoor, quel débit en QPSK ? Pour ça, on reste en fading plat pour simplifier l'égalisation.
L'OFDM c'est super pour ça ! => Découpage de notre bande en bandes étroites où le fading est plat, et on y répartit les bits.
## Tuto 2
[Moodle](https://moodle.insa-lyon.fr/course/view.php?id=4078#section-6)
### Réponses aux questions sur les vidéos
>On considère la décomposition en série de Fourier suivante, sur un temps $T$, d'un signal $s(t)$ :
>$s(t)= \sum \underline{c_i}e^{jω_it}$ avec $ω_i=\frac{2πi}{T}$
>En partant de $s(t)$, comment peut-on retrouver le coefficient $\underline{c_1}$ ? (la réponse est donnée dans la vidéo)
Il suffit de multiplier $s(t)$ par $e^{−jω_1t}$, puis d'intégrer sur le temps $T=\frac{1}{f_1}$.
A cause de l'orthogonalité, tous les termes vont s'annuler, sauf le terme contenant $\underline{c_1}$. Celui-ci va se réduire à $\underline{c_1}T$.
Donc $\underline{c_1}=\frac{1}{T}\int_0^T s(t) e^{-j\omega_1}dt$
>Avec le schéma d'émetteur de cette vidéo, et des fréquences orthogonales, quel schéma de récepteur permettrait de récupérer les bits ?
On a $N$ termes dans $s(t)$ donc :

>Dans le schéma du modulateur multiporteuses donné à 10'10, il manque des composants entre les blocs de mapping et les mixers. Lesquels ? (si vous ne voyez pas, la réponse est dans la première vidéo)
Les $\underline{c_i}$ sont obtenus par un circuit numérique (celui qui fait le mapping) alors que les mixers sont des circuits analogiques. Il manque donc des DAC sur chaque branche.
>Dans la vidéo, on ne dit pas vraiment, finalement, ce qu'est l'avantage de l'IFFT sur le schéma précédent (avec les multiplieurs analogiques). Quel est-il selon vous ? (autrement dit : pourquoi avec le schéma de la vidéo précédente, la réalisation était-elle en pratique très difficile, voire impossible, et pourquoi est-ce tout à coup différent ?)
L'IFFT peut être implantée dans un seul circuit numérique.
>Dans le schéma final, il manque un composant. Lequel ?
Il manque un DAC tout au bout de la chaîne.
>Rappeler l'expression de $s(t)$ dans le cas des multiplieurs analogiques, avec les porteuses $e^{jω_it}$ telle qu'elle est donnée au début de la vidéo. Utiliser la condition d'orthogonalité : $f_i=i×f_1=i×\frac{1}{T_{s−OFDM}}$ et discrétiser le temps : $t=kTe=\frac{kT_{s−OFDM}}{N}$. Quelle est l'expression de $s(kTe)$ ?
En introduisant la condition d'orthogonalité :
$s(t) = \sum_{i=0}^{N-1} \underline{c_i} e^{j\omega it} = \sum_{i=0}^{N-1}\underline{c_i} e^{j\frac{2\pi i}{T}t}$
Avec $T$ le temps symbole OFDM
On discrétise le temps, afin d'avoir, pour $s(t)$, $N$ échantillons temporels par temps symbole OFDM :
$s(kT_e)=\sum_{i=0}^{N-1}\underline{c_i} e^{j\frac{2\pi i}{T}kT_e}=\sum_{i=0}^{N-1}\underline{c_i} e^{j\frac{2\pi ik}{N}}$
Avec $T_e = \frac{T}{N}$ la période d'échantillonnage.
>Quelle transformée reconnaît-on ?
C'est une IDFT (transformée discrète inverse qu'on calculera par IFFT)
>Le récepteur va récupérer $s(kTe)$. Avec quelles opérations mathématiques pourra-t-il obtenir les $\underline{c_i}$ en utilisant l'orthogonalité ? (Souvenez-vous que l'équivalent de l'intégrale en temps discret est une somme).
C'est la même chose qu'à la question 2 de la vidéo précédente. Sauf qu'en temps discret, le produit scalaire est calculé par une somme sur les $N$ échantillons temporels (donc la somme porte sur $k$ à la place de l'intégrale sur le temps $T$.
Quand on multiplie $s(kTe)$ par $e^{-j\frac{2\pi ik}{N}}$, puis qu'on somme sur $k$, tous les termes sont nuls sauf le terme contenant $\underline{c_i}$ (orthogonalité). Le calcul permettant de récupérer $\underline{c_i}$ est donc :
$\underline{c_i}=\sum_{i=0}^{N-1}s(k) e^{j\frac{2\pi ik}{N}}$
> Quelle transformée reconnaît-on en écrivant ces opérations ?
C'est une transformée de Fourier discrète (qu'on calculera par FFT)
### Emetteur OFDM sur Simulink
Construction de l'émetteur OFDM sur Simulink : on part d'une QPSK, qui donne des coefficients $c_i$. On applique après une IFFT pour obtenir des échantillons temporels.
Avant l'IFFT, on va mettre la deuxième partie du vecteur des $c_i$ avant la première, pour ne pas avoir des fréquences allant jusque $F_e$ mais en avoir entre $-\frac{F_e}{2}$ et $\frac{F_e}{2}$.
Si on met un seul coefficient c_i à 1 dans l'IFFT, on a bien une sinusoide en temporel en sortie. Après l'IFFT, sur le spectrum analyzer, on voit donc un seul lobe décalé de $\frac{i}{T_s}$

À l'inverse, si on met uniquement les coefficients $c_i$ des bords à zéro, on voit le spectre qui diminue sur les bords, avec les sous porteuses

## Le vrai début du projet : OFDM sur canal multi-chemins et synchronisation
[Moodle](https://moodle.insa-lyon.fr/course/view.php?id=4078#section-7)
### Transmission OFDM dans un canal multi-chemins
On part de la représentation du canal sous forme de fonction de transfert. En fréquentiel, $Y(f) = \frac{H(X)}{X(f)}$. Vu que le fading est plat sur la signal de sortie, $H(f)$ peut être résumé à un seul coefficient. Ce coefficient est différent pour chaque fréquence de l'OFDM, il peut être déterminé par interpolation linéaire ; l'idée est de réserver la première et la dernière fréquence (ou 2 fréquences assez écartés) de l'OFDM pour approximer le canal, et pour les canaux résultant, on estime $H(f)$ avec une interpolation linéaire.
On a un seul coeff à chaque fréquence (discret) dans des canaux OFDM séparés, le symbole va être infini en temps
Dans les canaux pilotes, on envoie un préambule connu, le préfixe cyclique.
Piste d'amélioration : passer à 128 sur l'IFFT -> Plus de canaux plus étroits, moins d'erreur.
Pour tenir le critère de bande occupée de 20MHz, on doit avoir, pour n canaux occupés et $T_{s_{OFDM}}$ le temps d'un symbole OFDM, $\frac{n}{T_{s_{OFDM}}}<20MHz$.
Après l'égalisation, les points ne sont toujours pas centrés et forment un nuage. Pour résoudre ce problème, on utilise le principe du préfixe cyclique. Pour cela, on ajoute simplement en tête des symboles temporels (après IFFT) la fin de la chaîne transmise, de manière à faire une boucle, et on les enlève à la réception. L'intuition théorique derrière est plus compliquée ; en réalité, après le canal, on n'a pas $Y[N] = X[N] \cdot H[N]$ mais $y[N] = x[N] \cdot h[N] + x[N-1] \cdot h[N-2] + x[N-3] \cdot h[N-3]...$, soit $y[n] = x[N] \ast h[N]$. Mais en discret, avec une convolution linéaire, cela ne donne pas $Y=H\cdot X$. Cette équation n'est vérifiée que pour une convolution *circulaire*, que l'on fait en ajoutant ces échantillons de la fin en début de chaîne.
Pour tester l'impact de ce préfixe, on isole un des pilotes, et l'on trace sa constellation. Le point est bien centré en utilisant le préfixe cyclique.
#### Evaluation des performances
Pour évaluer le modèle, on écrit un fichier Matlab .m qui va lancer le simulink avec différents paramètres. Ne pas oublier d'enlever les différents paramètres initiaux du modèle avant de le lancer.
### Préfixe cyclique
Il faut modifier le $T_{sOFDM}$ au global sur le projet pour que ce que l'on envoie dans le canal soit la longueur du Temps symbole + les échantillons du préfixe cyclique.
Dans notre projet : $T_{sOFDM}= \frac{N_{IFFT}+C_n}{N_{IFFT}} * T_{sOFDM}$
### Synchronisation
[Algorithme de Schmidl & Cox](https://moodle.insa-lyon.fr/pluginfile.php/143990/mod_resource/content/0/paper_scmidl-cox.pdf)
[Article utile ?](https://www.diva-portal.org/smash/get/diva2:824514/FULLTEXT01.pdf)
[Autre lien utile ?](https://dspillustrations.com/pages/posts/misc/schmidlcox-synchronization-for-ofdm.html)
$R(d+1) = R(d) + |r_{d+L}|^2 - |r_d|^2$
:warning: Attention : Avec la méthode itérative, il faut initialiser les valeurs P(0) et R(0) pour éviter les effets de bords :
$P(0) = \sum_{i=1}^{L} r_{i} \underline{r_{i}}$
$R(0) = \sum_{i=L+1}^{2L} |r_{i}|^2$
Rendu :
Au début de chaque transmission OFDM, on envoie un symbole d'entrainement qui a la particularité d'avoir deux moitiés identitiques (chaque moitié est de longueur $L$. On ajoute juste avant ce symbole un préfixe cyclique qui correspond aux derniers bits du symbole d'entrainement.

On veut ensuiter observer le rapport entre l'intercorrélation de deux fenêtres de longueur $L$ ($P(d) = \sum_{m=0}^{L-1}(r_{d+m}^* r_{d+m+L})$) et l'autocorrélation de la deuxième fenêtre ($R(d) = \sum_{m=0}^{L-1}|r_{d+m+L}|^2$) (voir schéma ci-dessous). Ce rapport atteint un maximum quand on passe le préfixe cyclique.

Avec la méthode de Schmidl & Cox, qui permet de calculer cette métrique, on obtient un plateau qui correspond à la taille du préfixe cyclique se trouvant entre chaque symbole. La méthode de Minn effectue une moyenne sur les échantillons formant le plateau. Ceci résulte en un maximum local unique qui rend la synchronisation plus fiable (plus résistante au bruit).
Nous avons donc implémenté 3 méthodes pour calculer cette métrique : Schmidl & Cox, Schmidl & Cox itérative, Minn
Ces méthodes ont été mises en place dans un script Matlab. (Schmidl & Cox itérative et Minn ont été implémentées sous Simulink également)
*NB : Pour la méthode Schmidl & Cox itérative, il faut initialiser les valeurs P(0) et R(0) pour éviter les effets de bords :
$P(0) = \sum_{i=1}^{L} r_{i} \underline{r_{i}}$
$R(0) = \sum_{i=L+1}^{2L} |r_{i}|^2$*
Maintenant que l'on sait détecter le début de chaque nouveau symbole d'entraînement, on peut regarder s'ils sont reçus en avance ou en retard. On peut alors déduire l'écart en fréquence $\Delta f$ par rapport à la fréquence d'émission.
On effectue le calcul de la phase à partir de $P(d)$ puis on déduit $\Delta f$ à partir de la formule suivante :
$\phi = \pi \cdot 2T_e \cdot L \cdot \Delta f$
En corrigeant ce décalage, on pourra éviter des interférences avec les porteuses adjacentes, selon le document de Schmidl & Cox.
# Trame vidéo
- Rappel du problème (2 minutes)
- Synchro (4 minutes)
- Egalisation (4 minutes)
- Présentation des résultats & conclusion (2 minutes)
## Rappel du problème
Dans le contexte d'une transmission radio sur un canal multichemin, nous présentons une simulation d'un récepteur qui utilise OFDM, une modulation qui diminue l'occupation spectrale, tout en restant simple à égaliser.
OFDM, pour Orthogonal Frequency Division Multiplexing, se base sur un codage sur plusieurs fréquences orthogonales entre elles.
Pour implémenter notre modèle, on peut découper le problème en 2 :
- d'un côté, la synchronisation de la fréquence en réception avec celle en émission ainsi que la synchronisation temporelle du signal
- de l'autre, l'égalisation de la constellation reçue en estimant le canal pour pouvoir compenser son effet
## Synchronisation
- Reposer le problème et pourquoi c'est important :
(0) Lors d'une transmission réelle, un émetteur et un récepteur RF réglés sur la même fréquence $f_c$ peuvent présenter un léger écart en fréquence $\Delta f$. Cet écart peut être causé par la température ambiante à laquelle se trouve l'antenne, son ancienneté ou plus simplement à la qualité du matériel. Ce décalage en fréquence $\Delta f$ change la phase du signal reçu et rend l'égalisation impossible. Il est donc nécessaire de corriger cet écart de phase. Dans un deuxième temps, nous recevons les échantillons sans savoir quand commence une trame OFDM, information nécessaire pour la partie égalisation également. On vient donc effectuer une synchronisation temporelle du signal avant d'effectuer l'égalisation.
- Présenter l'algo de Minn :
(1)Au début de chaque trame OFDM, on envoie un symbole d'entrainement qui a la particularité d'avoir deux moitiés identiques. On note L la longueur de cette moitié. Juste avant ce symbole est ajouté un préfixe cyclique correspondant aux derniers bits du symbole d'entrainement. Sur le schéma, le symbole d'entrainement est appelé Preamble.
>Insérer schéma
>
(2) Dans leur papier Schmidl & Cox proposent d'observer le rapport entre l'intercorrélation de deux fenêtres d'échantillons jointes ayant pour longueur un demi-symbole d'entraînement et l'énergie de cette deuxième fenêtre (voir schéma). Ce rapport atteint un maximum lors du passage du début de la fenêtre dans le préfixe cyclique. La métrique ainsi calculée a pour maximum un plateau de $N$ échantillons ($N$ correspondant à la longueur du préfixe cyclique). Il devient alors difficile de déterminer quel échantillon représente le début de la trame OFDM car on est en présence de plusieurs maximum. C'est la limite de cette métrique.
>La méthode de Schmidl & Cox propose d'observer le rapport entre l'intercorrélation de deux fenêtres de longueur $L$ et l'énergie de la deuxième fenêtre. Ce rapport atteint un maximum quand on passe le préfixe cyclique. Comme ce dernier comporte plusieurs échantillons, l'intercorrélation atteint un maximum avec plusieurs fenêtres qui sont représentées ici en vert. La métrique atteint ainsi un plateau de plusieurs valeurs maximales. Par conséquent, le choix d'un échantillon pour la synchronisation est ambigüe. C'est la limite de cette méthode.

(3) Dans son papier, Minn propose de moyenner la métrique de Schmidl & Cox sur $N+1$ échantillons ($N$ étant toujours la taille du préfixe cyclique). Cette méthode permet d'obtenir un unique maximum correspondant au début de la trame OFDM. On peut alors réaliser la synchronisation temporelle car on peut connaître le premier échantillon de la trame OFDM.
> Pour y remédier, Minn propose de moyenner la métrique de similarité sur une fenêtre de même longueur que le préfixe. Ce faisant, on obtient un maximum unique. représenté sur ce schéma par la courbe en pointillés fins.
>Insérer schéma minn
(4) Pour ce qui est d'estimer l'écart en fréquence $\Delta f$, Schmidl & Cox proposent dans leur papier de calculer la phase de l'intercorrélation des deux fenêtres à partir de laquelle on peut déduire l'écart en fréquence $\Delta f$. Pour corriger cet écart, on peut modéliser le signal comme une exponentielle complexe de la forme suivante : $e^{j2\pi (f_c+\Delta f)t}$. On va donc mulitplier notre signal par une autre exponentielle complexe afin d'annuler l'effet de $\Delta f$ : $e^{-j2\pi \Delta ft}$.
- Présenter notre implémentation :
(5) A partir du signal reçu (à partir d'un fichier .mat ou à partir d'un USRP), on va tout d'abord calculer la métrique de Schmidl & Cox. Pour cela on calcule $P$, l'intercorrélation entre deux fenêtres jointe de taille $L$ (avec $2L$ la longueur d'un symbole d'entrainement) et $R$, l'énergie d'une fenêtre de taille $L$. La métrique de Schmidl & Cox vaut alors le rapport des valeurs absolues au carré de ces deux éléments. Pour obtenir la métrique de Minn, Il nous suffit de moyenner la métrique précédente sur une fenêtre de longueur $N$ ($N$ est toujours la longueur du préfixe cyclique). On choisit ensuite tous les échantillons étant supérieurs à un certain seuil comme étant les maximums. Ces échantillons représentent le début de chaque trame OFDM.
(6) A partir de la phase de $P$, échantillonée à chaque début de trame (grâce à un enabled subsystem), on peut calculer $\Delta f$ pour chaque trame OFDM.
(7) On se sert ensuite de sa valeur pour créer l'exponentielle complexe qui va multiplier le signal reçu afin de le corriger. Enfin, il faut isoler chaque trame OFDM pour pouvoir réaliser le travail d'égalisation. Pour cela un créé un buffer glissant de la taille d'une trame qui est transmis lorsque le premier échantillon de ce buffer correspond au début d'une trame (ici aussi, on utilise un enabled subsystem).
> Pour obtenir la métrique M, on calcule le rapport entre deux éléments.
> Tout d'abord l'autocorrélation du symbole d'entrainement : P.
> Et ensuite l'énergie d'un demi symbole : R.
> M vaut le rapport entre le carré de la valeur absolue de P et le carré de R moyenné entre 3 echantillons. On utilise l'échantillon précédent et suivant pour appliquer Minn car le préfixe cyclique fait 3 échantillons.
> Ensuite, on estime l'écart en fréquence delta F par rapport à la fréquence d'émission.
> On utilise la formule de l'écart de phase pour en déduire :
> $\Delta f = \frac{\phi}{\pi \cdot 2T_e \cdot L}$
> Ici, Te et L sont des paramètres du système et phi peut être calculé avec le bloc Angle sous simulink.
>Insérer schéma simulink partie calcul métrique M et calcul delta F(TODO)
> - Correction du delta F :
> Une fois notre écart de fréquence calculé, on cherche à le corriger. Le signal en réception est modélisé par une exponentielle complexe présentant le décalage delta F. Pour le corriger, on le multiplie par une autre exponentielle complexe présentant le décalage opposé : -delta F.
> Ainsi on obtient un signal correctement échantilloné et on évite des interférences avec les porteuses adjacentes.
> (TODO) insérer schéma simulink partie correction deltaF
## Egalisation
- 10 Montrer une constellation non égalisée : impossible de déterminer le résultat
Une fois la synchronisation de la porteuse réalisée, le signal n'est toujours pas exploitable tel quel.
L'étape suivante est de compenser l'effet du canal sur le signal reçu. Pour cela, nous devons estimer sa valeur en chaque point.
Illustré ici, la différence entre une constellation non égalisée et une constellation égalisée à droite. Visuellement, on s'aperçoit qu'il sera plus simple de faire de la détection de symboles sur la constellation égalisée.
- 11 fading plat
L'utilisation de bandes étroites par OFDM fait que la durée symbole est plus longue que l'étalement du canal, donc son occupation spectrale est plus faible que la bande de cohérence du canal : on a donc du fading plat.
Ce fading plat pendant la durée d'un symbole simplifie beaucoup l'égalisation : nous sommes certains que le canal a une réponse en fréquence sans évanouissements pendant la durée de transmission du symbole.
- 12 Expliquer la solution avec les pilotes
Avec cette hypothèse, l'idée pour approximer le canal est est d'insérer des pilotes au milieu des données. Ces pilotes, qui codent un symbole connu, permettent de donner une approximation du canal à un instant donné. Par interpolation de ces valeurs tirées des pilotes, nous pouvons estimer le canal pour tous le reste des symboles QPSK transmis.
- 13 L'histoire des préfixes cycliques
Pour améliorer le BER, une étape consiste à insérer un préfixe cyclique avant chaque symbole, en recopiant les dernières valeurs du symbole avant celui-ci.
Du point de vue théorique, l'introduction d'un préfixe cyclique rend la matrice de canal circulante. Une fois exprimée en fréquence, cette matrice circulante est par définition diagonale et l'interférence inter-symbole est annulée.
Côté émetteur, après l'IFFT, on place le préfixe cyclique juste avant la transmission et le passage dans le canal de Rayleigh.
- 14 vue trame
-
Au final, la trame reçue comprend les symboles d'entraînement pour la synchronisation de l'horloge, puis 9 symboles OFDM, chacun précédé d'un préfixe cyclique et un pilote tous les 4 échantillons complexes.
Donc parmi les 660 échantilons reçus, seuls 423 sont effectivement des données.
- 15 sélection pratique
Dans le modèle réception, après sélection des symboles OFDM contenant des données intéressantes pour le décodage, c'est à dire sans le symbole d'entraînement et le préfixe cyclique, on peut faire l'opération de FFT pour repasser en fréquentiel. On réinverse le spectre fréquentiel, qui a été inversé à l'émission.
- 16
À partir de ça on extrait les pilotes par redimensionnement du vecteur en matrice, puis en sélectionnant sa dernière ligne contenant tous les pilotes. Cela est possible du fait de l'opération inverse à l'émission et de la position régulière des pilotes.
Ces pilotes permettent d'approximer le canal par interpolation sur le reste des valeurs reçues. Ces valeurs de canal sont normalisées puis multipliées aux échantillons reçues.
- 17
Enfin, on peut faire une opération de démodulation QPSK sur les bits contenant le message, qui sont les 44 symboles QPSK de 2 à 45, car le premier est toujours nul.
Le message ainsi décodé est converti en ASCII puis affiché.
- 18
En utilisant ces principes, la simulation donne un bit error rate d'environ 0.25% dans le modèle émetteur/récepteur avec 2 chemins et 100Hz maximum d'effet Doppler
Pour la transmission réelle, le modèle de récepteur fonctionne avec les échantillons réels et décode le message "hello!" à partir de ces échantillons récupérés, mais n'a pas pu être testé avec un USRP.
Notre modèle permet donc de comprendre et visualiser les différents éléments fonctionnels d'OFDM, procédé utilisé dans des normes de communications comme la 4G LTE ou encore le Wi-FI dans ses dernières normes.