Estese le slide con le filterbank.

Leonardo Robol [2010-03-14 13:07]
Estese le slide con le filterbank.
Filename
Filtering/Filtering.py
Slide/slide.tex
diff --git a/Filtering/Filtering.py b/Filtering/Filtering.py
index 6a280fa..a69692f 100644
--- a/Filtering/Filtering.py
+++ b/Filtering/Filtering.py
@@ -322,9 +322,9 @@ DaubechiesFilterBank.SetLength (3)
 HaarFilterBank = FilterBank ()
 HaarFilterBank.SetFilterMatrix ( [
         [0.5, 0.5],
-        [-0.5 ,0.5],
+        [0.5 ,-0.5],
         [1 , 1 ],
-        [1 , -1]
+        [-1 , 1]
         ])
 HaarFilterBank.SetLength(1)

diff --git a/Slide/slide.tex b/Slide/slide.tex
index 9918958..1a048b8 100644
--- a/Slide/slide.tex
+++ b/Slide/slide.tex
@@ -5,8 +5,10 @@
 \usepackage[utf8x]{inputenc}
 \usepackage[italian]{babel}
 \usepackage{default}
+\usepackage{iwona}
 % \usepackage[T1]{fontenc}

+
 \usepackage{amsmath}
 \usepackage{tikz}
 \usepackage{subfigure}
@@ -15,7 +17,15 @@
 % ci saranno utili in seguito.
 \newcommand{\R}{\mathbb{R}}
 \newcommand{\Z}{\mathbb{Z}}
+\newcommand{\N}{\mathbb{N}}
 \renewcommand{\hat}{\widehat}
+\newcommand{\upsample}[1]{\makebox[0.85\width]{$\uparrow$}_{#1}}
+\newcommand{\downsample}[1]{\makebox[0.85\width]{$\downarrow$}^{#1}}
+\newcommand{\pausaindice}{
+\begin{frame} \frametitle{Outline}
+  \tableofcontents[current]
+\end{frame}}
+% \newcommand{\downsample}[1]{\downarrow{#1}}

 % Il nostro tema
 % \usetheme{CambridgeUS}
@@ -36,15 +46,16 @@
  \titlepage
 \end{frame}

-\begin{frame} \frametitle{Outline}
-  \tableofcontents
-\end{frame}
+% \begin{frame} \frametitle{Outline}
+%  \tableofcontents[pausesections]
+% \end{frame}

 %
 % Teoremi
 %
 \theoremstyle{plain} \newtheorem{teo}{Teorema}
 \theoremstyle{remark} \newtheorem{de}{Definizione}
+\theoremstyle{remark} \newtheorem{os}{Osservazione}

 %
 % Cominciamo a capire cosa ci interessa di un segnale e come lo vogliamo
@@ -52,6 +63,7 @@
 %
 \section{Manipolazione di segnali}
 \subsection{Segnali analogici e segnali digitali}
+\pausaindice
 % FRAME: Cosa sono i segnali
 \begin{frame}\frametitle{Segnali}
 	Un \emph{segnale analogico x} è una funzione $x_{analog}: \R \to \R$.
@@ -135,7 +147,7 @@
 % FRAME: Cosa sono i filtri
 \subsection{Filtri e FIR}
 \begin{frame} \frametitle{Filtri}
-	Supponiamo di avere il segnal campionato $x(nT)$; d'ora in poi
+	Supponiamo di avere il segnale campionato $x(nT)$; d'ora in poi
 	supporremo $T = 1$ per semplicità.

   \begin{de}
@@ -235,8 +247,93 @@
 	Il filtro \textbf{amplifica ogni frequenza del segnale} di un coefficiente $H(\omega)$.
 \end{frame}

+\subsection{Upsampling e downsampling}
+\begin{frame} \frametitle{Downsampling}
+	In seguito ci troveremo molto spesso nella condizione di avere "troppa informazione",
+	ovvero di avere gruppi di segnali che contengono informazioni ridondanti. \\[15pt]
+
+	Per ovviare a questo trasformeremo i segnali $x(n)$ in degli altri segnali $y(n)$
+	tramite un'operazione di \emph{downsampling}:
+	\begin{de}
+	Diremo che $y(n)$ è il \emph{downsampling} di $x(n)$ e lo indicheremo con
+	$y(n) = \downsample{k}x(n)$ se
+	\[
+	  y(n) = x(kn) \quad \textrm{dove } k \in \N
+	\]
+	\end{de}
+	In questo modo scarteremo una parte dell'informazione (a seconda del $k$ scelto, solitamente
+	avremo $k = 2$). \\[5pt]
+
+\end{frame}
+\begin{frame} \frametitle{Upsampling}
+
+	Per ``invertire'' il downsampling applicheremo l'\emph{upsampling}:
+	\begin{de}
+	Diremo che $x(n)$ è l'upsampling di $y(n)$ di un fattore $k$ e lo
+	indicheremo con $x(n) = \upsample k y(n)$ se
+	\[
+	  x(n) = \left\{ \begin{array}{ll}
+	    y(\frac{n}{k}) & \textrm{se } n \textrm{ è multiplo di } k \\
+	    0 & \textrm{altrimenti}
+	  \end{array} \right.
+	\]
+	\end{de}
+	\begin{os}
+	  Il downsampling è l'inverso dell'upsampling ma non viceversa, ovvero
+	  \[
+	    \downsample{k}\upsample{k} x(n) = x(n) \quad \textrm{ma} \quad \upsample{k}\downsample{k} x(n) \neq x(n)
+	  \]
+	\end{os}
+\end{frame}
+
 \section{FilterBank}
+\pausaindice
 \subsection{Cos'è una filterbank}
+\begin{frame} \frametitle{Struttura di una filterbank}
+  Possiamo immaginare una \emph{filterbank} come una successione di filtri
+  che, partendo, da uno o più segnali di input $x(n)$ produca uno o più segnali
+  di output $y_{0}(n) \ldots y_{1}(n)$. \\[15pt]
+  Questo esempio prende un input (in giallo) e restituisce tre output (in blu).
+  \begin{figure}
+    \begin{tikzpicture}[rounded corners=2pt, scale=0.5, thick, node distance=50pt]
+    \tikzstyle{place}=[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) {$x(n)$};
+      \node [place] (y0) [right of=inputsignal, yshift=25pt] {$y_0(n)$};
+      \node [output] (y1) [right of=inputsignal, yshift=-25pt] {$y_1(n)$};
+			\node [output] (y00)[right of=y0, yshift=20pt] {$y_{00}(n)$};
+			\node [output] (y01)[right of=y0, yshift=-20pt] {$y_{01}(n)$};
+
+			%% .. e li colleghiamo
+			\draw[->] (inputsignal.east) -- (y0.west);
+			\draw[->] (inputsignal.east) -- (y1.west);
+			\draw[->] (y0.east) -- (y01.west);
+			\draw[->] (y0.east) -- (y00.west);
+
+    \end{tikzpicture}
+    \caption{Esempio di filterbank}
+  \end{figure}
+\end{frame}
+
+\begin{frame} \frametitle{Perché una filterbank?}
+	Potremmo chiederci:
+	\begin{quote}
+	 Qual'è la relazione fra le wavelet e le filterbank?
+	\end{quote} \\[15pt]
+
+	La risposta breve è che le filterbank (in realtà delle opportune
+	filterbank) sono l'equivalete discreto della trasformata wavelet. \\[15pt]
+
+  Cominciamo a considerare
+	un esempio, la \emph{filterbank di Haar}.
+
+\end{frame}
+
+\subsection{Un esempio significativo}
+
 \begin{frame}
 	\frametitle{Haar filterbank}
 	Consideriamo i seguenti filtri:
@@ -244,6 +341,30 @@
 	  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.
+\end{frame}
+
+\begin{frame} \frametitle{Discrete Wavelet Transform}
+	Osserviamo cosa succede al segnale quando viene trasformato tramite la filterbank.
+
+	Come abbiamo osservato prima otteniamo $\{e^{in\omega}\}$ è un autovalore per
+	questi filtri e quindi otteniamo due segnali
+	\[
+	y_0(n) = H_0(\omega)e^{in\omega} \qquad y_1(n) = H_1(\omega)e^{in\omega}
+	\]
+	Partendo da un segnale abbiamo
+
 \end{frame}

 \end{document}
ViewGit