4TC
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Help
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
# 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 : ![](https://i.imgur.com/2vqiPTR.png) Spectre en sortie du filtre de réception : ![](https://i.imgur.com/IUROlRq.png) 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 : ![](https://i.imgur.com/Nt9CP5S.png) Constellation après la sélection de l'échantillon idéal : ![](https://i.imgur.com/1WuU9q0.png) ## 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. ![](https://i.imgur.com/vr2zOoB.gif) ### 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). ![](https://i.imgur.com/zBRWiy4.png) ![](https://i.imgur.com/zXLK8DF.gif) #### 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 : ![](https://i.imgur.com/1gBg3vH.png) >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}$ ![](https://i.imgur.com/J3TaHFc.png) À 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 ![](https://i.imgur.com/QbRan4j.png) ## 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. ![](https://i.imgur.com/5zYstGs.png) 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. ![](https://i.imgur.com/armw2vm.png) 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 >![](https://i.imgur.com/5zYstGs.png) (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. ![](https://i.imgur.com/armw2vm.png) (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.

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully