\documentclass[10pt]{article}
\usepackage[left=2.5cm,top=1.5cm, textwidth=16cm, textheight=24.cm, headheight=0cm,headsep=0.5cm,foot=0cm]{geometry}                % See geometry.pdf to learn the layout options. There are lots.
\geometry{letterpaper}                   % ... or a4paper or a5paper or ... 
%\geometry{landscape}                % Activate for for rotated page geometry
%\usepackage[parfill]{parskip}    % Activate to begin paragraphs with an empty line rather than an indent
\usepackage{graphicx}
\usepackage{dsfont}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{xcolor}
\usepackage{array}
\usepackage{graphicx}     
\usepackage{pgfplots}  
\usepackage{pgf,tikz}
 \usetikzlibrary{math}

\usepackage{epstopdf}
\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png}
\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage[french,russian]{babel}

\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage[parfill]{parskip}
\usepackage{pifont}
\usepackage{marvosym}
\usepackage{cancel}


	
	
\renewcommand\familydefault{\sfdefault}


\title{\textbf{Introduction à l'échantillonnage de signaux continus}}
\date{}                                           % Activate to display a given date or no date

\def\E{\mathbb{E}}

\usepackage{xstring}

\hyphenation{op-tical net-works semi-conduc-tor}


\newcounter{questionCounter}

\newcommand{\question}[1]{%
	\addtocounter{questionCounter}{1}%
	\medskip
	\textbf{\textbf{{Question \arabic{questionCounter}~--}}}%
}

\tikzset{
	pics/carc/.style args={#1:#2:#3}{
		code={
			\draw[pic actions] (#1:#3) arc(#1:#2:#3);
		}
	}
}

\newcommand{\prop}[2]{
	\begin{center}
		\colorbox{black!10}{\begin{minipage}{0.9\textwidth}
				\textbf{#1}\\
				#2
		\end{minipage}}
	\end{center}
}

%\tikzmath{
%	function sincm(\x) {
%		if abs(\x) < 0.001 then {
%			return 1.0;
%		} else {
%			return sin(\x r)/\x;
%		};
%	};
%}
%\pgfmathdeclarefunction{sinc}{1}{%
%	\pgfmathparse{%
%		abs(#1)<0.001 ? 1 : sin(#1 r)/#1%
%	}%
%}

\definecolor{vc}{RGB}{155, 89, 182}
\definecolor{vertc}{RGB}{167, 224, 45}
\definecolor{bleu}{RGB}{61, 57, 196}

\begin{document}

\maketitle

\section{Définitions, notations}

On s'intéresse ici aux signaux à bande limitée, c'est-à-dire dont le spectre est nul en dehors de la bande de fréquences $\left[-B, B \right]$. 

On notera $x(t)$ les signaux continus, $t$ étant la variable temporelle continue, et $x(k)$ les échantillons du signal $x(t)$, $k$ est le numéro de l'échantillon. 

L'échantillonnage, c'est le fait de passer d'un signal continu $x(t)$ à un signal discret constitué des échantillons $x_k$. On ne considérera dans ce cours que l'échantillonnage régulier, c'est-à-dire que les échantillons $x_k = x(kT_e)$ sont prélevés sur $x(t)$ avec un intervalle de temps $T_e$, qui représente la période d'échantillonnage. 

Nous allons nous intéresser dans la suite aux contraintes d'un tel échantillonnage afin de ne pas perdre les informations portées par $x(t)$.

\section{Discrétisation d'un signal continu}
\subsection{Introduction à l'échantillonnage}

Échantillonner un signal $x(t)$ consiste à prélever régulièrement des échantillons $x_k$.
On représente ci-dessous deux exemples d'échantillonnage d'un signal périodique $x(t) = \cos(2\pi f_0 t)$ avec $f_0 = 10$Hz : 
\begin{center}
\begin{tikzpicture}
\tikzmath{ \fo =10; \A = 20.;\To = 1/\fo;\nb = 20; \Te = \To/\nb;};
\draw[->, thick](-0.15*\A, 0)--(0.25*\A, 0) node[anchor = west]{$t$};
\draw[->, thick](0, -1.5)--(0, 1.5) node[anchor = south]{\textcolor{vc}{$x(t)$},\textcolor{vertc!80!black}{$x_k$}};
\draw[samples=300, domain=-0.11:0.21, color = vc, thick, scale = \A] plot ({\x},{sin(deg(\x*2*3.141*\fo )+ 90)/\A});

\foreach \x in {-0.1,0,0.1,0.2} {
	\draw ({\x*\A},0.1cm) -- ({\x*\A},-0.1cm) node[below] {$\x$};
}

\draw[samples=\nb*3, domain=-\To:2*\To, color = vertc, thick, scale = \A, mark = *, mark size=0.07pt,only marks] plot ({\x},{sin(deg(\x*2*3.141*\fo)+ 90)/\A});
\node[anchor = west] at ({0.1*\A}, {1.5}) {Cas n$^\circ$1 : 20 échantillons par période};


\begin{scope}[shift = {(0, -4)}]
	\tikzmath{ \fo =10; \A = 20.;\To = 1/\fo;\nb = 0.5; \Te = \To/\nb;};
	\draw[->, thick](-0.15*\A, 0)--(0.25*\A, 0) node[anchor = west]{$t$};
	\draw[->, thick](0, -1.5)--(0, 1.5) node[anchor = south]{\textcolor{vc}{$x(t)$},\textcolor{vertc!80!black}{$x_k$}};
	\draw[samples=300, domain=-0.11:0.21, color = vc, thick, scale = \A] plot ({\x},{sin(deg(\x*2*3.141*\fo)+ 90)/\A});
	
	\foreach \x in {-0.1,0,0.1,0.2} {
		\draw ({\x*\A},0.1cm) -- ({\x*\A},-0.1cm) node[below] {$\x$};
	}
	
	\draw[samples=\nb*2, domain=-0.:2*\To, color = vertc, thick, scale = \A, mark = *, mark size=0.09pt,only marks] plot ({\x},{sin(deg(\x*2*3.141*\fo)+ 90)/\A});
	\node[anchor = west] at ({0.1*\A}, {1.5}) {Cas n$^\circ$2 : 1 échantillon toutes les 2 périodes};
\end{scope}	
	\end{tikzpicture}
\end{center}

La question qui se pose est de savoir combien prendre d'échantillons pour ne pas perdre d'informations sur notre signal. Typiquement sur le cas n$^\circ$2, il n'y a pas suffisamment d'échantillons pour permettre de reconsruire $x(t)$ à partir de $x_k$. On représente ci-dessous deux signaux $x_1(t)= \cos(2\pi f_1 t)$ et $x_2(t)= \cos(2\pi f_2 t)$ reconstruits à partir des échantillons $x_k$. On constate que les échantillons $x_k$ pourraient être ceux de $x(t)$, $x_1(t)$ ou $x_2(t)$ bien que ces trois signaux ne soient pas identiques et ne portent pas la même information. 
\begin{center}
	\begin{tikzpicture}
	\tikzmath{ \fo =2*10; \A = 20.;\To = 1/\fo;\nb = 0.5; \Te = \To/\nb; \f1 =4*10;};
	\draw[->, thick](-0.15*\A, 0)--(0.25*\A, 0) node[anchor = west]{$t$};
	\draw[->, thick](0, -1.5)--(0, 1.5) node[anchor = south]{\textcolor{bleu}{$x_1(t)$},\textcolor{orange}{$x_2(t)$},\textcolor{vertc!80!black}{$x_k$}};
	\draw[samples=300, domain=-0.11:0.21, color = bleu, thick, scale = \A] plot ({\x},{sin(deg(\x*2*3.141*\fo)+ 90)/\A});
	\draw[samples=300, domain=-0.11:0.21, color = orange, thick, scale = \A] plot ({\x},{sin(deg(\x*2*3.141*\f1)+ 90)/\A});
	
	\foreach \x in {-0.1,0,0.1,0.2} {
		\draw ({\x*\A},0.1cm) -- ({\x*\A},-0.1cm) node[below] {$\x$};
	}
	
	\draw[samples=\nb*2, domain=-0.:2*\To, color = vertc, thick, scale = \A, mark = *, mark size=0.07pt,only marks] plot ({\x},{sin(deg(\x*2*3.141*\fo)+ 90)/\A});
	\node[anchor = center] at (0, {-2.5}) {Reconstruction avec $f_1 = 20$Hz, et $f_2 = 40$Hz};
	
	
	
	\end{tikzpicture}
\end{center}


Inversement, on peut penser que dans le cas n$^\circ$1, on a peut-être enregistré trop d'échantillons. Si on se place dans une problématique de stockage du signal, seule une version numérique (=échantillonnée) du signal peut être enregistrée. Pour une durée $T$ donnée, plus on enregistre d'échantillons, plus il faudra de place sur la modalité de stockage (disque dur, serveur, clé USB, fichier numérique, etc). 

Dans la suite du document, nous allons établir les conditions permettant un échantillonnage correct du signal $x(t)$.

\subsection{Modélisation mathématique de l'échantillonnage}

Nous introduisons un signal intermédiaire $x_e(t)$, correspondant au signal $x(t)$ échantillonné, défini de la façon suivante : 
\begin{equation}
x_e(t) = \left \{
\begin{array}{lll}
x(kTe)&\textrm{ pour tout }& t = kTe, k\in \mathbb{Z} \\
0 & \textrm{ sinon} &
\end{array}
\right.
\label{eq:sys_xe}
\end{equation}
On peut réécrire l'équation \eqref{eq:sys_xe} à l'aide d'un peigne de Dirac \textcyrillic{\CYRSH}$_{T_e}(t)$ : 
\begin{align}
x_e(t) &=  x(t)\textcyrillic{\CYRSH}_{T_e}(t) \label{eq:xe}\\
&= x(t) \sum_{k = -\infty}^{+\infty}\delta(t - kT_e)\\
&= \sum_{k = -\infty}^{+\infty}x(t) \delta(t - kT_e) \label{eq:xe3}\\
&= \sum_{k = -\infty}^{+\infty}x(kT_e) \delta(t - kT_e)\label{eq:xe4}
\end{align}
Le passage de l'équation \eqref{eq:xe3} à l'équation \eqref{eq:xe4} se fait grâce à la propriété de multiplication d'un signal par un dirac. On donne une représentation graphique des différents signaux ci-dessous.

\begin{center}
	\begin{tikzpicture}
	\tikzmath{ \fo =10; \A = 20.;\To = 1/\fo;\nb = 20; \Te = \To/\nb;};
	\draw[->, thick](-0.15*\A, 0)--(0.25*\A, 0) node[anchor = west]{$t$};
	\draw[->, thick](0, -1.5)--(0, 1.5) node[anchor = south]{\textcolor{vc}{$x(t)$},\textcolor{vertc!80!black}{$x_k$}, $x_e(t)$};
	\draw[samples=300, domain=-0.11:0.21, color = vc, thick, scale = \A] plot ({\x},{sin(deg(\x*2*3.141*\fo)+ 90)/\A});
	
	\foreach \x in {-0.1,0,0.1,0.2} {
		\draw ({\x*\A},0.1cm) -- ({\x*\A},-0.1cm) node[below] {$\x$};
	}
	
	\draw[samples=\nb*3, domain=-\To:2*\To, color = vertc, thick, scale = \A, mark = *, mark size=0.07pt,only marks] plot ({\x},{sin(deg(\x*2*3.141*\fo)+ 90)/\A});
	
	\foreach \x in {-20,-19,...,40} {
		\tikzmath{ \y=\x*\Te; \ang = sin(deg(\y*2*3.141*\fo) + 90); };		
		\draw[<-] ( {\y*\A} , {\ang} ) -- ( {\y*\A} ,0) ;
	}
	
	
	
	\end{tikzpicture}
\end{center}

Ce signal n'a pas de réalité physique, mais il contient les mêmes informations que la suite des échantillons $x_k$ du signal initial $x(t)$. Il constitue donc un intermédiaire de calcul commode qui permet d'étudier la perte d'information liée à l'échantillonnage.

\subsection{Conséquence de l'échantillonnage sur le spectre}

Dans le domaine fréquentiel, on note $X(f)$ et $X_e(f)$ les spectres des signaux continus $x(t)$ et $x_e(t)$. En calculant la transformée de Fourier de l'équation \eqref{eq:xe} on obtient : 
\begin{align}
X_e(f) &=  X(f)\ast \frac{1}{T_e}\textcyrillic{\CYRSH}_{\frac{1}{T_e}}(f) \label{eq:Xe}\\
&= X(f)\ast \frac{1}{T_e}\sum_{k = -\infty}^{+\infty}\delta\left(f - k\frac{1}{T_e}\right)\\
&=\frac{1}{T_e}\sum_{k = -\infty}^{+\infty}X(f)\ast \delta\left(f - k\frac{1}{T_e}\right) \label{eq:Xe3}\\
&= \frac{1}{T_e}\sum_{k = -\infty}^{+\infty}X\left(f- k\frac{1}{T_e}\right)\label{eq:Xe4}
\end{align}
On remarque alors que le spectre de $x_e(t)$ est une périodisation du spectre de $x(t)$, de période $f_e$. On en donne une représentation graphique sur la figure ci-dessous dans le cas du signal $x(t) = \cos(2\pi f_0 t)$. Le spectre de $x(t)$ s'écrit : 
\begin{equation}\label{key}
X(f) = \frac{1}{2}\left( \delta(f+ f_0) + \delta(f-f_0) \right)
\end{equation}

\bigskip

\begin{center}
	\begin{tikzpicture}
	\tikzmath{ \fo =0.75; \A = 1.;\To = 1/\fo;\nb = 4; \Te = \To/\nb; \f1 =4;\Fe = 1/\Te;};


\draw[->, thick] ({-2.5*\Fe}, 0) --({2.5*\Fe}, 0) node[anchor = west]{$f$};
\draw[->, thick] (0, -0.25) --(0, 3) node[anchor = south]{\textcolor{vc}{$X(f)$}};

	\foreach \x in { -2,-1, 1, 2} {
		\draw ({\x*\Fe},0.1cm) -- ({\x*\Fe},-0.1cm) node[below] {$\x$$f_e$};
	}

\draw[->, very thick, vc]({-\fo}, 0)--({-\fo}, 2);
\draw[->, very thick, vc]({\fo}, 0)--({\fo}, 2);

\draw[-] (-0.1, 2)--(0.1,2) node[anchor = east]{\Large{$\frac{1}{2}$~~}};


\draw ({\fo},0.1cm) -- ({\fo},-0.1cm) node[below] {$f_0$};
\draw ({-\fo},0.1cm) -- ({-\fo},-0.1cm) node[below] {$-f_0$};


\begin{scope}[shift = {(0, -4.5)}]
\draw[->, thick] ({-2.5*\Fe}, 0) --({2.5*\Fe}, 0) node[anchor = west]{$f$};
\draw[->, thick] (0, -0.25) --(0, 3) node[anchor = south]{$X_e(f)$};

\foreach \x in { -2,-1, 1, 2} {
	\draw ({\x*\Fe},0.1cm) -- ({\x*\Fe},-0.1cm) node[below] {$\x$$f_e$};
}

\draw[->, very thick, vertc]({-\fo}, 0)--({-\fo}, 1.5);
\draw[->, very thick, vertc]({\fo}, 0)--({\fo}, 1.5);

\draw ({\fo},0.1cm) -- ({\fo},-0.1cm) node[below] {$f_0$};
\draw ({-\fo},0.1cm) -- ({-\fo},-0.1cm) node[below] {$-f_0$};


\draw[->, very thick, vertc!40!yellow]({-\fo-2*\Fe}, 0)--({-\fo-2*\Fe}, 1.5);
\draw[->, very thick, vertc!40!yellow]({\fo-2*\Fe}, 0)--({\fo-2*\Fe}, 1.5);

\draw[->, very thick, vertc!70!yellow]({-\fo-\Fe}, 0)--({-\fo-\Fe}, 1.5);
\draw[->, very thick, vertc!70!yellow]({\fo-\Fe}, 0)--({\fo-\Fe}, 1.5);

\draw[->, very thick, vertc!90!blue]({-\fo+\Fe}, 0)--({-\fo+\Fe}, 1.5);
\draw[->, very thick, vertc!90!blue]({\fo+\Fe}, 0)--({\fo+\Fe}, 1.5);

\draw[->, very thick, vertc!80!blue]({-\fo+2*\Fe}, 0)--({-\fo+2*\Fe}, 1.5);
\draw[->, very thick, vertc!80!blue]({\fo+2*\Fe}, 0)--({\fo+2*\Fe}, 1.5);

\draw[dashed] ({-3*\Fe/2 }, -0.75)--({-\Fe/2 }, -0.75)--({-\Fe/2 }, 2)--({-3*\Fe/2 }, 2)--cycle;
\node at ({-\Fe}, 2.25) {$\frac{1}{T_e}X(f+f_e)$};

\draw[dotted] ({-\Fe +\fo},0.1cm) -- ({-\Fe + \fo},-1cm) node[below] {~~~~~$-f_e + f_0$};
\draw[dotted] ({-\Fe -\fo},0.1cm) -- ({-\Fe -\fo},-1cm) node[below] {$-f_e - f_0$~~~~~};

\draw[-] (-0.1, 1.5)--(0.1,1.5) node[anchor = east]{\Large{$\frac{1}{2T_e}$~~}};

\end{scope}

	\node[anchor = center] at (0, {-6.5}) {Représentation des spectres de $x(t)$ et $x_e(t)$, ici $f_e = 4f_0$};
	\node[anchor = center] at (0, {-7.05}) {Chaque nuance de vert correspond à un motif $\frac{1}{T_e}X\left(f- k\frac{1}{T_e}\right)$};
	
	
	\end{tikzpicture}
\end{center}

\bigskip

On retrouve ainsi une propriété importante de la transformée de Fourier : 
\begin{center}
\begin{tikzpicture}[font = \large]
\node[rectangle, fill = vertc!80!white, minimum height = 1.75cm, text width = 3cm, align = center] at (0,0) {Signal échantillonné à $T_e$};
\node[rectangle, fill = vertc!80!white, minimum height = 1.75cm, text width = 3cm, align = center]  at (8,0){TF périodisée de période $f_e = \frac{1}{Te}$};

\draw[->, very thick](2,0.25)--(6, 0.25);
\node at (4, 0.55){TF};

\draw[<-, very thick](2,-0.25)--(6, -0.25);
\node at (4.25, -0.55){TF$^{-1}$};

\end{tikzpicture}
\end{center}
La transformée de Fourier du signal échantillonné $x_e(t)$ correspond au spectre de $x(t)$ périodisé tous les multiples de $f_e$. Ainsi l'information contenue dans $x(t)$, ou de manière équivamente dans $X(f)$,  est présente dans chaque période du spectre $X_e(f)$. Il suffit par exemple de regarder $X_e(f)$ sur la période $[-\frac{f_e}{2}, \frac{f_e}{2}]$ pour retrouver $X(f)$ au facteur $\frac{1}{T_e}$ près.


\bigskip

On a vu lors de TD n$^\circ$4 que la propriété opposée était également vraie  : 
\begin{center}
	\begin{tikzpicture}[font = \large]
	\node[rectangle, fill = vertc!80!white, minimum height = 1.75cm, text width = 3cm, align = center] at (0,0) {Signal périodique de période $T_0$};
	\node[rectangle, fill = vertc!80!white, minimum height = 1.75cm, text width = 3cm, align = center]  at (8,0){TF de la période échantillonnée tous les $\frac{k}{f_0}$};
	
	\draw[->, very thick](2,0.25)--(6., 0.25);
	\node at (4., 0.55){TF};
	
	\draw[<-, very thick](2,-0.25)--(6., -0.25);
	\node at (4.25, -0.55){TF$^{-1}$};
	
	\end{tikzpicture}
\end{center}

\subsection{Relation entre fréquence d'échantillonnage et fréquence maximale du signal}

En introduction, on se posait la question du choix du nombre de points à échantillonner afin de préserver l'information du signal et pouvoir le reconstruire à partir de ses échantillons. On s'est posé la question dans le cadre d'un signal périodique, en testant par exemple d'échantillonner 20 points par période du cosinus ou seulement un point toutes les deux périodes. Dans le second cas, on n'a vu que cela n'était pas suffisant pour reconstruire correctement le signal à partir des échantillons (on a pu proposer au moins deux cosinus de fréquences différentes pour lesquels les échantillons correspondaient). 

On peut reformuler ces remarques dans le cas d'un signal non périodique (cf. ex 40 TD), on s'intéresse alors à la relation entre la fréquence d'échantillonnage $f_e$ (ou, de manière équivalente, la période d'échantillonnage $T_e$) et le contenu fréquentiel du signal. On considère ici tous les signaux à bande limitée $[-B, B]$ où $B$ est donc la fréquence maximale du signal à échantillonner. Dans le cas du signal de l'exemple précédent $x(t) = \cos(2\pi f_0 t)$, la fréquence maximale est $B = f_0$. Si on reprend la représentation graphique de $X_e(f)$ on remarque qu'en faisant varier $f_e$, on éloigne ou on rapproche les différentes motifs $\frac{1}{T_e}X(f-kf_)$. 


\begin{center} 
	\begin{tikzpicture}
	\tikzmath{ \fo =0.75; \A = 1.5;\To = 1/\fo;\nb = 1.5; \Te = \To/\nb; \f1 =4;\Fe = 1/\Te;};
	


	\begin{scope}[shift = {(0, -4.5)}, scale = 1.5]
	\draw[->, thick] ({-3*\Fe}, 0) --({3*\Fe}, 0) node[anchor = west]{$f$};
	\draw[->, thick] (0, -0.25) --(0, 3) node[anchor = south]{$X_e(f)$};
	
	\foreach \x in { -2,-1, 1, 2} {
		\draw ({\x*\Fe},0.1cm) -- ({\x*\Fe},-0.1cm) node[below] {$\x$$f_e$};
	}
	
	\draw[->, very thick, vertc]({-\fo}, 0)--({-\fo}, 1.5);
	\draw[->, very thick, vertc]({\fo}, 0)--({\fo}, 1.5);
	
	\draw[dashed,vertc ] ({\fo},0.1cm) -- ({\fo},-0.5cm) node[below] {$f_0$};
	\draw[dashed,vertc ]  ({-\fo},0.1cm) -- ({-\fo},-0.5cm) node[below] {$-f_0$};
	
	
	\draw[->, very thick, vertc!30!yellow]({-\fo-2*\Fe}, 0)--({-\fo-2*\Fe}, 1.5);
	\draw[->, very thick, vertc!30!yellow]({\fo-2*\Fe}, 0)--({\fo-2*\Fe}, 1.5);
	
	\draw[->, very thick, vertc!60!yellow]({-\fo-\Fe}, 0)--({-\fo-\Fe}, 1.5);
	\draw[->, very thick, vertc!60!yellow]({\fo-\Fe}, 0)--({\fo-\Fe}, 1.5);
	
	\draw[->, very thick, vertc!90!blue]({-\fo+\Fe}, 0)--({-\fo+\Fe}, 1.5);
	\draw[->, very thick, vertc!90!blue]({\fo+\Fe}, 0)--({\fo+\Fe}, 1.5);
	
	\draw[->, very thick, vertc!80!blue]({-\fo+2*\Fe}, 0)--({-\fo+2*\Fe}, 1.5);
	\draw[->, very thick, vertc!80!blue]({\fo+2*\Fe}, 0)--({\fo+2*\Fe}, 1.5);
	
	\draw[dashed] ({-3*\Fe/2 }, -0.75)--({-\Fe/2 }, -0.75)--({-\Fe/2 }, 2)--({-3*\Fe/2 }, 2)--cycle;
	\node at ({-\Fe}, 2.25) {une période de $X_e(f)$};

	
	\draw[dotted] ({-\Fe +\fo},0.1cm) -- ({-\Fe + \fo},-1cm) node[below] {~~~~~$-f_e + f_0$};
	\draw[dotted] ({-\Fe -\fo},0.1cm) -- ({-\Fe -\fo},-1cm) node[below] {$-f_e - f_0$~~~~~};
	
	\draw[-] (-0.1, 1.5)--(0.1,1.5) node[anchor = east]{\Large{$\frac{1}{2T_e}$~~}};
	
	\end{scope}
	
	\node[anchor = center] at (0, {-7.5}) {Représentation du spectre de $x_e(t)$, ici $f_e = 1,5 \times f_0$};
	
	
	
	\end{tikzpicture}
\end{center}
\bigskip

On remarque dans la période $f \in [-\frac{3}{2}f_e,  -\frac{1}{2}f_e,]$ centrée sur la fréquence $-f_e$, qu'au lieu de retrouver les deux diracs $\delta(f + f_0 + f_e)$ et $\delta(f - f_0 + f_e)$, correspondant à $X(f+f_e)$, on retrouve les diracs des périodes adjacentes, à savoir $\delta(f - f_0 + 2f_e)$ et $\delta(f + f_0)$. 

On observe ici un phénomène de \textbf{repliement de spectre} : les différents motifs $X(f-kf_e)$ se superposent et il devient impossible de retrouver le spectre d'une seule période, \textit{i.e.} le spectre de $X(f)$ du signal continu. En anglais on parlera d'\textit{aliasing}.

La condition permettant d'éviter le repliement de spectre est que l'intégralité du spectre de $X(f)$ soit compris dans la bande $[-\frac{f_e}{2}, \frac{f_e}{2}]$, on en déduit : 
 \begin{equation}\label{key}
 B < \frac{f_e}{2}
 \end{equation}

Cette relation est appelée théorème de l'échantillonnage ou théorème de Shannon. 

\prop{Théorème de Shannon :}{

Pour échantillonner correctement un signal continu à bande limitée $[-B,B]$, il faut que la fréquence d'échantillonnage $f_e$ soit strictement deux fois supérieure à la fréquence maximale $B$ du signal : 
\begin{equation*}
f_e > 2B
\end{equation*}
}

Autrement dit, pour le signal $x(t) = \cos(2\pi f_0 t)$, le théorème de Shannon nous dit qu'il faut au moins deux échantillons par période du cosinus pour préserver l'intégralité du signal. Il n'est pas nécessaire ici d'échantillonner  plus de points par période.



\section{Reconstruction d'un signal continu à partir du signal échantillonné}

On peut maintenant se poser la question de savoir comment reconstruire le signal réel $x(t)$ à partir de sa version échantillonnée $x_e(t)$ lorsque le théorème de Shannon a été respecté.

Il est important de noter à ce stade que nous ne sommes pas allé jusqu'à la transformation de $x_e(t)$ en échantillons $x_k$, ce sera l'objectif du cours de traitement numérique du signal en 2A. Nous restons donc au niveau du signal intermédiaire $x_e(t)$ qui présente l'avantage d'être continu, ainsi nous pouvons définir un filtre continu à appliquer à $x_e(t)$ pour retrouver $x(t)$.

\bigskip

Etant donnée la représentation graphique du spectre $X_e(f)$ de $x_e(t)$, il est facile de déduire, dans le domaine fréquentiel, l'allure du filtre à appliqué pour retrouver $X(f)$. Si le théorème de Shannon est respecté, il suffit de récupérer le contenu fréquentiel de $X_e(f)$ dans la bande $[-\frac{f_e}{2}, \frac{f_e}{2}]$ et de compenser l'atténuation $\frac{1}{T_e}$ introduite par l'échantillonnage. Une représentation graphique du filtre correspondant est donné ci-dessous. 

\begin{center}
	\begin{tikzpicture}
	\tikzmath{ \fo =0.75; \A = 1.;\To = 1/\fo;\nb = 4; \Te = \To/\nb; \f1 =4;\Fe = 1/\Te;};
	
	
	
	
	\begin{scope}[shift = {(0, -4.5)}]
	\draw[->, thick] ({-2.5*\Fe}, 0) --({2.5*\Fe}, 0) node[anchor = west]{$f$};
	\draw[->, thick] (0, -0.25) --(0, 4) node[anchor = south]{$X_e(f)$};
	
	\foreach \x in { -2,-1, 1, 2} {
		\draw ({\x*\Fe},0.1cm) -- ({\x*\Fe},-0.1cm) node[below] {$\x$$f_e$};
	}
	
	\draw[->, very thick, vertc]({-\fo}, 0)--({-\fo}, 1.5);
	\draw[->, very thick, vertc]({\fo}, 0)--({\fo}, 1.5);
	
	\draw ({\fo},0.1cm) -- ({\fo},-0.1cm) node[below] {$f_0$};
	\draw ({-\fo},0.1cm) -- ({-\fo},-0.1cm) node[below] {$-f_0$};
	
	
	\draw[->, very thick, vertc!40!yellow]({-\fo-2*\Fe}, 0)--({-\fo-2*\Fe}, 1.5);
	\draw[->, very thick, vertc!40!yellow]({\fo-2*\Fe}, 0)--({\fo-2*\Fe}, 1.5);
	
	\draw[->, very thick, vertc!70!yellow]({-\fo-\Fe}, 0)--({-\fo-\Fe}, 1.5);
	\draw[->, very thick, vertc!70!yellow]({\fo-\Fe}, 0)--({\fo-\Fe}, 1.5);
	
	\draw[->, very thick, vertc!90!blue]({-\fo+\Fe}, 0)--({-\fo+\Fe}, 1.5);
	\draw[->, very thick, vertc!90!blue]({\fo+\Fe}, 0)--({\fo+\Fe}, 1.5);
	
	\draw[->, very thick, vertc!80!blue]({-\fo+2*\Fe}, 0)--({-\fo+2*\Fe}, 1.5);
	\draw[->, very thick, vertc!80!blue]({\fo+2*\Fe}, 0)--({\fo+2*\Fe}, 1.5);
		
	\draw[-] (-0.1, 1.5)--(0.1,1.5) node[anchor = east]{\Large{$\frac{1}{2T_e}$~~}};
	\draw[-] (-0.1, 3)--(0.1,3) node[anchor = north east]{$T_e$~~};
	
	\draw[-, very thick, vc!80!blue] (-{\Fe/2}, 0)--(-{\Fe/2}, 3)--({\Fe/2}, 3)--({\Fe/2}, 0);
	\draw[<-, thick, vc!80!blue] ({\Fe/4}, 3.05)--({\Fe/2}, 3.5)node[anchor = south west]{$H(f)=T_e \textrm{rect}_{f_e}(f)$};
	
	\draw ({\Fe/2},0.1cm) -- ({\Fe/2},-0.1cm) node[below] {\Large{$\frac{f_e}{2}$}};
	\draw (-{\Fe/2},0.1cm) -- (-{\Fe/2},-0.1cm) node[below] {\Large{$-\frac{f_e}{2}$~~~~}};
	
	\end{scope}
	
	\node[anchor = center] at (0, {-6.5}) {Représentation des spectres de $x(t)$ et $x_e(t)$, ici $f_e = 4f_0$};

	
	
	\end{tikzpicture}
\end{center}

Par le calcul de la sortie du filtre $H(f)$ dans le domaine fréquentiel on retrouve : 
\begin{align}
X_e(f) \times H(f) & =  \left( \frac{1}{T_e}\sum_{k = -\infty}^{+\infty}X(f- k\frac{1}{T_e}) \right) \times T_e \textrm{rect}_{F_e}(f)\\
&= X(f)
\end{align}

Dans le domaine temporel on a de manière équivalente : 
\begin{align}
x_e(t) \ast h(t) &= x_e(t) \ast \cancel{T_e f_e}\textrm{sinc}(f_e t)\\
&= \left( \sum_{k = -\infty}^{+\infty} x(kTe)\delta(t-kT_e)\right)\ast  \textrm{sinc}(f_e t)\\
&= \sum_{k = -\infty}^{+\infty} x(kTe)\left(\delta(t-kT_e)\ast \textrm{sinc}(f_e t)\right)\\
&= \sum_{k = -\infty}^{+\infty} x(kTe)\textrm{sinc}(f_e (t-kT_e)) \label{eq:recons}
\end{align}

Bien que ce soit moins évident que dans le domaine fréquentiel, le terme \eqref{eq:recons} est égal à $x(t)$. 
En remplaçant $x(kT_e)$ par $x_k$ on trouve la formule d'interpolation permettant de reconstruire un signal continu à partir de ses échantillons : 
\begin{align}
x(t) = \sum_{k = -\infty}^{+\infty} x_k\textrm{sinc}(f_e (t-kT_e))
\end{align}

On peut noter que cette formule est composée d'une somme de sinus cardinaux qui s'annulent tous les multiples de $\frac{1}{f_e}$, c'est-à-dire tous les multiples de Te. Il est difficile d'identifier $x(t)$ quel que soit $t$ dans cette formule, sauf en certains points où l'identification est plus simple, pour n'importe quelle valeur $k_0 \in \mathbb{Z}$ on a : 
\begin{align}
x(k_0T_e) &= \sum_{k = -\infty}^{+\infty} x_k\textrm{sinc}(f_e (k_0T_e-kT_e))\\
&= \sum_{k = -\infty}^{+\infty} x_k\textrm{sinc}(\cancel{f_eT_e} (k_0-k))\\
\end{align}
On peut remarquer que $\textrm{sinc}((k_0-k)) = 0$ pour tout $k \neq k_0$ donc $x(k_0T_e)  = x_{k_0}\textrm{sinc}(k_0 - k_0) = x_{k_0}$ 
\end{document}