Hallo,
mir ist aufgefallen, das Simulations-Programme, wie Simulink, Xcos,
Gnuradio-companion nur Zustände darstellen und die sequenzielle
Steuerung explizit so designed werden muss, dass einzelne Vektorelemente
am Anfang oder Ende nicht ausversehen doppelt verarbeitet oder
ausgelassen werden. Unterschiedliche Zeitebenen (Deltazyklen) sind nicht
möglich. Ablaufsteuerung des Gesamtsystem gestaltet sich als schwierig.
Nur wenige Anwendungen sind einfach und übersichtlich (CRC-Generator,
PRBS).
Da gibt es noch Paketorientierte Simulatoren (Omnet++). Diese sind aber
ganz schlecht für DSP-artige Anwendungen, eher für Routing/Internet.
Ich suche etwas, was wie Simulink ist, aber auch eine implizite
Steuerung von Datenpaket/-strömen/-rahmen erlaubt: Wenn alle Elemente
aus einem Block vom Folgeblock verarbeitet wurden, rutscht der nächste
Block definierter breite nach. Bsp. Vektor aus 12345 Elementen geht in
FFT-Block rein - konfiguriert als 512 in, 512 out -- 432-Elemente Vektor
geht raus zu nächsten Block. Es wird schrittweise alles verarbeitet.
Vielleicht gibt es noch einen Puncturing-Coder. Dieser verwirft explizit
einzelne Elemente.
Würde man das im klassischem Simulink oder Xcos realisieren, dann müsste
man erst explizit die Eingangsvektoren zerschneiden und die
Ausgangsvektoren zusammensetzen, überlegen, wann der Vektor voll ist,
was in den Nächsten übertragen wird. Nach der Verarbeitung die Elemente
aus dem Eingangsvektor herausnehmen oder den "Pointer" weiterschalten,
aber dann muss man einen Ringspeicher bauen und von vorn anfangen und
prüfen, wie groß dieser sein muss. Noch schlimmer wird das Puncturing.
Muss ein Element ausgelassen werden, darf der empfangende Block einmal
nicht getaktet werden. Es ist eine explizite Taktsteuerung nötig. Aber
hat der Block jetzt das richtige Element verworfen? reagiert er im
gleichen Tat oder erst im nächsten? ...
Welche Simulationssoftware unterstützt die implizite Behandlung von
Datenobjekten, anstatt nur Variablenzuständen?