|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jul 2011
Messaggi: 11
|
[MATLAB] Trasformata di Fourier
Salve,
ho l'esigenza di calcolare la trasformata di fourier di un vettore che rappresenta i valori di un segnale neurale registrato in 60 secondi. Questo segnale viene filtrato da un filtro alla buttherworth passabanda 0.1 - 55Hz con frequenza di campionamento fs = 254.31 Hz. Come fare la trasformata di fourier del segnale filtrato e come visualizzarlo con Matlab ?(ascissa frequenze e ordinata modulo ) Grazie in anticipo |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2005
Messaggi: 309
|
c'è la funzione fft
se il tuo segnale è x tu fai y=fft(x) e hai la trasformata l'asse lo devi calcolare così f=fs*(0:N-1)./N, dove N=length(x) e fs è la frequenza di campionamento del segnale l'asse delle frequenze è tutto positivo e va da 0 a fs (se il segnale è reale ti basta guardare la prima metà dello spettro) dato che la trasformata è complessa ne puoi visualizzare il modulo o la fase per visualizzare il modulo basta fare plot(f,abs(y)) se invece lo vuoi in scala logaritmica (dB) fai plot(f,20*log10(abs(y))) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2516
|
Aggiungo che puo esserti utile anche la funzione fftshift.
|
|
|
|
|
|
#4 | |
|
Junior Member
Iscritto dal: Jul 2011
Messaggi: 11
|
Quote:
![]() Puoi spiegarmi per favore la differenza tra fft(x) ed fft(x,n) con n = lenght (x)? Ultima modifica di marej89 : 02-11-2011 alle 19:22. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2005
Messaggi: 309
|
se fai fft(x,n) in pratica è come se aggiungessi n-length(x) zeri alla fine del segnale
ovviamente se n è uguale a length(x) il risultato è identico |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:36.





















