\def\NomChapitre{3}
\def\Type{DL}
\LeTitre{\NomChapitre}{Pour le mardi 6 mai 2014}

\begin{exo}[Sujet 0 banque PT]
Les flottants simple précision occupent $32/8=4$ octets. Donc il faut prévoir 800 octets en RAM, i.e. choisir le modèle avec 
\[\boxed{1024 \text{ octet de RAM}}\]
\end{exo}

\begin{exo}
% On récupère un signal (une intensité) $u(t)$, en fonction du temps $t$.

% Soit $T_e$ une période d'échantillonnage et $f_e$ une fréquence
% d'échantillonnage. On stocke dans une liste \texttt{Ue} de taille $N$ les
% valeurs $u(nT_e)$ pour $n\in \llbracket 0,N-1\rrbracket$.

% Le signal \texttt{Ue} sera filtré en un signal $U_f(n)$ stocké dans une nouvelle
% liste \texttt{Uf}.

% On définit la transformée de Fourier discrète d'une liste $L=(L(0),\dots,L(N-1))$ par la formule :
% \[TL(k)=\sum_{n=0}^{N-1} L(n) e^{-2\pi j k \frac n N}
% =\sum_{n=0}^{N-1} L(n) \cos\left(-2\pi k \frac n N \right)+j
% \sum_{n=0}^{N-1} L(n) \sin\left(-2\pi k \frac n N \right)\]
% où $0\leq k <N$. Ici, on utilise les notations de la physique : $j^2=-1$.

% Par exemple, pour la liste $L=U_f$, on aurait :
% \[TU_f(k)=\sum_{n=0}^{N-1} U_f(n) e^{-2\pi j k \frac n N}
% =\sum_{n=0}^{N-1} U_f(n) \cos\left(-2\pi k \frac n N \right)+j
% \sum_{n=0}^{N-1} U_f(n) \sin\left(-2\pi k \frac n N \right)\]

% On supposera que la bibliothèque NumPy a été
% préalablement chargée, avec le suffixe \texttt{np}.
\begin{enumerate}
\item \texttt{real} contient la partie réelle et \texttt{imag} la partie
  imaginaire.
\lstinputlisting[firstline=8,lastline=17]{DL3/DL3.py}

\item On suppose que NumPy reste chargé, bref que tout est dans un seul
  fichier.
\lstinputlisting[firstline=19,lastline=20]{DL3/DL3.py}
\item Le module de la  transformée de Fourier discrète :
\lstinputlisting[firstline=22,lastline=28]{DL3/DL3.py}
\item La fonction \texttt{trans\_fourier\_freq(L,k)} fait $N$ appels à sinus,
  et $N$ appels à cosinus (boucle \texttt{for}). Donc $2N$ appels en tout.
Dans lors de la boucle \texttt{for} de \texttt{trans\_fourier(L)}, on fait $N$
appels à \texttt{trans\_fourier\_freq(L,k)}.

Au total il y a donc $2N^2$ appels à cosinus et sinus : la complexité est en
$O(N^2)$.

Ce n'est pas une complexité rédhibitoire (comme le serait une complexité
exponentielle), mais ce n'est pas non plus extrêmement efficace (comme une
complexité linéaire).
\item
\item 
Pour $N = 11$, $[0, 1, 2, 3, 4, 5, -5, -4, -3, -2, -1]$\\
Pour $N = 10$, $[0, \frac12, 1, \frac32, 2, -\frac52, -2, -\frac32, -1,
-\frac12]$ 

\item On transcrit la description en python. \texttt{w} contient le résultat.
\lstinputlisting[firstline=30,lastline=43]{DL3/DL3.py}
\item Pour comprendre de quoi il retourne, vous pouvez aller lire l'ensemble d
  sujet 0 sur le site de la banque PT : \url{http://www.banquept.fr}.

La boucle \texttt{for} est une recherche de maximum dans une liste : du cours.
\lstinputlisting[firstline=45,lastline=54]{DL3/DL3.py}
\end{enumerate}
\end{exo}

\begin{exo}
Il faut commencer par stocker la valeur de \texttt{liste\_freq\_corde} que
l'on va perdre (ce sera l'argument \texttt{a} de la fonction), puis on fait la
mesure, et on passe en argument la longueur \texttt{N} de la liste et la
nouvelle mesure \texttt{b}.

\lstinputlisting[firstline=56,lastline=59]{DL3/DL3.py}


La fonction comporte $3$ opération : elle est en $O(1)$, ne dépendant pas de
$N$.

Un calcul classique de moyenne s'écrirait $\frac1N \sum{k=0}^{N-1} U_k$ : il y
a $N$ opération, ce serait donc en $O(N)$.
\end{exo}

\begin{exo}
Suite à un petit problème d'encodage, j'ai supprimé les accents, mais il faut
évidemment les mettre.

\lstinputlisting[firstline=61,lastline=71]{DL3/DL3.py}
\end{exo}


%%% Local Variables:
%%% mode: latex
%%% TeX-PDF-mode: t
%%% TeX-master: DL3_2013
%%% End:
