Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> software >> ingegneria del Software >> .

Come utilizzare FFT in MATLAB

trasformata rapida di Fourier ( FFT ) è una tecnica spesso utilizzata nell'elaborazione dei segnali . Una trasformata di Fourier approssima qualsiasi funzione continua come somma di funzioni periodiche ( seno e coseno ) . FFT fa la stessa cosa per i segnali discreti - serie di punti dati , piuttosto che una funzione continua definita . FFT consente di identificare le componenti periodiche nel vostro segnale discreto . Potrebbe essere necessario identificare un segnale periodico sepolto sotto il rumore casuale , o analizzare un segnale con diverse fonti sottostanti periodici. MATLAB include un built- in applicazione della FFT per aiutarti a fare questo . Cose che ti serviranno
MATLAB vettore contenente segnale discreto di dati
Show More Istruzioni
Eseguire la FFT
1

calcolare la lunghezza ( numero di elementi ) del vettore contenente i vostri dati . Ad esempio, se i dati sono memorizzati in un vettore chiamato "d ", a "L = lunghezza ( d); " nella riga di comando di MATLAB senza virgolette . L ora conterrà il numero di elementi in d
2

Calcola la potenza di 2 che è maggiore o uguale a L , digitando . "P = nextpow2 (L); " al comando di MATLAB linea senza virgolette . Se L = 1000 , per esempio , p sarà 10 , perché 2 ^ 10 = 1024
3

Eseguire la FFT digitando "Y = fft ( d , 2 ^ p) . ; " nella riga di comando di MATLAB senza virgolette . Questo comando aggiunge zeri di d per ottenere un vettore di lunghezza 2 ^ p e quindi esegue FFT sulla 2 ^ p - vettore elemento . Gli zeri allegate non influenzano il risultato della FFT , FFT ma corre più veloce con un vettore la cui lunghezza è una potenza di 2

Il vettore risultante Y fornisce i coefficienti di funzioni seno e coseno a frequenze che vanno da - . ( 2 ^ p /2)) a 1 + ( 2 ^ p /2) (assumendo d è stata campionata a 1 campione al secondo , o 1Hz ) . Queste sono le funzioni seno e coseno , che si sommano al segnale originale d . Y è complesso ; le sue parti reali sono i coefficienti delle funzioni seno e le sue parti immaginarie sono i coefficienti delle funzioni coseno
4

Conservare solo le parti uniche di Y digitando "Y = Y . ( 1 : ( ( 2 ^ p +1 ) /2) ), " senza le virgolette nella riga di comando di MATLAB . Questo è necessario perché l'uscita della FFT è simmetrica - cioè, la seconda metà di Y è semplicemente il complesso coniugato del primo tempo . Ora , Y fornisce i coefficienti di funzioni seno e coseno a frequenze da 0 a 1 + ( 2 ^ p /2) ) .
5

Divide Y da L /2 , digitando "Y = Y. /( L /2 ), " nella riga di comando di MATLAB senza virgolette . Questo è necessario perché l'uscita FFT predefinito di MATLAB viene moltiplicata per un fattore di L /2 , quindi sarà maggiore se d è più lungo . Dividendo per L /2 normalizza l'uscita FFT in modo che essa non dipende dalla lunghezza del d .
Trama FFT risulta
6

Se D non è stato campionato a 1Hz ma ad una certa frequenza " f ", le frequenze effettive rappresentate in Y saranno da 0 a f * ( 1 + ( 2 ^ p /2) ) ) . Calcolare un vettore di MATLAB contenente queste frequenze . In primo luogo , definire la frequenza di campionamento reale in una variabile f . Se la vostra frequenza di campionamento effettiva è stata 0.5Hz ( 1 campione ogni 2 secondi ) , digitare "f = 0.5; " nella riga di comando di MATLAB senza virgolette . Avanti , digitare " freq = f * ( 0 : ( 1 + ( 2 ^ p /2) ) )). " Nella riga di comando di MATLAB senza virgolette . Ora freq contiene le frequenze effettive rappresentate in Y.
7

Prendi l'ampiezza della componente di segnale ad ogni frequenza , digitando " Ya = abs ( Y ) " . nella riga di comando di MATLAB senza virgolette .
8

Plot dello spettro di ampiezza del segnale digitando "complotto ( freq , Ya ) " nella riga di comando di MATLAB senza virgolette .

9

ottenere il potere della componente di segnale ad ogni frequenza , digitando " Yp = Y ^ 2" alla linea di comando di MATLAB senza virgolette .
10

Plot lo spettro di potenza del segnale digitando "complotto ( freq , Yp ) " nella riga di comando di MATLAB senza virgolette .

 

software © www.354353.com