Newsgroup: it.discussioni.ingegneria
Titolo: dubbi su FFT

Salve, mi sono appena avvicinato alle FFT
avrei un paio di dubbi.
Ho un segnale già campionato, quindi non ne conosco la frequenza massima...
1) come faccio a sapere se è stato campionato al di sopra della frequenza di
nyquist ?
2) se di questo segnale scelgo 100 punti e faccio la fft, ad esempio prendo
0.000 0.000
0.100 0.100
0.200 0.199
0.250 0.247
0.300 0.296
0.400 0.389
0.500 0.479
0.600 0.565
0.700 0.644
0.800 0.717
0.900 0.783
1.000 0.841
1.100 0.891
1.200 0.932
1.300 0.964
1.400 0.985
1.500 0.997
etc..
etc..
e faccio la FFT ottengo un certo spettro.
se tolgo alcuni valori, ad esempio faccio
0.000 0.000
0.250 0.247
0.500 0.479
0.800 0.717
1.100 0.891
1.400 0.985
1.500 0.997
etc..
etc..
cioè ho tolto alcuni valori, ottengo uno spettro che ha la stessa forma, ma
le "altezze" dei picchi sono diverse, maggiori o minori.
Ovviamente questo è dovuto al fatto che ho diminuito il numero di campioni.
Allora come faccio a sapere il numero "giusto" di campioni che debbo usare ?
Ne uso il più possibile e sono a posto o c'è un numero "ottimale" ?
Lo scopo sarebbe scrivere lo spettro di fourier in termini somma di coseni
ognuno con una fase ed una ampiezza, ma visto che questi due parametri
variano al variare del numero di campioni, come faccio a costruire lo
spettro "vero" ?
Mi potete consigliare anche qualche testo per approfondire l'argomento ? Ho
trovato diverso materiale in rete, ma vorrei avere qualcosa di cartaceo ;)
So che ci sono molti libri, me ne consigliate qualcuno ?
Grazie!
Andrea

Andrea ha scritto:

Ciao sono quello del programma ;)
Per quanto riguarda i testi ce ne sono una marea e non so che
consigliarti, comunque ti do questo link dove è spiegato tutto
ottimamente e sinteticamente (è in inglese):
http://misure.mecc.polimi.it/esercitazioni/Fourier%20Transforms,%20DFTs,%20and%20FFTs.htm
Per quanto riguarda il numero di campioni da utilizzare è meglio
parlare di frequenza di campionamento (Hz) che rappresenta
sostanzialmente il numero di campioni che vai ad acquisire per secondo
(campioni al secondo).
Questo parametro dipende dalla massima frequenza che intendi osservare,
vale la regola di Nyquist per cui la frequenza di campionamento deve
essere maggiore di 2 volte la frequenza massima che vuoi osservare, per
cui fc >= 2 * fs con fc frequenza di campionamento e fs frequenza
massima del segnale che vuoi apprezzare.
Nel primo caso che citi hai che il tempo di acquisizione tra un dato e
l'altro è di dt = 0.1 secondi cioè hai una fc = 10 Hz (10 campioni
per secondo), questo significa che la rappresentazione della FFT è
corretta fino a frequenze minori di 5 Hz, al di sopra di 5 Hz la
rappresentazione dello spettro è sostanzialmente priva di senso.
Nel secondo caso hai dt = 0.25 s e quindi fc = 1/dt = 4 Hz, quindi qui
la massima frequenza che puoi apprezzare vale 2Hz, al di sopra la FFT
è priva di senso.
Questo fenomeno si chiama aliasing e non è correggibile a posteriori
per cui se hai un record di dati (come nel tuo caso hai tempo e
segnale) puoi solo dire che lo spettro che vai a calcolare ha senso
solo per frequenza minori della metà della frequenza di campionamento.
Ad esempio se hai una frequenza di campionamento di 10 Hz (cioè dt =
0.1 s) e vai a campionare una sinusoide con frequenza fs = 1 Hz il tuo
spettro risulterà effettivamente significativo (avrai una riga a 1 Hz)
poichè hai soddisfatto la regola di Nyquist, se invece vai con la
stessa frequenza di campionamento a calcolare lo spettro di una
sinusoide a 6 Hz il tuo spettro avrà una riga a 4 Hz (ma la frequenza
originale è di 6 Hz! ) per cui lo spettro che hai calcolato è privo
di senso.
Questo lo puoi vedere benissimo da te col programmino che ti ho dato
semplicemente andando ad aumentare la frequenza della sinusoide, fai
delle prove con 1,2,3,4,5,6,7, ecc ecc e vedi cosa succede (devi tenere
lo stesso dt però).