Frequency Domain Processing
Francesca Pizzorni Ferrarese
17/03/2010
Sommario


Ripasso sull’analisi di Fourier e il trattamento numerico
dei segnali
Elaborazione delle immagini nel dominio della frequenza
Trasformata di Fourier 1-D


Ogni segnale può essere descritto dalla somma di
sinusoidi con differenti ampiezze e frequenze. I comandi
MatLab per calcolare la trasformata di Fourier e la sua
inversa sono rispettivamente fft e ifft.
Esercizio1





Supponiamo di avere 10 campioni di un segnale casuale (rand)
Calcolare la FFT del segnale
Calcolare la IFFT del segnale
Estrarre al parte reale della IFFT
Confrontare il risultato della IFFT con il segnale di partenza
Forma d’onda e spettro di ampiezza

Esercizio 2



Supponiamo di campionare un segnale ogni 0.01 secondi per la
durata di 4 secondi
Il segnale è dato dalla somma di due sinusoidi di ampiezza A 3 e
5 e frequenza f 4 e 2 (ω=2πf) rispettivamente
Generare il grafico tempo – ampiezza (usare il comando axis
per aggiustare la scalatura degli assi)
Forma d’onda e spettro di ampiezza (cont.)

Con la Trasformata di Fourier possiamo visualizzare cosa
caratterizza maggiormente il segnale.



Calcolare la fft del segnale
Calcolare il suo valore assoluto e normalizzarlo
Plottare lo spettro di ampiezza
Filtraggio del rumore dai segnali


Vediamo come usare la fft e la ifft per filtrare il rumore
dai segnali.
Esercizio 3




Aggiungere al segnale dell’esercizio precedente del rumore
casuale
Calcolare la trasformata del segnale rumoroso
Calcolare lo spettro di ampiezza
Plottare la forma d’onda e lo spettro di ampiezza
Filtraggio del rumore dai segnali (cont.)

Attraverso la ifft filtriamo il rumore. Il comando fix
arrotonda gli elementi del suo argomento all’intero più
vicino.



Settare i numeri <100 a zero
ifft dei dati trasformati ed estrarre la parte reale
Plottare l’andamento dei campioni corretti
Elaborazione nel dominio della
frequenza

The general idea is that the image (f(x,y) of size M x N) will be represented in the
frequency domain (F(u,v)). The equation for the two-dimensional discrete Fourier
transform (DFT) is:

The concept behind the Fourier transform is that any waveform that can be
constructed using a sum of sine and cosine waves of different frequencies. The
exponential in the above formula can be expanded into sines and cosines with the
variables u and v determining these frequencies.

The inverse of the above discrete Fourier transform is given by the following
equation:

Thus, if we have F(u,v), we can obtain the corresponding image (f(x,y)) using the
inverse, discrete Fourier transform.
Visualizzazione dello spettro

Esercizio 4






Creare un’immagine 30x30 con un rettangolo bianco su sfondo
nero
Calcolare la DFT e visualizzare lo spettro di ampiezza (fft2)
Aggiungere dello zero padding per migliorare il calcolo della
DFT
Shiftare la componente zero al centro dello spettro
Per migliorare la visualizzazione usare la funzione log
Suggerimento per la visualizzazione
usare imshow(f,'InitialMagnification','fit')
Relazione fra DFT e filtraggio nel
dominio spaziale

The following convolution theorem shows an interesting
relationship between the spatial domain and frequency
domain:

and, conversely,

the symbol "*" indicates convolution of the two functions.
The important thing to extract out of this is that the
multiplication of two Fourier transforms corresponds to
the convolution of the associated functions in the spatial
domain.
Relazione fra DFT e filtraggio nel
dominio spaziale

The following summarize the basic steps in DFT Filtering (taken directly from page
121 of Digital Image Processing Using MATLAB):






Obtain the padding parameters using function paddedsize:
PQ=paddedsize(size(f));
Obtain the Fourier transform with padding:
F=fft2(f, PQ(1), PQ(2));
Generate a filter function, H, of size PQ(1) x PQ(2)....
Multiply the transform by the filter:
G=H.*F;
Obtain the real part of the inverse FFT of G:
g=real(ifft2(G));
Crop the top, left rectangle to the original size:
g=g(1:size(f, 1), 1:size(f, 2));
Relazione fra DFT e filtraggio nel
dominio spaziale

Esercizio 5



Caricare l’immagine garden.JPG
Applicare un filtro di Sobel1 per estrarre i contorni verticali
(fspecial) sia nel dominio spaziale (imfilter) che in quello
delle frequenze (utilizzare la funzione paddedsize per ottenere
un campionamento più fine)
Visualizzare le due immagini filtrate
1L'operatore
calcola il gradiente della luminosità dell'immagine in ciascun punto, trovando la direzione lungo la quale si ha il massimo incremento
possibile dal chiaro allo scuro, e la velocità con cui avviene il cambiamento lungo questa direzione. Il risultato ottenuto fornisce una misura di
quanto "bruscamente" oppure "gradualmente" l'immagine cambia in quel punto, e quindi della probabilità che quella parte di immagine rappresenti
un contorno, e fornisce anche un'indicazione del probabile orientamento di quel contorno.
Correlazione


MATLAB uses one of two methods, correlation or
convolution, to filter various images. The two operations
are identical except correlation rotates the filter matrix
180o before filtering, while convolution keeps it the same.
The Fourier transform can also be used to perform
correlatio. Correlation can be used to locate features
within an image; in this context correlation is often called
template matching.
Correlazione

Esercizio 6



Caricare l’immagine text.png
Estrarre la lettera a dall’immagine e creare un template
Calcolare la correlazione
C = ifft2(fft2(A).*fft2(B));
 Visualizzare la localizzazione
nell’immagine della lettera a
Scarica

Frequency Domain Processing