\documentclass[mathserif,professionalfonts,compress,slidestop,10pt]{beamer}

\mode<presentation>

\usepackage[utf8x]{inputenc}
\usepackage[italian]{babel}
\usepackage{default}
\usepackage{iwona}
\usepackage[T1]{fontenc}


\usepackage{amsmath}
\usepackage{tikz}
\usepackage{subfigure}

% Comandi miei, ovvero piccole cose matematiche che
% ci saranno utili in seguito.
\newcommand{\R}{\mathbb{R}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\N}{\mathbb{N}}
\renewcommand{\hat}{\widehat}
\renewcommand{\tilde}{\widetilde}
\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}
\usetheme{Antibes}
\usecolortheme{dolphin}
\beamertemplateshadingbackground{blue!10}{blue!2}
\setbeamercovered{transparent=15}

% Chi siamo e cosa facciamo
\author{Leonardo Robol}
\title{Wavelet e signal processing}
\subtitle{Trasformata wavelet discreta e dintorni}

\begin{document}

% Pagina principale
\begin{frame}[plain]
 \titlepage
\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
% guardare.
%
\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$. 

	Quasi tutti i sengali ``nascono''
	in forma analogica ma vengono \emph{campionati} per essere rappresentati come
	\[
		\left\{ \begin{array}{ll}
		  x_{digital}(n): & \Z  \to  \R \\
		  x_{digital}(n)= &  x_{analog}(nT) \\
	  \end{array} \right.
	\]
	dove $T \in \R$ è l'\emph{intervallo di campionamento}. 

	Questo permette di memorizzare un segnale analogico su un supporto digitale (i.e. un computer). 
\end{frame}

% FRAME: Shannon sampling theorem
\begin{frame} \frametitle{Shannon sampling theorem}

	Quando un segnale viene campionato molta ``informazione'' viene scartata. Se però il segnale
	è \emph{band-limited} allora questo non crea nessun problema, come ci dice il seguente teorema:
	\begin{teo}
		Ogni segnale analogico le cui frequenze non superano un dato $\omega_{max} \in \R_+$ 
		può essere ricostruito dal suo campionamento $x(nT)$ se $\frac{1}{T} > \frac{\omega_{max}}{\pi}$.
	\end{teo}

	%% Commento allo shannon sampling theorem
	\begin{de}
	  Il valore $\frac{\omega_{max}}{\pi}$ viene chiamato \emph{Nyquist period}. 
	\end{de}
\end{frame}

% FRAME: Aliasing
\begin{frame} \frametitle{Aliasing}

	% Un po' di spettacolo
	\transdissolve[duration=0.2]<2>
	\transdissolve[duration=0.2]<3>

	Cosa succede quando non è soddisfatta l'identità $T^{-1} > \omega_{max} \pi^{-1}$?

	Osserviamo il seguente esempio:

  \begin{itemize}
		\only<1-> {\item	Sia $x(t) = sin(\omega x)$.	}
		\uncover<2-> {		\item Consideriamo il sampling $x(nT)$ con $T = \frac{3\pi}{2\omega}$. }
	  \uncover<3-> { \item Si ottiene lo stesso sampling che per $\hat x_{alias}(t) = \sin(\frac{\omega}{3}t)$, e quindi il segnale non può
					venire ricostruito. }
	\end{itemize}

  \begin{figure}
	\begin{tikzpicture}[domain=0:7,samples=150]
		\draw[->] (0,0) -- (8,0) node[anchor=west]{$t$};
		\draw[->] (0,0) -- (0,1.5) node[anchor=south]{$sin(\omega t)$};

		% Disegno la funzione
		\only<1->{
			\draw[color=blue] plot[id=signal] function {sin(5*x)};
		}

		% Disegno i puntini del sampling
		\visible<2->{
			\foreach \x in {0,1.8849,...,7}
				{\fill (\x, 0) circle (0.05cm);}
			\foreach \x in {0.94,4.71,...,7}
				{\fill (\x, -1) circle (0.05cm);}
			\foreach \x in {2.81,6.59,...,7}
				{\fill (\x, 1) circle (0.05cm);}
		}

		% Disegno la funzione alias
		\visible<3-> {
			\draw[color=red] plot[id=aliasedsignal] function {-1 * sin( 1.666667 * x)};
		}
	\end{tikzpicture}
	\caption{Esempio di aliasing}
	\end{figure}
\end{frame}

% FRAME: Cosa sono i filtri
\subsection{Filtri e FIR}
\begin{frame} \frametitle{Filtri}
	Supponiamo di avere il segnale campionato $x(nT)$; d'ora in poi
	supporremo $T = 1$ per semplicità.

  \begin{de}
	Un \emph{filtro} è un'applicazione che manda $x(n)$ in un altro segnale $y(n)$. 
	Diremo che un filtro è
	\begin{description}
		\item[causale] se $y(n)$ è funzione unicamente di $x(n), x(n-1), \ldots$;
		\item[FIR\footnote{che sta per finite impulse response.}] se $y(n)$ si può ottenere con un numero finito di
		campioni di $x(n)$ per ogni $n$;
	\end{description}
	\end{de}

	I filtri FIR e causali sono interessanti perché possono essere calcolati
	in \emph{real--time}. 

\end{frame}

% FRAME: Esempio di filtro
\begin{frame} \frametitle{Esempio di filtro}
	Sia $h \in \R^n$ e consideriamo il filtro:
	\[
		x(n) \longrightarrow y(n) = \sum_{i=1}^{n} h_{i} x(n - i)
	\]
	Questo è sia FIR che causale. Consideriamo i seguenti segnali:
	\[
		\left\{ \begin{array}{l}
			x_1(n) = ( \ldots , 1 , 1 , 1 , 1 , 1 , \ldots ) \\
			x_2(n) = ( \ldots , 1 , -1 , 1 , -1 , 1 , \ldots ) \\
		\end{array} \right.
	\]
	ed i seguenti filtri:
	\[
		\left\{ \begin{array}{l}
			h_0 = ( \frac{1}{2}, \frac{1}{2} ) \\
			h_1 = ( \frac{1}{2}, - \frac{1}{2} ) \\
		\end{array} \right.
	\]

	Si ottengono i seguenti output:
	\[
		h_0x_0 = x_0 \qquad h_1x_0 \equiv 0 \qquad h_0x_1 \equiv 0 \qquad h_1x_2 = x_2
	\]
	
\end{frame}

\begin{frame} \frametitle{Frequency response}
	%$h_0$ è un \emph{lowpass filter}, perché elimina le alte frequenze lasciando invariate quelle
	%basse, mentre $h_1$ è un \emph{highpass filter} perché mantiene le alte frequenze eliminando
	%quelle basse. 
%
%	Osserviamo che per ogni $\omega$ e per ogni $h$, $h * {e^{in\omega}} = H(\omega)e^{in\omega}$ e quindi
%	$e^{inw}$ è un autovettore per il filtro. Il suo autovalore $H(\omega)$ viene detto
%	\emph{frequency response} del filtro alla frequenza $\omega$.

  Sia $x(n) = e^{in\omega}$. Questo è un autovettore per il filtro:
  \[
    h * \{e^{in\omega}\} = \sum_{i=0}^{N} h(i)e^{i(n-i)\omega} = 
    e^{in\omega} \underbrace{\sum_{i=0}^{N} e^{-i\omega}}_{\textrm{autovalore } H(\omega)}
  \] 

	\vskip 10pt

 	\uncover<2-> {	
	Consideriamo un segnale generico $x(n)$, e la sua trasformata di Fourier $X(\omega)$. 
	
	La trasformata di Fourier $Y(\omega)$ del segnale $y(n)$ ottenuto dopo l'applicazione del filtro
	sarà 
	\[
		Y(\omega) = X(\omega) H(\omega)
	\]
  }
\end{frame}


\begin{frame} \frametitle{Lowpass e Highpass}

%	Nell'esempio precedente abbiamo
	\begin{figure}
	\subfigure{
		\begin{tikzpicture}[domain=0:1.57, samples=150,scale=1.5]
			\draw[->] (0,0) -- (1.9,0) node[anchor=west] {$\omega$};
			\draw[->] (0,-0.1) -- (0,1.1) node[anchor=south] {$H_0(\omega)$};

			\draw[color=blue] plot[id=h0resp] function {cos(x)};
		\end{tikzpicture}
	}
	\subfigure {	
		\begin{tikzpicture}[domain=0:1.57, samples=150,scale=1.5]
			\draw[->] (0,0) -- (1.9,0) node[anchor=west] {$\omega$};
			\draw[->] (0,-0.1) -- (0,1.1) node[anchor=south] {$H_1(\omega)$};

			\draw[color=blue] plot[id=h1resp] function {sin(x)};
		\end{tikzpicture}
	}
	
	\caption{Frequency response di $h_0$ ed $h_1$}
	\end{figure}

  \begin{description}
  \item[$H_0(\omega)$]	Il filtro $h_0$ si dice \emph{lowpass} perché lascia invariati i segnali
	a bassa frequenza, mentre elimina quelli ad alta frequenza. 

  \item[$H_1(\omega)$]	Analogamente $h_1$ si dice \emph{highpass}.
	\end{description}

\end{frame}

\subsection{Upsampling e downsampling}
\begin{frame} \frametitle{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}

	\begin{example}
	  Applichiamo il downsampling ad un numero finito di samples:	
	  Se $x = (1, 5, 3, 2, 6, 4, 8) = x(0) \ldots x(6)$ si ha
	  \[
	    \downsample{3}x = (1, 2, 8) \qquad \downsample{2}x = (1,3,6,8)
	  \]
	\end{example}

\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}





%
%
%                          %%%%%%%%%%%%%%%%%%
%                          SEZIONE FILTERBANK
%                          %%%%%%%%%%%%%%%%%%
%
%
%
%
\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?}

  Le filterbank ci permettono di scomporre (e ricomporre un segnale). Questo ci è utile per:

  \vskip 20pt

	\begin{description}
	  \item[Analisi] Vorremmo avere il segnale in una forma che metta in evidenza
	  la decomposizione in frequenze del segnale e contemporaneamente la localizzazione
	  temporale;

	  \vskip 25pt

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

\end{frame}

\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})
	\]

	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}
	\]

  \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}

\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{Il ritorno dell'aliasing}
  Cominciamo con il cercare di invertire (per quanto possibile) il downsampling. 

  Poniamo quindi:
  \[
    z_0(n) = \upsample{2} \tilde y_0(n) \qquad z_1(n) = \upsample{2} \tilde y_1(n) 
  \]
  e osserviamo che per ogni $\omega$ vale questa uguaglianza
  \[
    \upsample{2}\downsample{2} \{e^{in\omega}\} = \{\frac{1}{2} ( e^{in\omega} + e^{in(\omega+\pi)})\}
  \]
  ovvero l'upsampling ci restituisce il segnale originale ``sporcato'' con dell'aliasing. Come liberarsene?
  
\end{frame}

\begin{frame} \frametitle{La sintesi}
%   Osserviamo cosa succede ora se consideriamo
  \begin{eqnarray*}
    r(n) &=& f_0 * z_0(n) + f_1 * z_1(n) = \\
    &=& \frac{f_0}{2} * (\tilde{y_0}(n) + e^{in\pi}\tilde{y_0}(n)) + \frac{f_1}{2} * (\tilde{y_1}(n) + e^{in\pi}\tilde{y_1}(n)) = \\ 
    &=& \frac{f_0}{2} * H_0(\omega)(e^{in\omega} + e^{in(\omega + \pi)}) + \frac{f_1}{2} * H_1(\omega)(e^{in\omega} + e^{in(\omega + \pi)})
  \end{eqnarray*} \vskip 10pt
  e sviluppando in funzione del segnale iniziale $e^{in\omega}$ si ottiene che $r(n)$ si può scrivere come
  (consideriamo $-\omega = \omega + \pi$)
  % Fare un riqadro
  \[
    \frac{(F_0(\omega)H_0(\omega) + F_1(\omega)H_1(\omega))e^{in\omega} + (F_0(-\omega)H_0(\omega) + F_1(-\omega)H_1(\omega))e^{-in\omega}}{2}
    \]
  % e quindi $r(n)$ è combinazione lineare di $\{e^{in\omega}\}$ e di $\{e^{in(\omega + \pi)}\}$. 
\end{frame}

\begin{frame} \frametitle{La sintesi}
  Per recuperare il segnale iniziale farebbe comodo avere $r(n) = x(n)$ che è equivalente a
  \[
    \left\{ \begin{array}{l}
      F_0(\omega)H_0(\omega) + F_1(\omega)H_1(\omega) = 1 \\
      F_0(\omega+\pi)H_0(\omega) + F_1(\omega+\pi)H_1(\omega) = 0 
    \end{array}
    \right.
  \]
  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)$
  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. 

  \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:
  \[
    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}
  Valutando le equazioni della PR condition si ottiene:
  \[
    \left\{ \begin{array}{l}
      F_0(\omega)H_0(\omega) + F_1(\omega)H_1(\omega) = e^{-i\omega} \\
      F_0(\omega+\pi)H_0(\omega) + F_1(\omega+\pi)H_1(\omega) = 0 
    \end{array}
    \right.
  \]
  La Filterbank di Haar ci permette quindi di decomporre e ricomporre esattamente un segnale
  con un ritardo di $1$ sample. \\
  \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)
  \]
  
  \end{example}
  }
\end{frame}



%
%
%                          %%%%%%%%%%%%%%%%
%                          SEZIONE WAVELETS
%                          %%%%%%%%%%%%%%%%
%
%
%
%

\section{Wavelet}
\subsection{Refinement function}
\begin{frame} \frametitle{Refinement equation}
  Cerheremo ora di estendere l'esempio precedente ad un procedimento generale per
  analizzare segnali. \\[15pt]

  Introduciamo un'importante equazione detta \emph{Refinement equation}: 
  \[
    \Phi(t) = 2 \sum_{k=0}^{N} h(k)\Phi(2t-k)
  \]
  dove $h$ è un lowpass filter di lunghezza $N$ e $\Phi(t)$ una funzione da $\R$ in $\R$. 
\end{frame}

\begin{frame} \frametitle{Trovare una soluzione}
  Supponiamo di aver fissato il filtro e di voler trovare una soluzione alla \emph{refinement equation}.

  \begin{os} Se $\Phi(t)$ è soluzione, allora anche $\lambda \Phi(t)$ lo è. La normalizzazione
  che generalmente si utilizza è
  \[
    \int_{-\infty}^{\infty} \Phi(t) dt = 1
  \]
  \end{os}

  Infatti se $\Phi(t)$ è soluzione allora è una funzione a supporto compatto, e quindi l'integrale è finito. 
  
\end{frame}

\begin{frame} \frametitle{Il caso di Haar}
  \begin{example}
  Consideriamo ancora il filtro $h_0 = (\frac 1 2 , \frac 1 2)$. La refinement equation diventa
  \[
    \Phi(t) = \Phi(2t) + \Phi(2t - 1)
  \]
  e la soluzione è la funzione $\chi_{[0,1]}(t)$. 
  \end{example} \vskip 15pt

	Possiamo osservare un'altra interessante proprietà. \\[10pt]

  Se $h$ e $j$ sono due filtri per cui $\Phi$ e $\Psi$ sono refinement function (ovvero soluzione
  della refinement equation) allora $\Phi * \Psi$ è una refinement function per $h*j$, ovvero per
  la composizione dei filtri. 
\end{frame}

\begin{frame} \frametitle{Come calcolare effettivamente la soluzione?}
  Per il caso del filtro di Haar abbiamo trovato la soluzione per verifica diretta. \\[10pt]
  Sfruttando l'osservazione precedente possiamo trovare la refinement function per una qualsiasi
  combinazione di filtri di cui la conosciamo singolarmente. Come possiamo risolvere il problema
  in generale? \\[15pt]

  \uncover<2> {

  Consideriamo il seguente metodo iterativo:
  \[
		\left\{\begin{array}{lcl}
    \Phi_0(t) &=& \chi_{[0,1]}(t) \\
    \Phi_{j+1}(t) &=& 2\sum_{k=0}^{N} h(k) \Phi_{j}(2t - k)
    \end{array} \right.
  \]

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

\begin{frame} \frametitle{Condizioni di convergenza}
  
\end{frame}
\end{document}

