1970 lines
90 KiB
TeX
1970 lines
90 KiB
TeX
\documentclass[a4paper,french,12pt]{article}
|
|
|
|
\title{Communications Numériques}
|
|
\author{}
|
|
\date{Dernière compilation~: \today{} à \currenttime}
|
|
|
|
\usepackage{styles}
|
|
\usepackage{circuitikz}
|
|
\usepackage{pgfplots}
|
|
\usepgfplotslibrary{fillbetween}
|
|
|
|
\pgfmathdeclarefunction{gauss}{2}{%
|
|
\pgfmathparse{1/(#2*sqrt(2*pi))*exp(-((x-#1)^2)/(2*#2^2))}
|
|
}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
\tableofcontents
|
|
|
|
\clearpage
|
|
|
|
\section{Introduction}
|
|
|
|
\subsection{Transmission synchrone / asynchrone}
|
|
|
|
\subsubsection{Transmission synchrone}
|
|
|
|
À la réception, l'horloge regénérée définit la cadence.
|
|
Les transitions de l'horloge coïncident avec celle des données constituées d'un flux ininterrompu de bits.
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\foreach \i in {1,2,3,4,6,7,8,9}{\draw [dashed] (\i,-2.7) -- (\i,0.7);}
|
|
\foreach \i in {0,5,10}{\draw [dashed,very thick] (\i,-3) -- (\i,0.7);}
|
|
\node at (-1.5,0) {\parbox{2cm}{\centering Horloge regénérée}};
|
|
\draw [-latex] (0,0) -- (11,0);
|
|
\node at (-1.5,-2) {\parbox{2cm}{\centering Données synchrones}};
|
|
\draw [-latex] (0,-2) -- (11,-2);
|
|
\foreach \i in {0,1,...,9}{
|
|
\draw [red,very thick] (\i,0.5) -- (\i+0.5,0.5) -- (\i+0.5,0) -- (\i+1,0) -- (\i+1,0.5);
|
|
}
|
|
\draw [red,very thick]
|
|
(0,-2) -- (1,-2) --
|
|
(1,-1.5) -- (3,-1.5) --
|
|
(3,-2) -- (4,-2) --
|
|
(4,-1.5) -- (5,-1.5) --
|
|
(5,-2) -- (7,-2) --
|
|
(7,-1.5) -- (10,-1.5) -- (10,-2)
|
|
;
|
|
\foreach \i in {0,3,5,6}{\node at (\i+0.5,-2.4) {0};}
|
|
\foreach \i in {1,2,4,7,8,9}{\node at (\i+0.5,-2.4) {1};}
|
|
|
|
\node at (2.5,-3) {1\up{er} caractère};
|
|
\node at (7.5,-3) {2\up{ème} caractère};
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\subsubsection{Transmission asynchrone}
|
|
|
|
À la réception, l'arrivée des données \emph{démarre} l'horloge.
|
|
La transition initiale d'un paquet de données de longueur déterminée définit la transition initiale de l'horloge.
|
|
À la fin du paquet de données, cette horloge s'interrompt.
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\node (d) at (-1.5,0.5) {Données};
|
|
\draw (0,1) -- (2,1) -- (2,0) node[currarrow,pos=0.5,sloped] {}
|
|
-- (4,0) -- (4,1) -- (5,1) -- (5,0) -- (6,0) -- (6,1) -- (8,1)
|
|
;
|
|
\draw [dashed] (8,1) -- (9,1);
|
|
\draw (9,1) -- (10,1) -- (10,0) node[currarrow,pos=0.5,sloped] {} -- (11,0);
|
|
|
|
\node (h) at (-1.5,-1.25) {Horloge};
|
|
\draw (0,-1.5) -- (2,-1.5) -- (2,-1) node[currarrow,pos=0.5,sloped] {};
|
|
\foreach \i in {2,3,...,6}{
|
|
\draw (\i,-1) -- (\i+0.5,-1) -- (\i+0.5,-1.5) -- (\i+1,-1.5);
|
|
}
|
|
\foreach \i in {3,4,5,6}{
|
|
\draw (\i,-1.5) -- (\i,-1);
|
|
}
|
|
\draw (7,-1.5) -- (8,-1.5);
|
|
\draw [dashed] (8,-1.5) -- (9,-1.5);
|
|
\draw (9,-1.5) -- (10,-1.5) -- (10,-1) node[currarrow,pos=0.5,sloped] {};
|
|
\foreach \i in {10,11}{
|
|
\draw (\i,-1) -- (\i+0.5,-1) -- (\i+0.5,-1.5) -- (\i+1,-1.5);
|
|
}
|
|
\draw (11,-1.5) -- (11,-1);
|
|
\path
|
|
(1.8,0.5) edge [->,>=latex,bend right] (1.8,-1.25)
|
|
(9.8,0.5) edge [->,>=latex,bend right] (9.8,-1.25)
|
|
;
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
Pour ``réveiller'' le récepteur, l'émetteur émet une trame de \emph{wake up}.
|
|
En effet, le récepteur, pour économiser des resources, écoute de temps en temps.
|
|
|
|
À la réception d'une trame de \emph{wake up}, elle doit se mettre en place, ce qui peut prendre du temps.
|
|
Elle reçoit donc une trame \emph{sync word}, après laquelle elle s'attend à recevoir le premier bit de charge utile (\emph{payload}).
|
|
|
|
Même à fréquence identique, l'horloge d'émission (période de $T$) et l'horloge à la réception (période de $T + \Delta T$) ne sont jamais complètement identiques.
|
|
|
|
Ce décalage s'accumule au fil du temps, ce qui est gênant.
|
|
Quand on échantillonne les bits reçus, on va avoir deux cas~:
|
|
|
|
\begin{enumerate}
|
|
\item $\Delta T > 0$~: on va perdre des bits à l'échantillonnage.
|
|
\item $\Delta T < 0$~: on va échantillonner plusieurs fois le même bit.
|
|
\end{enumerate}
|
|
|
|
Si on envoie peu de bits (8 bits $< \Delta T$), ce problème est négligeable.
|
|
Il faut donc synchroniser les horloges tous les 8 bits.
|
|
|
|
\section{Structure générale d'une chaîne de transmission numérique}
|
|
|
|
\subsection{Système de transmission en bande de base (\emph{base band})}
|
|
|
|
Le signal est directement transmis sur le canal de transmission.
|
|
Son spectre est centré sur la fréquence 0.
|
|
Les câbles sont les canaux de transmission possibles (paire torsadée, câble coaxial, paire avec écran\ldots).
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=0.8, transform shape]
|
|
\node [ellipse,draw] (source) at (0,0) {Source};
|
|
|
|
\node [rectangle,fill=olive!40] at (4.5,1.5) {Codage de source};
|
|
\node [rectangle,fill=olive!40,minimum width=5.5cm,minimum height=1.7cm] at (4.5,0) {};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (c) at (3,0) [label=below:Chiffrement] {C};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (r) at (6,0) [label=below:Compression] {R};
|
|
|
|
\node [rectangle,fill=blue!30] at (12,1.5) {Codage du canal};
|
|
\node [rectangle,fill=blue!30,minimum width=8.5cm,minimum height=1.7cm] at (12,0) {};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (e) at (9,0) [label=below:\parbox{2cm}{\centering Encodage\\Détecteur\\Correcteur\\d'erreurs}] {E};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (b) at (12,0) [label=below:Embrouillage] {B};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (v) at (15,0) [label=right:\parbox{2cm}{Codage\\numérique}] {V};
|
|
|
|
\node [diamond,draw] (canal) at (15,-3) {canal};
|
|
\node [diamond,draw] (h1) at (13,-5.5) [label=left:Regénération] {H--1};
|
|
|
|
\node [rectangle,draw,minimum width=1.5cm] (v1) at (15,-8) [label=right:\parbox{2cm}{Décodage\\numérique}] {V--1};
|
|
\node [rectangle,draw,minimum width=1.5cm] (b1) at (12,-8) [label=below:Désembrouillage] {B--1};
|
|
\node [rectangle,draw,minimum width=1.5cm] (e1) at (9,-8) [label=below:\parbox{2cm}{\centering Détection et Correction des erreurs}] {E--1};
|
|
\node [rectangle,draw,minimum width=1.5cm] (r1) at (6,-8) [label=below:Décompression] {R--1};
|
|
\node [rectangle,draw,minimum width=1.5cm] (c1) at (3,-8) [label=below:Déchiffrement] {C--1};
|
|
\node [ellipse,draw] (utilisation) at (-1,-8) {Utilisation};
|
|
|
|
\draw [-latex] (source) -- (c) node[above, midway]{$\{sk\}$};
|
|
\draw [-latex] (c) -- (r) node[above, midway]{$\{dk\}$};
|
|
\draw [-latex] (r) -- (e) node[above, midway]{$\{ck\}$};
|
|
\draw [-latex] (e) -- (b) node[above, midway]{$\{bk\}$};
|
|
\draw [-latex] (b) -- (v) node[above, midway]{$\{\alpha k\}$};
|
|
|
|
\draw [-latex] (v) -- (canal) node[right, midway]{$e(t)$};
|
|
\draw [-latex] (canal) -- (v1) node[right, midway]{$r(t)$};
|
|
|
|
\draw [-latex] (15,-4.2) -- (13,-4.2) -- (h1);
|
|
\draw [-latex] (h1) -- (13,-7) -- (-1,-7) -- (utilisation);
|
|
\draw [-latex] (13,-7) -- (14.3,-7) -- (v1);
|
|
\draw [-latex] (12,-7) -- (b1);
|
|
\draw [-latex] (9,-7) -- (e1);
|
|
\draw [-latex] (6,-7) -- (r1);
|
|
\draw [-latex] (3,-7) -- (c1);
|
|
|
|
\draw [-latex] (v1) -- (b1) node[above, midway]{\{$\alpha k_e$\}};
|
|
\draw [-latex] (b1) -- (e1) node[above, midway]{$\{bk_e\}$};
|
|
\draw [-latex] (e1) -- (r1) node[above, midway]{$\{ck_e\}$};
|
|
\draw [-latex] (r1) -- (c1) node[above, midway]{$\{dk_e\}$};
|
|
\draw [-latex] (c1) -- (utilisation) node[above, midway]{$\{sk_e\}$};
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\subsection{Système de transmission en bande transposée (\emph{broad band})}
|
|
|
|
Le signal est modulé avant d'être transmis sur le canal de transmission.
|
|
Son spectre est centré sur la fréquence porteuse.
|
|
Les canaux de transmission possibles sont~:
|
|
\begin{itemize}
|
|
\item câbles
|
|
\item transmission hertzienne sans fil en espace libre
|
|
\item transmission optique en espace libre (infra rouge)
|
|
\item transmission optique guidée (fibre optique)
|
|
\end{itemize}
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=0.8, transform shape]
|
|
\node [ellipse,draw] (source) at (0,0) {Source};
|
|
|
|
\node [rectangle,fill=olive!40] at (4.5,1.5) {Codage de source};
|
|
\node [rectangle,fill=olive!40,minimum width=5.5cm,minimum height=1.7cm] at (4.5,0) {};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (c) at (3,0) [label=below:Chiffrement] {C};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (r) at (6,0) [label=below:Compression] {R};
|
|
|
|
\node [rectangle,fill=blue!30] at (12,1.5) {Codage du canal};
|
|
\node [rectangle,fill=blue!30,minimum width=8.5cm,minimum height=1.7cm] at (12,0) {};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (e) at (9,0) [label=below:\parbox{2cm}{\centering Encodage\\Détecteur\\Correcteur\\d'erreurs}] {E};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (b) at (12,0) [label=below:Embrouillage] {B};
|
|
\node [rectangle,draw,fill=white,minimum width=1.5cm] (v) at (15,0) [label=right:\parbox{2cm}{Codage\\numérique}] {V};
|
|
|
|
\node [rectangle,red,draw,minimum width=1.5cm] [label={[text=red]left:\parbox{2cm}{\centering Modulation\\numérique}},label={[text=red]right:$x(t)$}] (l) at (15,-2.5) {L};
|
|
\node [diamond,draw] (canal) at (15,-5) {canal};
|
|
\node [rectangle,red,draw,minimum width=1.5cm] [label={[text=red]left:\parbox{2.5cm}{\centering Démodulation\\numérique}},label={[text=red]right:$x(t)_e$}] (l1) at (15,-7.5) {L--1};
|
|
\node [diamond,draw] (h1) at (13,-9.5) [label=left:Regénération] {H--1};
|
|
|
|
\node [rectangle,draw,minimum width=1.5cm] (v1) at (15,-12) [label=right:\parbox{2cm}{Décodage\\numérique}] {V--1};
|
|
\node [rectangle,draw,minimum width=1.5cm] (b1) at (12,-12) [label=below:Désembrouillage] {B--1};
|
|
\node [rectangle,draw,minimum width=1.5cm] (e1) at (9,-12) [label=below:\parbox{2cm}{\centering Détection et Correction des erreurs}] {E--1};
|
|
\node [rectangle,draw,minimum width=1.5cm] (r1) at (6,-12) [label=below:Décompression] {R--1};
|
|
\node [rectangle,draw,minimum width=1.5cm] (c1) at (3,-12) [label=below:Déchiffrement] {C--1};
|
|
\node [ellipse,draw] (utilisation) at (-1,-12) {Utilisation};
|
|
|
|
\draw [-latex] (source) -- (c) node[above, midway]{$\{sk\}$};
|
|
\draw [-latex] (c) -- (r) node[above, midway]{$\{dk\}$};
|
|
\draw [-latex] (r) -- (e) node[above, midway]{$\{ck\}$};
|
|
\draw [-latex] (e) -- (b) node[above, midway]{$\{bk\}$};
|
|
\draw [-latex] (b) -- (v) node[above, midway]{$\{\alpha k\}$};
|
|
|
|
\draw [-latex] (v) -- (l);
|
|
\draw [-latex] (l) -- (canal) node[right, midway]{$e(t)$};
|
|
\draw [-latex] (canal) -- (l1) node[right, midway]{$r(t)$};
|
|
\draw [-latex] (l1) -- (v1);
|
|
|
|
\draw [-latex] (15,-8.2) -- (13,-8.2) -- (h1);
|
|
\draw [-latex] (h1) -- (13,-11) -- (-1,-11) -- (utilisation);
|
|
\draw [-latex] (13,-11) -- (14.3,-11) -- (v1);
|
|
\draw [-latex] (12,-11) -- (b1);
|
|
\draw [-latex] (9,-11) -- (e1);
|
|
\draw [-latex] (6,-11) -- (r1);
|
|
\draw [-latex] (3,-11) -- (c1);
|
|
|
|
\draw [-latex] (v1) -- (b1) node[above, midway]{\{$\alpha k_e$\}};
|
|
\draw [-latex] (b1) -- (e1) node[above, midway]{$\{bk_e\}$};
|
|
\draw [-latex] (e1) -- (r1) node[above, midway]{$\{ck_e\}$};
|
|
\draw [-latex] (r1) -- (c1) node[above, midway]{$\{dk_e\}$};
|
|
\draw [-latex] (c1) -- (utilisation) node[above, midway]{$\{sk_e\}$};
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\subsection{Canal de transmission}
|
|
|
|
Il est toujours supposé linéaire, modélisable par un filtre linéaire invariable dans le temps.
|
|
Il amène des perturbations d'origines diverses (bruit thermique, diaphonie entre canaux\ldots).
|
|
|
|
Ce défaut est modélisé par une source de bruit additif, avec une loi de probabilité gaussienne et une densité spectrale de puissance constante (\emph{bruit blanc gaussien}).
|
|
On parle ainsi de \emph{canal à bruit blanc additif} (AWGN, Additive White Gaussian Noise).
|
|
|
|
\subsection{Intérêt de la transmission numérique}
|
|
|
|
Le passage du signal dans un canal qui est déformant (filtrage) et bruyant est un problème de la transmission analogique.
|
|
|
|
\begin{equation*}
|
|
r(t) = (e(t) + n(t)) * h(t)
|
|
\end{equation*}
|
|
|
|
\begin{itemize}
|
|
\item $n(t)$ est le bruit blanc gaussien.
|
|
\item $h(t)$ est la réponse impulsionnelle du filtre caractérisant le canal de transmission.
|
|
\end{itemize}
|
|
|
|
En général, il est impossible de retrouver $e(t)$ à partir de $r(t)$.
|
|
Il faut que $e(t)$ possède des propriétés particulières connues et invariantes dans le temps pour espérer estimer $e(t)$ à partir de $r(t)$.
|
|
|
|
Un signal numérique possède ces propriétés~: seulement un nombre fini de valeurs possibles et des changements de valeurs tous les $nT$.
|
|
Il est alors beaucoup plus simple de regénérer le signal émis d'après le signal reçu.
|
|
|
|
\paragraph{Méthode d'estimation}
|
|
|
|
\begin{enumerate}
|
|
\item repérer les transitions du signal
|
|
\item à partir de ces transitions, regénérer un signal d'horloge
|
|
\item grâce à cette horloge, venir échantillonner à un instant choisi la valeur du signal reçu
|
|
\item comparer cette valeur échantillonnée aux valeurs possibles et attribuer une de ces valeurs
|
|
\item reconstruire le signal numérique grâce à l'ensemble des valeurs retrouvées et à l'horloge
|
|
\end{enumerate}
|
|
|
|
Avec une transmission numérique, on peut donc~:
|
|
|
|
\begin{itemize}
|
|
\item regénérer le signal (donc l'information) après chaque transmission, alors qu'un signal analogique ne peut que se dégrader
|
|
\item mettre en \oe{}uvre un système de codage et de détection et correction des erreurs
|
|
\item envisager des techniques de cryptage et de compression
|
|
\item coder de la même manière tout type d'information (voix, vidéo, texte)
|
|
\end{itemize}
|
|
|
|
\subsection{Définitions}
|
|
|
|
\paragraph{Débit brut (rate)~: $D$}
|
|
|
|
\begin{itemize}
|
|
\item nombre de symboles émis pendant l'unité de temps
|
|
\item coïncide avec la fréquence d'horloge
|
|
\item si les symboles sont binaires, on parle de \emph{débit binaire brut} (bit rate) et l'unité est le bit/s
|
|
\end{itemize}
|
|
|
|
\paragraph{Débit moyen, statistique ou entropique (average, statistic, or entropic rate)}
|
|
|
|
Valeur de l'entropie de la source par unité de temps.
|
|
|
|
\begin{equation*}
|
|
H_m = \sum p_i \log_m\left(\frac{1}{p_i}\right)
|
|
\end{equation*}
|
|
|
|
\ldots{} pour des symboles appartenant à un alphabet de source à $m$ éléments.
|
|
|
|
\paragraph{Rapidité de modulation (baud rate)~: $R$}
|
|
|
|
C'est l'inverse du temps entre deux transitions du signal qui circule sur la ligne de transmission.
|
|
|
|
\begin{itemize}
|
|
\item transition de niveau (bande de base)
|
|
\item transition d'amplitude, de fréquence ou de phase (bande transposée)
|
|
\item l'unité est le BAUD
|
|
\end{itemize}
|
|
|
|
\paragraph{Valence}
|
|
|
|
\begin{itemize}
|
|
\item nombre $V$ (parfois $M$) d'états significatifs du signal numérique
|
|
\item états~:
|
|
\begin{itemize}
|
|
\item valeur constante (bande de base)
|
|
\item amplitude, fréquence, ou phase (bande transposée)
|
|
\end{itemize}
|
|
\item cas où le signal numérique a des caractéristiques constantes durant toute la durée de l'état (même valeur, même amplitude, fréquence ou phase)
|
|
\end{itemize}
|
|
|
|
\begin{equation*}
|
|
R = \frac{D}{\log_2(V)}
|
|
\end{equation*}
|
|
|
|
\begin{itemize}
|
|
\item $R$ est la rapidité de modulation en baud
|
|
\item $D$ est le débit brut en bit/s
|
|
\item $V$ est la valence
|
|
\end{itemize}
|
|
|
|
Pour comprendre intuitivement la formule, pour $V=2^n$, \quad $R = \frac{D}{\log_2(2^n)} = \frac{D}{n}$.
|
|
|
|
\begin{itemize}
|
|
|
|
\item Cas où $n=1$~: \\
|
|
|
|
$V=2$ \quad
|
|
\begin{tikzpicture}[scale=0.5, transform shape]
|
|
\foreach \i in {0,2}{
|
|
\draw (\i,0) -- (\i+1,0) -- (\i+1,1) -- (\i+2,1) -- (\i+2,0);
|
|
}
|
|
\draw (4,0) -- (6,0);
|
|
\node at (0.5,1.5) {\LARGE 0};
|
|
\node at (1.5,1.5) {\LARGE 1};
|
|
\node at (2.5,1.5) {\LARGE 0};
|
|
\node at (3.5,1.5) {\LARGE 1};
|
|
\node at (4.5,1.5) {\LARGE 0};
|
|
\node at (5.5,1.5) {\LARGE 0};
|
|
\end{tikzpicture}
|
|
\quad $R=D$ \\
|
|
|
|
\item Cas où $n=2$~:
|
|
|
|
$V=4$ \quad
|
|
\begin{tikzpicture}[scale=0.5, transform shape]
|
|
\draw (0,0) -- (2,0)
|
|
-- (2,1) -- (4,1)
|
|
-- (4,2) -- (6,2)
|
|
-- (6,3) -- (8,3)
|
|
;
|
|
\node at (1,0.5) {\LARGE 0 0};
|
|
\node at (3,1.5) {\LARGE 0 1};
|
|
\node at (5,2.5) {\LARGE 1 0};
|
|
\node at (7,3.5) {\LARGE 1 1};
|
|
\end{tikzpicture}
|
|
\quad $R=\frac{D}{2}$ \\
|
|
|
|
\item Cas où $n=3$~:
|
|
|
|
$V=8$ \quad
|
|
\begin{tikzpicture}[scale=0.5, transform shape]
|
|
\draw (0,0) -- (2,0)
|
|
-- (2,1) -- (4,1)
|
|
-- (4,2) -- (6,2)
|
|
-- (6,3) -- (8,3)
|
|
-- (8,4) -- (10,4)
|
|
-- (10,5) -- (12,5)
|
|
-- (12,6) -- (14,6)
|
|
-- (14,7) -- (16,7)
|
|
;
|
|
\node at (1,0.5) {\LARGE 0 0 0};
|
|
\node at (3,1.5) {\LARGE 0 0 1};
|
|
\node at (5,2.5) {\LARGE 0 1 0};
|
|
\node at (7,3.5) {\LARGE 0 1 1};
|
|
\node at (9,4.5) {\LARGE 1 0 0};
|
|
\node at (11,5.5) {\LARGE 1 0 1};
|
|
\node at (13,6.5) {\LARGE 1 1 0};
|
|
\node at (15,7.5) {\LARGE 1 1 1};
|
|
\end{tikzpicture}
|
|
\quad $R=\frac{D}{3}$ \\
|
|
|
|
\end{itemize}
|
|
|
|
\paragraph{Polarité (polarity)}
|
|
|
|
\begin{itemize}
|
|
\item définition pour les signaux numériques non modulés
|
|
\item signal unipolaire~: toutes les valeurs sont soit positives ou nulles, soit négatives ou nulles
|
|
\item signal antipolaire~: valeurs symétriques deux à deux par rapport à 0, mais sans la valeur 0
|
|
\item signal bipolaire~: antipolaire avec la valeur 0
|
|
\end{itemize}
|
|
|
|
\section{Expressions temporelle et spectrale}
|
|
|
|
\subsection{Expression temporelle}
|
|
|
|
Un signal $x(t)$ correspond à la suite $\{a_k\}$.
|
|
|
|
\begin{equation*}
|
|
x(t) = \sum_k x_k(t)
|
|
\end{equation*}
|
|
|
|
Le signal $x_k(t)$ correspond donc à $a_k$.
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\node [rectangle,draw,minimum height=0.8cm,minimum width=2cm] (lcodeur) at (-7.5,0) {codeur};
|
|
\draw [latex-] (lcodeur) -- ++(-2cm,0) node[above]{$\{\alpha_k\}$};
|
|
\draw [-latex] (lcodeur) -- ++(2cm,0) node[above]{$x(t)$};
|
|
\node [rectangle,draw] (rcodeur) at (0,0.3) {\parbox{5.5cm}{\centering codeur \vspace{1.7cm}}};
|
|
\node [rectangle,draw,minimum height=0.8cm,minimum width=2cm] (white) at (-1.5,0) {};
|
|
\node [rectangle,draw,minimum height=0.8cm,minimum width=2cm] (g) at (1.5,0) {$g(t)$};
|
|
\draw [latex-] (white) -- ++(-2cm,0) node[above]{$\{\alpha_k\}$};
|
|
\draw [-latex] (white) -- (g) node[above,midway]{$\{a_k\}$};
|
|
\draw [-latex] (g) -- ++(2cm,0) node[above]{$x(t)$};
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
Le symbole $a_k$ n'existe que durant un temps $T$, $\frac{1}{T}$ étant le débit brut de la source.
|
|
|
|
La suite $\{a_k\}$ est alors une suite de valeurs discrètes apparaissant tous les $T$ et à qui on peut associer un signal $a(t)$ grâce au \emph{peigne de Dirac}.
|
|
|
|
\begin{equation*}
|
|
\Sh\left(\frac{t}{T}\right) = \sum_{k=-\infty}^{+\infty} \delta(t - kT)
|
|
\quad\quad\quad\quad
|
|
a(t) = \sum_{k=-\infty}^{+\infty} a_k\,\delta(t - kT)
|
|
\end{equation*}
|
|
|
|
Le codeur est un système linéaire supposé invariant dans le temps.
|
|
La modélisation se fait par sa réponse impulsionnelle $g(t)$ que l'on nomme \emph{formant}.
|
|
\begin{align*}
|
|
x(t) &= g(t) * a(t) \\
|
|
&= g(t) * \sum_{k=-\infty}^{+\infty} a_k\,\delta(t-kT) \\
|
|
&= \sum_{k=-\infty}^{+\infty} a_k\,g(t-kT)
|
|
\end{align*}
|
|
|
|
\subsection{Expression spectrale}
|
|
|
|
\paragraph{Formule de Bennett\label{par:bennett}}
|
|
|
|
\begin{equation*}
|
|
S_{xx}(f) = S_{gg}(f) \left[
|
|
\frac{\sigma_a^2}{T} + \frac{\overline{a}^2}{T^2} \; \Sh\left(\frac{f}{1/T}\right)
|
|
+ \frac{2}{T} \sum_{n=1}^{+\infty} (R_{aa}(n) - \overline{a}^2)\cos(2\pi nfT)
|
|
\right]
|
|
\end{equation*}
|
|
|
|
\begin{itemize}
|
|
|
|
\item Densité Spectrale de Puissance (DSP) de $x(t)$~:
|
|
\begin{equation*}
|
|
S_{xx}(f) = \mathrm{TF}(R_{xx}(\tau))
|
|
\end{equation*}
|
|
|
|
\item Valeur moyenne de la suite $\{a_k\}$~:
|
|
\begin{equation*}
|
|
\overline{a} = E(a_k)
|
|
\end{equation*}
|
|
|
|
\item Variance~:
|
|
\begin{equation*}
|
|
\sigma_a^2 = \mathrm{var}(a) = E(a_k^2) - \overline{a}^2
|
|
\end{equation*}
|
|
|
|
\item Coefficient d'autocorrélation statistique~:
|
|
\begin{equation*}
|
|
R_{aa}(n) = E(a_k\cdot a_{k+n})
|
|
\end{equation*}
|
|
|
|
\item $S_{gg}(f)$~: DSP du formant $g(t)$
|
|
|
|
\end{itemize}
|
|
|
|
On peut simplifier la formule de Bennett dans le cas d'une source sans mémoire~:
|
|
\begin{equation*}
|
|
S_{xx}(f) = S_{gg}(f) \left[
|
|
\frac{\sigma_a^2}{T} + \frac{\overline{a}^2}{T^2} \; \Sh\left(\frac{f}{1/T}\right)
|
|
\right]
|
|
\end{equation*}
|
|
|
|
Le deuxième terme de la formule marque le rythme, grâce au peigne qui représente les \emph{raies spectrales} de l'horloge.
|
|
|
|
\section{Transmission en bande de base~: les codes en ligne}
|
|
|
|
\subsection{Propriétés requises}
|
|
|
|
\begin{enumerate}[label=\alph*]
|
|
|
|
\item \textbf{Le spectre ne doit pas avoir de composante continue\label{itm:prop-a}}
|
|
|
|
Cela implique que la valeur moyenne du signal soit nulle.
|
|
Cette valeur moyenne est de toute façon éliminée par un éventuel condensateur série ou transformateur en cascade qui serait présent sur le système de traitement du canal de transmission.
|
|
|
|
\item \textbf{Le spectre doit être décroissant et tendre vers 0 aux basses fréquences\label{itm:prop-b}}
|
|
|
|
Cette propriété complète la précédente.
|
|
Grâce à elle, un filtre passe-haut, qui coupe les basses fréquences, n'aura que peu d'incidence sur la perte d'information du signal.
|
|
|
|
\item \textbf{Le spectre doit avoir un support le plus étroit possible\label{itm:prop-c}}
|
|
|
|
En plus d'une fréquence de coupure basse, tout système de traitement possède une fréquence de coupure haute, au delà de laquelle il ne fonctionne plus correctement.
|
|
Ce système de traitement se comporte donc comme un filtre passe-bande.
|
|
|
|
\item \textbf{Le spectre doit comprendre des raies à la fréquence d'horloge et à ses multiples\label{itm:prop-d}}
|
|
|
|
Le signal numérique $x(t)$ possédera ainsi implicitement le signal d'horloge.
|
|
|
|
\item \textbf{Le rythme d'horloge doit pouvoir être conservé à court terme\label{itm:prop-e}}
|
|
|
|
La propriété précédente implique que la DSP contienne la fonction peigne (les raies d'horloge).
|
|
Cette DSP résulte d'une Transformée de Fourier, donc d'une moyenne sur le temps.
|
|
Le système de récupération d'horloge, qui fonctionne en temps réel, n'est pas garanti de fournir un signal d'horloge synchrone avec les données.
|
|
|
|
\item \textbf{Le spectre instantané doit être proche du spectre théorique\label{itm:prop-f}}
|
|
|
|
Les propriétés vues précédemment sont vérifiées sur la DSP de $x(t)$ ($S_{xx}(f)$), mais le traitement du signal est fait en temps réel.
|
|
Il faut donc à chaque instant que le spectre instantané (affiché par les analyseurs de spectre) vérifie donc aussi ces propriétés.
|
|
|
|
\begin{equation*}
|
|
X(f,t_0,\Delta t) = \int_{t_0}^{t_0 + \Delta t} x(t) e^{-2\pi jft} \dif t
|
|
\end{equation*}
|
|
|
|
Cela revient donc à vérifier que $X(f,t_0,t) \cong X(f)$ pour tout $t_0$ à $\Delta t$ donné.
|
|
|
|
\begin{equation*}
|
|
X(f) = \int_{-\infty}^{+\infty} x(t) e^{-2\pi jft} \dif t
|
|
\end{equation*}
|
|
|
|
\item \textbf{Le signal doit posséder une redondance de manière à pouvoir tester sa vraisemblance\label{itm:prop-g}}
|
|
|
|
Pour s'assurer à la réception que le signal reçu est \emph{vraisemblable}, il faut faire une simple détection de défaut, au lieu de remplacer le système de détection/correction d'erreurs, qui est beaucoup plus performant et basé sur la vraisemblance du message, non pas du signal.
|
|
|
|
\end{enumerate}
|
|
|
|
\subsection{Codes de voie bivalents}
|
|
|
|
\subsubsection{Code NRZ (Non Return to Zero)}
|
|
|
|
C'est un code \emph{antipolaire} où pendant $T$, \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow -V \\
|
|
1 \rightarrow +V \\
|
|
\end{array}
|
|
\right.
|
|
\) donc \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
a_k = -1 \text{ si } \alpha_k = 0 \\
|
|
a_k = +1 \text{ si } \alpha_k = 1 \\
|
|
\end{array}
|
|
\right.
|
|
\)
|
|
|
|
\begin{multicols}{2}
|
|
|
|
La propriété~\ref{itm:prop-a} est respectée. \\
|
|
Ici, $R=D=\frac{1}{T}$.
|
|
|
|
\columnbreak
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (0,0) -- (5,0) node[right]{$t$};
|
|
\node at (0.5,1) {0};
|
|
\node at (1.5,1) {1};
|
|
\node at (2.5,1) {1};
|
|
\node at (3.5,1) {0};
|
|
\node at (4.5,1) {0};
|
|
\foreach \i in {0,1,...,5}{
|
|
\draw[dashed] (\i,-1) -- (\i,1);
|
|
}
|
|
\draw[red,thick] (0,-0.5) -- (1,-0.5) -- (1,0.5) -- (3,0.5) -- (3,-0.5) -- (5,-0.5);
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\end{multicols}
|
|
|
|
\subsubsection{Code NRZI (Non Return to Zero Inverted)}
|
|
|
|
C'est un code \emph{antipolaire} où \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow \text{niveau inchangé} \\
|
|
1 \rightarrow \text{transition en } \frac{T}{2} \\
|
|
\end{array}
|
|
\right.
|
|
\)
|
|
|
|
\begin{multicols}{2}
|
|
|
|
Les propriétés~\ref{itm:prop-a} et~\ref{itm:prop-b} sont respectées. \\
|
|
Ici, $R=D=\frac{1}{T}$. \\
|
|
La propriété~\ref{itm:prop-b} est vérifiée à condition que $P(0)=P(1)$ et qu'il n'y a pas de très longue suite de 0.
|
|
|
|
\columnbreak
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (0,0) -- (5,0) node[right]{$t$};
|
|
\node at (0.5,1) {0};
|
|
\node at (1.5,1) {1};
|
|
\node at (2.5,1) {1};
|
|
\node at (3.5,1) {0};
|
|
\node at (4.5,1) {0};
|
|
\foreach \i in {0,1,...,5}{
|
|
\draw[dashed] (\i,-1) -- (\i,1);
|
|
}
|
|
\draw[red,thick] (0,0.5) -- (1.5,0.5) -- (1.5,-0.5) -- (2.5,-0.5) -- (2.5,0.5) -- (5,0.5);
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\end{multicols}
|
|
|
|
\subsubsection{Code RZ (Return to Zero)}
|
|
|
|
C'est un code \emph{unipolaire} où \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow 0 \\
|
|
1 \rightarrow H \\
|
|
\end{array}
|
|
\right.
|
|
\) donc \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
a_k = 0 \text{ si } \alpha_k = 0 \\
|
|
a_k = +1 \text{ si } \alpha_k = 1 \\
|
|
\end{array}
|
|
\right.
|
|
\) où $H$ est le signal d'horloge.
|
|
|
|
\begin{multicols}{2}
|
|
|
|
Les propriétés~\ref{itm:prop-d} et~\ref{itm:prop-e} sont respectées. \\
|
|
Ici, $R=2D=\frac{2}{T}$. \\
|
|
La propriété~\ref{itm:prop-e} est vérifiée à condition que $P(1)>P(0)$.
|
|
Ce signal est auto-porteur de son horloge~: c'est un codage destiné à assurer une bonne restitution d'horloge.
|
|
|
|
\columnbreak
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (0,0) -- (5,0) node[right]{$t$};
|
|
\node at (0.5,1) {0};
|
|
\node at (1.5,1) {1};
|
|
\node at (2.5,1) {1};
|
|
\node at (3.5,1) {0};
|
|
\node at (4.5,1) {0};
|
|
\foreach \i in {0,1,...,5}{
|
|
\draw[dashed] (\i,-0.4) -- (\i,1);
|
|
}
|
|
\draw[red,thick] (0,0) -- (1,0) -- (1,0.5) -- (1.5, 0.5) -- (1.5,0) -- (2,0) -- (2,0.5) -- (2.5,0.5) -- (2.5,0) -- (5,0);
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\end{multicols}
|
|
|
|
\subsubsection{Code biphase (Manchester)}
|
|
|
|
C'est un code \emph{antipolaire} avec une horloge $H$ antipolaire~: \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow \overline{H} \; (\text{front montant à } \frac{T}{2}) \\
|
|
1 \rightarrow H \; (\text{front descendant à } \frac{T}{2}) \\
|
|
\end{array}
|
|
\right.
|
|
\)
|
|
|
|
\begin{multicols}{2}
|
|
|
|
Les propriétés~\ref{itm:prop-a},~\ref{itm:prop-b} et~\ref{itm:prop-f} sont respectées. \\
|
|
Ici, $R=2D=\frac{2}{T}$. \\
|
|
Ce codage est essentiellement destiné à la transmission aux basses fréquences, au détriment de l'occupation spectrale.
|
|
|
|
\columnbreak
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (0,0) -- (5,0) node[right]{$t$};
|
|
\node at (0.5,1) {0};
|
|
\node at (1.5,1) {1};
|
|
\node at (2.5,1) {1};
|
|
\node at (3.5,1) {0};
|
|
\node at (4.5,1) {0};
|
|
\foreach \i in {0,1,...,5}{
|
|
\draw[dashed] (\i,-1) -- (\i,1);
|
|
}
|
|
\draw[red,thick]
|
|
(0,-0.5) -- (0.5,-0.5) --
|
|
(0.5,0.5) node[color=red,currarrow,midway,sloped] {} --
|
|
(1.5,0.5) --
|
|
(1.5,-0.5) node[color=red,currarrow,midway,sloped] {} --
|
|
(2,-0.5) -- (2,0.5) -- (2.5,0.5) --
|
|
(2.5,-0.5) node[color=red,currarrow,midway,sloped] {} --
|
|
(3.5,-0.5) --
|
|
(3.5,0.5) node[color=red,currarrow,midway,sloped] {} --
|
|
(4,0.5) -- (4,-0.5) -- (4.5,-0.5) --
|
|
(4.5,0.5) node[color=red,currarrow,midway,sloped] {} -- (5,0.5);
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\end{multicols}
|
|
|
|
\subsubsection{Codes FM (Frequency Modulation), dits codes de Miller}
|
|
|
|
\paragraph{Code FM}
|
|
\begin{equation*}
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow \text{ une seule transition initiale (début de symbole) } \\
|
|
1 \rightarrow \text{ une transition initiale et une transition à } \frac{T}{2} \\
|
|
\end{array}
|
|
\right.
|
|
\end{equation*}
|
|
|
|
\begin{multicols}{2}
|
|
|
|
Une suite de 1 donne un signal de fréquence instantanée égale à la fréquence d'horloge.
|
|
Une suite de 0 donne un signal de fréquence instantanée égale à la moitié de la fréquence d'horloge. \\
|
|
Ici, $R=2D=\frac{2}{T}$.
|
|
|
|
\columnbreak
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (0,0) -- (5,0) node[right]{$t$};
|
|
\node at (0.5,1) {0};
|
|
\node at (1.5,1) {1};
|
|
\node at (2.5,1) {1};
|
|
\node at (3.5,1) {0};
|
|
\node at (4.5,1) {0};
|
|
\foreach \i in {0,1,...,5}{
|
|
\draw[dashed] (\i,-1) -- (\i,1);
|
|
}
|
|
\draw[red,thick] (0,-0.5) -- (0,0.5) -- (1,0.5) -- (1,-0.5) -- (1.5,-0.5) -- (1.5,0.5) -- (2,0.5) -- (2,-0.5) -- (2.5,-0.5) -- (2.5,0.5) -- (3,0.5) -- (3,-0.5) -- (4,-0.5) -- (4,0.5) -- (5,0.5);
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\end{multicols}
|
|
|
|
\paragraph{Code MFM (Modified FM) ou code de Miller}
|
|
|
|
Identique au code FM sauf qu'on supprime la transition initiale pour les 1 ainsi que pour un 0 qui suit immédiatement un 1.
|
|
L'objectif est de diminuer en valeur instantanée la rapidité de modulation.
|
|
|
|
% TODO: add tikz
|
|
|
|
\paragraph{Code M2 FM ou code de Miller 2}
|
|
|
|
Identique au code MFM sauf qu'on supprime une fois sur deux la transition initiale pour une suite de 0.
|
|
L'objectif est de ralentir les variations du signal et de resserrer le spectre.
|
|
|
|
Les propriétés~\ref{itm:prop-a},~\ref{itm:prop-b},~\ref{itm:prop-c} et~\ref{itm:prop-f} sont respectées.
|
|
|
|
\subsubsection{Code CMI (Coded Mark Inversion)}
|
|
|
|
C'est un code \emph{antipolaire} à mémoire~: \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow H \; (\text{signal d'horloge}) \\
|
|
1 \rightarrow \pm V \text{ alternativement} \\
|
|
\end{array}
|
|
\right.
|
|
\)
|
|
|
|
\begin{multicols}{2}
|
|
|
|
Les propriétés~\ref{itm:prop-a},~\ref{itm:prop-b},~\ref{itm:prop-c},~\ref{itm:prop-d},~\ref{itm:prop-e},~\ref{itm:prop-f},~\ref{itm:prop-g} sont respectées. \\
|
|
Ici, $R=2D=\frac{2}{T}$. \\
|
|
Ce code est auto-porteur de son horloge.
|
|
|
|
\columnbreak
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (0,0) -- (6,0) node[right]{$t$};
|
|
\node at (0.5,1) {0};
|
|
\node at (1.5,1) {1};
|
|
\node at (2.5,1) {1};
|
|
\node at (3.5,1) {0};
|
|
\node at (4.5,1) {0};
|
|
\node at (5.5,1) {1};
|
|
\foreach \i in {0,1,...,6}{
|
|
\draw[dashed] (\i,-1) -- (\i,1);
|
|
}
|
|
\draw[red,thick] (0,0.5) -- (0.5,0.5) -- (0.5,-0.5) -- (2,-0.5) -- (2,0.5) -- (3.5,0.5) -- (3.5,-0.5) -- (4,-0.5) -- (4,0.5) -- (4.5,0.5) -- (4.5,-0.5) -- (6,-0.5);
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\end{multicols}
|
|
|
|
\subsubsection{Code biphase différentiel}
|
|
|
|
\begin{equation*}
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow \text{ le signal reste lui-même} \\
|
|
1 \rightarrow \text{ le signal s'inverse} \\
|
|
\end{array}
|
|
\right.
|
|
\end{equation*}
|
|
|
|
L'idée est de s'affranchir de la phase de l'horloge.
|
|
|
|
Il y a des défauts pour le code biphase classique~:
|
|
|
|
\begin{itemize}
|
|
\item Il faut comparer le signal à $H$ ou $\overline{H}$ pour décider 0 ou 1.
|
|
\item Pour la récupération d'horloge, il peut subsister une erreur de phase voire une inversion de phase, ce qui entraîne une inversion des 0 et des 1.
|
|
\end{itemize}
|
|
|
|
Avec le code biphase différentiel~:
|
|
|
|
\begin{itemize}
|
|
\item Une fois le premier symbole décodé, le problème est résolu.
|
|
\item On va mettre une séquence d'en-tête particulière qui sert de synchronisation.
|
|
\end{itemize}
|
|
|
|
\subsubsection{Code suffixé M ou S}
|
|
|
|
Désigne en particulier le NRZ-M, NRZ-S, Biphase-M et Biphase-S.
|
|
|
|
\hfill
|
|
NRZ-M~: \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow \text{ pas de transition} \\
|
|
1 \rightarrow \text{ transition à } t=0 \\
|
|
\end{array}
|
|
\right.
|
|
\)
|
|
\hfill
|
|
NRZ-S~: rôle inverse 0 et 1
|
|
\hfill{}
|
|
|
|
Biphase-M~: transition systématique en $t=0$, puis \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow \text{ pas d'autre transition} \\
|
|
1 \rightarrow \text{ une autre transition en } t=\frac{T}{2} \\
|
|
\end{array}
|
|
\right.
|
|
\)
|
|
|
|
Biphase-S~: rôle inverse 0 et 1
|
|
|
|
\subsection{Codes de voie trivalents}
|
|
|
|
\subsubsection{Code AMI (Alternated Mark Inversion)}
|
|
|
|
\hfill
|
|
\(
|
|
\left\{
|
|
\begin{array}{l}
|
|
0 \rightarrow 0 \\
|
|
1 \rightarrow \pm V \text{ alternativement} \\
|
|
\end{array}
|
|
\right.
|
|
\)
|
|
\hfill
|
|
Les propriétés~\ref{itm:prop-a},~\ref{itm:prop-b},~\ref{itm:prop-c} et~\ref{itm:prop-g} sont respectées.
|
|
\hfill{}
|
|
|
|
\subsubsection{Code HDB3}
|
|
|
|
Identique au code AMI sauf que~:
|
|
|
|
\begin{itemize}
|
|
|
|
\item \emph{Bit de viol} ---
|
|
Après une suite de trois 0, un quatrième 0 éventuel est représenté comme le serait un 1, mais en violant la règle d'alternance des signes~: 0000 devient 000V.
|
|
|
|
\item \emph{Bit de bourrage} ---
|
|
On veut conserver une valeur moyenne nulle.
|
|
On alterne la polarité des \emph{viols} et on ajoute un bit de \emph{bourrage} de même polarité que le \emph{viol}, placé en tête du groupe des quatre symboles 0~: 0000 devient B000V.
|
|
|
|
\end{itemize}
|
|
|
|
\subsection{Codes arithmétiques (transformation de valence)}
|
|
|
|
L'objectif est de diminuer la rapidité de modulation sans modifier le débit binaire de la source.
|
|
|
|
Principe~:
|
|
\begin{itemize}
|
|
\item une séquence à valence 2 devient une séquence plus courte à valence $>2$
|
|
\item le code se note $nBmX$ avec $n$ éléments binaires qui donne $m$ éléments d'un alphabet $X$-aire
|
|
\item pour que ce soit faisable, il faut que $2^n \leq X^m$
|
|
\end{itemize}
|
|
|
|
On a par exemple le code 4B3T ou 2B1Q.
|
|
|
|
\subsubsection{Code 4B3T}
|
|
|
|
\hfill $2^4 = 16 < 27 = 3^3$
|
|
|
|
Une séquence de 4 symboles binaires donne une séquence de 3 symboles ternaires. \\
|
|
La séquence 3T va être codée sous forme bipolaire ($+V, 0, -V$).
|
|
Il est possible d'affecter à certaines séquences 4B plusieurs séquences 3T.
|
|
|
|
L'objectif est d'avoir une valeur moyenne à court terme la plus faible possible.
|
|
La valeur de la somme cumulée doit approcher 0.
|
|
|
|
\subsubsection{Code 2B1Q}
|
|
|
|
\hfill $2^2 = 4^1$
|
|
|
|
Une séquence de 2 symboles binaires donne un symbole quaternaire. \\
|
|
La séquence 1Q va être codée sous forme antipolaire ($+2V, +V, -V, -2V$).
|
|
Il n'y a pas de possibilité de contrôler la valeur moyenne, mais la rapidité de modulation est plus réduite.
|
|
$R=\frac{D}{2}=\frac{1}{2T}$
|
|
|
|
\subsection{Exemples de spectres}
|
|
|
|
% TODO: make into tikz ?
|
|
\includegraphics[width=0.5\linewidth]{./img/exemples_spectres_1.png}
|
|
\includegraphics[width=0.5\linewidth]{./img/exemples_spectres_2.png}
|
|
|
|
\subsection{Exemples d'utilisation des codes}
|
|
|
|
\begin{tabularx}{\linewidth}{lX}
|
|
\toprule
|
|
\textbf{Code} & \textbf{Utilisation} \\
|
|
\toprule
|
|
Code NRZ & Fast Ethernet (100BaseFx), FDDI \\
|
|
\midrule
|
|
Code MLT & Fast Ethernet (100BaseTx, 100BaseT4), ATM \\
|
|
\midrule
|
|
Manchester & Ethernet 10Base5, 10Base2, 10BaseT, 10BaseFL \\
|
|
\midrule
|
|
Manchester différentiel & Token-Ring \\
|
|
\midrule
|
|
Code bipolaire & Ligne DS1, T1 (1.5 Mbps, normalisation PDH US) \\
|
|
\midrule
|
|
HDB3 & E1 (2 Mbps, normalisation PDH US) \\
|
|
\midrule
|
|
\multirow{2}{*}{nBmB} & 4B5B Fast Ethernet \\
|
|
& 8B10B Giga Ethernet \\
|
|
\bottomrule
|
|
\end{tabularx}
|
|
|
|
\section{Transmission sur un canal à bande illimitée}
|
|
|
|
\subsection{Effet du bruit additif sur un code bivalent equiprobable}
|
|
|
|
Soit $x(t)$ un signal binaire émis, bivalent et unipolaire ($+V, -V$).
|
|
Soit $n(t)$ le bruit additif, de loi de probabilité gaussienne centrée et de variance $\sigma^2$.
|
|
|
|
On reçoit $r(t) = x(t) + n(t)$.
|
|
Le résultat est comparé à 0, seuil de décision.
|
|
|
|
\begin{itemize}
|
|
\item si $r(t) < 0$~: $-V$ émis, symbole reçu~: 0
|
|
\item si $r(t) > 0$~: $+V$ émis, symbole reçu~: 1
|
|
\end{itemize}
|
|
|
|
\begin{center}
|
|
\includegraphics[width=0.5\linewidth]{./img/effet_bruit_additif.png}
|
|
\end{center}
|
|
|
|
La probabilité d'erreur, ou BER (Bit Error Ratio) est alors~:
|
|
\begin{align*}
|
|
P_e &= P[x(t) = +V] \cdot P[n(t) < -V] + P[x(t) = -V] \cdot P[n(t) > +V] \\
|
|
&= P(1) \cdot P[n(t) < -V] + P(0) \cdot P[n(t) > +V]
|
|
\end{align*}
|
|
|
|
Dans le cas d'une source equiprobable, $P(0) = P(1) = \frac{1}{2}$, donc~:
|
|
\begin{equation*}
|
|
P_e = \frac{1}{2} [P(n(t) < -V) + P(n(t) > +V)]
|
|
\end{equation*}
|
|
|
|
Le bruit $n(t)$ est une variable aléatoire gaussienne de probabilité \(
|
|
p(n) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{n^2}{2\sigma^2}}
|
|
\).
|
|
|
|
\begin{multicols}{2}
|
|
|
|
\begin{tikzpicture}
|
|
\node at (4.1,4) {\small$\sigma=0.3$};
|
|
\node at (4.6,1.2) {\small$\sigma=1$};
|
|
\node at (6,0.7) {\small$\sigma=2$};
|
|
\node[red] at (1.5,-0.2) {\tiny$-V$};
|
|
\node[blue] at (4.6,-0.2) {\tiny$+V$};
|
|
\begin{axis}[
|
|
every axis plot post/.append style={mark=none,samples=50,smooth},
|
|
axis x line=bottom, axis y line=left, enlargelimits=upper]
|
|
\addplot[black,domain=-3:3]{gauss(0,0.3)};
|
|
\addplot[black,domain=-3:3]{gauss(0,1)};
|
|
\addplot[black,domain=-3:3]{gauss(0,2)};
|
|
|
|
\addplot[domain=-3:-1.5,name path=A]{gauss(0,1)};
|
|
\path[name path=left] (axis cs:-3,0) -- (axis cs:-1.5,0);
|
|
\addplot [red!30] fill between[of=A and left];
|
|
\addplot[domain=1.5:3,name path=B]{gauss(0,1)};
|
|
\path[name path=right] (axis cs:1.5,0) -- (axis cs:3,0);
|
|
\addplot [blue!30] fill between[of=B and right];
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\begin{equation*}
|
|
\underbrace{P(n(t) < -V)}_{\color{red}{\int_{-\infty}^{-V} p(n) \dif n}}
|
|
= \underbrace{P(n(t) > +V)}_{\color{blue}{\int_{+V}^{+\infty} p(n) \dif n}}
|
|
= \int_{+V}^{+\infty} p(n) \dif n
|
|
\end{equation*}
|
|
|
|
\end{multicols}
|
|
|
|
\begin{align*}
|
|
P_e &= \frac{1}{2} [P(n(t) < -V) + P(n(t) > +V)] \\
|
|
&= \int_{+V}^{+\infty} p(n) \dif n
|
|
= \frac{1}{\sigma\sqrt{2\pi}} \int_{+V}^{+\infty} e^{-\frac{n^2}{2\sigma^2}} \dif n \\
|
|
\end{align*}
|
|
|
|
\begin{multicols}{2}
|
|
|
|
\begin{equation*}
|
|
P_e = \frac{1}{2} \mathrm{erfc}\left(\frac{+V}{\sigma\sqrt{2}}\right)
|
|
= \frac{1}{2} \left(1-\mathrm{erf }\left(\frac{+V}{\sigma\sqrt{2}}\right)\right)
|
|
\end{equation*}
|
|
\begin{itemize}
|
|
\item $\sigma^2$ est la puissance du bruit
|
|
\item $V^2$ est la puissance du signal numérique
|
|
\end{itemize}
|
|
|
|
On obtient alors $P_e = \frac{1}{2} \mathrm{erfc}\sqrt{\frac{S}{N}}$
|
|
\begin{itemize}
|
|
\item $S$~: puissance du signal émis $x(t)$
|
|
\item $N$~: puissance du bruit gaussien $n(t)$
|
|
\end{itemize}
|
|
|
|
\columnbreak
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=0.8, transform shape]
|
|
\draw[help lines, dashed] (6,-2) grid (14,-12);
|
|
\draw[-latex] (6,-12) -- (14.5,-12) node [above]{S/N} node[below]{dB};
|
|
\draw[-latex] (6,-12) -- (6,-1.5) node[right]{$P_e$};
|
|
\foreach \i in {6,7,...,14}{\node at (\i,-12.3) {\small\i};}
|
|
\foreach \i in {-2,-3,...,-12}{\node at (5.5,\i) {\small$10^{\i}$};}
|
|
\draw (13.5,-12) arc[start angle=0, end angle=75.5,radius=10cm];
|
|
\draw [red,thick] (6,-9) -- (13,-9) -- (13,-12);
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
Pour un taux d'erreur max de $10^{-9}$, le rapport S/N doit être d'au moins 13.
|
|
|
|
\end{multicols}
|
|
|
|
\subsection{Effet du bruit additif sur un code bivalent non equiprobable}
|
|
|
|
Pour diminuer les erreurs, il est plus intéressant d'éloigner le seuil de décision du niveau le plus probable.
|
|
On obtient comme seuil optimal~:
|
|
|
|
\begin{equation*}
|
|
S_0 = \frac{\sigma^2}{2V} \ln{\frac{P(0)}{P(1)}}
|
|
\end{equation*}
|
|
|
|
\subsection{Cas général d'un code multivalent}
|
|
|
|
Prenons un exemple d'un code de valence 4, avec des seuils de décisions choisis avec la règle triviale du ``mi-chemin'', avec des symboles equiprobables.
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (-3.1,0) -- (3.4,0);
|
|
\foreach \i in {-3,-2,...,3}{\draw (\i,0) -- (\i,0.1);}
|
|
\node at (-3,0.6) {-3V};
|
|
\node at (-2,0.6) {-2V};
|
|
\node at (-1,0.6) {-V};
|
|
\node at (1,0.6) {V};
|
|
\node at (2,0.6) {2V};
|
|
\node at (3,0.6) {3V};
|
|
\foreach \i in {-2.5,-1.5,0,1.5,2.5}{\draw[->] (\i,-1) -- (\i,-0.4) node[at start,below] {\small \i V};}
|
|
\node at (4,1) {émis};
|
|
\node at (4,-1) {décision};
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\begin{equation*}
|
|
P_e = P_e(-3V) + P_e(-2V) + P_e(-V) + P_e(+V) + P_e(2V) + P_e(3V)
|
|
\end{equation*}
|
|
|
|
\begin{align*}
|
|
P_e(+V) = [P(n(t)>0.5V) + P(n(t)<-V)] \cdot P(V) \\
|
|
\text{ car }
|
|
\left\{
|
|
\begin{array}{l}
|
|
+V - V = 0 \rightarrow \text{ seuil de décision inférieur} \\
|
|
+V + 0.5V = 1.5 \rightarrow \text{ seuil de décision supérieur} \\
|
|
\end{array}
|
|
\right.
|
|
\end{align*}
|
|
|
|
\subsection{Filtrage du bruit}
|
|
|
|
\hfill
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\node[rectangle,draw,label={below:codeur}] (codeur) at (0,0) {$\underline{G(f)}$};
|
|
\node[rectangle,draw,label={below:canal}] (canal) at (2,0) {$\underline{B(f)}$};
|
|
\draw[-latex] (-1.5,0) -- (codeur) node[above,midway]{$a(t)$};
|
|
\draw[-latex] (codeur) -- (canal) node[above,midway]{$e(t)$};
|
|
\draw[-latex] (2,1.3) -- (canal) node[above,at start]{$n(t)$};
|
|
\draw[-latex] (canal) -- (3.5,0) node[above,midway]{$r(t)$};
|
|
\end{tikzpicture}
|
|
\hfill
|
|
$r(t) = [a*g*b](t) + [n*b](t)$
|
|
\hfill{}
|
|
|
|
Dans le cas d'une source binaire, $\pm V$ émis, et d'une source de bruit de DSP égale à $\frac{N_0}{2}$~:
|
|
|
|
\begin{itemize}
|
|
|
|
\item L'énergie $W_s$ du signal reçu (signal seul) vaut~:
|
|
$W_s = V^2 \int_{-\infty}^{+\infty} |\underline{G(f)}|^2 \cdot |\underline{B(f)}|^2 \dif f$
|
|
|
|
\item L'énergie $W_n$ du bruit reçu (bruit seul) vaut~:
|
|
$W_n = \frac{N_0}{2} \int_{-\infty}^{+\infty} |\underline{B(f)}|^2 \dif f$
|
|
|
|
\end{itemize}
|
|
|
|
Inégalité de Schwartz~:
|
|
\begin{equation*}
|
|
\frac{W_s}{W_n} = \frac{2V^2}{N_0} \frac{\int_{-\infty}^{+\infty}|\underline{G(f)}|^2 \cdot |\underline{B(f)}|^2 \dif f}
|
|
{\int_{-\infty}^{+\infty} |\underline{B(f)}|^2 \dif f}
|
|
\leq
|
|
\frac{2V^2}{N_0} \frac{\int_{-\infty}^{+\infty} |\underline{G(f)}|^2 \dif f \int_{-\infty}^{+\infty} |\underline{B(f)}|^2 \dif f}
|
|
{\int_{-\infty}^{+\infty} |\underline{B(f)}|^2 \dif f}
|
|
\end{equation*}
|
|
Soit~:
|
|
\begin{equation*}
|
|
\frac{W_s}{W_n} \leq \frac{2V^2}{N_0} \int_{-\infty}^{+\infty} |\underline{G(f)}|^2 \dif f
|
|
\end{equation*}
|
|
|
|
Le membre de droite est la valeur maximale du rapport $\frac{W_s}{W_n}$, atteinte lorsque $|\underline{G(f)}|$ et $|\underline{B(f)}|$ sont proportionnels.
|
|
|
|
Le filtre du canal est optimal lorsque $\underline{B(f)}=\underline{G(f)}$, où $\underline{G(f)}$ est la transformée de Fourier de la réponse du codeur.
|
|
Mais en pratique, $\underline{B(f)} \neq \underline{G(f)}$.
|
|
|
|
Si l'on note $\underline{C_0(f)}$ le filtre naturel du canal, on rajoute au niveau du récepteur un filtre $\underline{R(f)}$ tel que~:
|
|
\begin{equation*}
|
|
\underline{B(f)} = \underline{C_0(f)} \cdot \underline{R(f)}
|
|
\end{equation*}
|
|
On obtiendra alors un filtre adapté.
|
|
|
|
Si $\underline{C_0(f)}$ est quasi-constante dans la bande passante de $\underline{G(f)}$, alors~:
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\node[rectangle,draw,label={below:codeur}] (codeur) at (0,0) {$\underline{G(f)}$};
|
|
\node[rectangle,draw,label={below:canal}] (canal) at (2,0) {$\underline{C_0(f)}$};
|
|
\node[rectangle,draw,label={below:filtre}] (filtre) at (4,0) {$\underline{R(f)}$};
|
|
\draw[-latex] (-1.5,0) -- (codeur) node[above,midway]{$a(t)$};
|
|
\draw[-latex] (codeur) -- (canal) node[above,midway]{$e(t)$};
|
|
\draw[-latex] (canal) -- (filtre);
|
|
\draw[-latex] (filtre) -- (5.5,0);
|
|
\draw [decorate, decoration={brace,amplitude=10pt,raise=15pt}]
|
|
(filtre.south east) -- (canal.south west) node [below=0.8cm,midway,sloped] {$\underline{B(f)}=\underline{G(f)}$};
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
Sinon, on réalise d'abord une correction de canal, filtre inverse de $\underline{C_0(f)}$ dans la bande passante de $\underline{G(f)}$ et le fait suivre par un filtre $\underline{R(f)} = \underline{G(f)}$~:
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\node[rectangle,draw,label={below:codeur}] (codeur) at (0,0) {$\underline{G(f)}$};
|
|
\node[rectangle,draw,label={below:canal}] (canal) at (2,0) {$\underline{C_0(f)}$};
|
|
\node[rectangle,draw,label={below:correcteur}] (correcteur) at (4,0) {$\underline{C_0^{-1}(f)}$};
|
|
\node[rectangle,draw,label={below:filtre}] (filtre) at (6,0) {$\underline{R(f)}$};
|
|
\draw[-latex] (-1.5,0) -- (codeur) node[above,midway]{$a(t)$};
|
|
\draw[-latex] (codeur) -- (canal) node[above,midway]{$e(t)$};
|
|
\draw[-latex] (canal) -- (correcteur);
|
|
\draw[-latex] (correcteur) -- (filtre);
|
|
\draw[-latex] (filtre) -- (7.5,0);
|
|
\draw [decorate, decoration={brace,amplitude=10pt,raise=15pt}]
|
|
(0.9,-0.4) -- (-1.5,-0.4) node [below=0.8cm,midway,sloped] {émission};
|
|
\draw [decorate, decoration={brace,amplitude=10pt,raise=15pt}]
|
|
(3,-0.4) -- (1.1,-0.4) node [below=0.8cm,midway,sloped] {transmission};
|
|
\draw [decorate, decoration={brace,amplitude=10pt,raise=15pt}]
|
|
(filtre.south east) -- (correcteur.south west) node [below=0.8cm,midway,sloped] {réception};
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\section{Transmission sur un canal à bande limitée --- Interférence inter-symboles}
|
|
|
|
\subsection{Modèle préalable du codage et de la transmission}
|
|
|
|
\begin{tabularx}{\linewidth}{YY}
|
|
& {
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\node [rectangle,draw] (rcodeur) at (0,0.3) {\parbox{5.5cm}{\centering codeur \vspace{1.7cm}}};
|
|
\node [rectangle,draw,minimum height=0.8cm,minimum width=2cm] (white) at (-1.5,0) {};
|
|
\node [rectangle,draw,minimum height=0.8cm,minimum width=2cm] (g) at (1.5,0) {$g(t)$};
|
|
\draw [latex-] (white) -- ++(-2cm,0) node[above]{$\{\alpha_k\}$};
|
|
\draw [-latex] (white) -- (g) node[above,midway]{$\{a_k\}$};
|
|
\draw [-latex] (g) -- ++(2cm,0) node[above]{$e(t)$};
|
|
\end{tikzpicture}
|
|
} \\
|
|
$e(t) = (a*g)(t)$ & {
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\node [rectangle,draw,minimum height=0.8cm,minimum width=2cm] (lcodeur) at (0,-2) {$\underline{G(f)}$};
|
|
\draw [latex-] (lcodeur) -- ++(-2cm,0) node[above]{$a(t)$};
|
|
\draw [-latex] (lcodeur) -- ++(2cm,0) node[above]{$e(t)$};
|
|
\end{tikzpicture}
|
|
} \\
|
|
$a(t) = \sum_{k=-\infty}^{+\infty} a_k \delta(t-kT)$ & {
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw [-latex] (-3,-5) -- (3,-5) node[below]{$t$};
|
|
\draw [-latex] (-2.5,-5.5) -- (-2.5,-3) node[left]{$a(t)$};
|
|
\foreach \i in {-2.5,-1,2}{
|
|
\draw [-latex,red,thick] (\i,-5) -- (\i,-4);
|
|
}
|
|
\draw [-latex,red,thick] (0.5,-5) -- (0.5,-6);
|
|
\end{tikzpicture}
|
|
} \\
|
|
\end{tabularx}
|
|
|
|
\subsection{Premier théorême de Nyquist}
|
|
|
|
Soit $H(f)$ un filtre passe-bas idéal, de fréquence de coupure $f_c$.
|
|
|
|
\hfill
|
|
\begin{tikzpicture}[scale=1.5, transform shape]
|
|
\draw[-latex] (-7.2,0) -- (-3.2,0) node[right]{$f$};
|
|
\draw[-latex] (-5,0) -- (-5,1.5) node[right]{$H(f)$};
|
|
\draw[red,thick] (-7,0) -- (-6,0) -- (-6,1) -- (-4,1) -- (-4,0) -- (-3,0);
|
|
\node at (-5,-0.3) {\footnotesize 0};
|
|
\node at (-6,-0.3) {\footnotesize $-f_c$};
|
|
\node at (-4,-0.3) {\footnotesize $f_c$};
|
|
|
|
\draw[-latex] (-2.2,0) -- (2.2,0) node[right]{$t$};
|
|
\draw[-latex] (0,0) -- (0,1.5) node[right]{$h(t)$};
|
|
\draw[thick,red]
|
|
(-1.5,0)
|
|
sin (-1.25,0.25) cos (-1,0) sin (-0.75,-0.25) cos (-0.5,0)
|
|
sin (0,1) cos (0.5,0)
|
|
sin (0.75,-0.25) cos (1,0) sin (1.25,0.25) cos (1.5,0)
|
|
;
|
|
\node at (1.5,1) {\parbox{1.5cm}{\tiny réponse\\impulsionnelle}};
|
|
\node at (0,-0.3) {\footnotesize 0};
|
|
\node at (-0.5,-0.45) {\tiny$\sfrac{-1}{2f_c}$};
|
|
\draw (-0.5,-0.1) -- (-0.5,0.1);
|
|
\node at (0.5,-0.45) {\tiny$\sfrac{1}{2f_c}$};
|
|
\draw (0.5,-0.1) -- (0.5,0.1);
|
|
\node at (-1,0.45) {\tiny$\sfrac{-1}{f_c}$};
|
|
\draw (-1,-0.1) -- (-1,0.1);
|
|
\node at (1,0.45) {\tiny$\sfrac{1}{f_c}$};
|
|
\draw (1,-0.1) -- (1,0.1);
|
|
\end{tikzpicture}
|
|
\hfill{}
|
|
|
|
\paragraph{Rappels sur la convolution}
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\node [rectangle,draw,minimum height=0.8cm,minimum width=2cm] (lcodeur) at (0,-2) {$\underline{H(f)}$};
|
|
\draw [latex-] (lcodeur) -- ++(-2cm,0) node[above]{$\underline{E(f)}$};
|
|
\draw [-latex] (lcodeur) -- ++(2cm,0) node[above]{$\underline{S(f)}$};
|
|
\end{tikzpicture}
|
|
|
|
\begin{itemize}
|
|
\item Domaine fréquenciel~: $\underline{S(f)} = \underline{H(f)}\underline{E(f)}$
|
|
\item Domaine temporel~: $s(t) = (h*e)(t) = \int_{-\infty}^{+\infty} e(\tau)h(t-\tau)\dif\tau$
|
|
\end{itemize}
|
|
|
|
\paragraph{Premier cas}
|
|
$\frac{1}{2f_c} < T \iff f_c > \frac{1}{2T}$
|
|
|
|
\begin{multicols}{2}
|
|
|
|
\begin{center}
|
|
Regardons ce qui se passe à $t=t_0=T$~: \\
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (-2,0) -- (4,0) node[below]{$\tau$};
|
|
\draw[-latex] (0,-1) -- (0,1.2) node[right]{$a(\tau)$};
|
|
\foreach \i in {0,1,3}{\draw[red,thick] (\i,0) -- (\i,0.7);}
|
|
\foreach \i in {-1,2}{\draw[red,thick] (\i,0) -- (\i,-0.7);}
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\columnbreak
|
|
|
|
\begin{equation*}
|
|
r(t) = (a*h)(t) = \int_{-\infty}^{+\infty} a(\tau) h(t - \tau) \dif\tau
|
|
\end{equation*}
|
|
|
|
\end{multicols}
|
|
|
|
\paragraph{Deuxième cas}
|
|
$\frac{1}{2f_c} > T \iff f_c < \frac{1}{2T}$
|
|
|
|
\begin{multicols}{2}
|
|
|
|
\begin{center}
|
|
Regardons ce qui se passe à $t=t_0=T$ soit pour $a_1$~: \\
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (-2,0) -- (4,0) node[below]{$\tau$};
|
|
\draw[-latex] (0,-1) -- (0,1.2) node[right]{$a(\tau)$};
|
|
\foreach \i in {0,1,3}{\draw[red,thick] (\i,0) -- (\i,0.7);}
|
|
\foreach \i in {-1,2}{\draw[red,thick] (\i,0) -- (\i,-0.7);}
|
|
\node at (1.3,0.2) {$a_1$};
|
|
\node at (2,-1) {2};
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\columnbreak
|
|
|
|
\begin{align*}
|
|
r(t_0) &= (a*h)(t_0) = \int_{-\infty}^{+\infty} a(\tau) h(t_0 - \tau) \dif\tau \\
|
|
&\implies r_1 = \sum_{k=-\infty}^{+\infty} a_k h(t_0 - kT) \neq a_1
|
|
\end{align*}
|
|
|
|
\end{multicols}
|
|
|
|
Alors les fonctions $h(t-kT)$ s'additionnent entre-elles.
|
|
|
|
\hfill
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (0,0) -- (3.5,0);
|
|
\foreach \i in {0,1,3}{\draw[red,thick,->] (\i,0) -- (\i,1);}
|
|
\draw[red,thick,->] (2,0) -- (2,-1);
|
|
\node at (0,-0.3) {0};
|
|
\node at (1,-0.3) {T};
|
|
\node at (2,0.3) {2T};
|
|
\node at (3,-0.3) {3T};
|
|
\end{tikzpicture}
|
|
\hfill
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\node [rectangle,draw] (lcodeur) at (0,-2) {$H(f)$};
|
|
\draw [latex-] (lcodeur) -- ++(-1.5cm,0);
|
|
\draw [-latex] (lcodeur) -- ++(1.5cm,0);
|
|
\end{tikzpicture}
|
|
\hfill
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (0,0) -- (3.5,0);
|
|
\draw[dashed,black!70] (-1,0) sin (1,1) cos (3,0);
|
|
\draw[dashed,black!70] (0,1) cos (2,0) sin (4,-1);
|
|
\draw[dashed,black!70] (-1,-1) cos (1,0) sin (3,1);
|
|
\draw[dashed,black!70] (0,0.3) sin (2,-0.7) cos (4,0.3);
|
|
\foreach \i in {0,1,2,3}{
|
|
\draw (\i,-1) -- (\i,2);
|
|
\node at (\i+0.2,0.1) {\tiny \i T};
|
|
}
|
|
\node[red] at (1.6,1.7) {$r(t)$};
|
|
\draw[red,thick,smooth]
|
|
(0,2) -- (0.25,1.8) -- (0.5,1.7) -- (0.75,1.73) --
|
|
(1,1.68) -- (1.18,1.4) -- (1.25,1.1) -- (1.35,0.3) --
|
|
(1.4,0.15) -- (1.5,0) -- (1.75,-0.2) --
|
|
(2,-0.28) -- (2.25,-0.27) -- (2.5,-0.2) -- (2.75,-0.13) --
|
|
(3,0.05) -- (3.25,0.95) -- (3.5,1.35) -- (3.75,1.5)
|
|
;
|
|
\end{tikzpicture}
|
|
\hfill{}
|
|
|
|
$r_k \neq a_k$~: il y a une Interférence Inter Symboles (IIS).
|
|
|
|
\paragraph{Troisième cas}
|
|
$\frac{1}{2f_c} = T \iff f_c = \frac{1}{2T}$
|
|
|
|
\hfill
|
|
\begin{tikzpicture}[xscale=0.8,yscale=1.1]
|
|
\draw[-latex] (-3.2,0) -- (3.5,0) node[right]{$t$};
|
|
\draw[-latex] (0,0) -- (0,1.7) node[right]{$h(t)$};
|
|
\foreach \i in {-3,-1,...,3}{\draw (\i,-0.05) -- (\i,0.05);}
|
|
\node at (-0.3,1.05) {1};
|
|
\draw[thick,red]
|
|
(-3,0) sin (-2.5,0.2) cos (-2,0) sin (-1.5,-0.2) cos (-1,0)
|
|
sin (0,1) cos (1,0)
|
|
sin (1.5,-0.2) cos (2,0) sin (2.5,0.2) cos (3,0)
|
|
;
|
|
\node at (-3,-0.4) {\tiny$\frac{-3}{2f_c}$};
|
|
\node[red] at (-3,-0.9) {\tiny =-3T};
|
|
\node at (-2,0.4) {\tiny$\frac{-2}{2f_c}$};
|
|
\node[red] at (-2,-0.9) {\tiny =-2T};
|
|
\node at (-1,-0.4) {\tiny$\frac{-1}{2f_c}$};
|
|
\node[red] at (-1,-0.9) {\tiny =-T};
|
|
\node at (0,-0.2) {\tiny 0};
|
|
\node at (1,-0.4) {\tiny$\frac{1}{2f_c}$};
|
|
\node[red] at (1,-0.9) {\tiny =T};
|
|
\node at (2,0.4) {\tiny$\frac{2}{2f_c}$};
|
|
\node[red] at (2,-0.9) {\tiny =2T};
|
|
\node at (3,-0.4) {\tiny$\frac{3}{2f_c}$};
|
|
\node[red] at (3,-0.9) {\tiny =3T};
|
|
\end{tikzpicture}
|
|
\hfill
|
|
\begin{tikzpicture}[xscale=0.8,yscale=1.1]
|
|
\draw[-latex] (-2.2,0) -- (5.5,0) node[right]{$t$};
|
|
\draw[-latex] (0,0) -- (0,1.7) node[right]{$h(t-kT)$};
|
|
\foreach \i in {-2,-1,...,5}{\draw (\i,-0.05) -- (\i,0.05);}
|
|
\draw[dashed] (2,0) -- (2,1) -- (0,1) node[left]{1};
|
|
\draw[thick,red]
|
|
(-2,0) sin (-1.5,-0.1) cos (-1,0)
|
|
sin (-0.5,0.2) cos (0,0) sin (0.5,-0.2) cos (1,0)
|
|
sin (2,1) cos (3,0)
|
|
sin (3.5,-0.2) cos (4,0) sin (4.5,0.2) cos (5,0)
|
|
;
|
|
\node at (-1,0.4) {\tiny kT-3T};
|
|
\node at (0,-0.4) {\tiny kT-2T};
|
|
\node at (1,-0.4) {\tiny kT-T};
|
|
\node at (2,-0.2) {\tiny kT};
|
|
\node at (3,-0.4) {\tiny kT+T};
|
|
\node at (4,0.4) {\tiny kT+2T};
|
|
\node at (5,-0.2) {\tiny kT+3T};
|
|
\end{tikzpicture}
|
|
\hfill{}
|
|
|
|
\begin{equation*}
|
|
r(t_0) = (a*h)(t_0) = \int_{-\infty}^{+\infty} a(\tau)h(t-\tau)\dif\tau
|
|
\implies
|
|
r_2 = \sum_{k=-\infty}^{+\infty} a_k h(t_0-kT) = a_2
|
|
\end{equation*}
|
|
|
|
\begin{tabularx}{\linewidth}{YYY}
|
|
\multirow{2}{*}{
|
|
\parbox{5cm}{$h(0) = 1$ \\ $h(kT) = 0 \quad \forall k \neq 0$}
|
|
} & Donc on a bien & $\sum_{k=-\infty}^{+\infty} h(t-kT) = \delta(t-kT)$ \\
|
|
\end{tabularx}
|
|
|
|
\hfill Pas d'IIS~: $r_k = a_k$. \hfill{}
|
|
|
|
\paragraph{Recherche de filtres réalisables pour lesquels il n'y a pas d'IIS}
|
|
|
|
Le premier critère de Nyquist assure qu'il n'y a pas d'Interférence Inter-Symboles.
|
|
Un filtre passe-bas idéal de fréquence de coupure $f_c = \frac{1}{2T}$ (moitié de la fréquence d'apparition des symboles $a_k$) satisfait ce critère.
|
|
Le filtre est non causal donc irréalisable.
|
|
|
|
Pour qu'il n'y ait pas d'IIS~: \(
|
|
h(t) \; |
|
|
\left\{
|
|
\begin{array}{l}
|
|
h(0) = 1 \\
|
|
h(kT) = 0 \quad \forall k \neq 0 \\
|
|
\end{array}
|
|
\right.
|
|
\)
|
|
\begin{equation*}
|
|
\iff h(t) \cdot \sum_{k=-\infty}^{+\infty} \delta(t-kT) = 1\cdot\delta(t)
|
|
\end{equation*}
|
|
|
|
En prenant la transformée de Fourier des deux membres~:
|
|
\begin{align*}
|
|
\underline{H(f)} * \sum_{n=-\infty}^{+\infty} \frac{1}{T} \delta(f-\frac{n}{T}) = 1 \\
|
|
\iff \sum_{n=-\infty}^{+\infty} \underline{H(f-\frac{n}{T})} = T \text{ constante réelle} \\
|
|
\text{\ldots{} qui n'est autre que } \underline{H(f)} \text{ périodisé à la fréquence } \frac{1}{T}
|
|
\end{align*}
|
|
|
|
\subsection{Deuxième théorême de Nyquist}
|
|
|
|
Le premier théorême de Nyquist assure un bon échantillonnage.
|
|
Le deuxième théorême de Nyquist assure une bonne restitution de l'horloge.
|
|
Cela veut dire que les instants de transitions de l'horloge arrivent au bon moment.
|
|
L'horloge est regénérée à partir du signal reçu.
|
|
|
|
Par exemple, dans le cas d'un signal NRZ, à la réception l'échantillonnage se fait aux instants $kT$ correspondants aux fronts \emph{descendants} de l'horloge.
|
|
Mais l'horloge est reconstituée d'après les transitions du signal, correspondants aux fronts \emph{montants}.
|
|
|
|
La condition supplémentaire pour avoir une bonne reconstitution de l'horloge est donc~:
|
|
|
|
\hfill \(
|
|
\left\{
|
|
\begin{array}{l}
|
|
h(-\frac{T}{2}) = h(+\frac{T}{2}) \\
|
|
h(nT \pm \frac{T}{2}) = 0 \quad \forall n \neq 0 \\
|
|
\end{array}
|
|
\right.
|
|
\)
|
|
\hfill
|
|
\begin{tikzpicture}[xscale=1,yscale=1.2]
|
|
\draw[-latex] (-3.5,0) -- (4.3,0) node[right]{$t$};
|
|
\draw[-latex] (0,-1) -- (0,1.5) node[right]{$h(t)$};
|
|
\foreach \i in {-3,-2,-1,1,2,3,4}{
|
|
\draw (\i,-0.05) -- (\i,0.05);
|
|
}
|
|
\node at (-3,-0.5) {\tiny $\frac{-3T}{2}$};
|
|
\node at (-2,-0.5) {\tiny $-T$};
|
|
\node at (-1,-0.5) {\tiny $\frac{-T}{2}$};
|
|
\node at (1,-0.5) {\tiny $\frac{T}{2}$};
|
|
\node at (2,-0.5) {\tiny $T$};
|
|
\node at (3,-0.5) {\tiny $\frac{3T}{2}$};
|
|
\draw (-3,0) sin (-2.5,-0.15) cos (-2,0) sin (0,1) cos (2,0) sin (2.5,-0.15) cos (3,0) sin (3.5,0.1) cos (4,0);
|
|
\node[circle,draw,red] at (-3,0) {};
|
|
\node[circle,draw,red] at (3,0) {};
|
|
\node[circle,draw,red] at (-1,0.7) {};
|
|
\node[circle,draw,red] at (1,0.7) {};
|
|
\end{tikzpicture}
|
|
\hfill{}
|
|
|
|
Les symboles à l'émission sont~:
|
|
|
|
\begin{multicols}{2}
|
|
|
|
\begin{tikzpicture}[scale=1, transform shape]
|
|
\draw[-latex] (-0.2,0) -- (4.4,0) node[right]{$t$};
|
|
\draw[-latex] (0,0) -- (0,1.9);
|
|
\node at (0,-0.3) {\small 0};
|
|
\node at (2,-0.3) {\small T};
|
|
\node at (3,-0.3) {\small $\theta$};
|
|
\node at (4,-0.3) {\small 2T};
|
|
\draw[->,red,thick] (0,0) -- (0,1) node[left]{a};
|
|
\draw[->,red,thick] (2,0) -- (2,1) node[left]{b};
|
|
\draw[->,red,thick] (4,0) -- (4,-1) node[left]{c};
|
|
\end{tikzpicture}
|
|
|
|
\columnbreak
|
|
|
|
Il y a une transition entre les symboles b et c, soit en $\theta = \frac{3T}{2}$ et que l'on veut retrouver.
|
|
Il faut donc un 0 en $\theta$ à la réception ($r(\theta)=0$).
|
|
|
|
\end{multicols}
|
|
|
|
\begin{itemize}
|
|
|
|
\item Contribution du symbole a~:
|
|
\begin{align*}
|
|
a(t) = a\delta(0) * h(t) \\
|
|
a(\theta) = 0
|
|
\end{align*}
|
|
|
|
\item Contribution du symbole b~:
|
|
\begin{align*}
|
|
b(t) = b\delta(t-T) * h(t) \\
|
|
b(\theta) = h(t+\frac{T}{2})
|
|
\end{align*}
|
|
|
|
\item Contribution du symbole c~:
|
|
\begin{align*}
|
|
c(t) = c\delta(t-2T) * h(t) \\
|
|
c(\theta) = -h(t-\frac{T}{2})
|
|
\end{align*}
|
|
|
|
\end{itemize}
|
|
|
|
\begin{equation*}
|
|
\text{Donc }
|
|
\left\{
|
|
\begin{array}{l}
|
|
a(\theta) = 0 \\
|
|
b(\theta) = -c(\theta) \\
|
|
\end{array}
|
|
\right. \implies a(\theta) + b(\theta) + c(\theta) = 0
|
|
\end{equation*}
|
|
|
|
\subsection{Filtre adapté aux deux critères de Nyquist}
|
|
|
|
\begin{itemize}
|
|
|
|
\item Pour respecter le premier critère et éviter l'IIS~:
|
|
\begin{equation*}
|
|
\sum_{n=-\infty}^{+\infty} \underline{H(f-\frac{n}{T})} = T
|
|
\end{equation*}
|
|
|
|
\item Pour respecter le deuxième critère et avoir une bonne restitution d'horloge~:
|
|
\begin{equation*}
|
|
\sum_{n=-\infty}^{+\infty} \underline{H(f-\frac{n}{T})} e^{j\pi n} = T \cos(\pi fT)
|
|
\end{equation*}
|
|
|
|
\end{itemize}
|
|
|
|
Cette fonction répondant aux deux critères est unique (cosinus surélevé)~:
|
|
\begin{equation*}
|
|
\underline{H(f)} = 1 + \cos(\pi fT) = 2\cos^2(\pi f \frac{T}{2})
|
|
\end{equation*}
|
|
|
|
Ce $h(t)$ est difficilement réalisable.
|
|
|
|
On peut par contre avoir un intermédiaire entre le filtre passe-bas idéal et un filtre en cosinus surélevé~:
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1.5, transform shape]
|
|
\draw[-latex] (-4.2,0) -- (4.5,0) node[right]{\small $f$};
|
|
\draw[-latex] (0,0) -- (0,2.4) node[right]{\small $H(f)$};
|
|
\node at (0,-0.2) {\tiny 0};
|
|
\node at (2,-0.2) {\tiny $(1-\alpha)f_c$};
|
|
\node at (3,-0.2) {\tiny $f_c$};
|
|
\node at (4,-0.2) {\tiny $(1+\alpha)f_c$};
|
|
\draw [dashed,black!70] (2,0) -- (2,2);
|
|
\draw [dashed,black!70] (0,1) -- (3,1) -- (3,0);
|
|
\draw[red,thick] (-4,0) cos (-3,1) sin (-2,2) -- (2,2) cos (3,1) sin (4,0);
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
Le coefficient $\alpha$, dit \emph{d'arrondi}, est appelé \emph{roll-off filter}.
|
|
|
|
$\alpha=0$ donne le filtre passe-bas idéal, de fréquence de coupure $\frac{1}{2T}$. \\
|
|
$\alpha=1$ donne un filtre en cosinus surélevé. \\
|
|
En pratique, on va prendre $0.3 \leq \alpha \leq 0.7$, mais pour toute valeur de $\alpha$, il n'y aura pas d'IIS\@.
|
|
|
|
\section{Transmission sur onde porteuse~: les modulations numériques}
|
|
|
|
La modulation numérique a deux intérêts~:
|
|
\begin{enumerate}
|
|
|
|
\item \textbf{Adapter le signal au canal de transmission} ---
|
|
Cela consiste à moduler une porteuse $p(t)$ par le signal d'information $x(t)$ et à transmettre le signal modulé $e(t)$ sur le canal de transmission.
|
|
À la réception, on fait le contraire (démodulation)~: à partir du signal $r(t)$ on obtient $x(t)_e$, idéalement égal à $e(t)$.
|
|
|
|
\item \textbf{Multiplexer plusieurs signaux sur un même canal de transmission} ---
|
|
Si l'on additionne les différents signaux à transmettre, impossible de les différencier à l'arrivée.
|
|
Par contre, on peut moduler les porteuses de fréquences différentes afin de dissocier les spectres.
|
|
|
|
\hfill
|
|
\begin{tikzpicture}[scale=2]
|
|
\draw (-1,0) -- (1,0);
|
|
\foreach \i in {-1,-0.5,...,1}{
|
|
\draw (\i,0) -- (\i,0.04);
|
|
\node at (\i,-0.2) {\tiny \i};
|
|
}
|
|
\draw[blue,very thick] (0,0) -- (0,1);
|
|
\end{tikzpicture}
|
|
\hfill
|
|
\begin{tikzpicture}[scale=2]
|
|
\draw (-1,0) -- (1,0);
|
|
\foreach \i in {-1,-0.5,...,1}{
|
|
\draw (\i,0) -- (\i,0.04);
|
|
\node at (\i,-0.2) {\tiny \i};
|
|
}
|
|
\draw[red,very thick] (0,0) -- (0,1);
|
|
\end{tikzpicture}
|
|
\hfill
|
|
\begin{tikzpicture}[scale=2]
|
|
\draw (-1,0) -- (1,0);
|
|
\foreach \i in {-1,-0.5,...,1}{
|
|
\draw (\i,0) -- (\i,0.04);
|
|
\node at (\i,-0.2) {\tiny \i};
|
|
}
|
|
\draw[green,very thick] (0,0) -- (0,1);
|
|
\end{tikzpicture}
|
|
\hfill{}
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=2]
|
|
\draw [thick,decorate, decoration={brace,amplitude=10pt}] (3.5,1.4) -- (-3.5,1.4);
|
|
\draw (-1,0) -- (1,0);
|
|
\foreach \i in {-1,-0.5,...,1}{
|
|
\draw (\i,0) -- (\i,0.04);
|
|
\node at (\i,-0.2) {\tiny \i};
|
|
}
|
|
\draw[blue,very thick] (-0.25,0) -- (-0.25,1);
|
|
\draw[blue,very thick] (0.25,0) -- (0.25,1);
|
|
\draw[red,very thick] (-0.5,0) -- (-0.5,1);
|
|
\draw[red,very thick] (0.5,0) -- (0.5,1);
|
|
\draw[green,very thick] (-0.75,0) -- (-0.75,1);
|
|
\draw[green,very thick] (0.75,0) -- (0.75,1);
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\end{enumerate}
|
|
|
|
\subsection{Principe de la modulation}
|
|
|
|
Soit $m(t)$ le signal d'information à transmettre.
|
|
Soit la porteuse $p(t) = A \cos(2\pi ft + \varphi)$.
|
|
|
|
Moduler, c'est changer une ou deux caractéristiques de la porteuse suivant $m(t)$~:
|
|
|
|
\begin{itemize}
|
|
\item $A$~: modulation d'amplitude
|
|
\item $f$~: modulation de fréquence
|
|
\item $\varphi$~: modulation de phase
|
|
\item $A$ et $\varphi$~: modulation de phase et d'amplitude
|
|
\end{itemize}
|
|
|
|
\subsection{Modulation d'amplitude (ASK, Amplitude Shift Keying)}
|
|
|
|
On choisit deux amplitudes différentes pour les 0 et les 1 dans le cas d'un signal bivalent.
|
|
Sinon, le OOF (On/Off Keying), c'est quand 0 = aucun signal et 1 = la porteuse.
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1]
|
|
\draw (0,0) -- (11,0);
|
|
\foreach \i in {0,1,...,11}{
|
|
\draw[dashed,black!60] (\i,-1.3) -- (\i,1.5);
|
|
}
|
|
\foreach \i in {0,3,5}{
|
|
\node at (\i+0.5,1.5) {\small 00};
|
|
}
|
|
\foreach \i in {1,8}{
|
|
\node at (\i+0.5,1.5) {\small 11};
|
|
}
|
|
\foreach \i in {2,4,9,10}{
|
|
\node at (\i+0.5,1.5) {\small 01};
|
|
}
|
|
\foreach \i in {6,7}{
|
|
\node at (\i+0.5,1.5) {\small 10};
|
|
}
|
|
\draw[red,thick]
|
|
(0,0) sin (0.125,-0.25) cos (0.25,0) sin (0.375,0.25) cos (0.5,0)
|
|
sin (0.625,-0.25) cos (0.75,0) sin (0.875,0.25) cos (1,0)
|
|
sin (1.125,-1) cos (1.25,0) sin (1.375,1) cos (1.5,0)
|
|
sin (1.625,-1) cos (1.75,0) sin (1.875,1) cos (2,0)
|
|
sin (2.125,-0.5) cos (2.25,0) sin (2.375,0.5) cos (2.5,0)
|
|
sin (2.625,-0.5) cos (2.75,0) sin (2.875,0.5) cos (3,0)
|
|
sin (3.125,-0.25) cos (3.25,0) sin (3.375,0.25) cos (3.5,0)
|
|
sin (3.625,-0.25) cos (3.75,0) sin (3.875,0.25) cos (4,0)
|
|
sin (4.125,-0.5) cos (4.25,0) sin (4.375,0.5) cos (4.5,0)
|
|
sin (4.625,-0.5) cos (4.75,0) sin (4.875,0.5) cos (5,0)
|
|
sin (5.125,-0.25) cos (5.25,0) sin (5.375,0.25) cos (5.5,0)
|
|
sin (5.625,-0.25) cos (5.75,0) sin (5.875,0.25) cos (6,0)
|
|
sin (6.125,-0.75) cos (6.25,0) sin (6.375,0.75) cos (6.5,0)
|
|
sin (6.625,-0.75) cos (6.75,0) sin (6.875,0.75) cos (7,0)
|
|
sin (7.125,-0.75) cos (7.25,0) sin (7.375,0.75) cos (7.5,0)
|
|
sin (7.625,-0.75) cos (7.75,0) sin (7.875,0.75) cos (8,0)
|
|
sin (8.125,-1) cos (8.25,0) sin (8.375,1) cos (8.5,0)
|
|
sin (8.625,-1) cos (8.75,0) sin (8.875,1) cos (9,0)
|
|
sin (9.125,-0.5) cos (9.25,0) sin (9.375,0.5) cos (9.5,0)
|
|
sin (9.625,-0.5) cos (9.75,0) sin (9.875,0.5) cos (10,0)
|
|
sin (10.125,-0.5) cos (10.25,0) sin (10.375,0.5) cos (10.5,0)
|
|
sin (10.625,-0.5) cos (10.75,0) sin (10.875,0.5) cos (11,0)
|
|
;
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\subsection{Modulation de fréquence (FSK, Frequency Shift Keying)}
|
|
|
|
On attribue des fréquences de porteuses différentes en fonction de la valeur à coder.
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1]
|
|
\draw (0,0) -- (11,0);
|
|
\foreach \i in {0,1,...,11}{
|
|
\draw[dashed,black!60] (\i,-1.3) -- (\i,1.5);
|
|
}
|
|
\foreach \i in {0,1,4,6,7,8,10}{
|
|
\node at (\i+0.5,1.5) {\small 0};
|
|
}
|
|
\foreach \i in {2,3,5,9}{
|
|
\node at (\i+0.5,1.5) {\small 1};
|
|
}
|
|
\draw[red,thick]
|
|
(0,1) cos (0.25,0) sin (0.5,-1) cos (0.75,0) sin (1,1)
|
|
cos (1.25,0) sin (1.5,-1) cos (1.75,0) sin (2,1)
|
|
cos (2.125,0) sin (2.25,-1) cos (2.375,0) sin (2.5,1)
|
|
cos (2.625,0) sin (2.75,-1) cos (2.875,0) sin (3,1)
|
|
cos (3.125,0) sin (3.25,-1) cos (3.375,0) sin (3.5,1)
|
|
cos (3.625,0) sin (3.75,-1) cos (3.875,0) sin (4,1)
|
|
cos (4.25,0) sin (4.5,-1) cos (4.75,0) sin (5,1)
|
|
cos (5.125,0) sin (5.25,-1) cos (5.375,0) sin (5.5,1)
|
|
cos (5.625,0) sin (5.75,-1) cos (5.875,0) sin (6,1)
|
|
cos (6.25,0) sin (6.5,-1) cos (6.75,0) sin (7,1)
|
|
cos (7.25,0) sin (7.5,-1) cos (7.75,0) sin (8,1)
|
|
cos (8.25,0) sin (8.5,-1) cos (8.75,0) sin (9,1)
|
|
cos (9.125,0) sin (9.25,-1) cos (9.375,0) sin (9.5,1)
|
|
cos (9.625,0) sin (9.75,-1) cos (9.875,0) sin (10,1)
|
|
cos (10.25,0) sin (10.5,-1) cos (10.75,0) sin (11,1)
|
|
;
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\subsection{Modulation de phase (PSK, Phase Shift Keying)}
|
|
|
|
On applique un déphasage pour différencier les séquences binaires par rapport à la phase de la porteuse, qui sert de référence.
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[scale=1]
|
|
\draw (0,0) -- (11,0);
|
|
\foreach \i in {0,1,...,11}{
|
|
\draw[dashed,black!60] (\i,-1.3) -- (\i,1.5);
|
|
}
|
|
\foreach \i in {0,1,4,6,7,8,10}{
|
|
\node at (\i+0.5,1.5) {\small 0};
|
|
}
|
|
\foreach \i in {2,3,5,9}{
|
|
\node at (\i+0.5,1.5) {\small 1};
|
|
}
|
|
\draw[red,thick]
|
|
(0,0) sin (0.125,-1) cos (0.25,0) sin (0.375,1) cos (0.5,0)
|
|
sin (0.625,-1) cos (0.75,0) sin (0.875,1) cos (1,0)
|
|
sin (1.125,-1) cos (1.25,0) sin (1.375,1) cos (1.5,0)
|
|
sin (1.625,-1) cos (1.75,0) sin (1.875,1) cos (2,0)
|
|
sin (2.125,1) cos (2.25,0) sin (2.375,-1) cos (2.5,0)
|
|
sin (2.625,1) cos (2.75,0) sin (2.875,-1) cos (3,0)
|
|
sin (3.125,1) cos (3.25,0) sin (3.375,-1) cos (3.5,0)
|
|
sin (3.625,1) cos (3.75,0) sin (3.875,-1) cos (4,0)
|
|
sin (4.125,-1) cos (4.25,0) sin (4.375,1) cos (4.5,0)
|
|
sin (4.625,-1) cos (4.75,0) sin (4.875,1) cos (5,0)
|
|
sin (5.125,1) cos (5.25,0) sin (5.375,-1) cos (5.5,0)
|
|
sin (5.625,1) cos (5.75,0) sin (5.875,-1) cos (6,0)
|
|
sin (6.125,-1) cos (6.25,0) sin (6.375,1) cos (6.5,0)
|
|
sin (6.625,-1) cos (6.75,0) sin (6.875,1) cos (7,0)
|
|
sin (7.125,-1) cos (7.25,0) sin (7.375,1) cos (7.5,0)
|
|
sin (7.625,-1) cos (7.75,0) sin (7.875,1) cos (8,0)
|
|
sin (8.125,-1) cos (8.25,0) sin (8.375,1) cos (8.5,0)
|
|
sin (8.625,-1) cos (8.75,0) sin (8.875,1) cos (9,0)
|
|
sin (9.125,1) cos (9.25,0) sin (9.375,-1) cos (9.5,0)
|
|
sin (9.625,1) cos (9.75,0) sin (9.875,-1) cos (10,0)
|
|
sin (10.125,-1) cos (10.25,0) sin (10.375,1) cos (10.5,0)
|
|
sin (10.625,-1) cos (10.75,0) sin (10.875,1) cos (11,0)
|
|
;
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
On peut faire une représentation trigonométrique de ces modulations~: \emph{constellation}.
|
|
|
|
\hfill
|
|
\begin{tikzpicture}[scale=1.5,baseline=(current bounding box.center)]
|
|
\node at (0,2) {BPSK (Binary PSK)};
|
|
\draw (-1.5,0) -- (1.5,0);
|
|
\draw (0,-1.5) -- (0,1.5);
|
|
\draw (0,0) circle (1);
|
|
\draw[red,fill] (1,0) circle (2pt) node[below right,black]{0};
|
|
\draw[red,fill] (-1,0) circle (2pt) node[below left,black]{1};
|
|
\draw[-latex] (0.3,0) arc [start angle=0,end angle=180,radius=0.3];
|
|
\node[black!80] at (0.7,0.6) {Déphasage $\varphi=\pi$};
|
|
\end{tikzpicture}
|
|
\hfill
|
|
\begin{tikzpicture}[scale=1.5,baseline=(current bounding box.center)]
|
|
\node at (0,2) {4-PSK};
|
|
\draw (-1.5,0) -- (1.5,0);
|
|
\draw (0,-1.5) -- (0,1.5);
|
|
\draw (0,0) circle (1);
|
|
\draw[red,fill] (1,0) circle (2pt) node[below right,black]{\small 01};
|
|
\draw[red,fill] (-1,0) circle (2pt) node[below left,black]{\small 10};
|
|
\draw[red,fill] (0,1) circle (2pt) node[above right,black]{\small 00};
|
|
\draw[red,fill] (0,-1) circle (2pt) node[below left,black]{\small 11};
|
|
\end{tikzpicture}
|
|
\hspace{0.5cm}
|
|
\begin{tabular}{cc}
|
|
\toprule
|
|
\textbf{Symbole} & \textbf{Phase} \\
|
|
\midrule
|
|
01 & 0 \\
|
|
\midrule
|
|
00 & $\frac{\pi}{2}$ \\
|
|
\midrule
|
|
10 & $\pi$ \\
|
|
\midrule
|
|
11 & $\frac{3\pi}{2}$ \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\hfill{}
|
|
|
|
Plus le nombre d'état est élevé, plus la vitesse de transmission des données augmente, mais avec l'influence du bruit, plus la probabilité d'erreur est élevée.
|
|
|
|
\subsection{Modulation combinée (MAQ-M)}
|
|
|
|
C'est la combinaison des modulations d'amplitude et de phase.
|
|
On la note MAQ-M, de M états de phase et d'amplitude.
|
|
En général, $M=2^n$~: chaque symbole code $n=\log_2(M)$ bits.
|
|
|
|
Exemple pour une MAQ-16~:
|
|
|
|
\hfill
|
|
\begin{tikzpicture}[scale=1.5,baseline=(current bounding box.center)]
|
|
\draw (-2,0) -- (2,0);
|
|
\draw (0,-2) -- (0,2);
|
|
\draw[red,fill] (-1.5,-1.5) circle (2pt) node[below left,black]{\tiny 0000};
|
|
\draw[red,fill] (-1.5,-0.5) circle (2pt) node[below left,black]{\tiny 0001};
|
|
\draw[red,fill] (-1.5,1.5) circle (2pt) node[below left,black]{\tiny 0010};
|
|
\draw[red,fill] (-1.5,0.5) circle (2pt) node[below left,black]{\tiny 0011};
|
|
|
|
\draw[red,fill] (-0.5,-1.5) circle (2pt) node[below left,black]{\tiny 0100};
|
|
\draw[red,fill] (-0.5,-0.5) circle (2pt) node[below left,black]{\tiny 0101};
|
|
\draw[red,fill] (-0.5,1.5) circle (2pt) node[below left,black]{\tiny 0110};
|
|
\draw[red,fill] (-0.5,0.5) circle (2pt) node[below left,black]{\tiny 0111};
|
|
|
|
\draw[red,fill] (0.5,-1.5) circle (2pt) node[below right,black]{\tiny 1100};
|
|
\draw[red,fill] (0.5,-0.5) circle (2pt) node[below right,black]{\tiny 1101};
|
|
\draw[red,fill] (0.5,1.5) circle (2pt) node[below right,black]{\tiny 1110};
|
|
\draw[red,fill] (0.5,0.5) circle (2pt) node[below right,black]{\tiny 1111};
|
|
|
|
\draw[red,fill] (1.5,-1.5) circle (2pt) node[below right,black]{\tiny 1000};
|
|
\draw[red,fill] (1.5,-0.5) circle (2pt) node[below right,black]{\tiny 1001};
|
|
\draw[red,fill] (1.5,1.5) circle (2pt) node[below right,black]{\tiny 1010};
|
|
\draw[red,fill] (1.5,0.5) circle (2pt) node[below right,black]{\tiny 1011};
|
|
\end{tikzpicture}
|
|
\hfill
|
|
\begin{tikzpicture}[xscale=1.1,yscale=0.6,baseline=(current bounding box.center)]
|
|
\node at (1,6.5) {\tiny Signal binaire $m(t)$};
|
|
\draw (0,0) -- (8,0);
|
|
\draw (0,6) -- (8,6);
|
|
\foreach \i in {0,1,...,8}{\draw (\i,0) -- (\i,6);}
|
|
\foreach \i in {1,2,...,5}{\draw[dashed] (0,\i) -- (8,\i);}
|
|
\foreach \i in {0,1,1.5,2,2.5,3.5,4,7,7.5}{\node at (\i+0.25,5.5) {\small 0};}
|
|
\foreach \i in {0.5,3,4.5,5,5.5,6,6.5}{\node at (\i+0.25,5.5) {\small 1};}
|
|
\draw[red,thick]
|
|
(0,1) -- (0.5,1) -- (0.5,5) -- (1,5) -- (1,1) -- (3,1) -- (3,5) --
|
|
(3.5,5) -- (3.5,1) -- (4.5,1) -- (4.5,5) -- (7,5) -- (7,1) -- (8,1)
|
|
;
|
|
\end{tikzpicture}
|
|
|
|
\hfill
|
|
\begin{tikzpicture}[xscale=1.1,yscale=0.4]
|
|
\node at (1.2,5.6) {\tiny Signal modulé $s_{mod}(t)$};
|
|
\draw (0,-5) -- (8,-5);
|
|
\draw (0,5) -- (8,5);
|
|
\foreach \i in {0,1,...,8}{\draw (\i,-5) -- (\i,5);}
|
|
\foreach \i in {-4,-3,...,4}{\draw[dashed] (0,\i) -- (8,\i);}
|
|
\draw[red] (0,0)
|
|
\foreach \i in {0,0.1,...,2}{
|
|
sin (\i+0.025,3) cos (\i+0.05,0) sin (\i+0.075,-3) cos (\i+0.1,0)
|
|
}
|
|
\foreach \i in {2,2.1,...,4}{
|
|
sin (\i+0.025,4) cos (\i+0.05,0) sin (\i+0.075,-4) cos (\i+0.1,0)
|
|
}
|
|
\foreach \i in {4,4.1,...,6}{
|
|
sin (\i+0.025,1) cos (\i+0.05,0) sin (\i+0.075,-1) cos (\i+0.1,0)
|
|
}
|
|
\foreach \i in {6,6.1,...,8}{
|
|
sin (\i+0.025,2) cos (\i+0.05,0) sin (\i+0.075,-2) cos (\i+0.1,0)
|
|
}
|
|
;
|
|
\end{tikzpicture}
|
|
|
|
\section{Synchronisation dans les récepteurs}
|
|
|
|
Le récepteur reçoit un signal retardé par rapport à l'émission.
|
|
Il doit également mesurer le temps grâce à une horloge pour échantillonner le signal reçu.
|
|
Pour récupérer correctement le signal émis, il faut que le récepteur se synchronise sur l'émetteur.
|
|
|
|
\begin{itemize}
|
|
|
|
\item supposons que le signal de départ soit de la forme $y(t) = A_y\cos(\omega_0 t + \theta(t))$
|
|
|
|
\item à l'arrivée, la forme est analogique~: $v(t) = A_v\cos(\omega_0 t + \varphi(t))$
|
|
|
|
\item le détecteur de phase engendre le signal $\varepsilon(t) = f(\theta(t) - \varphi(t))$
|
|
|
|
\end{itemize}
|
|
|
|
La fonction $f$ est donc une fonction en \emph{dents de scie}.
|
|
|
|
Si la boucle à verrouillage de phase est stable et réagit rapidement et que les fluctuations $\theta(t)$ ne sont pas trop grandes, alors $v(t)$ suivra assez bien $y(t)$.
|
|
|
|
Cette boucle à verrouillage de phase sert premièrement à récupérer la phase de la fréquence porteuse.
|
|
|
|
\paragraph{Impacts d'une mauvaise synchronisation}
|
|
|
|
\begin{enumerate}
|
|
\item Erreur sur la phase ---
|
|
Une perturbation sur la phase entraîne une rotation de la constellation, qu'il est possible de compenser.
|
|
\item Erreur sur le rythme ---
|
|
Une erreur sur l'instant d'échantillonnage provoque de l'IIS\@.
|
|
\end{enumerate}
|
|
|
|
\section{Principe de l'embrouillage (scrambling)}
|
|
|
|
L'embrouillage sert à maintenir des caractéristiques spectrales et statistiques du signal à transmettre proches de celles de la théorie (Bennett, voir~\ref{par:bennett}). \\
|
|
Il s'agit aussi de maintenir la synchronisation du récepteur même en l'absence du signal à transmettre.
|
|
|
|
Cela consiste à mélanger au même rythme d'horloge, par un \texttt{XOR}, le signal à transmettre $\{s_i\}$ avec une séquence pseudo-aléatoire $\{e_i\}$, réalisée à l'aide d'un registre à décalages.
|
|
|
|
\begin{itemize}
|
|
|
|
\item à l'émission~:
|
|
\begin{equation*}
|
|
t_1 = s_i \oplus e_i \quad \text{avec} \quad e_i = \sum_{j=1}^{n} h_j t_j
|
|
\end{equation*}
|
|
|
|
\item à la réception~:
|
|
\begin{equation*}
|
|
d_i = t_1 \oplus e_i = s_i \oplus (e_i \oplus e_i) = s_i
|
|
\end{equation*}
|
|
|
|
\end{itemize}
|
|
|
|
\section{Étalement de spectre}
|
|
|
|
\end{document}
|