cours-m1-eea/433-Electronique_transmission_numerique/Cours/chap23.tex

375 lines
12 KiB
TeX
Raw Normal View History

2019-03-18 13:10:49 +01:00
\documentclass[main.tex]{subfiles}
\begin{document}
\begin{defin}
\begin{itemize}
\item Un signal en bande de base est un signal n'ayant pas subit de
transposition en fréquence.
\item un code en bande de base consiste a choisir une forme d'impulsion/niveau de tension pour transmettre un débit $D$ dans un canal de bande passante $B$.
\end{itemize}
\end{defin}
\begin{rem}
2019-04-30 15:37:14 +02:00
Le codage en bande de base n'est pas un codage source ou canal ,pas cryptage du signal.
2019-03-18 13:10:49 +01:00
\end{rem}
2019-04-08 08:52:20 +02:00
\section{Mise en équation}
2019-03-18 13:10:49 +01:00
\paragraph{Objectif} transmettre $d_n$ mot de code constitué d'une suite d'élements binaires $\{\beta_n\}$
\begin{defin}
Pour la suite on considère que l'on émet le signal (PAM):
\[
e(t) = \sum_{k}^{}a_kg(t-kT)
\]
\begin{itemize}
\item $a_k$ pris dans un alphabet de tension $\{A_0 ... A_{M-1}\}$ à $M$ niveaux possibles
\item $g(t)$ forme d'impulsion (rectangulaire de période $T$, triangulaire, Impulsion de Nyquist)
\item T est la durée du symbole transmis $T = nT_b$(transmission d'un $n$-uplet d'élements binaire choisi parmis $M=2^n$ éléments possibles.)
\end{itemize}
\end{defin}
\begin{exemple}[Cas binaire]
$M=2$ . On a un seul élement binaire transmis pendant $T= 1 T_b$. $a_k\in\{A_0=0, A_1=+1 \}$.
\end{exemple}
\begin{exemple}[Cas quaternaire]
$M=4=2^2$ . $T=2T_B$. $a_k\in\{A_0=0,A_1=+1,A_2=+2,A_3=+3\}$
\end{exemple}
\begin{defin}
\begin{itemize}
\item La\emph{ rapidité de modulation }en sortie du codeur ligne est :
\[
R = \frac{1}{T}= \frac{1}{nT_b}=\frac{D}{\log_2{M}}
\]
\item Le débit binaire est ; $D=1/T_b$ [bits/s]
\item la rapidité de modulation $R=D/\log_2(M)$ [bauds]
\end{itemize}
\end{defin}
On peux mettre $e(t)$ sous la forme
\[
e(t) = g(t) \star a(t) =g(t)\star \sum_{k}^{}a_k\delta(t-kT)
\]
La DSP du signal peux s'écrire alors (via la formule des interférences)
\[
\phi_{ee}(f) = |G(f)|^2 \phi_{aa}(f)
\]
Or comme $a(t)$ est aléatoire il est impossible de calculer $A(f)$. La DSP peux cependant s'obtenir par l'autocorrélation du signal\footnote{cf UE 451} Les propriétés statistiques permettent d'obtenir la DSP de $a$ (nature du codage de source, études des moments...)
\begin{rem}
La DSP de $e$ est constituée d'éventuelle raie et du module au carré de de la TF de $G(f)$. On peux par exemple rajouter une raie a la fréquence d'horloge pour la transmettre au récepteur (PLL ... )
2019-04-30 15:37:14 +02:00
La fonction d'autocorrélation de $e(t)$ est périodique (cyclostationnarité) est utilisée dans certaines application pour la récupération du rythme $T$ et la synchronisation.
2019-03-18 13:10:49 +01:00
\end{rem}
2019-04-08 08:52:20 +02:00
\section{Classification}
\subsection{Codes RZ et NRZ}
2019-03-18 13:10:49 +01:00
\begin{defin}
\begin{itemize}
2019-04-30 15:37:14 +02:00
\item\emph{ RZ :Return to Zero:}
2019-03-18 13:10:49 +01:00
\[
g(t) =
\begin{cases}
\neq 0 & \forall t \in [0,\lambda T]\\
= 0 & \forall t \in [\lambda T ,T]
\end{cases}
\]
2019-04-30 15:37:14 +02:00
\item\emph{ NRZ : Non Return to Zero}
2019-03-18 13:10:49 +01:00
\[
2019-04-30 15:37:14 +02:00
g(t) \neq 0 \quad \forall t\in[0,T]
2019-03-18 13:10:49 +01:00
\]
\end{itemize}
\end{defin}
2019-04-08 08:52:20 +02:00
\subsection{Code ou format (M-aire) unipolaire et antipolaire}
2019-03-18 13:10:49 +01:00
\begin{defin}
2019-04-30 15:37:14 +02:00
Les codes \emph{unipolaires} ne changent pas de signe, les moyennes ne sont pas nulles.
2019-03-18 13:10:49 +01:00
2019-04-30 15:37:14 +02:00
Pour les codes\emph{ antipolaire,} c'est l'inverse.
2019-03-18 13:10:49 +01:00
On distingue les codes paires et impaires (utilisation du zéro)
2019-04-30 15:37:14 +02:00
2019-03-18 13:10:49 +01:00
\end{defin}
2019-04-30 15:37:14 +02:00
\begin{defin}
Un code \emph{binaire} utilise 2 niveau de tension pour encoder le
signal.
2019-03-18 13:10:49 +01:00
2019-04-30 15:37:14 +02:00
Un code \emph{M-aire} en utilise $M$.
\end{defin}
2019-04-08 08:52:20 +02:00
\subsection{Code avec ou sans mémoire}
2019-03-18 13:10:49 +01:00
\begin{defin}
\begin{itemize}
2019-04-30 15:37:14 +02:00
\item Code \emph{sans mémoire} :
Transcodage systématique.
\item Code \emph{avec mémoire}:
2019-03-18 13:10:49 +01:00
Utilise les valeurs des bits précédemment transmis pour déterminer la valeur a émettre.
\end{itemize}
\end{defin}
\begin{prop}
Si on a un code sans mémoire, alors l'autocorrélation de $a$ peux s'écrire:
\[
\phi_{aa}(f) = \frac{\sigma_a^2}{T} + \frac{m_a^2}{T^2}\sum_{k=-\infty}^{+\infty} \delta(f-k/T)
\]
\end{prop}
2019-04-08 08:52:20 +02:00
\section{Code en BdeB usuels}
2019-04-30 15:37:14 +02:00
\subsection{Rappel}: on a la DSP du signal d'apres la formule des interférences:
\[
\phi_{ee}(f) = |G(f)|^2\times \phi_{aa}(f)
\]
\begin{prop}
Pour un code en Bande de Base:
\begin{itemize}
\item à symbole indépendant (sans mémoire)
\item à symbole identiquement distribués
\end{itemize}
Alors:
\[
\phi_{aa}(f) =\frac{\sigma_a^2}{T}+\frac{m_a}{T^2}\sum_{-\infty}^{+\infty}\delta(f-k/T)
\]
\end{prop}
\subsection{Code NRZ binaires}
\subsubsection{Code NRZ Binaire antipolaire}
\begin{figure}[H]
\centering
\begin{tikzpicture}[scale=0.5]
\begin{axis}
[axis lines = middle,width =0.9\linewidth,height=5cm,
xmin= 0,xmax =6, ymin=-1.3,ymax=1.5,xtick={1,2,3,4,5,6},
xticklabels={$T_b$,$2T_b$,$3T_b$,$4T_b$,$5T_b$,$6T_b$},
xticklabel style={yshift = -1.2cm},
ytick={-1,1},yticklabels={$-V$,$+V$}]
\addplot[const plot, very thick] coordinates {(0,1) (1,-1) (2,1) (3,-1) (4,-1)
(5,1) (6,1)};
\end{axis}
\end{tikzpicture}
\caption{Codage NRZ binaire}
\end{figure}
\begin{defin}
Pour un code NRZ binaire antipolaire on a:
\[
\begin{cases}
a_k = + 1 & \text{ si } \beta_k =1 \\
a_k = - 1 & \text{ si } \beta_k =0 \\
\end{cases}
\]
Alors :
\[
m_a = 0 \text{ et } \sigma_a^2 = V^2
\]
Pour une forme d'impulsion rectangulaire on a donc:
\[
\phi_{ee}(f)= V^2 T_b \left(\frac{\sin\pi fT_b}{\pi f T_b}\right)^2+ \delta(f)\frac{V^2}{4}
\]
\end{defin}
\subsubsection{Code NRZ binaire unipolaire}
\begin{figure}[H]
\centering
\begin{tikzpicture}[scale=0.5]
\begin{axis}
[axis lines = middle,width =0.9\linewidth,height=5cm,
xmin= 0,xmax =6, ymin=-1.3,ymax=1.5,xtick={1,2,3,4,5,6},
xticklabels={$T_b$,$2T_b$,$3T_b$,$4T_b$,$5T_b$,$6T_b$},
xticklabel style={yshift = -1.2cm},
ytick={-1,1},yticklabels={$-V$,$+V$}]
\addplot[const plot, very thick] coordinates {(0,1) (1,0) (2,1) (3,0) (4,0)
(5,1) (6,1)};
\end{axis}
\end{tikzpicture}
\caption{Codage NRZ binaire}
\end{figure}
\begin{defin}
Pour un code NRZ binaire unipolaire on a:
\[
\begin{cases}
a_k = + 1 & \text{ si } \beta_k =1 \\
a_k = 0 & \text{ si } \beta_k =0 \\
\end{cases}
\]
Alors :
\[
m_a = +\frac{V}{2} \text{ et } \sigma_a^2 = \frac{V^2}{4}
\]
Pour une forme d'impulsion rectangulaire on a donc:
\[
\phi_{ee}(f)= \frac{V^2T_b}{4} \left(\frac{\sin\pi fT_b}{\pi f T_b}\right)^2
\]
\end{defin}
\subsubsection{Code NRZ M-aire}
\begin{defin}
On généralise le code NRZ binaire pour $a_k=\{\pm 1,\pm2 ... \pm
(M/2-1)\}$ on a :
\[ m_a = 0 \text{ et } \sigma_a^2 = \frac{2}{M} \sum_{p=0}^{(M/2)-1}(2p+1)^2
\]
Pour une forme d'impulsion rectangulaire de durée $T=nT_b$on a donc:
\[
\phi_{ee}(f)= \frac{(M-1)^2}{3}V^3T \left(\frac{\sin\pi fT}{\pi f T}\right)^2
\]
\end{defin}
\subsubsection{Code RZ binaire}
\begin{defin}
On note $RZ_\lambda$ pour une impulsion rectangulaire de la forme:
\[g(t)=
\begin{cases}
+V & \forall t \in [0;\lambda T_b] \\
0 & \forall t \in [\lambda T_b,T_b]
\end{cases}
\]
Alors :
\[
\phi_{ee}(f)= \frac{V^2\lambda^2T_b}{4}\left(\frac{\sin\pi f_b\lambda T}{\pi f\lambda T_b}
\right)^2 + \frac{V^2\lambda^2T_b}{4}\sum_{k=-\infty}^{+\infty} \left(\frac{\sin k\pi\lambda}{k\pi\lambda}\right)^2\delta(f-k/T_b)
\]
\end{defin}
\begin{rem}
Le plus classique est le code $RZ_{1/2}$: on a une raie à $1/T_b$,
mais pour une longue suite de $0$la DSP s'annule.
\end{rem}
\subsubsection{Code Manchester}
\begin{defin}
\[
\begin{cases}
a_k = + 1 & \text{ si } \beta_k =1 \\
a_k = 0 & \text{ si } \beta_k =0 \\
\end{cases}
\]
Pour une impulsion rectangulaire on a donc:
\[
g(t)=
\begin{cases}
+ V & \forall t \in [0,T_b/2] \\
-V & \forall t \in [T_b/2,T_b]\\
0 & \forall t \notin [0,T_b]
\end{cases}
\]
Alors:
\[
\phi_{ee}(f)= V^2T_b \left(\frac{\sin\pi fT_b/2}{\pi f T_b/2}\right)^2()\sin\pi fT_b/2)^2
\]
\end{defin}
2019-03-18 13:10:49 +01:00
2019-04-30 15:37:14 +02:00
\begin{rem}
Le codage de manchester est un transcodage ``1B2B'' : le 1 est
codé par 1->0 alors que 0 est codé par 0->1. Les deux mots 11 et 00 ne
sont pas utilisés. C'est le front montant ou descedant qui code l'information.
2019-03-18 13:10:49 +01:00
2019-04-30 15:37:14 +02:00
La DSPd'un code de Manchester a une raie à la fréquence $f=1/T_b$,
on peux faire de la synchronisation.
\end{rem}
\subsection{Code en Bande de base avec mémoire}
\subsubsection{Code bipolaire $RZ_{1/2}$}
\begin{defin}
\[
\begin{cases}
a_k = \pm 1 & \text{ si } \beta_k =1 \\
a_k = 0 & \text{ si } \beta_k =0 \\
\end{cases}
\]
Donc $m_a =0$ et $\sigma_a^2 = 1/2$.
Pour une impulsion rectangulaire on a donc:
\[
g(t)=
\begin{cases}
+ V & \forall t \in [0,T_b/2] \\
-V & \forall t \in [T_b/2,T_b]\\
\end{cases}
\]
Alors :
\[
\phi_{ee}(f)= \frac{V^2T_b}{\sin^2(\pi fT_b)}\sinc^2(\frac{\pi fT_b}{2})
\]
\end{defin}
\begin{prop}[Cas d'un code avec mémoire]
Pour un code avec mémoire :
\[
\phi_{aa}(f) = \frac{\sigma_a^2}{T}+\frac{2\sigma_a^2}{T}\sum_{k=1}^{\infty}R_{aa}(k)\cos(2\pi fk T)+\frac{m_a^2}{T^2}\sum_{k=-\infty}^{+\infty}\delta(f-k/T)
\]
Avec $R_{aa}$ la fonction d'autocorrélation normalise des symboles
$a_k$
\[
R_{aa} = \frac{E[(a_n-m_a)(a_{n-k}-m_a)]}{\sigma_a^2}
\]
\end{prop}
\begin{rem}
$e(t)$ prend 3 niveaux de tension (+V,-V,0), ou 1 est codé
alternativement par +V et -V. C'est un code
\emph{pseudo-ternaire}. Si $\beta_k$ possède une longue suite de zéro la
DSP va s'annuler...
\end{rem}
\subsubsection{Code HDBn}
\begin{defin}
Pour éviter que la DSP s'annule on intercale des \emph{ bit de
viols}pour limiter la succession de $n$ zéros.
\end{defin}
\begin{prop}
Le $n$ de HBDn indique le nombre de 0 que l'on peut envoyer. On le choisit en fonction de la fiabilité du support et du matériel. La valeur pour le premier 1 à envoyer est fixée par convention entre l'émetteur et le récepteur.
\end{prop}
2019-03-18 13:10:49 +01:00
2019-04-30 15:37:14 +02:00
\begin{center}
\begin{tikzpicture}[
level distance=2cm,
level 1/.style={sibling distance=7cm},
level 2/.style={sibling distance=4.5cm},
edge from parent fork down]
\tikzset{if/.style={diamond,draw,aspect=2.5,inner sep=-3pt, label={[yshift=0.125cm]left:{\tiny\bf+}},
label={[yshift=0.125cm]right:{\tiny-}},}}
\node[if](I) {\begin{tabular}{c}
Polarité du \\dernier viol
\end{tabular}}
[edge from parent path={[-latex] (\tikzparentnode) -| (\tikzchildnode)}]
child {node[if] {
\begin{tabular}{c}
Polarité du \\dernier 1
\end{tabular}}
child {node {\texttt{-V00V}}}
child {node {\texttt{000-V}}}
}
child {node[if] {
\begin{tabular}{c}
Polarité du \\dernier 1
\end{tabular}}
child {node {\texttt{000+V}}}
child {node {\texttt{+V000+V}}}
}
;
\node[above=1cm] at (I.north) (O) {\texttt{0000}};
\draw[-latex] (O) -- (I.north);
\end{tikzpicture}
\end{center}
2019-03-18 13:10:49 +01:00
2019-04-30 15:37:14 +02:00
Pour compenser les bits de viols , on ajoute les \emph{ bits de bourrage.}
\begin{exemple}~\\
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}
[axis lines = middle,width =0.9\linewidth,height=5cm,
xmin= -0.2,xmax =15, ymin=-1.3,ymax=1.5,
xticklabels={0,1,0,1,0,0,0,0,0,1,1,0,0,0,0,1},
grid = major,
xticklabel style={yshift = 2cm,xshift=-0.5cm},
ytick={-1,1},yticklabels={$-V$,$+V$}]
\addplot[const plot, very thick] coordinates {(-1,1) (0,0) (1,-1) (2,0)(3,0)(4,0)(5,-1)(6,0)(7,1)(8,-1)(9,1)(10,0)(11,0)(12,1)(13,-1)(14,-1)}; \node at (axis cs:5.5,-0.5){V-};
\node at (axis cs:9.5,+0.5){B+};
\node at (axis cs:12.5,+0.5){V+};
\end{axis}
\end{tikzpicture}
\caption{Codage HDB3}
\end{figure}
\end{exemple}
2019-03-18 13:10:49 +01:00
\end{document}
2019-04-30 15:37:14 +02:00
2019-03-18 13:10:49 +01:00
%%% Local Variables:
%%% mode: latex
2019-04-30 15:37:14 +02:00
%%% TeX-master: t
2019-03-18 13:10:49 +01:00
%%% End: