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 = 2 T _ 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 $ ,$ 2 T _ b $ ,$ 3 T _ b $ ,$ 4 T _ b $ ,$ 5 T _ b $ ,$ 6 T _ 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 $ ,$ 2 T _ b $ ,$ 3 T _ b $ ,$ 4 T _ b $ ,$ 5 T _ b $ ,$ 6 T _ 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 , \pm 2 ... \pm
(M/2-1)\} $ on a :
\[ m _ a = 0 \text { et } \sigma _ a ^ 2 = \frac { 2 } { M } \sum _ { p = 0 } ^ { ( M / 2 ) - 1 } ( 2 p + 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: