In MATLAB, gli output delle funzioni fft
e / o ifft
richiedono spesso un'ulteriore elaborazione prima di essere considerati per l'analisi.
Ho sentito molte opinioni diverse su ciò che è corretto:
scalata
Mathworks afferma che
fft
e leifft
funzioni si basano sulle seguenti equazioni:Ridimensionamento per lunghezza del segnale
I miei colleghi in genere scalano i dati di immediatamente dopo l'elaborazione
fft
.
(Non consideriamo ifft
datigrezziprima del ridimensionamento.)%% Esegue fft
X_f = fft (x, n_sample, 1) / n_sample; % fft deve essere normalizzato dal numero di campioni nei dati. % Questa convenzione è stata stabilita dallo sviluppatore del software (Mathworks).È corretto?
- In tal caso, perché la
ifft
funzione MATLAB prevede che non abbiamo già ridimensionato di ? - Esiste una
ifft
funzione MATLAB o un'opzione che non si ridimensiona automaticamente di ?
In alternativa, esiste una convenzione migliore che dovremmo usare per posizionare l' ? Ad esempio, posizionando 1 / N in anziché anziché , oppure posizionando 1 / √
fft
ifft
in entrambe le equazioni, anziché un1/N?- In tal caso, perché la
Ridimensionamento per periodo di campionamento
Ho sentito che le funzioni
fft
eifft
presuppongono che il periodo di campionamento , e che affinché le funzioni siano vere, è necessario quanto segue applicare:
Vedi link:
- Link 1 (vedi commento a Matt Szelistowski del Dr Seis)
- Link 2 (vedi risposta di Rick Rosson contro quella del dottor Seis)
- Link 3 (vedi commento di Matt (Messaggio: 7/16) e commento di Poorya (14/16)
- Link 4 (vedi pag. 10, slide [1,1])
- Link 5 (vedi pag. 8 + 9) [sembra che stia usando una convenzione inversa per fft e ifft].
È vero?
Sono particolarmente stimolato perché non riesco a trovare equazioni DFT o DTFT su Wikipedia che includano il periodo di campionamento.