viewgit/index.php:465 Only variables should be passed by reference [2048]

viewgit/index.php:466 Non-static method GeSHi::get_language_name_from_extension() should not be called statically [2048]

  1. \documentclass[mathserif,professionalfonts,compress,slidestop,10pt]{beamer}
  2.  
  3. \mode<presentation>
  4.  
  5. \usepackage[utf8x]{inputenc}
  6. \usepackage[italian]{babel}
  7. \usepackage{default}
  8. \usepackage{iwona}
  9. % \usepackage[T1]{fontenc}
  10.  
  11.  
  12. \usepackage{amsmath}
  13. \usepackage{tikz}
  14. \usepackage{subfigure}
  15.  
  16. % Comandi miei, ovvero piccole cose matematiche che
  17. % ci saranno utili in seguito.
  18. \newcommand{\R}{\mathbb{R}}
  19. \newcommand{\Z}{\mathbb{Z}}
  20. \newcommand{\N}{\mathbb{N}}
  21. \renewcommand{\hat}{\widehat}
  22. \newcommand{\upsample}[1]{\makebox[0.85\width]{$\uparrow$}_{#1}}
  23. \newcommand{\downsample}[1]{\makebox[0.85\width]{$\downarrow$}^{#1}}
  24. \newcommand{\pausaindice}{
  25. \begin{frame} \frametitle{Outline}
  26. \tableofcontents[current]
  27. \end{frame}}
  28. % \newcommand{\downsample}[1]{\downarrow{#1}}
  29.  
  30. % Il nostro tema
  31. % \usetheme{CambridgeUS}
  32. \usetheme{Antibes}
  33. \usecolortheme{dolphin}
  34. \beamertemplateshadingbackground{blue!10}{blue!2}
  35. \setbeamercovered{transparent=15}
  36.  
  37. % Chi siamo e cosa facciamo
  38. \author{Leonardo Robol}
  39. \title{Wavelet e signal processing}
  40. \subtitle{Trasformata wavelet discreta e dintorni}
  41.  
  42. \begin{document}
  43.  
  44. % Pagina principale
  45. \begin{frame}[plain]
  46. \titlepage
  47. \end{frame}
  48.  
  49. % \begin{frame} \frametitle{Outline}
  50. % \tableofcontents[pausesections]
  51. % \end{frame}
  52.  
  53. %
  54. % Teoremi
  55. %
  56. \theoremstyle{plain} \newtheorem{teo}{Teorema}
  57. \theoremstyle{remark} \newtheorem{de}{Definizione}
  58. \theoremstyle{remark} \newtheorem{os}{Osservazione}
  59.  
  60. %
  61. % Cominciamo a capire cosa ci interessa di un segnale e come lo vogliamo
  62. % guardare.
  63. %
  64. \section{Manipolazione di segnali}
  65. \subsection{Segnali analogici e segnali digitali}
  66. \pausaindice
  67. % FRAME: Cosa sono i segnali
  68. \begin{frame}\frametitle{Segnali}
  69. Un \emph{segnale analogico x} è una funzione $x_{analog}: \R \to \R$.
  70.  
  71. Quasi tutti i sengali ``nascono''
  72. in forma analogica ma vengono \emph{campionati} per essere rappresentati come
  73. \[
  74. \left\{ \begin{array}{ll}
  75. x_{digital}(n): & \Z \to \R \\
  76. x_{digital}(n)= & x_{analog}(nT) \\
  77. \end{array} \right.
  78. \]
  79. dove $T \in \R$ è l'\emph{intervallo di campionamento}.
  80.  
  81. Questo permette di memorizzare un segnale analogico su un supporto digitale (i.e. un computer).
  82. \end{frame}
  83.  
  84. % FRAME: Shannon sampling theorem
  85. \begin{frame} \frametitle{Shannon sampling theorem}
  86.  
  87. Quando un segnale viene campionato molta ``informazione'' viene scartata. Se però il segnale
  88. è \emph{band-limited} allora questo non crea nessun problema, come ci dice il seguente teorema:
  89. \begin{teo}
  90. Ogni segnale analogico le cui frequenze non superano un dato $\omega_{max} \in \R_+$
  91. può essere ricostruito dal suo campionamento $x(nT)$ se $\frac{1}{T} > \frac{\omega_{max}}{\pi}$.
  92. \end{teo}
  93.  
  94. %% Commento allo shannon sampling theorem
  95. \begin{de}
  96. Il valore $\frac{\omega_{max}}{\pi}$ viene chiamato \emph{Nyquist period}.
  97. \end{de}
  98. \end{frame}
  99.  
  100. % FRAME: Aliasing
  101. \begin{frame} \frametitle{Aliasing}
  102.  
  103. % Un po' di spettacolo
  104. \transdissolve[duration=0.2]<2>
  105. \transdissolve[duration=0.2]<3>
  106.  
  107. Cosa succede quando non è soddisfatta l'identità $T^{-1} > \omega_{max} \pi^{-1}$?
  108.  
  109. Osserviamo il seguente esempio:
  110.  
  111. \begin{itemize}
  112. \only<1-> {\item Sia $x(t) = sin(\omega x)$. }
  113. \uncover<2-> { \item Consideriamo il sampling $x(nT)$ con $T = \frac{3\pi}{2\omega}$. }
  114. \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ò
  115. venire ricostruito. }
  116. \end{itemize}
  117.  
  118. \begin{figure}
  119. \begin{tikzpicture}[domain=0:7,samples=150]
  120. \draw[->] (0,0) -- (8,0) node[anchor=west]{$t$};
  121. \draw[->] (0,0) -- (0,1.5) node[anchor=south]{$sin(\omega t)$};
  122.  
  123. % Disegno la funzione
  124. \only<1->{
  125. \draw[color=blue] plot[id=signal] function {sin(5*x)};
  126. }
  127.  
  128. % Disegno i puntini del sampling
  129. \visible<2->{
  130. \foreach \x in {0,1.8849,...,7}
  131. {\fill (\x, 0) circle (0.05cm);}
  132. \foreach \x in {0.94,4.71,...,7}
  133. {\fill (\x, -1) circle (0.05cm);}
  134. \foreach \x in {2.81,6.59,...,7}
  135. {\fill (\x, 1) circle (0.05cm);}
  136. }
  137.  
  138. % Disegno la funzione alias
  139. \visible<3-> {
  140. \draw[color=red] plot[id=aliasedsignal] function {-1 * sin( 1.666667 * x)};
  141. }
  142. \end{tikzpicture}
  143. \caption{Esempio di aliasing}
  144. \end{figure}
  145. \end{frame}
  146.  
  147. % FRAME: Cosa sono i filtri
  148. \subsection{Filtri e FIR}
  149. \begin{frame} \frametitle{Filtri}
  150. Supponiamo di avere il segnale campionato $x(nT)$; d'ora in poi
  151. supporremo $T = 1$ per semplicità.
  152.  
  153. \begin{de}
  154. Un \emph{filtro} è un'applicazione che manda $x(n)$ in un altro segnale $y(n)$.
  155. Diremo che un filtro è
  156. \begin{description}
  157. \item[causale] se $y(n)$ è funzione unicamente di $x(n), x(n-1), \ldots$;
  158. \item[FIR\footnote{che sta per finite impulse response.}] se $y(n)$ si può ottenere con un numero finito di
  159. campioni di $x(n)$ per ogni $n$;
  160. \end{description}
  161. \end{de}
  162.  
  163. I filtri FIR e causali sono interessanti perché possono essere calcolati
  164. in \emph{real--time}.
  165.  
  166. \end{frame}
  167.  
  168. % FRAME: Esempio di filtro
  169. \begin{frame} \frametitle{Esempio di filtro}
  170. Sia $h \in \R^n$ e consideriamo il filtro:
  171. \[
  172. x(n) \longrightarrow y(n) = \sum_{i=1}^{n} h_{i} x(n - i)
  173. \]
  174. Questo è sia FIR che causale. Consideriamo i seguenti segnali:
  175. \[
  176. \left\{ \begin{array}{l}
  177. x_1(n) = ( \ldots , 1 , 1 , 1 , 1 , 1 , \ldots ) \\
  178. x_2(n) = ( \ldots , 1 , -1 , 1 , -1 , 1 , \ldots ) \\
  179. \end{array} \right.
  180. \]
  181. ed i seguenti filtri:
  182. \[
  183. \left\{ \begin{array}{l}
  184. h_0 = ( \frac{1}{2}, \frac{1}{2} ) \\
  185. h_1 = ( \frac{1}{2}, - \frac{1}{2} ) \\
  186. \end{array} \right.
  187. \]
  188.  
  189. Si ottengono i seguenti output:
  190. \[
  191. h_0x_0 = x_0 \qquad h_1x_0 \equiv 0 \qquad h_0x_1 \equiv 0 \qquad h_1x_2 = x_2
  192. \]
  193.  
  194. \end{frame}
  195.  
  196. \begin{frame} \frametitle{Frequency response}
  197. %$h_0$ è un \emph{lowpass filter}, perché elimina le alte frequenze lasciando invariate quelle
  198. %basse, mentre $h_1$ è un \emph{highpass filter} perché mantiene le alte frequenze eliminando
  199. %quelle basse.
  200.  
  201. Osserviamo che per ogni $\omega$ e per ogni $h$, $h * {e^{in\omega}} = H(\omega)e^{in\omega}$ e quindi
  202. $e^{inw}$ è un autovettore per il filtro. Il suo autovalore $H(\omega)$ viene detto
  203. \emph{frequency response} del filtro alla frequenza $\omega$.
  204.  
  205. \vskip 10pt
  206.  
  207. Nell'esempio precedente abbiamo
  208. \begin{figure}
  209. \subfigure{
  210. \begin{tikzpicture}[domain=0:1.57, samples=150,scale=1.5]
  211. \draw[->] (0,0) -- (1.9,0) node[anchor=west] {$\omega$};
  212. \draw[->] (0,-0.1) -- (0,1.1) node[anchor=south] {$H_0(\omega)$};
  213.  
  214. \draw[color=blue] plot[id=h0resp] function {cos(x)};
  215. \end{tikzpicture}
  216. }
  217. \subfigure {
  218. \begin{tikzpicture}[domain=0:1.57, samples=150,scale=1.5]
  219. \draw[->] (0,0) -- (1.9,0) node[anchor=west] {$\omega$};
  220. \draw[->] (0,-0.1) -- (0,1.1) node[anchor=south] {$H_1(\omega)$};
  221.  
  222. \draw[color=blue] plot[id=h1resp] function {sin(x)};
  223. \end{tikzpicture}
  224. }
  225.  
  226. \caption{Frequency response di $h_0$ ed $h_1$}
  227. \end{figure}
  228. \end{frame}
  229.  
  230. \begin{frame} \frametitle{Lowpass e Highpass}
  231. Il filtro $h_0$ si dice \emph{lowpass} perché lascia invariati i segnali
  232. a bassa frequenza, mentre elimina quelli ad alta frequenza.
  233.  
  234. Analogamente $h_1$ si dice \emph{highpass}.
  235.  
  236. \vskip 25pt
  237.  
  238. Consideriamo un segnale generico $x(n)$, e la sua trasformata di Fourier $X(\omega)$.
  239. La trasformata di Fourier $Y(\omega)$ del segnale $y(n)$ ottenuto dopo l'applicazione del filtro
  240. sarà
  241. \[
  242. Y(\omega) = X(\omega) H(\omega)
  243. \]
  244.  
  245. \vskip 25pt
  246.  
  247. Il filtro \textbf{amplifica ogni frequenza del segnale} di un coefficiente $H(\omega)$.
  248. \end{frame}
  249.  
  250. \subsection{Upsampling e downsampling}
  251. \begin{frame} \frametitle{Downsampling}
  252. In seguito ci troveremo molto spesso nella condizione di avere "troppa informazione",
  253. ovvero di avere gruppi di segnali che contengono informazioni ridondanti. \\[15pt]
  254.  
  255. Per ovviare a questo trasformeremo i segnali $x(n)$ in degli altri segnali $y(n)$
  256. tramite un'operazione di \emph{downsampling}:
  257. \begin{de}
  258. Diremo che $y(n)$ è il \emph{downsampling} di $x(n)$ e lo indicheremo con
  259. $y(n) = \downsample{k}x(n)$ se
  260. \[
  261. y(n) = x(kn) \quad \textrm{dove } k \in \N
  262. \]
  263. \end{de}
  264. In questo modo scarteremo una parte dell'informazione (a seconda del $k$ scelto, solitamente
  265. avremo $k = 2$). \\[5pt]
  266.  
  267. \end{frame}
  268. \begin{frame} \frametitle{Upsampling}
  269.  
  270. Per ``invertire'' il downsampling applicheremo l'\emph{upsampling}:
  271. \begin{de}
  272. Diremo che $x(n)$ è l'upsampling di $y(n)$ di un fattore $k$ e lo
  273. indicheremo con $x(n) = \upsample k y(n)$ se
  274. \[
  275. x(n) = \left\{ \begin{array}{ll}
  276. y(\frac{n}{k}) & \textrm{se } n \textrm{ è multiplo di } k \\
  277. 0 & \textrm{altrimenti}
  278. \end{array} \right.
  279. \]
  280. \end{de}
  281. \begin{os}
  282. Il downsampling è l'inverso dell'upsampling ma non viceversa, ovvero
  283. \[
  284. \downsample{k}\upsample{k} x(n) = x(n) \quad \textrm{ma} \quad \upsample{k}\downsample{k} x(n) \neq x(n)
  285. \]
  286. \end{os}
  287. \end{frame}
  288.  
  289. \section{FilterBank}
  290. \pausaindice
  291. \subsection{Cos'è una filterbank}
  292. \begin{frame} \frametitle{Struttura di una filterbank}
  293. Possiamo immaginare una \emph{filterbank} come una successione di filtri
  294. che, partendo, da uno o più segnali di input $x(n)$ produca uno o più segnali
  295. di output $y_{0}(n) \ldots y_{1}(n)$. \\[15pt]
  296. Questo esempio prende un input (in giallo) e restituisce tre output (in blu).
  297. \begin{figure}
  298. \begin{tikzpicture}[rounded corners=2pt, scale=0.5, thick, node distance=50pt]
  299. \tikzstyle{place}=[rectangle,draw=blue!80,fill=white!20]
  300. \tikzstyle{input}=[rectangle,draw=blue!80,fill=yellow!50]
  301. \tikzstyle{output}=[rectangle,draw=blue!80,fill=blue!20]
  302.  
  303. %% Disegnamo i pezzetti
  304. \node [input] (inputsignal) {$x(n)$};
  305. \node [place] (y0) [right of=inputsignal, yshift=25pt] {$y_0(n)$};
  306. \node [output] (y1) [right of=inputsignal, yshift=-25pt] {$y_1(n)$};
  307. \node [output] (y00)[right of=y0, yshift=20pt] {$y_{00}(n)$};
  308. \node [output] (y01)[right of=y0, yshift=-20pt] {$y_{01}(n)$};
  309.  
  310. %% .. e li colleghiamo
  311. \draw[->] (inputsignal.east) -- (y0.west);
  312. \draw[->] (inputsignal.east) -- (y1.west);
  313. \draw[->] (y0.east) -- (y01.west);
  314. \draw[->] (y0.east) -- (y00.west);
  315.  
  316. \end{tikzpicture}
  317. \caption{Esempio di filterbank}
  318. \end{figure}
  319. \end{frame}
  320.  
  321. \begin{frame} \frametitle{Perché una filterbank?}
  322. Potremmo chiederci:
  323. \begin{quote}
  324. Qual'è la relazione fra le wavelet e le filterbank?
  325. \end{quote} \\[15pt]
  326.  
  327. La risposta breve è che le filterbank (in realtà delle opportune
  328. filterbank) sono l'equivalete discreto della trasformata wavelet. \\[15pt]
  329.  
  330. Cominciamo a considerare
  331. un esempio, la \emph{filterbank di Haar}.
  332.  
  333. \end{frame}
  334.  
  335. \subsection{Un esempio significativo}
  336.  
  337. \begin{frame}
  338. \frametitle{Haar filterbank}
  339. Consideriamo i seguenti filtri:
  340. \[
  341. h_0 = (\frac{1}{2}, \frac{1}{2}) \qquad h_1 = (\frac 1 2 , - \frac{1}{2}) \qquad
  342. f_0 = (\frac{1}{2}, \frac{1}{2}) \qquad f_1 = (-\frac 1 2 , \frac{1}{2})
  343. \]
  344.  
  345. Chiamiamo \emph{Analysis filterbank} quella che suddivide un segnale $x(n)$ in
  346. \[
  347. h_0 * x(n) = y_0(n) \qquad h_1 * x(n) = y_1(n)
  348. \]
  349. e \emph{Synthesis filterbank} quella che invece prende in input due segnali $y_0(n)$ e $y_1(n)$
  350. e restituisce un segnale $x(n)$ calcolato mediante
  351. \[
  352. x(n) = f_0 * y_0(n) + f_1 * y_1(n)
  353. \]
  354. Prendiamo poi un segnale di esempio. Scegliamo un segnale finito $x(n) = \{e^{i\omega n}\}$.
  355. Estenderemo poi questo caso particolare ad un segnale qualsiasi.
  356. \end{frame}
  357.  
  358. \begin{frame} \frametitle{Discrete Wavelet Transform}
  359. Osserviamo cosa succede al segnale quando viene trasformato tramite la filterbank.
  360.  
  361. Come abbiamo osservato prima otteniamo $\{e^{in\omega}\}$ è un autovalore per
  362. questi filtri e quindi otteniamo due segnali
  363. \[
  364. y_0(n) = H_0(\omega)e^{in\omega} \qquad y_1(n) = H_1(\omega)e^{in\omega}
  365. \]
  366. Partendo da un segnale abbiamo
  367.  
  368. \end{frame}
  369.  
  370. \end{document}