Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Transformieren von Daten zwischen der Zeit- und Frequenzdomäne

System Identification Toolbox™ bietet Werkzeuge zur Analyse von Daten und zur Schätzung und Bewertung von Modellen sowohl in der Zeit- als auch der Frequenzdomäne. Um Werkzeuge und Methoden zu verwenden, die sich nicht im gleichen Bereich wie Ihre Messdaten befinden, können Sie Ihre Zeitdomänendaten in Frequenzdomänendaten transformieren und umgekehrt.

Das iddata-Objekt speichert Zeitdomänen- oder Frequenzdomänendaten.

  • Zeitdomänendaten bestehen aus einer oder mehreren Eingangsvariablen u(t) und einer oder mehreren Ausgangsvariablen y(t), die als Funktion der Zeit abgetastet werden.

  • Frequenzdomänendaten bestehen entweder aus transformierten Zeitdomänen-Eingangs/Ausgangs-Signalen oder aus dem Frequenzgang des Systems, der in Abhängigkeit der Frequenz als unabhängiger Variable abgetastet wird.

Ausführliche Informationen zur Darstellung von Zeitdomänen- und Frequenzdomänendaten in MATLAB® finden Sie unter Representing Data in MATLAB Workspace.

Sie können Ihre Daten von einer Domäne in die andere transformieren. In der Tabelle sind die Befehle zum Transformieren von Daten zwischen der Zeit- und Frequenzdomäne zusammengefasst. Weitere Informationen zu den Befehlen finden Sie auf den entsprechenden Befehlsreferenzseiten.

BefehlBeschreibungBeispiel für die Syntax
fft

Transformieren Sie Zeitdomänendaten in Frequenzdomänendaten.

Sie können die Anzahl der Frequenzwerte N festlegen.

Um das Zeitdomänen-iddata-Objekt t_data in ein Frequenzdomänen-iddata-Objekt f_data mit N Frequenzpunkten zu transformieren, verwenden Sie:

f_data = 
  fft(t_data,N)
ifftTransformieren Sie Frequenzdomänendaten in Zeitdomänendaten. Die Frequenzen sind linear und gleichmäßig verteilt.

Um das Frequenzdomänen-iddata-Objekt f_data in ein Zeitdomänen-iddata-Objekt t_data zu transformieren, verwenden Sie:

t_data = 
  ifft(f_data)

Die Umwandlung von iddata-Daten in die Form eines idfrd-Frequenzgangs ist eine Art der Schätzung. Wenn Sie den Frequenzgang mit Hilfe eines iddata-Objekts schätzen wollen, siehe Transforming Between Frequency-Domain and Frequency-Response Data.

Transformieren von Daten zwischen der Zeit- und Frequenzdomäne

Transformieren Sie Daten von der Zeitdomäne in die Frequenzdomäne und zurück in die Zeitdomäne, und vergleichen Sie die Leistung von Modellen, die anhand der ursprünglichen und transformierten Daten geschätzt wurden.

Laden und plotten Sie die Zeitdomänendaten z1, die 300 Abtastungen enthalten.

load iddata1 z1
plot(z1)

Figure contains 2 axes objects. Axes object 1 with title y1 contains an object of type line. This object represents z1. Axes object 2 with title u1 contains an object of type line. This object represents z1.

Ermitteln Sie die Abtastzeit Ts von z1.

Ts = z1.Ts
Ts = 
0.1000

Die Abtastzeit beträgt 0,1 s.

Transformieren Sie z1 in die Frequenzdomäne.

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

Der Frequenzbereich reicht bis 31,416 rad/s, was der Nyquist-Frequenz von pi/Ts entspricht.

Plotten Sie die Frequenzdomänendaten.

plot(z1f)

Figure contains 4 axes objects. Axes object 1 with title y1 contains an object of type line. This object represents z1f. Axes object 2 contains an object of type line. This object represents z1f. Axes object 3 with title u1 contains an object of type line. This object represents z1f. Axes object 4 contains an object of type line. This object represents z1f.

Transformieren Sie z1f zurück in die Zeitdomäne und plotten Sie die beiden Zeitdomänensignale gemeinsam.

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)

Figure contains 2 axes objects. Axes object 1 with title y1 contains 2 objects of type line. These objects represent z1t, z1. Axes object 2 with title u1 contains 2 objects of type line. These objects represent z1t, z1.

Die Signale stimmen genau überein.

Schätzen Sie Zustandsraummodelle zweiter Ordnung für z1 und z1t.

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

Figure contains an axes object. The axes object with ylabel y1 contains 3 objects of type line. These objects represent Validation data (y1), sys1: 70.63%, sys1t: 70.63%.

Schätzen Sie ein Zustandsraummodell für z1f.

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

Figure contains 2 axes objects. Axes object 1 with ylabel y1 contains 2 objects of type line. These objects represent Validation data (y1), sys1f: 70.85%. Axes object 2 contains 2 objects of type line. These objects represent Validation data (y1), sys1f: 70.85%.

Die prozentualen Anpassungsraten für die Modelle in der Zeit- und Frequenzdomäne sind ähnlich.

Siehe auch

| | | | |

Themen