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
    • Invite by email
      Invitee

      This note has no invitees

    • 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
    • Note Insights
    • 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 Versions and GitHub Sync Note Insights Sharing URL Help
Menu
Options
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
  • Invite by email
    Invitee

    This note has no invitees

  • 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