Riorganizzazione delle slide. Eliminati commenti inutili che farò a voce

Leonardo Robol [2010-03-18 11:12]
Riorganizzazione delle slide. Eliminati commenti inutili che farò a voce
e aggiunto un esempio.
Filename
RefinementEquation/Iteration.py
Slide/slide.tex
diff --git a/RefinementEquation/Iteration.py b/RefinementEquation/Iteration.py
index c49c756..5053e10 100755
--- a/RefinementEquation/Iteration.py
+++ b/RefinementEquation/Iteration.py
@@ -14,8 +14,8 @@ print "ok"
 # Si comincia ad iterare
 h = numpy.array([0.125 , 0.25, 0.25, 0.25, 0.125])
 h = Filtering.DaubechiesFilterBank.lowPassFilter.GetResponse()
-h = Filtering.StrangFilterBank.lowPassFilter.GetResponse()
-t = numpy.linspace(-0.05,len(h) + 0.05,1000)
+# h = Filtering.StrangFilterBank.lowPassFilter.GetResponse()
+t = numpy.linspace(-0.5,len(h) + 0.05,1000)

 def box(x):
     """box function"""
@@ -52,7 +52,7 @@ try:
         # plot(t,phi)
         # draw ()
         print "diff = %f" % diff
-        # time.sleep (0.25)
+        time.sleep (1)
         newphi = map(refinement, t)
         diff = numpy.linalg.norm(numpy.array(newphi) - numpy.array(phi))
         phi = newphi
diff --git a/Slide/slide.tex b/Slide/slide.tex
index cfadbd3..ed392af 100644
--- a/Slide/slide.tex
+++ b/Slide/slide.tex
@@ -5,7 +5,7 @@
 \usepackage[utf8x]{inputenc}
 \usepackage[italian]{babel}
 \usepackage{default}
-\usepackage{iwona}
+% \usepackage{iwona}
 \usepackage[T1]{fontenc}


@@ -57,6 +57,7 @@
 \theoremstyle{plain} \newtheorem{teo}{Teorema}
 \theoremstyle{remark} \newtheorem{de}{Definizione}
 \theoremstyle{remark} \newtheorem{os}{Osservazione}
+\theoremstyle{remark} \newtheorem{problema}{Problema}

 %
 % Cominciamo a capire cosa ci interessa di un segnale e come lo vogliamo
@@ -356,7 +357,7 @@
 	  \vskip 25pt

 	  \item[Compressione] Vorremmo scomporre il segnale in piccole componenti più idonee ad
-	  essere compresse (con dati simili fra loro);
+	  essere compresse (ovvero che contengano dati 	omogenei);
 	\end{description}

 \end{frame}
@@ -364,71 +365,131 @@
 \subsection{Un esempio significativo}

 \begin{frame}
-	\frametitle{Haar filterbank}
-	Consideriamo i seguenti filtri:
-	\[
-	  h_0 = (\frac{1}{2}, \frac{1}{2}) \qquad h_1 = (\frac 1 2 , - \frac{1}{2}) \qquad
-	  f_0 = (\frac{1}{2}, \frac{1}{2}) \qquad f_1 = (-\frac 1 2 , \frac{1}{2})
-	\]
+	\frametitle{}
+%	Consideriamo i seguenti filtri e filterbank:
+%	\[
+%	  h_0 = (\frac{1}{2}, \frac{1}{2}) \qquad h_1 = (\frac 1 2 , - \frac{1}{2}) \qquad
+%	  f_0 = (\frac{1}{2}, \frac{1}{2}) \qquad f_1 = (-\frac 1 2 , \frac{1}{2})
+%	\]

-	Chiamiamo \emph{Analysis filterbank} quella che suddivide un segnale $x(n)$ in
-	\[
-	  h_0 * x(n) = y_0(n) \qquad h_1 * x(n) = y_1(n)
-	\]
-	e \emph{Synthesis filterbank} quella che invece prende in input due segnali $y_0(n)$ e $y_1(n)$
-	e restituisce un segnale $x(n)$ calcolato mediante
-	\[
-  	x(n) = f_0 * y_0(n) +  f_1 * y_1(n)
-	\]
-	Prendiamo poi un segnale di esempio. Scegliamo un segnale finito $x(n) = \{e^{i\omega n}\}$.
-	Estenderemo poi questo caso particolare ad un segnale qualsiasi.
+	\begin{figure}
+    \begin{tikzpicture}[rounded corners=2pt, scale=0.5, thick, node distance=50pt]
+    \tikzstyle{title}=[rectangle,draw=blue!80,fill=white!20]
+    \tikzstyle{input}=[rectangle,draw=blue!80,fill=yellow!50]
+    \tikzstyle{output}=[rectangle,draw=blue!80,fill=blue!20]
+
+    	%% Disegnamo i pezzetti
+      \node [input] (inputsignal) [xshift=10mm] {$x(n)$};
+      \node [input] (y0) [right of=inputsignal, yshift=10pt, xshift=10mm]  {$y_0(n) = h_0 * x(n)$};
+      \node [input] (y1) [right of=inputsignal, yshift=-10pt, xshift=10mm] {$y_1(n) = h_1 * x(n)$};
+
+      \node [output] (y0down) [right of=y0, xshift=15mm] {$\tilde{y_0}(n) = \downsample{2}y_0(n)$};
+      \node [output] (y1down) [right of=y1, xshift=15mm] {$\tilde{y_1}(n) = \downsample{2}y_1(n)$};
+
+			%% .. e li colleghiamo
+			\draw[->] (inputsignal.east) -- (y0.west);
+			\draw[->] (inputsignal.east) -- (y1.west);
+
+			\draw[->] (y0.east) -- (y0down.west);
+			\draw[->] (y1.east) -- (y1down.west);
+
+		\end{tikzpicture}
+		\caption{Analysis filterbank}
+	\end{figure}
+
+
+	\begin{figure}
+    \begin{tikzpicture}[rounded corners=2pt, scale=0.5, thick, node distance=50pt]
+    \tikzstyle{title}=[rectangle,draw=blue!80,fill=white!20]
+    \tikzstyle{input}=[rectangle,draw=blue!80,fill=yellow!50]
+    \tikzstyle{output}=[rectangle,draw=blue!80,fill=blue!20]
+
+
+    	%% Disegnamo i pezzetti
+      \node [input] (inputsignal0) [xshift=10mm, yshift=3.5mm]  {$\tilde{y_0}(n)$};
+      \node [input] (inputsignal1) [xshift=10mm, yshift=-3.5mm] {$\tilde{y_1}(n)$};
+
+      \node[input] (inputsignal0up) [right of=inputsignal0, xshift=5mm] {$z_0(n) = \upsample{2} \tilde{y_0}(n)$};
+      \node[input] (inputsignal1up) [right of=inputsignal1, xshift=5mm] {$z_1(n) = \upsample{2} \tilde{y_1}(n)$};
+
+      \node [output] (xn) [right of=inputsignal0up, xshift=25mm, yshift=-3.5mm]  {$x(n) = f_0*z_0(n) + f_1*z_1(n)$};
+
+			%% .. e li colleghiamo
+			\draw[->] (inputsignal0up.east) -- (xn.west);
+			\draw[->] (inputsignal1up.east) -- (xn.west);
+			\draw[->] (inputsignal0.east) -- (inputsignal0up.west);
+			\draw[->] (inputsignal1.east) -- (inputsignal1up.west);
+
+
+		\end{tikzpicture}
+		\caption{Synthesis filterbank}
+	\end{figure}
+	\begin{problema}
+	Trovare condizioni necessarie per ricostruire un segnale decomposto con l'analysis filterbank
+	tramite la synthesis filterbank.
+	\end{problema}
 \end{frame}

-\begin{frame} \frametitle{Discrete Wavelet Transform}
-	Osserviamo cosa succede al segnale quando viene trasformato tramite la filterbank.
+\begin{frame} \frametitle{Analysis filterbank}

-	Come abbiamo osservato prima otteniamo $\{e^{in\omega}\}$ è un autovalore per
-	questi filtri e quindi otteniamo due segnali
+  Analizziamo un segnale ad una frequenza fissata $\{e^{in\omega}\}$.
+
+  \vskip 10pt
+
+	$\{e^{in\omega}\}$ è un autovalore per
+	$h_0$ e $h_1$ e quindi dopo il primo passaggio dell'Analysis filterbank si ottiene
 	\[
 	y_0(n) = H_0(\omega)e^{in\omega} \qquad y_1(n) = H_1(\omega)e^{in\omega}
 	\]

-  \begin{os}
-  Con questo filtraggio abbiamo separato le alte frequenze dalla basse frequenze; ora però
-  ci sono \textbf{il doppio} dei samples di prima e quindi il segnale occupa
-  il doppio dello spazio.
-	\end{os}
-\end{frame}
+	\vskip 15pt
+%
+%  \begin{os}
+%  Con questo filtraggio abbiamo separato le alte frequenze dalla basse frequenze; ora però
+%  ci sono \textbf{il doppio} dei samples di prima e quindi il segnale occupa
+%  il doppio dello spazio.
+%	\end{os}
+

-\begin{frame} \frametitle{Liberarsi della ridondanza}
   Per liberarci dell'informazioni in eccesso ne scartiamo la metà effettuando un downsampling,
   ovvero ponendo
   \[
     \tilde y_0(n) = \downsample{2} y_0(n) \qquad \tilde y_1(n) = \downsample{2} y_1(n)
   \]
-  Il problema dell'informazione in eccesso è stato sicuramente risolto, ma sarà possibile
-  recuperare il segnale originale? \\[15pt]
-
-  Per fortuna la risposta è affermativa. Supponiamo ora di conoscere solamente i segnali
-  $\tilde y_0$ e $\tilde y_1$ ottenuti da questo processo, ovvero
-  \[
-    \tilde{y_0}(n) = H_0(\omega)e^{2in\omega} \qquad \tilde{y_1}(n) = H_1(\omega)e^{2in\omega}
-  \]
 \end{frame}

+%
+%\begin{frame} \frametitle{Liberarsi della ridondanza}
+%  Il problema dell'informazione in eccesso è stato sicuramente risolto, ma sarà possibile
+%  recuperare il segnale originale? \\[15pt]
+%
+%  Per fortuna la risposta è affermativa. Supponiamo ora di conoscere solamente i segnali
+%  $\tilde y_0$ e $\tilde y_1$ ottenuti da questo processo, ovvero
+%  \[
+%    \tilde{y_0}(n) = H_0(\omega)e^{2in\omega} \qquad \tilde{y_1}(n) = H_1(\omega)e^{2in\omega}
+%  \]
+%\end{frame}
+
 \begin{frame} \frametitle{Il ritorno dell'aliasing}
-  Cominciamo con il cercare di invertire (per quanto possibile) il downsampling.

-  Poniamo quindi:
+	\begin{problema} Cosa succede ad un segnale $\{e^{in\omega}\}$ se effettuiamo un downsampling
+	seguito da un upsampling?
+	\end{problema}
+  \vskip 15pt
+  \uncover<2-> {
+  Osserviamo che per ogni $\omega$ vale la seguente uguaglianza
   \[
-    z_0(n) = \upsample{2} \tilde y_0(n) \qquad z_1(n) = \upsample{2} \tilde y_1(n)
+    \upsample{2}\downsample{2} \{e^{in\omega}\} = \{\frac{1}{2} ( e^{in\omega} + e^{in(\omega+\pi)})\}
   \]
-  e osserviamo che per ogni $\omega$ vale questa uguaglianza
+  ovvero l'upsampling ci restituisce il segnale originale ``sporcato'' con dell'aliasing.
+  }
+
+  \only<3-> {
   \[
-    \upsample{2}\downsample{2} \{e^{in\omega}\} = \{\frac{1}{2} ( e^{in\omega} + e^{in(\omega+\pi)})\}
+    z_0(n) = \upsample{2}\downsample{2} h_0 * x(n) \qquad z_1(n) = \upsample{2}\downsample{2} h_1 * x(n)
   \]
-  ovvero l'upsampling ci restituisce il segnale originale ``sporcato'' con dell'aliasing. Come liberarsene?
-
+  }
+
 \end{frame}

 \begin{frame} \frametitle{La sintesi}
@@ -448,7 +509,7 @@
 \end{frame}

 \begin{frame} \frametitle{La sintesi}
-  Per recuperare il segnale iniziale farebbe comodo avere $r(n) = x(n)$ che è equivalente a
+  La condizione per riottenere il segnale originale è $r(n) = x(n)$ che è equivalente a
   \[
     \left\{ \begin{array}{l}
       F_0(\omega)H_0(\omega) + F_1(\omega)H_1(\omega) = 1 \\
@@ -459,33 +520,28 @@
   In realtà è sufficiente che la prima equazione valga $e^{-il\omega}$ per ogni $\omega$ e per qualche
   $l \in \N$. \\[5pt]

-  In questo modo avremmo che $r(n) = e^{-il\omega}x(n) = e^{i(n-l)\omega}$ è uguale a $x(n)$
+  \vskip 10pt
+
+  In questo modo avremmo che $r(n) = e^{-il\omega}x(n) = e^{i(n-l)\omega}$, cioè è $x(n)$
   con un ritardo di $l$. \\[5pt]

-  Purtroppo questo è inevitabile, perché i filtri ``guardano solamente indietro'', e quindi introducono
-  un ritardo.
 \end{frame}

 \begin{frame} \frametitle{Il caso di Haar}
   Ricordando i filtri $h_0, h_1, f_0, f_1$ che avevamo scelto all'inizio, calcoliamo le relative
-  response function.
+  response function $H_0, H_1, F_0, F_1$.

-  \uncover<2-> {
-  Consideriamo un generico filtro $h$
-  si ha
-  \[
-    y(n) = \sum_{k=0}^{N} h(k)x(n-k) = \sum_{k=0}^{N} h(k)e^{i(n-k)\omega} = e^{in\omega}\underbrace{\sum_{k=0}^{N} h(k)e^{-ik\omega}}_{H_0(\omega)}
-  \]
-  }
-  \uncover<3> {
-  Applicando il procedimento ad $h_0, h_1, f_0, f_1$ si ottiene:
+  \vskip 10pt
+
+ Ricordando la formula $H(\omega) = \sum_{k=0}^{N} h(k) e^{-ik\omega}$ si ottiene:
+
+ \vskip 10pt
   \[
     H_0(\omega) = \frac 1 2 ( 1 + e^{-i\omega} ) \qquad H_1(\omega) = \frac 1 2 (1 - e^{-i\omega})
   \]
   \[
     F_0(\omega) = 1 + e^{-i\omega} \qquad F_1(\omega) = -1 + e^{-i\omega}
   \]
-  }
 \end{frame}

 \begin{frame} \frametitle{Il caso di Haar}
@@ -498,13 +554,16 @@
     \right.
   \]
   La Filterbank di Haar ci permette quindi di decomporre e ricomporre esattamente un segnale
-  con un ritardo di $1$ sample. \\
+  con un ritardo di $1$! \\[10pt]
   \uncover<2> {
   \begin{example}
-  Consideriamo il vettore $x = (6,4,5,2,3)$ ed applichiamoci i filtri $h_0$ e $h_1$:
-  \[
-    h_0 * x = (3,5,4.5.3.5,2.5,1.5) \qquad h1 * x = (3,-1,0.5,-1.5,0.5,-1.5)
-  \]
+  Consideriamo il vettore $x = (6,4,5,2)$ ed applichiamoci i filtri $h_0$ e $h_1$:
+  \begin{eqnarray*}
+		y_0 = h_0 * x = (3,5,4.5.3.5,1)  &  y_1 = h_1 * x = (3,-1,0.5,-1.5,-1) \\
+    \tilde{y_0} = \downsample{2}y_0 = (3,4.5,1)  & \tilde{y_1} = \downsample{2}y_1 = (3,0.5,-1) \\
+    z_0 = \upsample{2}\tilde{y_0} = (3,0,4.5,0,1,0) &  z_1 = \upsample{2}\tilde{y_1} = (3,0,0.5,0,-1,0) \\
+  \end{eqnarray*}
+  $$ f_0 * z_0 + f_1 * z_1  = (0,6,5,4,2,0,0) $$

   \end{example}
   }
@@ -581,13 +640,16 @@
     \end{array} \right.
   \]

-  Se il metodo converge ad una funzione $\bar\Phi$ questa sarà forzatamente soluzione
+  Se il metodo converge ad una funzione $\bar\Phi$ questa sarà soluzione
   della refinement equation.  }

 \end{frame}

-\begin{frame} \frametitle{Condizioni di convergenza}
-
+\begin{frame} \frametitle{Condizioni per la convergenza}
+  \begin{problema}
+    Trovare condizione necessarie e sufficienti per la convergenza della successione $\Phi_k(t)$.
+  \end{problema}
+
 \end{frame}
 \end{document}
ViewGit