SlideShare a Scribd company logo
1 of 50
Download to read offline
Elaborato di
calcolo numerico
Autore:
Marco Vaiano
FFT: Analisi ed applicazioni
1
Cosa vedremo?
● Cenni sulla Trasformata di Fourier
● Trasformata dal continuo al discreto
● Integrazione numerica
● Discretizzazione con formula di quadratura
● Fast Fourier Transform (FFT): cenni sull’algoritmo Cooley e Tukey
● Applicazione FFT in ambito biomedico: analisi del battito cardiaco
mediante sensore «MAX30100»
2
Trasformata di Fourier
● La trasformata di Fourier, sviluppata dal matematico francese
Joseph Fourier (nel 1822), è un’operazione che permette di
ottenere il contenuto in frequenza di un segnale.
● L’inversa di questa trasformata consente invece di ricavare un
segnale a partire dal suo contenuto in frequenza.
● Entrambe le trasformazioni si esprimono in forma integrale:
Trasformata di Fourier
Antitrasformata di Fourier
3
Trasformata di Fourier
● Questo strumento trova numerose applicazioni nella fisica e
nell’ingegneria permettendo di scrivere una funzione dipendente
dal tempo come combinazione lineare di funzioni di base
esponenziali.
● La trasformata di Fourier associa a una funzione i valori dei
coefficienti di questi sviluppi lineari, dandone una rappresentazione
nel dominio delle frequenze, spesso chiamato spettro della
funzione.
4
Trasformata di Fourier
● Cosa significa rappresentare un segnale nel dominio della
frequenza?
● Essenzialmente la sua base matematica è un’onda sinusoidale, quindi
un segnale rappresentato in frequenza è esprimibile mediante
combinazione lineare di onde sinusoidali caratterizzate da una certa
frequenza, fase e ampiezza.
● In questo modo sapremo quali
sinusoidi sono contenute in quel
segnale.
5
Trasformata di Fourier a tempo discreto
● Per poter utilizzare la trasformata di Fourier nelle applicazioni
numeriche è necessaria una discretizzazione.
● Viene pertanto introdotta la Trasformata Discreta di Fourier.
● Considerando un segnale tempo discreto x(n), otteniamo le due
equazioni relative alla trasformata diretta e inversa:
● Dove 𝜈 è la frequenza in numero di cicli campione.
6
Trasformata di Fourier a tempo discreto
● La prima equazione viene detta equazione di analisi, essa permette di
determinare il peso in termini di ampiezza e fase che le vari componenti
sinusoidali hanno nella ricostruzione del segnale
● La seconda è detta formula di sintesi, e mostra come x(n) possa essere
rappresentato come combinazione lineare di esponenziali complessi,
con la frequenza che varia con continuità su intervalli di durata unitaria.
7
Trasformata di Fourier a tempo discreto
● La trasformata di Fourier è continua nella variabile 𝜈, pertanto risulta
difficile l’analisi e l’elaborazione numerica di un segnale tempo discreto.
● Attraverso la trasformata discreta di Fourier diretta (DFT) e inversa
(IDFT) è possibile definire un segnale x(n) di durata N:
● In questo modo un segnale di durata finita N è rappresentato in
frequenza con N campioni complessi.
8
Trasformata di Fourier a tempo discreto
● In generale, se consideriamo un segnale periodico di periodo T, la
quantità 1/T è detta frequenza fondamentale, la quale rappresenta la
minima distanza alla quale devono trovarsi due frequenze per
distinguerle nel campionamento del segnale.
● Nella DFT abbiamo un intervallo di campionamento ΔT, quindi T = N*ΔT
dove N è il numero di campioni.
● La frequenza fondamentale pertanto risulta fc/N (fc è la frequenza di
campionamento), ed è la frequenza più bassa che si può rappresentare
effettuando la DFT su N campioni di un segnale periodico di periodo T.
9
Trasformata di Fourier a tempo discreto
● Il teorema che stabilisce quale sia la frequenza minima di campionamento con
una determinata caratterizzazione in frequenza (nel nostro caso la trasformata
di Fourier) affinché il segnale possa essere ricostruito è il teorema di Shannon-
Nyquist, ovvero: fs > 2*fm, dove fm è la massima frequenza dello spettro del
segnale da campionare.
● Se tale condizione non risulta verificata, si riscontra un effetto conosciuto come
aliasing che comporta una distorsione del segnale ricostruito.
● In generale, le frequenze rappresentabili effettuando su N campioni la DFT di
un segnale periodico di periodo T, tenendo conto del teorema appena descritto,
variano nell’intervallo [fs/N, fs/2]
10
Integrazione numerica
● Il calcolo della trasformata di Fourier, come visto poc’anzi, richiede il
calcolo di un integrale
● L’approccio naturale per il calcolo dell’integrale è quello di
approssimare l’integrale continuo
con combinazioni lineari della funzione integranda f(x).
● Le formule che realizzano tali approssimazioni sono dette di
quadratura, ovvero un insieme di metodi atti a stimare il valore di un
integrale senza dover calcolare la primitiva della funzione integranda.
11
Integrazione numerica
● Calcolare un integrale significa trovare l’area di un rettangoloide, ossia
una figura che è delimitata dalla curva di funzione, l’asse delle ascisse
e due perpendicolari, tracciate dagli estremi dell’intervallo di
integrazione (a e b).
● Non essendo possibile effettuare un calcolo preciso, troveremo delle
figure la cui area approssima sufficientemente quella del rettangoloide.
12
Integrazione numerica
● Di seguito sono riportati alcuni metodi di quadratura numerica più
comuni:
Formula rettangolare
● Area = f(a)(b-a)
Questa semplice formula, fa uso dell’area del rettangolo.
La sua altezza è ricavata dal valore della funzione a inizio
intervallo.
In questo caso, si commette un errore abbastanza
alto nel calcolo dell’integrale.
13
Integrazione numerica
Formula del punto medio
● Area = f(m)(b-a)
Simile alla formula precedente, però in questo caso viene utilizzata come
altezza il valore della funzione al punto medio
dell’intervallo di Integrazione.
14
Integrazione numerica
Formula Trapezoidale
● Area = [f(a)+f(b)]*[(b-a)/2]
Questa formula utilizza l’area del trapezio per cercare di approssimare con
maggiore accuratezza il rettangoloide.
15
Integrazione numerica
Formula di Simpson
● Area = [f(a)+4*f(m)+f(b)]*[(b-a)/6]
La formula di Simpson per l'integrazione numerica è simile a quella dei trapezi, ma
anziché interpolare la funzione da integrare con i
segmenti di retta per due punti, usa archi di parabola
per tre punti.
In tal modo si ha un notevole miglioramento della
accuratezza.
16
Integrazione numerica
Somme di Riemann
● Le somme di Riemann costituiscono un’approssimazione dell’area in
maniera simile a quella della formula del rettangolo.
● In questo caso però terremo conto di diverse scelte per l’altezza ottenendo
così una decomposizione dell’intervallo da integrare costituito da diversi
rettangoli.
● Tale somma è caratterizzata da come i punti tn sono stati
scelti:
o se ti = xi essa si dice somma sinistra di Riemann
o se ti = xi+1 essa si dice somma destra di Riemann
o se ti = (xi+1+xi)/2 essa si dice somma media di Riemann 17
Integrazione numerica
● I metodi descritti sono tutte combinazioni lineari della funzione integranda
● Essi introducono sempre un errore di discretizzazione della formula di
quadratura applicata Q[f].
E[f] = I[f] – Q[f]
● Tale errore può essere positivo o negativo a seconda del fatto che lo specifico
metodo potrebbe inscrivere o circoscrivere l’integrale.
E[f]>0 E[f]<0
18
Integrazione numerica
● Per ridurre l’errore di discretizzazione relativo ad una formula di quadratura,
risulta utile applicarla su dei sotto intervalli dell’intervallo di integrazione.
● Si osserva che dividendo in due l’intervallo di integrazione e applicando la
formula trapezoidale, l’errore si riduce di circa 4 volte.
● L’utilizzo di formule composite con sotto intervalli
sempre più piccoli porta alle stesse conclusioni
ottenute con le somme di Riemann, ovvero che se
il numero di sotto intervalli tende all’infinito, si ottiene
una valutazione precisa dell’integrale della funzione.
19
Integrazione numerica: Esempio Matlab
20
Integrazione numerica
● Si può notare che in generale l’errore di una formula trapezoidale dipende
dall’ampiezza dell’intervallo [a, b].
● Si può quindi pensare di dividere tale intervallo in sotto intervalli di uguale
ampiezza: 𝜏 =
𝑏−𝑎
𝑚
mediante punti equidistanti.
● Poiché : ‫׬‬𝑎
𝑏
𝑓 𝑥 𝑑𝑥 = σ𝑗=1
𝑚
‫׬‬𝑡𝑗−1
𝑡𝑗
𝑓 𝑥 𝑑𝑥, è possibile
utilizzare la formula trapezoidale su ogni
sotto intervallo, migliorando notevolmente il risultato.
21
Stima dell’errore di discretizzazione
● L’errore di discretizzazione è stato definito in precedenza come E[f]=I[f]-Q[f], ma
I[f] non è noto.
● Dunque vorremmo determinare una stima calcolabile dell’errore di
discretizzazione.
● Se indichiamo con Tm[f] la formula trapezoidale composita su [a,b] con m
sottointervalli, per l’errore di Tm[f] vale: 𝐸𝑚 𝑓 = 𝐼 𝑓 − 𝑇𝑚 𝑓
● Indichiamo con 𝑇2𝑚 𝑓 la formula trapezoidale composita su [a,b] con 2m
sottointervalli. Per l’errore di 𝑇2𝑚 𝑓 vale: 𝐸2𝑚 𝑓 = 𝐼 𝑓 − 𝑇2𝑚 𝑓
● Sottraendo 𝐸𝑚 𝑓 da 𝐸2𝑚 𝑓 , otteniamo:
𝐸2𝑚 𝑓 − 𝐸𝑚 𝑓 = 𝐼 𝑓 − 𝑇2𝑚 𝑓 − 𝐼 𝑓 − 𝑇𝑚 𝑓 = 𝑇𝑚 𝑓 − 𝑇2𝑚 𝑓
● Allora: 𝐸𝑚 𝑓 − 𝐸2𝑚 𝑓 = 𝑇𝑚 𝑓 − 𝑇2𝑚 𝑓 22
Stima dell’errore di discretizzazione
● Ricordando che raddoppiando i sottointervalli l’errore diventa di circa un quarto:
𝐸2𝑚 𝑓 =
1
4
𝐸𝑚 𝑓 ⇒ 𝐸𝑚 𝑓 = 4𝐸2𝑚[𝑓]
● Sostituendo quest’ultima espressione nella precedente si ottiene:
𝑇𝑚 𝑓 − 𝑇2𝑚 𝑓 = 𝐸𝑚 𝑓 − 𝐸2𝑚 𝑓 ≅ 4𝐸2𝑚 𝑓 − 𝐸2𝑚 𝑓 ≅ 3 𝐸2𝑚[𝑓]
● Dunque, la stima dell’errore di discretizzazione usando 2m sottointervalli è:
𝐸2𝑚[𝑓] ≅
𝑇𝑚 𝑓 − 𝑇2𝑚[𝑓]
3
● Si otteniene così un miglioramento dell’accuratezza dovuto all’aumento
del numero dei nodi
23
Discretizzazione con formula di quadratura
● Per l’elaborazione di un segnale di durata finita, occorre utilizzare la
trasformata discreta di Fourier.
● L’obiettivo che ci poniamo adesso è quello di discretizzare la
trasformata di Fourier (1) in modo da ottenere la DFT.
● Per poter ottenere ciò, utilizzeremo la formula di quadratura
trapezoidale vista poc’anzi.
(1)
24
Discretizzazione con formula di quadratura
● Per poter applicare le formule di quadratura, è necessario che l’integrale sia
calcolato su un intervallo finito.
● L’obiettivo è quello di ottenere a partire dalla trasformata di Fourier, un
integrale che rispetti questo vincolo.
● Per farlo è quindi necessario effettuare un troncamento della funzione f(t).
A questo scopo, consideriamo il tratto di funzione in [0,T] e lo si rende
periodico su intervalli di ampiezza T.
● A questo punto, è possibile calcolare la trasformata di Fourier come
l’integrale definito tra 0 e T della funzione così ottenuta.
25
Discretizzazione con formula di quadratura
● Valutiamo la funzione F(ω) in ω = ωn = n/T, n = 0, 1, 2..
● È adesso possibile discretizzare l’integrale utilizzando le formule di
quadratura trapezoidale composita su N punti.
● Posto h = T/N si ottiene:
● Considerati i vettori 𝐹 = {𝑓(𝜔𝑛)}𝑛=0,1,…,𝑁-1 e 𝑓𝑝 = {𝑓𝑝(𝑘ℎ)}𝑘=0,1,…,𝑁-1, segue che
𝑭 = 𝑫𝑭𝑻[𝒇𝒑] 26
Discretizzazione con formula di quadratura
L’espressione ottenuta, ovvero la trasformata discreta di Fourier a partire dalla
funzione fp(t), rappresenta un’approssimazione dei valori assunti dalla
trasformata di Fourier in punti equidistanti. La FT e la DFT, coincidono, nei punti
ωn, a meno di un errore.
Quest’ultimo è dovuto a 2 fattori principali:
• Errore di troncamento della formula di quadratura trapezoidale, introdotto
dall’aver assunto fp=f, ovvero la funzione f nulla al di fuori dell’intervallo [0, T].
• Errore di discretizzazione, introdotto dalla formula di quadratura utilizzata.
27
Fast Fourier Transform (FFT)
● Il calcolo diretto della DFT ha una complessità dell’ordine di O(n2), poiché per
ciascun componente del vettore DFT bisogna calcolare N somme.
● Ciascuna somma prevede la valutazione di N esponenziali complessi ed N
operazioni complesse.
● Per effettuare un calcolo più rapido della trasformata di Fourier, pertanto sono
state messe a punto diverse versioni di algoritmi che prendono il nome di Fast
Fourier Transform (FFT).
● Uno degli algoritmi fu pubblicato nel 1965 ad opera di Cooley e Tukey.
● Gli autori proposero uno schema di calcolo che utilizzando le proprietà
dell’esponenziale complesso e riorganizzando le operazioni, effettua Nlog2(N)
operazioni. 28
Algoritmo di Cooley e Tukey
● L’idea alla base fu quella di semplificare opportunamente i calcoli
decomponendo il problema.
● Dal calcolo di una DFT di lunghezza N, si procede alla decomposizione in sotto
problemi di dimensione più piccola.
● Questa metodologia, nota come «divide et impera», applicata più volte a
ciascuno dei sotto problemi ottenuti, riorganizza efficientemente le operazioni
che coinvolgono gli esponenziali complessi.
● Un metodo importante per la riduzione del numero di calcoli da eseguire è dato
dallo schema «butterfly». Si possono riordinare in questo modo le operazioni
tramite schemi di somma e sottrazioni, passando dal calcolo di una DFT
complessa a quello di n DFT più semplici.
29
Algoritmo di Cooley e Tukey
● Esistono diversi criteri di divisione del vettore di partenza, nel caso di Cooley e Tukey si
ha che una DFT di lunghezza N è divisa in due DFT di lunghezza N/2 (Radix - 2) ed
applicando ricorsivamente il procedimento otteniamo a valle una coppia di campioni.
● Se il numero di elementi interni al vettore N è una potenza di due, quindi N=2m, è
possibile ottenere N/2 DFT di lunghezza 2.
● Al termine della prima fase di decomposizione detta di «pre-processing», si ottiene un
albero binario.
● La fase dell’algoritmo che invece risale
l’albero chiudendo quindi tutte le chiamate
ricorsive generate, unendo le soluzioni dei
singoli sotto problemi è chiamata «fase di
calcolo».
30
Algoritmo di Cooley e Tukey
● Risulta possibile applicare l’algoritmo anche per altri tipi di radix, ad
esempio in radix – 3, si decompone una DFT di lunghezza N in N/3 DFT
di lunghezza 3.
● Nel caso invece di mixed radix, l’idea è di decomporre prima rispetto ad
una radice, e poi rispetto all’altra radice.
● Se N= r1 * r2, devo risolvere r1 DFT di lunghezza
r2 oppure r2 DFT di lunghezza r1.
31
Analisi complessità FFT
● In generale, gli algoritmi FFT effettuano il calcolo di una DFT di lunghezza N
combinando opportunamente DFT di lunghezza inferiore.
● In base alla fattorizzazione del parametro N si distinguono tre tipologie di
algoritmi FFT:
32
1. Se N = r1*r2 e sono primi tra loro, gli algoritmi FFT calcolano
r1 DFT di lunghezza r2.
La complessità di questi algoritmi è:
T(n)=O(N(r1+r2))
Analisi complessità FFT
33
2. Se N=r1
p * r2
q, gli algoritmi FFT calcolano p DFT di lunghezza r, e q DFT di lunghezza r.
Tipicamente la radice in questo caso è un numero primo sufficientemente piccolo (ad es.
r=3, 5)
La complessità di questi algoritmi è:
T(n)=O(p logr1 N + q logr2 N)
3. Se N=rp gli algoritmi FFT calcolano p DFT di lunghezza r (radix-r). In particolare i più
efficienti sono quelli del tipo radix-3.
Tuttavia nella pratica, seguendo il vantaggio dell’uso degli «shift register» nei calcolatori, gli
algoritmi più utilizzati sono quelli del tipo radix-2.
Tipicamente la radice in questo caso è un numero primo sufficientemente piccolo (ad es.
r=3, 5)
La complessità di questi algoritmi è:
Esempio di applicazione FFT: Introduzione
● Come già discusso in precedenza, la FFT ha riscosso notevole successo
nell’analisi ed elaborazione dei segnali tenendo conto dei vantaggi descritti in
precedenza, ovvero una riduzione significativa della complessità
computazionale rispetto all’applicazione diretta della DFT.
● Questo elaborato si sofferma sull’analisi di un particolare segnale proveniente
da un sensore impiegato in ambito biomedico, utile soprattutto in questo
periodo di pandemia da Covid19.
● Attraverso questo sensore risulta possibile rilevare ed analizzare due parametri
vitali per il monitoraggio dei pazienti: la frequenza del battito cardiaco e il
livello di saturazione di ossigeno nel sangue.
34
Esempio di applicazione FFT: Sensore
● Il sensore, denominato MAX30100 e prodotto dalla Maxim Integrated, viene
ampiamente utilizzato nei dispositivi indossabili per il monitoraggio dell’attività
fisica, quali smartwatch, smartband o nei pulsossimetri (saturimetri).
● Il principio di funzionamento si basa sull’emissione di una luce rossa e
infrarossa ad una certa lunghezza d’onda, 650nm per la luce rossa e 950 per
quella infrarossa.
● Entrambi i fasci di luce emessi contemporaneamente, attraversano il tessuto della
pelle del paziente e ne viene riflessa una quantità
la quale viene opportunamente rilevata da un fotosensore.
● La quantità di luce non assorbita dall’emoglobina viene
campionata e convertita in digitale mediante un
componente ADC.
35
Esempio di applicazione FFT: Sistema
● I campioni ottenuti sono poi memorizzati in registri di memoria interni al sensore
e inviati in tempo reale tramite interfaccia seriale connessa al computer per
l’elaborazione nell’ambiente di Matlab.
● Un ulteriore tassello di questo sistema va individuato nel microcontrollore
ESP8266, il quale effettua la configurazione ed inizializzazione (driver) del
sensore nonché l’interfacciamento con il computer.
● In figura (1) il sistema sviluppato e
il sensore utilizzato (2):
(1)
(2)
36
Esempio di applicazione FFT: Configurazione
● Come anticipato in precedenza, la configurazione del sensore avviene
mediante il microcontrollore ESP8266.
● La programmazione è effettuata in un linguaggio simile al C attraverso
l’ambiente di sviluppo Arduino.
● Tra i parametri rilevanti:
o Modalità luce rossa e
infrarossa
o Corrente dei led a 24mA
o Larghezza impulso 1600µs
o Risoluzione ADC a 16bit
o 100 campioni al secondo
37
Esempio di applicazione FFT: Analisi
● I segnali biomedici sono in genere molto rumorosi e necessitano di un
processo di filtraggio prima di essere utilizzati.
● Nel caso del sensore trattato in questo elaborato, la luce ambientale può
interferire con la misurazione del corretto valore di assorbimento della luce
rossa e infrarossa.
● Un’ulteriore difficoltà in generale è legata alla quasi periodicità della maggior
parte dei segnali utilizzati in ambito biomedico.
● Risulta pertanto difficoltoso individuare cicli periodici effettuando un semplice
campionamento, ma è necessaria una procedura preliminare che consente di
individuare i punti più importanti per poi risalire al ciclo attraverso opportune
traslazioni temporali.
38
Esempio di applicazione FFT: Analisi
● Effettuando un plot dei campioni ricevuti dal sensore, otterremo il seguente
grafico, espresso nel dominio del tempo:
● Sulle ordinate avremo i valori di segnale riflesso, mentre sulle ascisse i valori
del tempo espresso in secondi.
39
Esempio di applicazione FFT: Analisi
● In una ricerca pubblicata nel 2014 su «U.S. National Library of Medicine» (link),
gli autori analizzano il segnale tracciato su un fotopletismogramma (1)
individuando alcune caratteristiche importanti.
● La luce trasmessa attraverso il tessuto mostra un andamento decrescente
durante un evento noto come «sistole», nel quale il cuore si contrae e fa fluire
il sangue dalle sue camere alle arterie.
● Viceversa cresce durante un
evento «diastole» nel quale il
cuore si rilassa e le sue camere
si riempiono di sangue.
(1)
40
Esempio di applicazione FFT: Analisi
● Comparando il grafico pubblicato nella ricerca (1) con quello ottenuto dai valori
raw (non processati) provenienti dal sensore, otteniamo un profilo molto simile.
● Possiamo usare questo comportamento ciclico per approssimare l’intervallo
tra i battiti cardiaci e determinare quindi la frequenza cardiaca di un individuo.
● Attraverso l’analisi nel dominio della frequenza risulta possibile determinare la
periodicità delle pulsazioni della frequenza cardiaca e i livelli di
ossigenazione del sangue.
(1) (2)
41
Esempio di applicazione FFT: Analisi
● Uno dei modi per calcolare la frequenza cardiaca è registrare per alcuni
secondi i dati di riflettanza del rosso (o infrarosso) e rilevare la
frequenza dominante (attraverso un rilevatore di picchi) del segnale.
● In questo caso si utilizzerà la Fast Fourier Transform, già discussa in
precedenza, elaborando il segnale attraverso l’ambiente Matlab.
● Il picco della FFT si avvicina alla frequenza del ciclo di contrazione e
rilassamento del cuore, ciò che chiamiamo frequenza cardiaca.
● Di seguito verrà mostrato il codice Matlab nel quale oltre al rilevamento
della frequenza cardiaca, verranno effettuate alcune operazioni di
filtraggio, di tipo passa-banda e passa-basso (Butterworth).
42
• In questa prima parte del codice
Matlab si prelevano i dati provenienti
dal microcontrollore, e quindi dal
sensore, attraverso interfaccia
seriale.
• I dati prelevati vengono pre-elaborati:
o Per distinguere i valori di
ampiezza e di tempo
o Per convertire il tempo da
microsecondi a secondi
43
o Filtro passa-banda per
analizzare solo le frequenze
cardiache comprese tra
36bpm e 240bpm
o Filtro Butterworth per
eliminare le alte frequenze
(rumore)
• In questa porzione di codice i dati
vengono elaborati e filtrati:
44
• In questa porzione di
codice invece si rileva la
frequenza dominante
effettuando una ricerca
del picco massimo del
segnale nel dominio della
frequenza.
• La ricerca viene applicata
sul segnale non filtrato,
filtrato passa-banda,
filtrato Butterworth.
• Output:
45
Esempio di applicazione FFT: Grafici
Frequenza rilevata:
65 BPM
46
Esempio di applicazione FFT: Grafici
47
Frequenze rilevate:
• FFT: 35 BPM
• Con filtro Passabanda:
• 65 BPM
• Con filtro Butterworth:
• 65 BPM
Esempio di applicazione FFT: Grafici
Frequenze rilevate:
• FFT: 23 BPM
• Con filtro Passabanda:
83 BPM
• Con filtro Butterworth:
• 65 BPM
48
Esempio di applicazione FFT: Errori
● Nella stessa ricerca del 2014, già menzionata
in precedenza, si analizza anche
l’accuratezza delle misure calcolando l’errore
nel seguente modo:
● Dove «expected value» si riferisce alla
misura effettuata con uno strumento
professionale, mentre «actual value»
mediante il sensore trattato in questo
elaborato.
● Gli autori hanno poi costruito una tabella
degli errori rilevati dalle misurazioni
effettuate in diverse parti del corpo e in
diverse condizioni («a riposo» e «in
cammino»). 49
Grazie per l’attenzione!
50

More Related Content

What's hot

What's hot (19)

DSP_2018_FOEHU - Lec 06 - FIR Filter Design
DSP_2018_FOEHU - Lec 06 - FIR Filter DesignDSP_2018_FOEHU - Lec 06 - FIR Filter Design
DSP_2018_FOEHU - Lec 06 - FIR Filter Design
 
Adaptive
AdaptiveAdaptive
Adaptive
 
Fourier Analysis
Fourier AnalysisFourier Analysis
Fourier Analysis
 
Ch5 angle modulation pg 97
Ch5 angle modulation pg 97Ch5 angle modulation pg 97
Ch5 angle modulation pg 97
 
DIGITAL SIGNAL PROCESSING: Sampling and Reconstruction on MATLAB
DIGITAL SIGNAL PROCESSING: Sampling and Reconstruction on MATLABDIGITAL SIGNAL PROCESSING: Sampling and Reconstruction on MATLAB
DIGITAL SIGNAL PROCESSING: Sampling and Reconstruction on MATLAB
 
Matlab task1
Matlab task1Matlab task1
Matlab task1
 
MARZULLO's agreement algorithm and DTSS intersection algorithm in Golang
MARZULLO's agreement algorithm and DTSS intersection algorithm in GolangMARZULLO's agreement algorithm and DTSS intersection algorithm in Golang
MARZULLO's agreement algorithm and DTSS intersection algorithm in Golang
 
Pulse Modulation ppt
Pulse Modulation pptPulse Modulation ppt
Pulse Modulation ppt
 
Fourier analysis
Fourier analysisFourier analysis
Fourier analysis
 
Sampling
SamplingSampling
Sampling
 
Design of sampled data control systems 5th lecture
Design of sampled data control systems  5th  lectureDesign of sampled data control systems  5th  lecture
Design of sampled data control systems 5th lecture
 
Fourier series 1
Fourier series 1Fourier series 1
Fourier series 1
 
DSP_FOEHU - Lec 09 - Fast Fourier Transform
DSP_FOEHU - Lec 09 - Fast Fourier TransformDSP_FOEHU - Lec 09 - Fast Fourier Transform
DSP_FOEHU - Lec 09 - Fast Fourier Transform
 
Introduction to fourier analysis
Introduction to fourier analysisIntroduction to fourier analysis
Introduction to fourier analysis
 
Stft vs. mfcc
Stft vs. mfccStft vs. mfcc
Stft vs. mfcc
 
Lecture13
Lecture13Lecture13
Lecture13
 
Dsp U Lec10 DFT And FFT
Dsp U   Lec10  DFT And  FFTDsp U   Lec10  DFT And  FFT
Dsp U Lec10 DFT And FFT
 
DSP_FOEHU - MATLAB 02 - The Discrete-time Fourier Analysis
DSP_FOEHU - MATLAB 02 - The Discrete-time Fourier AnalysisDSP_FOEHU - MATLAB 02 - The Discrete-time Fourier Analysis
DSP_FOEHU - MATLAB 02 - The Discrete-time Fourier Analysis
 
Chap04
Chap04Chap04
Chap04
 

Similar to Elaborato cn

DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)Amr E. Mohamed
 
Fft analysis
Fft analysisFft analysis
Fft analysisSatrious
 
control engineering revision
control engineering revisioncontrol engineering revision
control engineering revisionragu nath
 
Fast Fourier Transform (FFT) Algorithms in DSP
Fast Fourier Transform (FFT) Algorithms in DSPFast Fourier Transform (FFT) Algorithms in DSP
Fast Fourier Transform (FFT) Algorithms in DSProykousik2020
 
H infinity optimal_approximation_for_cau
H infinity optimal_approximation_for_cauH infinity optimal_approximation_for_cau
H infinity optimal_approximation_for_cauAl Vc
 
Training the neural network using levenberg marquardt’s algorithm to optimize
Training the neural network using levenberg marquardt’s algorithm to optimizeTraining the neural network using levenberg marquardt’s algorithm to optimize
Training the neural network using levenberg marquardt’s algorithm to optimizeIAEME Publication
 
Fourier-Series_FT_Laplace-Transform_Letures_Regular_F-for-Students_10-1-1.ppt
Fourier-Series_FT_Laplace-Transform_Letures_Regular_F-for-Students_10-1-1.pptFourier-Series_FT_Laplace-Transform_Letures_Regular_F-for-Students_10-1-1.ppt
Fourier-Series_FT_Laplace-Transform_Letures_Regular_F-for-Students_10-1-1.pptMozammelHossain31
 
Meeting w3 chapter 2 part 1
Meeting w3   chapter 2 part 1Meeting w3   chapter 2 part 1
Meeting w3 chapter 2 part 1mkazree
 
Meeting w3 chapter 2 part 1
Meeting w3   chapter 2 part 1Meeting w3   chapter 2 part 1
Meeting w3 chapter 2 part 1Hattori Sidek
 
Dft and its applications
Dft and its applicationsDft and its applications
Dft and its applicationsAgam Goel
 
Reconstruction of partial sum without gibbs phenomenon
Reconstruction of partial sum without gibbs phenomenonReconstruction of partial sum without gibbs phenomenon
Reconstruction of partial sum without gibbs phenomenonDeahyun Kim
 
3 f3 3_fast_ fourier_transform
3 f3 3_fast_ fourier_transform3 f3 3_fast_ fourier_transform
3 f3 3_fast_ fourier_transformWiw Miu
 
Newton cotes integration method
Newton cotes integration  methodNewton cotes integration  method
Newton cotes integration methodshashikant pabari
 

Similar to Elaborato cn (20)

DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
 
FFT Analysis
FFT AnalysisFFT Analysis
FFT Analysis
 
Fft analysis
Fft analysisFft analysis
Fft analysis
 
DFT.pptx
DFT.pptxDFT.pptx
DFT.pptx
 
control engineering revision
control engineering revisioncontrol engineering revision
control engineering revision
 
Fast Fourier Transform (FFT) Algorithms in DSP
Fast Fourier Transform (FFT) Algorithms in DSPFast Fourier Transform (FFT) Algorithms in DSP
Fast Fourier Transform (FFT) Algorithms in DSP
 
H infinity optimal_approximation_for_cau
H infinity optimal_approximation_for_cauH infinity optimal_approximation_for_cau
H infinity optimal_approximation_for_cau
 
Fft ppt
Fft pptFft ppt
Fft ppt
 
Training the neural network using levenberg marquardt’s algorithm to optimize
Training the neural network using levenberg marquardt’s algorithm to optimizeTraining the neural network using levenberg marquardt’s algorithm to optimize
Training the neural network using levenberg marquardt’s algorithm to optimize
 
Lecture_ch6.pptx
Lecture_ch6.pptxLecture_ch6.pptx
Lecture_ch6.pptx
 
Fourier-Series_FT_Laplace-Transform_Letures_Regular_F-for-Students_10-1-1.ppt
Fourier-Series_FT_Laplace-Transform_Letures_Regular_F-for-Students_10-1-1.pptFourier-Series_FT_Laplace-Transform_Letures_Regular_F-for-Students_10-1-1.ppt
Fourier-Series_FT_Laplace-Transform_Letures_Regular_F-for-Students_10-1-1.ppt
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Meeting w3 chapter 2 part 1
Meeting w3   chapter 2 part 1Meeting w3   chapter 2 part 1
Meeting w3 chapter 2 part 1
 
Meeting w3 chapter 2 part 1
Meeting w3   chapter 2 part 1Meeting w3   chapter 2 part 1
Meeting w3 chapter 2 part 1
 
Dft and its applications
Dft and its applicationsDft and its applications
Dft and its applications
 
Reconstruction of partial sum without gibbs phenomenon
Reconstruction of partial sum without gibbs phenomenonReconstruction of partial sum without gibbs phenomenon
Reconstruction of partial sum without gibbs phenomenon
 
3 f3 3_fast_ fourier_transform
3 f3 3_fast_ fourier_transform3 f3 3_fast_ fourier_transform
3 f3 3_fast_ fourier_transform
 
Newton cotes integration method
Newton cotes integration  methodNewton cotes integration  method
Newton cotes integration method
 
Res701 research methodology fft1
Res701 research methodology fft1Res701 research methodology fft1
Res701 research methodology fft1
 
DFT,DCT TRANSFORMS.pdf
DFT,DCT TRANSFORMS.pdfDFT,DCT TRANSFORMS.pdf
DFT,DCT TRANSFORMS.pdf
 

Recently uploaded

Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 

Recently uploaded (20)

Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 

Elaborato cn

  • 1. Elaborato di calcolo numerico Autore: Marco Vaiano FFT: Analisi ed applicazioni 1
  • 2. Cosa vedremo? ● Cenni sulla Trasformata di Fourier ● Trasformata dal continuo al discreto ● Integrazione numerica ● Discretizzazione con formula di quadratura ● Fast Fourier Transform (FFT): cenni sull’algoritmo Cooley e Tukey ● Applicazione FFT in ambito biomedico: analisi del battito cardiaco mediante sensore «MAX30100» 2
  • 3. Trasformata di Fourier ● La trasformata di Fourier, sviluppata dal matematico francese Joseph Fourier (nel 1822), è un’operazione che permette di ottenere il contenuto in frequenza di un segnale. ● L’inversa di questa trasformata consente invece di ricavare un segnale a partire dal suo contenuto in frequenza. ● Entrambe le trasformazioni si esprimono in forma integrale: Trasformata di Fourier Antitrasformata di Fourier 3
  • 4. Trasformata di Fourier ● Questo strumento trova numerose applicazioni nella fisica e nell’ingegneria permettendo di scrivere una funzione dipendente dal tempo come combinazione lineare di funzioni di base esponenziali. ● La trasformata di Fourier associa a una funzione i valori dei coefficienti di questi sviluppi lineari, dandone una rappresentazione nel dominio delle frequenze, spesso chiamato spettro della funzione. 4
  • 5. Trasformata di Fourier ● Cosa significa rappresentare un segnale nel dominio della frequenza? ● Essenzialmente la sua base matematica è un’onda sinusoidale, quindi un segnale rappresentato in frequenza è esprimibile mediante combinazione lineare di onde sinusoidali caratterizzate da una certa frequenza, fase e ampiezza. ● In questo modo sapremo quali sinusoidi sono contenute in quel segnale. 5
  • 6. Trasformata di Fourier a tempo discreto ● Per poter utilizzare la trasformata di Fourier nelle applicazioni numeriche è necessaria una discretizzazione. ● Viene pertanto introdotta la Trasformata Discreta di Fourier. ● Considerando un segnale tempo discreto x(n), otteniamo le due equazioni relative alla trasformata diretta e inversa: ● Dove 𝜈 è la frequenza in numero di cicli campione. 6
  • 7. Trasformata di Fourier a tempo discreto ● La prima equazione viene detta equazione di analisi, essa permette di determinare il peso in termini di ampiezza e fase che le vari componenti sinusoidali hanno nella ricostruzione del segnale ● La seconda è detta formula di sintesi, e mostra come x(n) possa essere rappresentato come combinazione lineare di esponenziali complessi, con la frequenza che varia con continuità su intervalli di durata unitaria. 7
  • 8. Trasformata di Fourier a tempo discreto ● La trasformata di Fourier è continua nella variabile 𝜈, pertanto risulta difficile l’analisi e l’elaborazione numerica di un segnale tempo discreto. ● Attraverso la trasformata discreta di Fourier diretta (DFT) e inversa (IDFT) è possibile definire un segnale x(n) di durata N: ● In questo modo un segnale di durata finita N è rappresentato in frequenza con N campioni complessi. 8
  • 9. Trasformata di Fourier a tempo discreto ● In generale, se consideriamo un segnale periodico di periodo T, la quantità 1/T è detta frequenza fondamentale, la quale rappresenta la minima distanza alla quale devono trovarsi due frequenze per distinguerle nel campionamento del segnale. ● Nella DFT abbiamo un intervallo di campionamento ΔT, quindi T = N*ΔT dove N è il numero di campioni. ● La frequenza fondamentale pertanto risulta fc/N (fc è la frequenza di campionamento), ed è la frequenza più bassa che si può rappresentare effettuando la DFT su N campioni di un segnale periodico di periodo T. 9
  • 10. Trasformata di Fourier a tempo discreto ● Il teorema che stabilisce quale sia la frequenza minima di campionamento con una determinata caratterizzazione in frequenza (nel nostro caso la trasformata di Fourier) affinché il segnale possa essere ricostruito è il teorema di Shannon- Nyquist, ovvero: fs > 2*fm, dove fm è la massima frequenza dello spettro del segnale da campionare. ● Se tale condizione non risulta verificata, si riscontra un effetto conosciuto come aliasing che comporta una distorsione del segnale ricostruito. ● In generale, le frequenze rappresentabili effettuando su N campioni la DFT di un segnale periodico di periodo T, tenendo conto del teorema appena descritto, variano nell’intervallo [fs/N, fs/2] 10
  • 11. Integrazione numerica ● Il calcolo della trasformata di Fourier, come visto poc’anzi, richiede il calcolo di un integrale ● L’approccio naturale per il calcolo dell’integrale è quello di approssimare l’integrale continuo con combinazioni lineari della funzione integranda f(x). ● Le formule che realizzano tali approssimazioni sono dette di quadratura, ovvero un insieme di metodi atti a stimare il valore di un integrale senza dover calcolare la primitiva della funzione integranda. 11
  • 12. Integrazione numerica ● Calcolare un integrale significa trovare l’area di un rettangoloide, ossia una figura che è delimitata dalla curva di funzione, l’asse delle ascisse e due perpendicolari, tracciate dagli estremi dell’intervallo di integrazione (a e b). ● Non essendo possibile effettuare un calcolo preciso, troveremo delle figure la cui area approssima sufficientemente quella del rettangoloide. 12
  • 13. Integrazione numerica ● Di seguito sono riportati alcuni metodi di quadratura numerica più comuni: Formula rettangolare ● Area = f(a)(b-a) Questa semplice formula, fa uso dell’area del rettangolo. La sua altezza è ricavata dal valore della funzione a inizio intervallo. In questo caso, si commette un errore abbastanza alto nel calcolo dell’integrale. 13
  • 14. Integrazione numerica Formula del punto medio ● Area = f(m)(b-a) Simile alla formula precedente, però in questo caso viene utilizzata come altezza il valore della funzione al punto medio dell’intervallo di Integrazione. 14
  • 15. Integrazione numerica Formula Trapezoidale ● Area = [f(a)+f(b)]*[(b-a)/2] Questa formula utilizza l’area del trapezio per cercare di approssimare con maggiore accuratezza il rettangoloide. 15
  • 16. Integrazione numerica Formula di Simpson ● Area = [f(a)+4*f(m)+f(b)]*[(b-a)/6] La formula di Simpson per l'integrazione numerica è simile a quella dei trapezi, ma anziché interpolare la funzione da integrare con i segmenti di retta per due punti, usa archi di parabola per tre punti. In tal modo si ha un notevole miglioramento della accuratezza. 16
  • 17. Integrazione numerica Somme di Riemann ● Le somme di Riemann costituiscono un’approssimazione dell’area in maniera simile a quella della formula del rettangolo. ● In questo caso però terremo conto di diverse scelte per l’altezza ottenendo così una decomposizione dell’intervallo da integrare costituito da diversi rettangoli. ● Tale somma è caratterizzata da come i punti tn sono stati scelti: o se ti = xi essa si dice somma sinistra di Riemann o se ti = xi+1 essa si dice somma destra di Riemann o se ti = (xi+1+xi)/2 essa si dice somma media di Riemann 17
  • 18. Integrazione numerica ● I metodi descritti sono tutte combinazioni lineari della funzione integranda ● Essi introducono sempre un errore di discretizzazione della formula di quadratura applicata Q[f]. E[f] = I[f] – Q[f] ● Tale errore può essere positivo o negativo a seconda del fatto che lo specifico metodo potrebbe inscrivere o circoscrivere l’integrale. E[f]>0 E[f]<0 18
  • 19. Integrazione numerica ● Per ridurre l’errore di discretizzazione relativo ad una formula di quadratura, risulta utile applicarla su dei sotto intervalli dell’intervallo di integrazione. ● Si osserva che dividendo in due l’intervallo di integrazione e applicando la formula trapezoidale, l’errore si riduce di circa 4 volte. ● L’utilizzo di formule composite con sotto intervalli sempre più piccoli porta alle stesse conclusioni ottenute con le somme di Riemann, ovvero che se il numero di sotto intervalli tende all’infinito, si ottiene una valutazione precisa dell’integrale della funzione. 19
  • 21. Integrazione numerica ● Si può notare che in generale l’errore di una formula trapezoidale dipende dall’ampiezza dell’intervallo [a, b]. ● Si può quindi pensare di dividere tale intervallo in sotto intervalli di uguale ampiezza: 𝜏 = 𝑏−𝑎 𝑚 mediante punti equidistanti. ● Poiché : ‫׬‬𝑎 𝑏 𝑓 𝑥 𝑑𝑥 = σ𝑗=1 𝑚 ‫׬‬𝑡𝑗−1 𝑡𝑗 𝑓 𝑥 𝑑𝑥, è possibile utilizzare la formula trapezoidale su ogni sotto intervallo, migliorando notevolmente il risultato. 21
  • 22. Stima dell’errore di discretizzazione ● L’errore di discretizzazione è stato definito in precedenza come E[f]=I[f]-Q[f], ma I[f] non è noto. ● Dunque vorremmo determinare una stima calcolabile dell’errore di discretizzazione. ● Se indichiamo con Tm[f] la formula trapezoidale composita su [a,b] con m sottointervalli, per l’errore di Tm[f] vale: 𝐸𝑚 𝑓 = 𝐼 𝑓 − 𝑇𝑚 𝑓 ● Indichiamo con 𝑇2𝑚 𝑓 la formula trapezoidale composita su [a,b] con 2m sottointervalli. Per l’errore di 𝑇2𝑚 𝑓 vale: 𝐸2𝑚 𝑓 = 𝐼 𝑓 − 𝑇2𝑚 𝑓 ● Sottraendo 𝐸𝑚 𝑓 da 𝐸2𝑚 𝑓 , otteniamo: 𝐸2𝑚 𝑓 − 𝐸𝑚 𝑓 = 𝐼 𝑓 − 𝑇2𝑚 𝑓 − 𝐼 𝑓 − 𝑇𝑚 𝑓 = 𝑇𝑚 𝑓 − 𝑇2𝑚 𝑓 ● Allora: 𝐸𝑚 𝑓 − 𝐸2𝑚 𝑓 = 𝑇𝑚 𝑓 − 𝑇2𝑚 𝑓 22
  • 23. Stima dell’errore di discretizzazione ● Ricordando che raddoppiando i sottointervalli l’errore diventa di circa un quarto: 𝐸2𝑚 𝑓 = 1 4 𝐸𝑚 𝑓 ⇒ 𝐸𝑚 𝑓 = 4𝐸2𝑚[𝑓] ● Sostituendo quest’ultima espressione nella precedente si ottiene: 𝑇𝑚 𝑓 − 𝑇2𝑚 𝑓 = 𝐸𝑚 𝑓 − 𝐸2𝑚 𝑓 ≅ 4𝐸2𝑚 𝑓 − 𝐸2𝑚 𝑓 ≅ 3 𝐸2𝑚[𝑓] ● Dunque, la stima dell’errore di discretizzazione usando 2m sottointervalli è: 𝐸2𝑚[𝑓] ≅ 𝑇𝑚 𝑓 − 𝑇2𝑚[𝑓] 3 ● Si otteniene così un miglioramento dell’accuratezza dovuto all’aumento del numero dei nodi 23
  • 24. Discretizzazione con formula di quadratura ● Per l’elaborazione di un segnale di durata finita, occorre utilizzare la trasformata discreta di Fourier. ● L’obiettivo che ci poniamo adesso è quello di discretizzare la trasformata di Fourier (1) in modo da ottenere la DFT. ● Per poter ottenere ciò, utilizzeremo la formula di quadratura trapezoidale vista poc’anzi. (1) 24
  • 25. Discretizzazione con formula di quadratura ● Per poter applicare le formule di quadratura, è necessario che l’integrale sia calcolato su un intervallo finito. ● L’obiettivo è quello di ottenere a partire dalla trasformata di Fourier, un integrale che rispetti questo vincolo. ● Per farlo è quindi necessario effettuare un troncamento della funzione f(t). A questo scopo, consideriamo il tratto di funzione in [0,T] e lo si rende periodico su intervalli di ampiezza T. ● A questo punto, è possibile calcolare la trasformata di Fourier come l’integrale definito tra 0 e T della funzione così ottenuta. 25
  • 26. Discretizzazione con formula di quadratura ● Valutiamo la funzione F(ω) in ω = ωn = n/T, n = 0, 1, 2.. ● È adesso possibile discretizzare l’integrale utilizzando le formule di quadratura trapezoidale composita su N punti. ● Posto h = T/N si ottiene: ● Considerati i vettori 𝐹 = {𝑓(𝜔𝑛)}𝑛=0,1,…,𝑁-1 e 𝑓𝑝 = {𝑓𝑝(𝑘ℎ)}𝑘=0,1,…,𝑁-1, segue che 𝑭 = 𝑫𝑭𝑻[𝒇𝒑] 26
  • 27. Discretizzazione con formula di quadratura L’espressione ottenuta, ovvero la trasformata discreta di Fourier a partire dalla funzione fp(t), rappresenta un’approssimazione dei valori assunti dalla trasformata di Fourier in punti equidistanti. La FT e la DFT, coincidono, nei punti ωn, a meno di un errore. Quest’ultimo è dovuto a 2 fattori principali: • Errore di troncamento della formula di quadratura trapezoidale, introdotto dall’aver assunto fp=f, ovvero la funzione f nulla al di fuori dell’intervallo [0, T]. • Errore di discretizzazione, introdotto dalla formula di quadratura utilizzata. 27
  • 28. Fast Fourier Transform (FFT) ● Il calcolo diretto della DFT ha una complessità dell’ordine di O(n2), poiché per ciascun componente del vettore DFT bisogna calcolare N somme. ● Ciascuna somma prevede la valutazione di N esponenziali complessi ed N operazioni complesse. ● Per effettuare un calcolo più rapido della trasformata di Fourier, pertanto sono state messe a punto diverse versioni di algoritmi che prendono il nome di Fast Fourier Transform (FFT). ● Uno degli algoritmi fu pubblicato nel 1965 ad opera di Cooley e Tukey. ● Gli autori proposero uno schema di calcolo che utilizzando le proprietà dell’esponenziale complesso e riorganizzando le operazioni, effettua Nlog2(N) operazioni. 28
  • 29. Algoritmo di Cooley e Tukey ● L’idea alla base fu quella di semplificare opportunamente i calcoli decomponendo il problema. ● Dal calcolo di una DFT di lunghezza N, si procede alla decomposizione in sotto problemi di dimensione più piccola. ● Questa metodologia, nota come «divide et impera», applicata più volte a ciascuno dei sotto problemi ottenuti, riorganizza efficientemente le operazioni che coinvolgono gli esponenziali complessi. ● Un metodo importante per la riduzione del numero di calcoli da eseguire è dato dallo schema «butterfly». Si possono riordinare in questo modo le operazioni tramite schemi di somma e sottrazioni, passando dal calcolo di una DFT complessa a quello di n DFT più semplici. 29
  • 30. Algoritmo di Cooley e Tukey ● Esistono diversi criteri di divisione del vettore di partenza, nel caso di Cooley e Tukey si ha che una DFT di lunghezza N è divisa in due DFT di lunghezza N/2 (Radix - 2) ed applicando ricorsivamente il procedimento otteniamo a valle una coppia di campioni. ● Se il numero di elementi interni al vettore N è una potenza di due, quindi N=2m, è possibile ottenere N/2 DFT di lunghezza 2. ● Al termine della prima fase di decomposizione detta di «pre-processing», si ottiene un albero binario. ● La fase dell’algoritmo che invece risale l’albero chiudendo quindi tutte le chiamate ricorsive generate, unendo le soluzioni dei singoli sotto problemi è chiamata «fase di calcolo». 30
  • 31. Algoritmo di Cooley e Tukey ● Risulta possibile applicare l’algoritmo anche per altri tipi di radix, ad esempio in radix – 3, si decompone una DFT di lunghezza N in N/3 DFT di lunghezza 3. ● Nel caso invece di mixed radix, l’idea è di decomporre prima rispetto ad una radice, e poi rispetto all’altra radice. ● Se N= r1 * r2, devo risolvere r1 DFT di lunghezza r2 oppure r2 DFT di lunghezza r1. 31
  • 32. Analisi complessità FFT ● In generale, gli algoritmi FFT effettuano il calcolo di una DFT di lunghezza N combinando opportunamente DFT di lunghezza inferiore. ● In base alla fattorizzazione del parametro N si distinguono tre tipologie di algoritmi FFT: 32 1. Se N = r1*r2 e sono primi tra loro, gli algoritmi FFT calcolano r1 DFT di lunghezza r2. La complessità di questi algoritmi è: T(n)=O(N(r1+r2))
  • 33. Analisi complessità FFT 33 2. Se N=r1 p * r2 q, gli algoritmi FFT calcolano p DFT di lunghezza r, e q DFT di lunghezza r. Tipicamente la radice in questo caso è un numero primo sufficientemente piccolo (ad es. r=3, 5) La complessità di questi algoritmi è: T(n)=O(p logr1 N + q logr2 N) 3. Se N=rp gli algoritmi FFT calcolano p DFT di lunghezza r (radix-r). In particolare i più efficienti sono quelli del tipo radix-3. Tuttavia nella pratica, seguendo il vantaggio dell’uso degli «shift register» nei calcolatori, gli algoritmi più utilizzati sono quelli del tipo radix-2. Tipicamente la radice in questo caso è un numero primo sufficientemente piccolo (ad es. r=3, 5) La complessità di questi algoritmi è:
  • 34. Esempio di applicazione FFT: Introduzione ● Come già discusso in precedenza, la FFT ha riscosso notevole successo nell’analisi ed elaborazione dei segnali tenendo conto dei vantaggi descritti in precedenza, ovvero una riduzione significativa della complessità computazionale rispetto all’applicazione diretta della DFT. ● Questo elaborato si sofferma sull’analisi di un particolare segnale proveniente da un sensore impiegato in ambito biomedico, utile soprattutto in questo periodo di pandemia da Covid19. ● Attraverso questo sensore risulta possibile rilevare ed analizzare due parametri vitali per il monitoraggio dei pazienti: la frequenza del battito cardiaco e il livello di saturazione di ossigeno nel sangue. 34
  • 35. Esempio di applicazione FFT: Sensore ● Il sensore, denominato MAX30100 e prodotto dalla Maxim Integrated, viene ampiamente utilizzato nei dispositivi indossabili per il monitoraggio dell’attività fisica, quali smartwatch, smartband o nei pulsossimetri (saturimetri). ● Il principio di funzionamento si basa sull’emissione di una luce rossa e infrarossa ad una certa lunghezza d’onda, 650nm per la luce rossa e 950 per quella infrarossa. ● Entrambi i fasci di luce emessi contemporaneamente, attraversano il tessuto della pelle del paziente e ne viene riflessa una quantità la quale viene opportunamente rilevata da un fotosensore. ● La quantità di luce non assorbita dall’emoglobina viene campionata e convertita in digitale mediante un componente ADC. 35
  • 36. Esempio di applicazione FFT: Sistema ● I campioni ottenuti sono poi memorizzati in registri di memoria interni al sensore e inviati in tempo reale tramite interfaccia seriale connessa al computer per l’elaborazione nell’ambiente di Matlab. ● Un ulteriore tassello di questo sistema va individuato nel microcontrollore ESP8266, il quale effettua la configurazione ed inizializzazione (driver) del sensore nonché l’interfacciamento con il computer. ● In figura (1) il sistema sviluppato e il sensore utilizzato (2): (1) (2) 36
  • 37. Esempio di applicazione FFT: Configurazione ● Come anticipato in precedenza, la configurazione del sensore avviene mediante il microcontrollore ESP8266. ● La programmazione è effettuata in un linguaggio simile al C attraverso l’ambiente di sviluppo Arduino. ● Tra i parametri rilevanti: o Modalità luce rossa e infrarossa o Corrente dei led a 24mA o Larghezza impulso 1600µs o Risoluzione ADC a 16bit o 100 campioni al secondo 37
  • 38. Esempio di applicazione FFT: Analisi ● I segnali biomedici sono in genere molto rumorosi e necessitano di un processo di filtraggio prima di essere utilizzati. ● Nel caso del sensore trattato in questo elaborato, la luce ambientale può interferire con la misurazione del corretto valore di assorbimento della luce rossa e infrarossa. ● Un’ulteriore difficoltà in generale è legata alla quasi periodicità della maggior parte dei segnali utilizzati in ambito biomedico. ● Risulta pertanto difficoltoso individuare cicli periodici effettuando un semplice campionamento, ma è necessaria una procedura preliminare che consente di individuare i punti più importanti per poi risalire al ciclo attraverso opportune traslazioni temporali. 38
  • 39. Esempio di applicazione FFT: Analisi ● Effettuando un plot dei campioni ricevuti dal sensore, otterremo il seguente grafico, espresso nel dominio del tempo: ● Sulle ordinate avremo i valori di segnale riflesso, mentre sulle ascisse i valori del tempo espresso in secondi. 39
  • 40. Esempio di applicazione FFT: Analisi ● In una ricerca pubblicata nel 2014 su «U.S. National Library of Medicine» (link), gli autori analizzano il segnale tracciato su un fotopletismogramma (1) individuando alcune caratteristiche importanti. ● La luce trasmessa attraverso il tessuto mostra un andamento decrescente durante un evento noto come «sistole», nel quale il cuore si contrae e fa fluire il sangue dalle sue camere alle arterie. ● Viceversa cresce durante un evento «diastole» nel quale il cuore si rilassa e le sue camere si riempiono di sangue. (1) 40
  • 41. Esempio di applicazione FFT: Analisi ● Comparando il grafico pubblicato nella ricerca (1) con quello ottenuto dai valori raw (non processati) provenienti dal sensore, otteniamo un profilo molto simile. ● Possiamo usare questo comportamento ciclico per approssimare l’intervallo tra i battiti cardiaci e determinare quindi la frequenza cardiaca di un individuo. ● Attraverso l’analisi nel dominio della frequenza risulta possibile determinare la periodicità delle pulsazioni della frequenza cardiaca e i livelli di ossigenazione del sangue. (1) (2) 41
  • 42. Esempio di applicazione FFT: Analisi ● Uno dei modi per calcolare la frequenza cardiaca è registrare per alcuni secondi i dati di riflettanza del rosso (o infrarosso) e rilevare la frequenza dominante (attraverso un rilevatore di picchi) del segnale. ● In questo caso si utilizzerà la Fast Fourier Transform, già discussa in precedenza, elaborando il segnale attraverso l’ambiente Matlab. ● Il picco della FFT si avvicina alla frequenza del ciclo di contrazione e rilassamento del cuore, ciò che chiamiamo frequenza cardiaca. ● Di seguito verrà mostrato il codice Matlab nel quale oltre al rilevamento della frequenza cardiaca, verranno effettuate alcune operazioni di filtraggio, di tipo passa-banda e passa-basso (Butterworth). 42
  • 43. • In questa prima parte del codice Matlab si prelevano i dati provenienti dal microcontrollore, e quindi dal sensore, attraverso interfaccia seriale. • I dati prelevati vengono pre-elaborati: o Per distinguere i valori di ampiezza e di tempo o Per convertire il tempo da microsecondi a secondi 43
  • 44. o Filtro passa-banda per analizzare solo le frequenze cardiache comprese tra 36bpm e 240bpm o Filtro Butterworth per eliminare le alte frequenze (rumore) • In questa porzione di codice i dati vengono elaborati e filtrati: 44
  • 45. • In questa porzione di codice invece si rileva la frequenza dominante effettuando una ricerca del picco massimo del segnale nel dominio della frequenza. • La ricerca viene applicata sul segnale non filtrato, filtrato passa-banda, filtrato Butterworth. • Output: 45
  • 46. Esempio di applicazione FFT: Grafici Frequenza rilevata: 65 BPM 46
  • 47. Esempio di applicazione FFT: Grafici 47 Frequenze rilevate: • FFT: 35 BPM • Con filtro Passabanda: • 65 BPM • Con filtro Butterworth: • 65 BPM
  • 48. Esempio di applicazione FFT: Grafici Frequenze rilevate: • FFT: 23 BPM • Con filtro Passabanda: 83 BPM • Con filtro Butterworth: • 65 BPM 48
  • 49. Esempio di applicazione FFT: Errori ● Nella stessa ricerca del 2014, già menzionata in precedenza, si analizza anche l’accuratezza delle misure calcolando l’errore nel seguente modo: ● Dove «expected value» si riferisce alla misura effettuata con uno strumento professionale, mentre «actual value» mediante il sensore trattato in questo elaborato. ● Gli autori hanno poi costruito una tabella degli errori rilevati dalle misurazioni effettuate in diverse parti del corpo e in diverse condizioni («a riposo» e «in cammino»). 49