Forum: Digitale Signalverarbeitung / DSP / Machine Learning Matlab-Prozeduren und Simulink-Blöcke


von Matlab-Neuling (Gast)


Lesenswert?

Hallo,

ich bin ganz neu mit Matlab/Simulink und habe etwas Probleme, einige 
Konzepte zu erfassen (Programmiere sonst schon viele Jahre C++ etc.).

Ich möchte z.B. folgendes tun:

a.) Zwei Funktionen, eine update(x) und ergebnis(). Die Funktion 
update(x) verarbeitet x und speichert irgendwo ein Zwischenergebnis, und 
die Funktion ergebnis() liefert eben das Ergebnis und setzt das 
Zwischenergebnis wieder zurück. Also etwa so:


  a = ...;
  b = ...;
  update(a);
  update(b);
  x = ergebnis();

  c = ...;
  d = ...;
  e = ...;
  update(c);
  update(d);
  update(e);
  y = ergebnis();

Ich möchte keine Funktionen mit variablen Parametern oder so. Sondern 
das Zwischenergebnis soll zwischen den Aufrufen erhalten bleiben.


b.) In Simulink möchte ich einen Block programmieren, der auch einen 
eigenen Zustand/Zwischenergebnis hat, und mit einer festen 
Sample-Frequenz aufgerufen wird und dann eben jedesmal ein neues 
Ergebnis liefert, das aus dem aktuellen Eingangswert und dem vorherigen 
Ergebnis besteht.


Wie löse ich diese beiden Probleme? Stichwort, Hinweise zu Doku oder 
Trivial-Beispiel reichen mir vollkommen, dann kann ich schon selbst 
weiter suchen. Aber im Moment weiß ich nicht nach welchen Stichwörtern 
ich suchen soll und habe das Gefühl, dass ich konzeptionell 
Matlab/Simulink noch nicht ganz verstanden habe.

von 123 (Gast)


Lesenswert?

Zu b)

Matlab Function mit persistent variable. Taktrate mit Rechtsklick auf 
den Block und bei "Subsystem Parameters" einstellen. Vor und nach dem 
Block wirst du dann vermutlich rate Transition Blocks benötigen.

von Matlab-Neuling (Gast)


Lesenswert?

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.