Contenuto principale

Trasformazione tra dati nel dominio del tempo e dati nel dominio della frequenza

È possibile trasformare i dati da un dominio all'altro. La tabella riepiloga i comandi per la trasformazione dei dati tra i domini del tempo e della frequenza. Per ulteriori informazioni sui comandi, vedere le pagine di riferimento dei comandi corrispondenti.

ComandoDescrizioneEsempio di sintassi
fft

Trasformare i dati nel dominio del tempo a dati nel dominio della frequenza.

È possibile specificare N, il numero di valori di frequenza.

Per trasformare un oggetto iddata nel dominio del tempo t_data in un oggetto iddata nel dominio della frequenza f_data con N punti di frequenza, utilizzare:

f_data = 
  fft(t_data,N)
ifftTrasformare i dati nel dominio della frequenza in dati nel dominio del tempo. Le frequenze sono lineari e equidistanti.

Per trasformare un oggetto iddata nel dominio della frequenza f_data in un oggetto iddata nel dominio del tempo t_data, utilizzare:

t_data = 
  ifft(f_data)

La conversione dei dati iddata in forma di una risposta in frequenza idfrd è un tipo di stima. Se si desidera stimare la risposta in frequenza utilizzando un oggetto iddata, vedere Transforming Between Frequency-Domain and Frequency-Response Data.

Trasformazione dei dati tra i domini del tempo e della frequenza

Trasformare i dati nel dominio del tempo in dati nel dominio della frequenza e viceversa e confrontare le prestazioni dei modelli stimati dai dati originali e trasformati.

Caricare e tracciare i dati nel dominio del tempo z1, che contengono 300 campioni.

load iddata1 z1
plot(z1)

Trovare il tempo di campionamento Ts di z1.

Ts = z1.Ts
Ts = 
0.1000

Il tempo di campionamento è 0,1 s.

Trasformare z1 nel dominio della frequenza.

z1f = fft(z1)
z1f = 
Frequency domain data set with responses at 151 frequencies.
Frequency range: 0 to 31.416 rad/seconds
Sample time: 0.1 seconds                                                                             
                                                                                                     
Outputs      Unit (if specified)                                                                     
   y1                                                                                                
                                                                                                     
Inputs       Unit (if specified)                                                                     
   u1                                                                                                
                                                                                                     
Data Properties

L'intervallo di frequenza si estende a 31,416 rad/s che corrisponde alla frequenza di Nyquist di pi/Ts.

Tracciare i dati nel dominio della frequenza.

plot(z1f)

MATLAB figure

Trasformare z1f nuovamente nel dominio del tempo e tracciare insieme i due segnali nel dominio del tempo.

z1t = ifft(z1f)
z1t = 
Time domain data set with 300 samples.
Sample time: 0.1 seconds              
                                      
Outputs      Unit (if specified)      
   y1                                 
                                      
Inputs       Unit (if specified)      
   u1                                 
                                      
Data Properties
plot(z1t,z1)

MATLAB figure

MATLAB figure

I segnali si allineano perfettamente.

Stimare i modelli stato-spazio di secondo ordine per z1 e z1t.

sys1 = ssest(z1,2);
sys1t = ssest(z1t,2);
compare(z1,sys1,sys1t)

MATLAB figure

Stimare un modello stato-spazio per z1f.

sys1f = ssest(z1f,2);
compare(z1f,sys1f)

MATLAB figure

Le percentuali di adattamento per i modelli nel dominio del tempo e nel dominio della frequenza sono simili.

Vedi anche

| | | | |

Argomenti