2022-04-26 10:36:36 +02:00
\documentclass [a4paper,french,12pt] { article}
2022-05-02 20:17:11 +02:00
\title { Communications Numériques --- TP}
2022-04-26 10:36:36 +02:00
\author { Adam BELGHITH --- Tunui FRANKEN}
\date { Dernière compilation~: \today { } à \currenttime }
2022-05-07 16:07:19 +02:00
\usepackage { styles}
2022-11-10 13:24:34 +01:00
\usepackage { float}
2022-04-26 10:36:36 +02:00
\begin { document}
\maketitle
2022-05-02 11:20:12 +02:00
\clearpage
\tableofcontents
\clearpage
2022-04-26 10:36:36 +02:00
2022-05-02 19:28:06 +02:00
\setcounter { section} { 2}
2022-04-26 10:36:36 +02:00
\section { Transmission en bande de base, codage de voix}
2022-05-02 19:28:06 +02:00
\setcounter { subsection} { 1}
2022-04-26 10:36:36 +02:00
\subsection { Signal codé à identifier}
2022-05-02 11:20:12 +02:00
\begin { center}
2022-05-02 20:13:56 +02:00
\includegraphics [width=0.6\linewidth] { ./img/chronogramme_ nrz.png}
2022-05-02 11:20:12 +02:00
\end { center}
2022-05-02 20:13:56 +02:00
\emph { Étudier le chronogramme et déterminer~:}
2022-04-26 10:36:36 +02:00
2022-05-02 11:20:12 +02:00
\begin { enumerate}
2022-04-26 10:36:36 +02:00
2022-05-02 20:13:56 +02:00
\item \emph { Le type de codage}
2022-04-26 10:36:36 +02:00
2022-05-02 11:20:12 +02:00
Le codage utilisé est un codage NRZ\@ .
2022-05-02 19:28:06 +02:00
À chaque valeur que prend le chronogramme correspond une valeur issue du tableau de codage.
2022-04-26 10:36:36 +02:00
2022-05-02 20:13:56 +02:00
\item \emph { La valence}
2022-04-26 10:36:36 +02:00
2022-05-02 11:20:12 +02:00
Pour cette partie, nous avons défini la valence à 8.
Il y a donc 8 valeurs binaires possibles.
2022-05-02 20:13:56 +02:00
\item \emph { Le débit symbole (débit brut)}
2022-04-26 10:36:36 +02:00
2022-05-02 11:20:12 +02:00
Le diagramme affiche 12 symboles sur une période de 1 ms, ce qui correspond à un débit symbole de 12000 symboles/s (12kbauds).
2022-05-02 20:13:56 +02:00
\item \emph { Comparer le spectre obtenu et le spectre théorique.}
2022-04-26 10:36:36 +02:00
2022-05-02 11:20:12 +02:00
\begin { center}
\includegraphics [width=\linewidth] { ./img/spectre_ nrz_ theorique.png}
2022-05-02 13:31:31 +02:00
\includegraphics [width=0.49\linewidth] { ./img/spectre_ nrz.png}
\includegraphics [width=0.49\linewidth] { ./img/spectre_ nrz_ log.png}
2022-05-02 11:20:12 +02:00
\end { center}
Le spectre obtenu ressemble bien au spectre théorique~: c'est un sinus cardinal.
L'échelle logarithmique montre plus clairement les retours à 0 tous les $ nf = 12000 $ .
\end { enumerate}
\subsection { Signal RZ}
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 11:20:12 +02:00
Afin de créer un signal RZ il faut modifier le code du script \texttt { codage\_ enligne.m} ~:
\begin { itemize}
\item La variable \texttt { typecodage} doit être mise à RZ
\item La valence M = 2
\item Le formant g0T doit être modifié en remplaçant valeur à modifier par la valeur adéquate.
La tension +V est déterminée dans le script et vaut 1.
2022-04-26 10:36:36 +02:00
\end { itemize}
2022-05-02 20:13:56 +02:00
}
2022-04-26 10:36:36 +02:00
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 11:20:12 +02:00
Exécuter \texttt { codage\_ enligne.m} et observer le chronogramme et le spectre.
Deux spectres sont tracés~: l’ un avec une échelle linéaire et l’ autre avec une échelle logarithmique.
2022-05-02 20:13:56 +02:00
}
2022-05-02 11:20:12 +02:00
\begin { center}
2022-05-02 13:31:31 +02:00
\includegraphics [width=0.49\linewidth] { ./img/spectre_ rz.png}
\includegraphics [width=0.49\linewidth] { ./img/spectre_ rz_ log.png}
2022-05-02 20:13:56 +02:00
\includegraphics [width=0.49\linewidth] { ./img/chronogramme_ rz.png}
2022-05-02 11:20:12 +02:00
\end { center}
\begin { enumerate}
2022-05-02 20:13:56 +02:00
\item \emph { Lequel des deux est le plus adapté~?}
2022-05-02 11:20:12 +02:00
L'échelle logarithmique est la plus adaptée, en effet l'échelle linéaire n'affiche aucune valeur exploitable.
2022-05-02 20:13:56 +02:00
\item \emph { Quel avantage présente le code RZ~?}
2022-05-02 11:20:12 +02:00
2022-05-02 19:49:24 +02:00
Le code RZ présente l'avantage de restituer son horloge, au détriment d'une bande passante 2 fois plus large que le NRZ\@ .
2022-05-02 11:20:12 +02:00
\end { enumerate}
\subsection { Code bi-phasé}
2022-05-02 20:13:56 +02:00
\emph { Il faut, ici encore, modifier le script \texttt { codage\_ enligne.m} pour tracer le code bi-phasé.}
2022-05-02 11:20:12 +02:00
\begin { enumerate}
2022-05-02 20:13:56 +02:00
\item \emph { Effectuer les modifications nécessaires.}
2022-05-02 11:20:12 +02:00
2022-05-02 20:13:56 +02:00
\item \emph { Observer et commenter le spectre du signal codé.}
2022-05-02 11:20:12 +02:00
\begin { center}
2022-05-02 13:31:31 +02:00
\includegraphics [width=0.49\linewidth] { ./img/spectre_ biphase.png}
\includegraphics [width=0.49\linewidth] { ./img/spectre_ biphase_ log.png}
2022-05-02 11:20:12 +02:00
\end { center}
L'occupation spectrale est plus élevée.
Sur l'échelle logarithmique, nous voyons les retours à zéro deux foix moins fréquents que pour le code NRZ\@ .
2022-05-02 20:13:56 +02:00
\item \emph { En observant le chronogramme quel avantage possède le code bi-phasé~?}
2022-05-02 11:20:12 +02:00
\begin { center}
2022-05-02 13:31:31 +02:00
\includegraphics [width=0.8\linewidth] { ./img/chronogramme_ biphase.png}
2022-05-02 11:20:12 +02:00
\end { center}
Le chronogramme montre une tension moyenne à 0.
Il y a autant de valeurs pour chaque pôle.
On peut aussi noter que ce code restitue l'horloge.
\end { enumerate}
\subsection { Transmission sur un canal bruité et décodage}
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 19:28:06 +02:00
Exécuter le script \texttt { FINAL} qui permet de générer le signal codé, le bruit, modélisation du canal et transmission et enfin le décodage.
Le signal réceptionné et décodé est le vecteur \texttt { ae} .
Attribuer les valeurs aux variables~: Nfreq = 1, typecode = Aidentifier du script \texttt { codage\_ enligne.m} .
Exécuter \texttt { FINAL} pour $ M = 8 $ puis $ M = 2 $ et~:
2022-05-02 20:13:56 +02:00
}
2022-05-02 19:28:06 +02:00
\begin { itemize}
2022-05-02 20:13:56 +02:00
\item \emph { Relever la valeur pour chacun des deux cas de Peb et de Pes respectivement la probabilité d’ erreur binaire et la probabilité d’ erreur par symbole.}
\item \emph { Comparer ces valeurs suivant la valeur de M.}
2022-05-02 19:28:06 +02:00
\end { itemize}
2022-05-02 20:13:56 +02:00
\emph { Vérifier que la suite de symboles reconstruite est la même que celle émise par la source.}
2022-05-02 19:28:06 +02:00
$ M = 8 $ ~:
\includegraphics [width=0.3\linewidth] { ./img/prob_ err_ m8.png}
\hfill
$ M = 2 $ ~:
2022-05-02 20:13:56 +02:00
\includegraphics [width=0.35\linewidth] { ./img/prob_ err_ m2.png}
2022-05-02 19:28:06 +02:00
La probabilité d'erreur est largement supérieure pour $ M = 8 $ .
Étant donné que $ \mathrm { Peb } = \frac { \mathrm { Pes } } { \log _ 2 ( M ) } $ , pour $ M = 8 $ nous avons bien $ \mathrm { Pes } = \mathrm { Peb } \times 3 $ .
2022-05-02 13:31:31 +02:00
2022-05-02 20:13:56 +02:00
La différence entre $ M = 8 $ et $ M = 2 $ est cohérente car comme le montrent les deux figures qui suivent, les valeurs de seuil qui déterminent chaque valeur de symbole sont plus rapprochées avec $ M = 8 $ , donc plus sujettes à être franchies à cause du bruit.
2022-05-02 19:49:24 +02:00
\begin { center}
\includegraphics [width=0.49\linewidth] { ./img/nrz_ m2.png}
\includegraphics [width=0.49\linewidth] { ./img/nrz_ m8.png}
\end { center}
2022-05-02 11:20:12 +02:00
\section { Transmission en bande transposée, modulation numérique}
\subsection { Modulation QAM}
2022-05-02 20:13:56 +02:00
\emph { L’ expression d’ un signal modulé QAM est~:}
2022-05-02 11:20:12 +02:00
\begin { equation*}
s(t) = I(t)\cdot \cos (\omega _ 0 t) - Q(t)\cdot \sin (\omega _ 0 t) = \mathrm { Re} ((I(t) + \mathrm { jQ} (t))\cdot e^ { j\omega _ 0 t} ).
\end { equation*}
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 11:20:12 +02:00
$ I ( t ) $ peut prendre $ M _ I $ valeurs et $ Q ( t ) $ peut prendre $ M _ Q $ valeurs.
La valence de la modulation QAM est $ M = M _ I M _ Q $ .
2022-05-02 20:13:56 +02:00
}
2022-05-02 11:20:12 +02:00
\subsubsection { Création du signal modulé sous MATLAB}
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 11:20:12 +02:00
La fonction \texttt { qammodHF} permet de créer le vecteur \texttt { s\_ 0\_ NT} représentant le signal modulé pour une séquence binaire à transmettre.
2022-05-02 20:13:56 +02:00
}
2022-05-02 11:20:12 +02:00
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 11:20:12 +02:00
La fonction \texttt { randi} permet de créer une séquence d’ entiers aléatoires.
Elle permettra de créer la séquence binaire à moduler.
2022-05-02 20:13:56 +02:00
}
2022-05-02 11:20:12 +02:00
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 11:20:12 +02:00
Dans cette partie les variables sont~: fréquence porteuse $ f _ 0 = 20 \mathrm { kHz } , R = 1 \mathrm { kHz } , M = 32 $ et la fréquence d’ échantillonnage $ f _ { esimul } = 1 \mathrm { MHz } $ .
2022-05-02 20:13:56 +02:00
}
2022-05-02 11:20:12 +02:00
\begin { enumerate}
2022-05-02 20:13:56 +02:00
\item \emph { Compléter le script \texttt { signal\_ qam.m} permettant de calculer le modulé et de le tracer en fonction du temps.}
2022-05-02 15:10:38 +02:00
\begin { center}
2022-05-02 20:13:56 +02:00
\includegraphics [width=0.6\linewidth] { ./img/signal_ qam.png}
2022-05-02 15:10:38 +02:00
\end { center}
2022-05-02 20:13:56 +02:00
\item \emph { Combien de bits codent chaque symbole~?}
2022-05-02 11:20:12 +02:00
2022-05-02 15:10:38 +02:00
Cinq bits sont nécessaires pour coder chaque symbole.
En effet, $ 32 = 2 ^ 5 $ .
Chaque symbole nécessite donc $ \log _ 2 ( 32 ) = 5 $ bits.
2022-05-02 20:13:56 +02:00
\item \emph { Combien de période $ T _ 0 $ de la porteuse il y a par durée de symbole~?}
2022-05-02 11:20:12 +02:00
2022-05-02 15:10:38 +02:00
$ \frac { f _ 0 } { R } = \frac { 20000 } { 1000 } = 20 $ .
Il y a donc 20 périodes $ T _ 0 $ de la porteuse par symbole.
2022-05-02 20:13:56 +02:00
\item \emph { Quelle est la taille du vecteur temps de simulation~: \texttt { t\_ 0\_ NT} ~?
Quelle est donc la durée de la transmission nT~?}
2022-05-02 11:20:12 +02:00
2022-05-02 15:10:38 +02:00
En utilisant \texttt { length(t\_ 0\_ NT)} , on trouve la taille du vecteur à 50000 éléments.
Ces 50000 éléments se comptent en kHz, ce qui nous donne une durée de transmission de 50ms.
2022-05-02 20:13:56 +02:00
\item \emph { Combien de symboles sont transmis pendant la dure de transmission nT~?}
2022-05-02 11:20:12 +02:00
2022-05-02 15:10:38 +02:00
50 symboles sont transmis~: $ \frac { 50000 } { 1000 } = 50 = N $ .
2022-05-02 11:20:12 +02:00
\end { enumerate}
2022-05-02 15:10:38 +02:00
\subsubsection { Constellation bruitée}
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 19:28:06 +02:00
Le script constellation bruit permet d’ observer la constellation bruitée d’ une modulation QAM\@ .
Ici la valence sera $ M = 4 $ .
Ce script fait appel à différentes fonctions~:
2022-05-02 20:13:56 +02:00
}
2022-05-02 19:28:06 +02:00
\begin { itemize}
2022-05-02 20:13:56 +02:00
\item \emph { \texttt { qcod} qui permet d’ écrire un signal complexe $ e ^ { j \theta } $ sous la forme $ X + jY $ et de module unitaire}
\item \emph { \texttt { canal\_ awgn} qui modélise le canal}
\item \emph { \texttt { demodHF} dont la sortie est l'amplitude du signal \texttt { s\_ 0\_ NT} en complexe~: \texttt { y\_ 1\_ N} .}
2022-05-02 19:28:06 +02:00
\end { itemize}
2022-05-02 20:13:56 +02:00
\emph { Exécuter le script \texttt { constellation\_ bruit} et observer la constellation de la modulation QAM\@ .}
2022-05-02 19:28:06 +02:00
\begin { center}
\includegraphics [width=0.6\linewidth] { ./img/constellation_ bruitee.png}
\end { center}
2022-05-02 19:49:24 +02:00
On observe le décalage de phase pour chaque symbole, ainsi que l'influence du bruit qui rend les tâches plus larges.
Toutefois, le bruit est trop faible pour générer de l'erreur.
2022-05-02 19:28:06 +02:00
\subsection { Modulation PSK}
\subsubsection { Création du signal modulé sous MATLAB}
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 19:28:06 +02:00
Dans cette partie les variables sont~: fréquence porteuse $ f _ 0 = 20 \mathrm { kHz } , R = 1 \mathrm { kHz } , M = 4 , 8 $ et la fréquence d’ échantillonnage $ f _ { esimul } = 1 \mathrm { MHz } $ .
2022-05-02 20:13:56 +02:00
}
2022-05-02 19:28:06 +02:00
2022-05-02 20:13:56 +02:00
\emph { %
2022-05-02 19:28:06 +02:00
La fonction \texttt { pskmodHF} utilise la fonction \texttt { pcod} qui permet d’ écrire un nombre complexe $ e ^ { j \theta } $ sous la forme $ X + jY $ de module unitaire.
Ainsi $ X + jY = e ^ { j \theta } $ .
Pour une modulation PSK le signal modulé est $ s ( t ) = \cos ( \omega _ 0 t + \phi ) = e ^ { j \omega _ 0 t } \cdot e ^ { j \phi } $ où $ \phi $ sont les valeurs de la modulation.
2022-05-02 20:13:56 +02:00
}
2022-05-02 19:28:06 +02:00
\begin { enumerate}
2022-05-02 20:13:56 +02:00
\item \emph { Compléter le script \texttt { signal\_ psk} qui permettra de créer et représenter le signal modulé PSK\@ .}
\item \emph { Observer le signal modulé en fonction du temps.}
2022-05-02 19:28:06 +02:00
\end { enumerate}
2022-05-02 20:13:56 +02:00
\begin { multicols} { 2}
Pour $ M = 4 $ ~: \\ \\
\includegraphics [width=\linewidth] { ./img/psk_ m4.png}
Pour $ M = 8 $ ~: \\ \\
\includegraphics [width=\linewidth] { ./img/psk_ m8.png}
\end { multicols}
2022-05-02 19:28:06 +02:00
2022-05-02 19:49:24 +02:00
On observe bien le changement de phase du signal temporel lorsque le symbole change.
2022-05-02 19:28:06 +02:00
\subsubsection { Constellation bruitée}
2022-05-02 20:13:56 +02:00
\emph { %
Afin d’ observer la constellation de la modulation PSK, modifier le script \texttt { constellation\_ bruit} .
Observer la constellation pour quelques valeurs de M.
}
2022-05-02 19:28:06 +02:00
2022-05-02 20:13:56 +02:00
\begin { multicols} { 3}
Pour $ M = 4 $ ~: \\ \\
\includegraphics [width=\linewidth] { ./img/constellation_ bruitee_ m4.png}
Pour $ M = 8 $ ~: \\ \\
\includegraphics [width=\linewidth] { ./img/constellation_ bruitee_ m8.png}
Pour $ M = 16 $ ~: \\ \\
\includegraphics [width=\linewidth] { ./img/constellation_ bruitee_ m16.png}
\end { multicols}
2022-05-02 19:28:06 +02:00
2022-05-02 20:13:56 +02:00
On remarque qu'avec $ M = 16 $ , le bruit est trop puissant et ne permet plus de distinguer clairement où sont les zones associées à chaque symbole.
2022-05-02 19:28:06 +02:00
2022-05-02 20:13:56 +02:00
La probabilité d'erreur est très grande.
2022-05-02 19:28:06 +02:00
2022-05-02 20:13:56 +02:00
Avec quelques points de $ M = 8 $ , la probabilité de d'erreur est faible.
Avec $ M = 4 $ , la probabilité d'erreur est quasi nulle
2022-05-02 19:28:06 +02:00
2022-04-26 10:36:36 +02:00
\end { document}