Source Latex: TP de mathématiques en Post-bac


Fichier
Type: TP
File type: Latex, tex (source)
Télécharger le document pdf compilé pdficon
Description
Représentation et codage des signaux binaires
Niveau
Post-bac
Table des matières
  • Simulation d'un message binaire - Codage en ligne
  • Codages polaires et unipolaires NRZ et RZ - Codes Manchester et AMI
  • Densité spectrale de puissance (DSP) des codes en lignes
  • Simulation d'un canal de transmission
  • Diagramme de l'œil
Mots clé
codage en ligne, signal binaire, code polaire, code unipolaire, NRZ, RZ, Manchester, AMI, DSP, diagramme de l'œil
Voir aussi:

Documentation sur LaTeX
lien vers la documentation Latex
Source LaTex icone

Source Latex

\documentclass[12pt]{article}
%\usepackage{french}
\usepackage[french]{babel}
\usepackage{amsmath}
\usepackage[latin1]{inputenc}
\usepackage{a4wide}


\newcommand{\TITLE}{{\bf TP}: Repr�sentation des signaux binaires.}
\title{TP n$^{\circ}$  : Repr�sentation des signaux binaires.}
\author{Yoann Morel}
\date{}

%\pagestyle{headings}
\usepackage{fancyhdr}
\usepackage{lastpage}


% Raccourcis diverses:
\newcommand{\nwc}{\newcommand}
\nwc{\dsp}{\displaystyle}
\nwc{\bgar}{\begin{array}}\nwc{\enar}{\end{array}}

\nwc{\la}{\left\{}

\nwc{\bgsk}{\bigskip}
\nwc{\vsp}{\vspace{0.1cm}}
\nwc{\vspd}{\vspace{0.2cm}}
\nwc{\vspt}{\vspace{0.3cm}}

% Fin Raccourcis

\begin{document}

\pagestyle{fancyplain}
\setlength{\headheight}{0cm}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.1pt}
\lhead{}\chead{}\rhead{}

\lfoot{Morel Yoann}
\cfoot{\TITLE \\ \thepage/\pageref{LastPage}}
\rfoot{Master 2}

\centerline{\Large\TITLE}
%\bgsk\bgsk
\vspace{1cm}

\centerline{\rule[2ex]{7cm}{0.1mm}}

\vspace{0.5cm}


\paragraph{\large{\bf Objectifs}:}
Ce TP est relatif aux diff�rentes m�thodes de codage d'une information
binaire, et � la transmission en bande de base de cette information. 
Les grandes lignes de ce TP sont l'�tude des 
\begin{itemize}
\item m�thodes de codage en ligne qui sont couramment utilis�es
  en communications num�\-riques; 
\item densit�s spectrales de puissance associ�es � ces divers codes en
  ligne; 
\item causes de distorsion du signal dues � un canal de communication
  num�rique; 
\item effets d'interf�rences entre symboles (IES) et de bruit de canal
  � partir du diagramme de l'oeil.
\end{itemize}


\section{Simulation d'un message binaire - Codage en ligne}

On s'interessera tout au long de ce TP � des informations binaires. 

\bigskip
a) Ecrire une fonction Matlab {\it binary} permettant de g�n�rer al�atoirement une
   s�quence binaire de $n$ bits. 
   Compl�ter cette fonction par une autre fonction {\it waveplot}
   permettant la repr�sentation 
   graphique de ce message binaire g�n�r� avec un d�bit binaire $R_b$
   ( {\bf rand , plot}). 
   (On pourra prendre comme valeur par d�faut pour la suite
   $Rb=1$k\,b/s). 

\bigskip
On s'int�resse maintenant aux repr�sentations possibles de ce
cette s�quence binaire. On parle pour cela de codage ligne. 

\bigskip
b) Ecrire une fonction {\it wavegen} qui associe � une s�quence
   binaire {\it b} de d�bit $R_b$ le signal {\it sig} correspondant
   cod� en ligne avec la fr�quence d'�chantillonnage $f_s$ pour chacun
   des codes en ligne suivant: 
   \begin{itemize}
     \item Code {\bf Unipolaire NRZ} (Non Return to Zero): 
       \[ x(t) = \left\{ \bgar{lll}
	 +V \ , &t\in [kT_b,(k+1)T_b]\ ,   &\mbox{ si } \alpha_k =1 \vspd\\
	 \ 0 \ , &t\in [kT_b,(k+1)T_b]\ ,  &\mbox{ si } \alpha_k=0
       \enar\right.\]

     \item Code {\bf Polaire NRZ}: c'est la version antipolaire du
     code unipolaire NRZ: 
       \[ x(t) = \left\{ \bgar{lll}
	 +V \ , &t\in [kT_b,(k+1)T_b]\ ,  &\mbox{ si } \alpha_k =1 \vspd\\
	 -V \ , &t\in [kT_b,(k+1)T_b]\ ,  &\mbox{ si } \alpha_k=0
       \enar\right.\]

     \item Code {\bf Unipolaire RZ}: 
       \[ x(t) = \la \bgar{ll}
	 \la\bgar{ll} 
	 +V \ , &t\in [kT_b,(k+1/2)T_b] \vsp\\
	  0 \ , &t\in [(k+1/2)T_b,(k+1)T_b]
	 \enar\right. \ , &\mbox{ si } \alpha_k =1 \vspt\\
	 \ \ 0  \ ,  &\mbox{ si } \alpha_k=0
       \enar\right.\]

       
     \item Code {\bf Polaire RZ} (Return to Zero): ici, le signal
     ``revient'' � zero � chaque demi-p�riode:
       \[ x(t) = \la \bgar{ll}
	 \la\bgar{ll} 
	 +V \ , &t\in [kT_b,(k+1/2)T_b] \vsp\\
	  0 \ , &t\in [(k+1/2)T_b,(k+1)T_b]
	 \enar\right. \ , &\mbox{ si } \alpha_k =1 \vspt\\
	 \la\bgar{ll} 
	 -V \ , &t\in [kT_b,(k+1/2)T_b] \vsp\\
	  0 \ , &t\in [(k+1/2)T_b,(k+1)T_b] 
	  \enar\right. \ ,  &\mbox{ si } \alpha_k=0
       \enar\right.\]


     \item Code {\bf Manchester}: c'est un code de transition
     antipolaire: 
     \[ \bgar{ll}
       x(t)&=\la\bgar{ll}
           \mbox{ ``front descendant'' } \ ,  \mbox{ si } \alpha_k=1 \vspd\\
           \mbox{ ``front ascendant'' }  \ , \mbox{ si } \alpha_k=0
         \enar\right. \vspt\\
       &= \la\bgar{ll}

	  \la\bgar{ll}
	    +V \ , t\in [kT_b,(k+1/2)T_b] \vsp\\
	    -V \ , t\in [(k+1/2)T_b,(k+1)T_b]
	  \enar\right. \ , \mbox{ si } \alpha_k =1 \vspt\\
	  \la\bgar{ll} 
	    -V \ , t\in [kT_b,(k+1/2)T_b] \vsp\\
	    +V \ , t\in [(k+1/2)T_b,(k+1)T_b] 
	  \enar\right. \ ,  \mbox{ si } \alpha_k=0
%	  \enar\right.

	  \enar\right.
     \enar
     \]


     %     \item Code {\bf Triangulaire}:
     \item Code {\bf AMI} (Alternate Mark Inversion): ce code est
     similaire au code Unipolaire NRZ, mais utilisant cette fois un
     alphabet ternaire $a_n\in \{-V,0,+V\}$: lorsque $\alpha_k=0$,
     $x(t)=0$ sur $[kT_b,(k+1)T_b]$, tandis que $\alpha_k=1$ est cod�
     alternativement par $x(t)=V$ et $x(t)=-V$. 
       
     \vsp
     Pour g�n�rer l'aphabet ternaire $\beta_k$, on pourra utiliser la
     relation de r�currence: 
     \[ \left\{\bgar{ll}
     \beta_n = \alpha_n \, s_{n-1} \\
     s_n = (1-2\alpha_n) s_{n-1} \,, 
     \enar\right.\]
     correctement initialis�e. 

   \end{itemize}
\bgsk

\bigskip
La fonction {\it wavegen} prendra comme arguments le signal binaire
original ainsi qu'une cha�ne de caract�res ``linecode'' permettant le
choix du codage en sortie. 


\section{Densit� spectrale de puissance (dsp) pour les codes en ligne}

On rappelle que, si $a(t)$ est le signal � l'entr�e d'un codeur,
$x(t)$ le signal en sorti du codeur (i.e. le signal cod� en ligne), et
$h(t)$ la r�ponse impulsionnelle du codeur, alors la densit� spectrale
de puissance s'exprime par la relation 
\[
\gamma_x(f) = \gamma_a(f) \left| H(f)\right|^2 \,, 
\]
o�
\[
\gamma_a(f) = \frac{\sigma_a^2}{T} 
   + \frac{2}{T} \sum_{k=1}^\infty \Gamma_a(k)\,\cos(2\pi k f T) 
   + \frac{m_a^2}{T^2} \sum_{k=1}^\infty \delta(f-\frac{k}{T})
\]
avec, 
\begin{itemize}
  \item $m_a$ est la moyenne des $a_k$
  \item $\sigma_a^2$ est la variance des $a_k$
  \item $\Gamma_a(k)$ est la fonction d'auto-corr�lation centr�e des $a_k$.
\end{itemize}

Pour chaque code en ligne utilis� dans la partie pr�c�dente, exprimer
la densit� spectrale de puissance th�orique, puis, avec
Matlab, g�n�rer une s�quence binaire $b$, et calculer num�riquement
cette densit� spectrale de puissance. 
On pourra utiliser les fonctions matlab {\it psd} et {\it pwelch}.

\bgsk
On note: 
\begin{itemize}
  \item $F_{pi}$ : le $i^{\mbox{�me}}$ maximum du spectre, 
  \item $F_{ni}$ : le $i^{\mbox{�me}}$ z�ro du spectre, 
  \item $B_T$ la bande passante du signal.
\end{itemize}

Remplir le tableau suivant: 

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
$R_b=\ $ kb.s$^{-1}$  & $F_{p1}$ & $F_{p2}$ & $F_{n1}$ & $F_{n2}$ & $B_T$ \\

\hline
Unipolaire NRZ & & & & & \\
\hline
Polaire NRZ & & & & & \\
\hline
Unipolaire RZ & & & & & \\
\hline
Bipolaire RZ & & & & & \\
\hline
Manchester & & & & & \\
\hline
\end{tabular}
\end{center}

\bgsk 
Faire les commentaires qui s'imposent pour les caract�ristiques
spectrales de chaque code. 
En d�duire l'int�r�t, avantages et inconv�nients, de chaque code. 


\paragraph{Indication pour le code AMI.}
L'expression de la densit� spectrale de puissance pour le code AMI est
un peu plus complexe � obtenir que celle des autres codes. 

On pourra, pour effectuer le calcul, montrer (et utiliser) les
relations ($E\{\dot\}$ d�signant l'esp�rance): 
\[ \bgar{ll}
E\{\alpha_n\} = 1/2 \Longrightarrow E\{1-2\alpha_n\}=0 \\
E\{\alpha_n^2\}=1/2 \Longrightarrow E\{(1-2\alpha_n)^2\}=1 \\
E\{\alpha_n\alpha_k\}=1/4\ , \mbox{ si } n\not= k \,.
\enar\]

On obtient alors, en utilisant la relation de r�currence 
\[ \beta_n = \alpha_n (1-2\alpha_{n-1}) \cdots (1-2\alpha_{n-m})
\cdots \,,
\]
les corr�lations: 
\[ \Gamma_\alpha(k) = \left\{\bgar{ll}
 1/2 \ , &\mbox{ si } k=0 \\
-1/4 \ , &\mbox{ si } k=\pm 1 \\
 0   \ , &\mbox{ si } |k|\geq 1 
\enar\right.\]

\section{Simulation d'un canal de transmission}

La fonction matlab {\it Canal.m} donn�e � la fin de cet �nonc� permet
de simuler un canal de transmission. 

Syntaxe de la fonction: $sig_{out}=$ Canal$(sig_{in}$, gain, noise,
bandwidth$)$, o�, 

\begin{itemize}
\item $sig_{in}$ est le signal � l'entr�e du canal, 
\item {\it gain} est le gain (att�nuation) du canal, 
\item {\it noise} repr�sente la puissance du bruit additif (bruit
  blanc Gaussien), 
\item {\it bandwidth} est la bande passante du canal, 
\item et bien s�r, $sig_{out}$ est le signal obtenu � la sortie du
  canal. 
\end{itemize}

\bgsk 

Etudier pour chaque code en ligne vu pr�c�demment l'influence des
caract�ristiques du canal de transmission sur le signal transmis. 

\bgsk 
Commenter les effets du bruit et de la bande passante du canal sur le
signal. Expliquer ensuite ces ph�nom�nes. 



\section{Diagramme de l'oeil} 

Les cons�quences du bruit et du filtrage peuvent �tre mises en
�vidence en observant le signal de sortie avec la repr�sentation dite
du diagramme de ``l'oeil''. 
Ce diagramme est obtenu avec de multiples balayages et est synchronis�
avec le signal d'horloge (le signal d'horloge provient soit d'une
source exterieure, soit du signal de sortie du canal; il est envoy� �
l'entr�e ``external trigger'' d'un oscilloscope � m�moire). 
La largeur de balayage est plus grande que la p�riode de la s�quence
de donn�es binaires $T_b=1/R_b$. 
Dans la simulation, le diagramme de l'oeil est obtenu avec un balayage
$d$ largeur �gale � $2 T_b$. 

\bgsk 
La fonction matlab {\it eyediagram} permet de tracer le diagramme de
l'oeil d'un signal. 


\bgsk 
Pour chaque code en ligne utilis� jusqu'ici, repr�senter le diagramme
de l'oeil du signal original, puis du signal transmis par un canal de
bande passante $B_w$ et de bruit additif de puissance $P_b$. 

\bgsk 
Commenter les diagrammes pour chaque code. 

\bgsk 
On consid�re les caract�ristiques du canal: $P_b=0.01$ W et $B_w= 1$
kHz. 

Pour quel code en ligne, le diagramme de l'oeil est-il
``acceptable''. Commenter et expliquer. 




\clearpage
\begin{verbatim}
function [out, t] = Canal(x,gain,noise_power,bandwidth,fs)

f=bandwidth;
if (nargin == 4), fs=10E3;end

%----------------------------------------------------------------------------
%	Default values for parameters used in filter design
%----------------------------------------------------------------------------

ripple     = 0.1;			% Allowable ripple, in decibels
filt_order = 8;				% Filter order
fpoints    = 256;			% Used to display channel response
Ts         = 1/fs;			% Sampling period;
no_sample  = length(x);			% Number of input samples;
time_t     = [0:(no_sample-1)]*Ts;	% instances where the samples defined;
if (gain < 0), error('GAIN must be a non-negative parameter.'); end

%----------------------------------------------------------------------------
%	set the cut-off frequencies, and check consistency
%----------------------------------------------------------------------------

if (length(f) == 1) 				% Low-pass type channel
   fc = f;
   passband = [fc]/(fs/2); 
   if ( fc >= fs/2 )
      fprintf('Cut-off frequency must be less than %6.2f [kHz].\n', fs/2000 ); 
      error('');
   end
elseif (length(f) == 2)  			% Band-pass type channel
   fl = min(f); fu = max(f);
   passband = [fl, fu]/(fs/2);
   if ( fu >= fs/2 )
      fprintf('Upper cut-off frequency must be less ...
         than %6.2f [kHz].\n', fs/2000 ); 
      error('');
   end
end

%----------------------------------------------------------------------------
%	Determine & modify filter coefficients 
%----------------------------------------------------------------------------
Td      = 0;	% To simplify let delay time Td=0, you can modify by adding
		% Td as the last argument to CHANNEL function.
[Bc,Ac] = cheby1(filt_order, ripple, passband);
delay   = fix(Td/Ts);				% required time delay
Bc      = [zeros(1,delay) Bc];			% modify numerator for "delay"
Bc      = sqrt(gain) * Bc;			% modify numerator for "gain"
x       = [x(:)' zeros(1,delay)];

%----------------------------------------------------------------------------
%				Output routines
%				===============
%	If no output arguments, plot the magnitude response, otherwise
%	compute the channel output vector "y"
%----------------------------------------------------------------------------

if (nargout == 0)

   f     = fs/(2*fpoints) * (0:fpoints-1);
   Hc    = freqz(Bc,Ac,fpoints);
   mag   = abs(Hc);
   phase = angle(Hc);

   subplot(121), plot( f, 20*log10(mag) ),
   title('Magnitude response'),
   xlabel('Frequency (Hz)'),ylabel('Mag [dB]'), grid on;

   subplot(122), plot( f, unwrap(phase) ),
   title('Phase response'),
   xlabel('Frequency (Hz)'),ylabel('Phase'), grid on;

else

   y   = filter(Bc,Ac,x);
   r   = randn(size(y));
   out = y + sqrt(noise_power)*r;
   if( nargout == 2), t = time_t; end

end

\end{verbatim}

\end{document}

Télécharger le fichier source Latex