295 lines
12 KiB
TeX
295 lines
12 KiB
TeX
\documentclass[a4paper,french,12pt]{article}
|
||
|
||
\title{Communications Numériques --- TP}
|
||
\author{Adam BELGHITH --- Tunui FRANKEN}
|
||
\date{Dernière compilation~: \today{} à \currenttime}
|
||
|
||
\usepackage{styles}
|
||
\usepackage{float}
|
||
|
||
\begin{document}
|
||
|
||
\maketitle
|
||
\clearpage
|
||
\tableofcontents
|
||
\clearpage
|
||
|
||
\setcounter{section}{2}
|
||
\section{Transmission en bande de base, codage de voix}
|
||
|
||
\setcounter{subsection}{1}
|
||
\subsection{Signal codé à identifier}
|
||
|
||
\begin{center}
|
||
\includegraphics[width=0.6\linewidth]{./img/chronogramme_nrz.png}
|
||
\end{center}
|
||
|
||
\emph{Étudier le chronogramme et déterminer~:}
|
||
|
||
\begin{enumerate}
|
||
|
||
\item \emph{Le type de codage}
|
||
|
||
Le codage utilisé est un codage NRZ\@.
|
||
À chaque valeur que prend le chronogramme correspond une valeur issue du tableau de codage.
|
||
|
||
\item \emph{La valence}
|
||
|
||
Pour cette partie, nous avons défini la valence à 8.
|
||
Il y a donc 8 valeurs binaires possibles.
|
||
|
||
\item \emph{Le débit symbole (débit brut)}
|
||
|
||
Le diagramme affiche 12 symboles sur une période de 1 ms, ce qui correspond à un débit symbole de 12000 symboles/s (12kbauds).
|
||
|
||
\item \emph{Comparer le spectre obtenu et le spectre théorique.}
|
||
|
||
\begin{center}
|
||
\includegraphics[width=\linewidth]{./img/spectre_nrz_theorique.png}
|
||
\includegraphics[width=0.49\linewidth]{./img/spectre_nrz.png}
|
||
\includegraphics[width=0.49\linewidth]{./img/spectre_nrz_log.png}
|
||
\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}
|
||
|
||
\emph{%
|
||
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.
|
||
\end{itemize}
|
||
}
|
||
|
||
\emph{%
|
||
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.
|
||
}
|
||
|
||
\begin{center}
|
||
\includegraphics[width=0.49\linewidth]{./img/spectre_rz.png}
|
||
\includegraphics[width=0.49\linewidth]{./img/spectre_rz_log.png}
|
||
\includegraphics[width=0.49\linewidth]{./img/chronogramme_rz.png}
|
||
\end{center}
|
||
|
||
\begin{enumerate}
|
||
|
||
\item \emph{Lequel des deux est le plus adapté~?}
|
||
|
||
L'échelle logarithmique est la plus adaptée, en effet l'échelle linéaire n'affiche aucune valeur exploitable.
|
||
|
||
\item \emph{Quel avantage présente le code RZ~?}
|
||
|
||
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\@.
|
||
|
||
\end{enumerate}
|
||
|
||
\subsection{Code bi-phasé}
|
||
|
||
\emph{Il faut, ici encore, modifier le script \texttt{codage\_enligne.m} pour tracer le code bi-phasé.}
|
||
|
||
\begin{enumerate}
|
||
|
||
\item \emph{Effectuer les modifications nécessaires.}
|
||
|
||
\item \emph{Observer et commenter le spectre du signal codé.}
|
||
|
||
\begin{center}
|
||
\includegraphics[width=0.49\linewidth]{./img/spectre_biphase.png}
|
||
\includegraphics[width=0.49\linewidth]{./img/spectre_biphase_log.png}
|
||
\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\@.
|
||
|
||
\item \emph{En observant le chronogramme quel avantage possède le code bi-phasé~?}
|
||
|
||
\begin{center}
|
||
\includegraphics[width=0.8\linewidth]{./img/chronogramme_biphase.png}
|
||
\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}
|
||
|
||
\emph{%
|
||
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~:
|
||
}
|
||
\begin{itemize}
|
||
\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.}
|
||
\end{itemize}
|
||
|
||
\emph{Vérifier que la suite de symboles reconstruite est la même que celle émise par la source.}
|
||
|
||
$M=8$~:
|
||
\includegraphics[width=0.3\linewidth]{./img/prob_err_m8.png}
|
||
\hfill
|
||
$M=2$~:
|
||
\includegraphics[width=0.35\linewidth]{./img/prob_err_m2.png}
|
||
|
||
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$.
|
||
|
||
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.
|
||
|
||
\begin{center}
|
||
\includegraphics[width=0.49\linewidth]{./img/nrz_m2.png}
|
||
\includegraphics[width=0.49\linewidth]{./img/nrz_m8.png}
|
||
\end{center}
|
||
|
||
\section{Transmission en bande transposée, modulation numérique}
|
||
|
||
\subsection{Modulation QAM}
|
||
|
||
\emph{L’expression d’un signal modulé QAM est~:}
|
||
\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*}
|
||
\emph{%
|
||
$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$.
|
||
}
|
||
|
||
\subsubsection{Création du signal modulé sous MATLAB}
|
||
|
||
\emph{%
|
||
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.
|
||
}
|
||
|
||
\emph{%
|
||
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.
|
||
}
|
||
|
||
\emph{%
|
||
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}$.
|
||
}
|
||
|
||
\begin{enumerate}
|
||
|
||
\item \emph{Compléter le script \texttt{signal\_qam.m} permettant de calculer le modulé et de le tracer en fonction du temps.}
|
||
|
||
\begin{center}
|
||
\includegraphics[width=0.6\linewidth]{./img/signal_qam.png}
|
||
\end{center}
|
||
|
||
\item \emph{Combien de bits codent chaque symbole~?}
|
||
|
||
Cinq bits sont nécessaires pour coder chaque symbole.
|
||
En effet, $32=2^5$.
|
||
Chaque symbole nécessite donc $\log_2(32) = 5$ bits.
|
||
|
||
\item \emph{Combien de période $T_0$ de la porteuse il y a par durée de symbole~?}
|
||
|
||
$\frac{f_0}{R} = \frac{20000}{1000} = 20$.
|
||
Il y a donc 20 périodes $T_0$ de la porteuse par symbole.
|
||
|
||
\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~?}
|
||
|
||
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.
|
||
|
||
\item \emph{Combien de symboles sont transmis pendant la dure de transmission nT~?}
|
||
|
||
50 symboles sont transmis~: $\frac{50000}{1000} = 50 = N$.
|
||
|
||
\end{enumerate}
|
||
|
||
\subsubsection{Constellation bruitée}
|
||
|
||
\emph{%
|
||
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~:
|
||
}
|
||
\begin{itemize}
|
||
\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}.}
|
||
\end{itemize}
|
||
|
||
\emph{Exécuter le script \texttt{constellation\_bruit} et observer la constellation de la modulation QAM\@.}
|
||
|
||
\begin{center}
|
||
\includegraphics[width=0.6\linewidth]{./img/constellation_bruitee.png}
|
||
\end{center}
|
||
|
||
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.
|
||
|
||
\subsection{Modulation PSK}
|
||
|
||
\subsubsection{Création du signal modulé sous MATLAB}
|
||
|
||
\emph{%
|
||
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}$.
|
||
}
|
||
|
||
\emph{%
|
||
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.
|
||
}
|
||
|
||
\begin{enumerate}
|
||
\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.}
|
||
\end{enumerate}
|
||
|
||
\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}
|
||
|
||
On observe bien le changement de phase du signal temporel lorsque le symbole change.
|
||
|
||
\subsubsection{Constellation bruitée}
|
||
|
||
\emph{%
|
||
Afin d’observer la constellation de la modulation PSK, modifier le script \texttt{constellation\_bruit}.
|
||
Observer la constellation pour quelques valeurs de M.
|
||
}
|
||
|
||
\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}
|
||
|
||
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.
|
||
|
||
La probabilité d'erreur est très grande.
|
||
|
||
Avec quelques points de $M=8$, la probabilité de d'erreur est faible.
|
||
Avec $M=4$, la probabilité d'erreur est quasi nulle
|
||
|
||
\end{document}
|