\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}
